int arch_cpu_init (void) { /* * global data (_start is invalid so reconfig mon_len value) * */ gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_TEXT_BASE; /* * cpu initialize */ nxp_cpu_arch_init(); nxp_cpu_clock_init(); nxp_cpu_periph_init(); return 0; }
static void __init cpu_map_io(void) { int cores = LIVE_NR_CPUS; /* * check memory map */ unsigned long io_end = cpu_iomap_desc[ARRAY_SIZE(cpu_iomap_desc)-1].virtual + cpu_iomap_desc[ARRAY_SIZE(cpu_iomap_desc)-1].length; #if defined(CFG_MEM_PHY_DMAZONE_SIZE) unsigned long dma_start = CONSISTENT_END - CFG_MEM_PHY_DMAZONE_SIZE; #else unsigned long dma_start = CONSISTENT_END - SZ_2M; // refer to dma-mapping.c #endif if (io_end > dma_start) printk(KERN_ERR "\n****** BUG: Overlapped io mmap 0x%lx with dma start 0x%lx ******\n", io_end, dma_start); /* debug */ _IOMAP(); /* make iotable */ iotable_init(cpu_iomap_desc, ARRAY_SIZE(cpu_iomap_desc)); #if defined(CFG_MEM_PHY_DMAZONE_SIZE) printk(KERN_INFO "CPU : DMA Zone Size =%2dM, CORE %d\n", CFG_MEM_PHY_DMAZONE_SIZE>>20, cores); init_consistent_dma_size(CFG_MEM_PHY_DMAZONE_SIZE); #else printk(KERN_INFO "CPU : DMA Zone Size =%2dM, CORE %d\n", SZ_2M>>20, cores); #endif nxp_cpu_arch_init(); nxp_board_base_init(); nxp_cpu_clock_init(); nxp_cpu_clock_print(); }