Example #1
0
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;
}
Example #2
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;
}