# HG changeset patch # User gthomas # Date 1045850547 0 # Node ID 646a29ef8e2223a04c08fc6369e170609c8cb80a # Parent 41d813de1ffc46bdfe5bc2c2326b9ad4eb67b510 Move hal_if_init() to platform initialization diff --git a/packages/hal/arm/xscale/mpc50/current/ChangeLog b/packages/hal/arm/xscale/mpc50/current/ChangeLog --- a/packages/hal/arm/xscale/mpc50/current/ChangeLog +++ b/packages/hal/arm/xscale/mpc50/current/ChangeLog @@ -1,3 +1,8 @@ +2003-02-20 Gary Thomas + + * src/mpc50_misc.c (plf_hardware_init): Platform needs to call + hal_if_init(). + 2003-02-05 Nick Garnett * cdl/hal_arm_xscale_mpc50.cdl: Changed compiler prefix to arm-elf diff --git a/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c b/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c --- a/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c +++ b/packages/hal/arm/xscale/mpc50/current/src/mpc50_misc.c @@ -133,6 +133,8 @@ void plf_hardware_init(void) gpioValue = gpioValue | (unsigned long)0x40 ; *PXA2X0_CKEN = gpioValue ; + hal_if_init(); // Set up eCos/ROM interfaces + mpc50_user_hardware_init(); return ; diff --git a/packages/hal/arm/xscale/pxa2x0/current/ChangeLog b/packages/hal/arm/xscale/pxa2x0/current/ChangeLog --- a/packages/hal/arm/xscale/pxa2x0/current/ChangeLog +++ b/packages/hal/arm/xscale/pxa2x0/current/ChangeLog @@ -1,3 +1,9 @@ +2003-02-20 Gary Thomas + + * src/pxa2x0_misc.c (hal_hardware_init): Move call to hal_if_init() + into platform code (so it can do I/O). Also, support common CDL + for CACHE startup enables. + 2003-01-24 Knud Woehler 2003-01-24 Mark Salter diff --git a/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c b/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c --- a/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c +++ b/packages/hal/arm/xscale/pxa2x0/current/src/pxa2x0_misc.c @@ -70,33 +70,35 @@ externC void plf_hardware_init(void); void hal_hardware_init(void) { - hal_xscale_core_init(); + hal_xscale_core_init(); - *PXA2X0_ICMR = 0; // IRQ Mask - *PXA2X0_ICLR = 0; // Route interrupts to IRQ + *PXA2X0_ICMR = 0; // IRQ Mask + *PXA2X0_ICLR = 0; // Route interrupts to IRQ *PXA2X0_ICCR = 1; - *PXA2X0_GRER0 = 0; // Disable rising edge detect - *PXA2X0_GRER1 = 0; - *PXA2X0_GRER2 = 0; + *PXA2X0_GRER0 = 0; // Disable rising edge detect + *PXA2X0_GRER1 = 0; + *PXA2X0_GRER2 = 0; - *PXA2X0_GFER0 = 0; // Disable falling edge detect - *PXA2X0_GFER1 = 0; - *PXA2X0_GFER2 = 0; + *PXA2X0_GFER0 = 0; // Disable falling edge detect + *PXA2X0_GFER1 = 0; + *PXA2X0_GFER2 = 0; + + *PXA2X0_GEDR0 = 0xffffffff; // Clear edge detect status + *PXA2X0_GEDR1 = 0xffffffff; + *PXA2X0_GEDR2 = 0x0001ffff; - *PXA2X0_GEDR0 = 0xffffffff; // Clear edge detect status - *PXA2X0_GEDR1 = 0xffffffff; - *PXA2X0_GEDR2 = 0x0001ffff; + plf_hardware_init(); // Perform any platform specific initializations - plf_hardware_init(); // Perform any platform specific initializations + *PXA2X0_OSCR = 0; // Let the "OS" counter run + *PXA2X0_OSMR0 = 0; - *PXA2X0_OSCR = 0; // Let the "OS" counter run - *PXA2X0_OSMR0 = 0; - - hal_if_init(); // Set up eCos/ROM interfaces - - HAL_DCACHE_ENABLE(); // Enable caches - HAL_ICACHE_ENABLE(); +#ifdef CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP + HAL_DCACHE_ENABLE(); // Enable caches +#endif +#ifdef CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP + HAL_ICACHE_ENABLE(); +#endif } // Initialize the clock