void kgdb_params_early_init(void) { mtspr(SPRN_M_TWB, virt_to_phys(tmp_sw_page)); #ifdef CONFIG_PPC_8xx __initial_memory_limit = 0x800000; #endif get_from_flat_dt("cpu", "clock-frequency", &ppc_proc_freq); get_from_flat_dt("soc", "reg", &immrbase); get_from_flat_dt("cpm", "brg-frequency", &brgfreq); #ifdef CONFIG_PPC_EP88XC cpm_reset(); init_ioports(); #ifdef CONFIG_KGDB_CPM_UART_SMC1 cpm1_clk_setup(CPM_CLK_SMC1, CPM_BRG1, CPM_CLK_RTX); #endif #ifdef CONFIG_KGDB_CPM_UART_SCC2 cpm1_clk_setup(CPM_CLK_SCC2, CPM_BRG2, CPM_CLK_TX); cpm1_clk_setup(CPM_CLK_SCC2, CPM_BRG2, CPM_CLK_RX); #endif #else /* early dpmem init */ m8xx_cpm_dpinit(); #endif }
void m8xx_cpm_reset(uint host_page_addr) { volatile immap_t *imp; volatile cpm8xx_t *commproc; pte_t *pte; imp = (immap_t *)IMAP_ADDR; commproc = (cpm8xx_t *)&imp->im_cpm; #ifdef CONFIG_UCODE_PATCH /* Perform a reset. */ commproc->cp_cpcr = (CPM_CR_RST | CPM_CR_FLG); /* Wait for it. */ while (commproc->cp_cpcr & CPM_CR_FLG); cpm_load_patch(imp); #endif /* Set SDMA Bus Request priority 5. * On 860T, this also enables FEC priority 6. I am not sure * this is what we realy want for some applications, but the * manual recommends it. * Bit 25, FAM can also be set to use FEC aggressive mode (860T). */ imp->im_siu_conf.sc_sdcr = 1; /* Reclaim the DP memory for our use. */ m8xx_cpm_dpinit(); /* Set the host page for allocation. */ host_buffer = host_page_addr; /* Host virtual page address */ host_end = host_page_addr + PAGE_SIZE; /* We need to get this page early, so I have to do it the * hard way. */ if (get_pteptr(&init_mm, host_page_addr, &pte)) { pte_val(*pte) |= _PAGE_NO_CACHE; flush_tlb_page(init_mm.mmap, host_buffer); } else { panic("Huh? No CPM host page?"); } /* Tell everyone where the comm processor resides. */ cpmp = (cpm8xx_t *)commproc; }
void m8xx_cpm_reset(void) { volatile immap_t *imp; volatile cpm8xx_t *commproc; imp = (immap_t *)IMAP_ADDR; commproc = (cpm8xx_t *)&imp->im_cpm; #ifdef CONFIG_UCODE_PATCH /* Perform a reset. */ commproc->cp_cpcr = (CPM_CR_RST | CPM_CR_FLG); /* Wait for it. */ while (commproc->cp_cpcr & CPM_CR_FLG); cpm_load_patch(imp); #endif /* Set SDMA Bus Request priority 5. * On 860T, this also enables FEC priority 6. I am not sure * this is what we really want for some applications, but the * manual recommends it. * Bit 25, FAM can also be set to use FEC aggressive mode (860T). */ out_be32(&imp->im_siu_conf.sc_sdcr, 1), /* Reclaim the DP memory for our use. */ m8xx_cpm_dpinit(); /* Tell everyone where the comm processor resides. */ cpmp = (cpm8xx_t *)commproc; }
void cpm_reset(void) { cpm8xx_t *commproc; sysconf8xx_t *siu_conf; commproc = (cpm8xx_t *)ioremap(CPM_MAP_ADDR, CPM_MAP_SIZE); #ifdef CONFIG_UCODE_PATCH /* Perform a reset. */ out_be16(&commproc->cp_cpcr, CPM_CR_RST | CPM_CR_FLG); /* Wait for it. */ while (in_be16(&commproc->cp_cpcr) & CPM_CR_FLG); cpm_load_patch(commproc); #endif /* Set SDMA Bus Request priority 5. * On 860T, this also enables FEC priority 6. I am not sure * this is what we realy want for some applications, but the * manual recommends it. * Bit 25, FAM can also be set to use FEC aggressive mode (860T). */ siu_conf = (sysconf8xx_t*)immr_map(im_siu_conf); out_be32(&siu_conf->sc_sdcr, 1); immr_unmap(siu_conf); /* Reclaim the DP memory for our use. */ m8xx_cpm_dpinit(); /* Tell everyone where the comm processor resides. */ cpmp = commproc; }