void qe_init(uint qe_base) { /* Init the QE IMMR base */ qe_immr = (qe_map_t *)qe_base; gd->mp_alloc_base = QE_DATAONLY_BASE; gd->mp_alloc_top = gd->mp_alloc_base + QE_DATAONLY_SIZE; qe_sdma_init(); qe_snums_init(); }
void qe_reset(void) { if (qe_immr == NULL) qe_immr = ioremap(get_qe_base(), QE_IMMAP_SIZE); qe_snums_init(); qe_issue_cmd(QE_RESET, QE_CR_SUBBLOCK_INVALID, QE_CR_PROTOCOL_UNSPECIFIED, 0); /* Reclaim the MURAM memory for our use. */ qe_muram_init(); if (qe_sdma_init()) panic("sdma init failed!"); }
void qe_init(uint qe_base) { /* Init the QE IMMR base */ qe_immr = (qe_map_t *)qe_base; #ifdef CONFIG_SYS_QE_FMAN_FW_IN_NOR /* * Upload microcode to IRAM for those SOCs which do not have ROM in QE. */ qe_upload_firmware((const void *)CONFIG_SYS_QE_FW_ADDR); /* enable the microcode in IRAM */ out_be32(&qe_immr->iram.iready,QE_IRAM_READY); #endif gd->arch.mp_alloc_base = QE_DATAONLY_BASE; gd->arch.mp_alloc_top = gd->arch.mp_alloc_base + QE_DATAONLY_SIZE; qe_sdma_init(); qe_snums_init(); }