int board_init (void) { u32 val; /* arch number of Integrator Board */ #ifdef CONFIG_ARCH_CINTEGRATOR gd->bd->bi_arch_number = MACH_TYPE_CINTEGRATOR; #else gd->bd->bi_arch_number = MACH_TYPE_INTEGRATOR; #endif /* adress of boot parameters */ gd->bd->bi_boot_params = 0x00000100; gd->flags = 0; #ifdef CONFIG_CM_REMAP extern void cm_remap(void); cm_remap(); /* remaps writeable memory to 0x00000000 */ #endif #ifdef CONFIG_ARCH_CINTEGRATOR /* * Flash protection on the Integrator/CP is in a simple register */ val = readl(CP_FLASHPROG); val |= (CP_FLASHPROG_FLVPPEN | CP_FLASHPROG_FLWREN); writel(val, CP_FLASHPROG); #else /* * The Integrator/AP has some special protection mechanisms * for the external memories, first the External Bus Interface (EBI) * then the system controller (SC). * * The system comes up with the flash memory non-writable and * configuration locked. If we want U-Boot to be used for flash * access we cannot have the flash memory locked. */ writel(EBI_UNLOCK_MAGIC, EBI_BASE + EBI_LOCK_REG); val = readl(EBI_BASE + EBI_CSR1_REG); val &= EBI_CSR_WREN_MASK; val |= EBI_CSR_WREN_ENABLE; writel(val, EBI_BASE + EBI_CSR1_REG); writel(0, EBI_BASE + EBI_LOCK_REG); /* * Set up the system controller to remove write protection from * the flash memory and enable Vpp */ writel(SC_CTRL_FLASHVPP | SC_CTRL_FLASHWP, SC_CTRLS); #endif icache_enable (); return 0; }
int board_init (void) { /* arch number of Integrator Board */ gd->bd->bi_arch_number = MACH_TYPE_CINTEGRATOR; /* adress of boot parameters */ gd->bd->bi_boot_params = 0x00000100; gd->flags = 0; #ifdef CONFIG_CM_REMAP extern void cm_remap(void); cm_remap(); /* remaps writeable memory to 0x00000000 */ #endif icache_enable (); flash__init (); ether__init (); return 0; }