Message ID | 1345134922-30079-1-git-send-email-albert.u.boot@aribaud.net |
---|---|
State | Accepted |
Delegated to: | Prafulla Wadaskar |
Headers | show |
> -----Original Message----- > From: u-boot-bounces@lists.denx.de [mailto:u-boot- > bounces@lists.denx.de] On Behalf Of Albert ARIBAUD > Sent: 16 August 2012 22:05 > To: u-boot@lists.denx.de > Subject: [U-Boot] [PATCH] edminiv2: orion5x: fix GPIO inits and values > > Orion5x did not actually write GPIO output values > or input polarities, and ED Mini V2 had bad or > missing values for GPIO settings. > > Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> > --- > arch/arm/cpu/arm926ejs/orion5x/cpu.c | 2 ++ > include/configs/edminiv2.h | 13 +++++++++---- > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/cpu/arm926ejs/orion5x/cpu.c > b/arch/arm/cpu/arm926ejs/orion5x/cpu.c > index 792b11d..c3948d3 100644 > --- a/arch/arm/cpu/arm926ejs/orion5x/cpu.c > +++ b/arch/arm/cpu/arm926ejs/orion5x/cpu.c > @@ -292,7 +292,9 @@ int arch_misc_init(void) > writel(ORION5X_MPP0_7, ORION5X_MPP_BASE+0x00); > writel(ORION5X_MPP8_15, ORION5X_MPP_BASE+0x04); > writel(ORION5X_MPP16_23, ORION5X_MPP_BASE+0x50); > + writel(ORION5X_GPIO_OUT_VALUE, ORION5X_GPIO_BASE+0x00); > writel(ORION5X_GPIO_OUT_ENABLE, ORION5X_GPIO_BASE+0x04); > + writel(ORION5X_GPIO_IN_POLARITY, ORION5X_GPIO_BASE+0x0c); > > /* initialize timer */ > timer_init_r(); > diff --git a/include/configs/edminiv2.h b/include/configs/edminiv2.h > index 6a67aa5..1541cfb 100644 > --- a/include/configs/edminiv2.h > +++ b/include/configs/edminiv2.h > @@ -69,13 +69,18 @@ > * - GPIO16 is Power LED control (0 = on, 1 = off) > * - GPIO17 is Power LED source select (0 = CPLD, 1 = GPIO16) > * - GPIO18 is Power Button status (0 = Released, 1 = Pressed) > - * - Last GPIO is 26, further bits are supposed to be 0. > + * - GPIO19 is SATA disk power toggle (toggles on 0-to-1) > + * - GPIO22 is SATA disk power status () > + * - GPIO23 is supply status for SATA disk () > + * - GPIO24 is supply control for board (write 1 to power off) > + * Last GPIO is 25, further bits are supposed to be 0. > * Enable mask has ones for INPUT, 0 for OUTPUT. > - * Default is LED ON. > + * Default is LED ON, board ON :) > */ > > -#define ORION5X_GPIO_OUT_ENABLE 0x03fcffff > -#define ORION5X_GPIO_OUT_VALUE 0x03fcffff > +#define ORION5X_GPIO_OUT_ENABLE 0xfef4f0ca > +#define ORION5X_GPIO_OUT_VALUE 0x00000000 > +#define ORION5X_GPIO_IN_POLARITY 0x000000d0 > > /* > * NS16550 Configuration > -- Acked-By: Prafulla Wadaskar <prafulla@marvell.com> Will pull this patch soon. Regards.. Prafulla . . .
Hello! I hope you all can help me with understanding. Some (all?) PowerPC implementations have a bit in the MSR to tell the core to run in either 32 bit or 64 bit mode. At least my core "in front of me" has this. It is a 64 bit implementation and I need to be able to boot both 32/64 bit OSes (with same U-Boot). My initial hope was that 32 bit programs would run in 64 bit mode. This to ease up my U-Boot implementation. And as far as I know you do not change the bootloader when you switch between a 32 bit OS and a 64 bit OS on your PC?! But of course that bit in the MSR is there for a reason :) So, my guess how to solve this is that bootloaders are usually 32 bit to be backward compatible and let the OS decide to step up to 64-bit or not. Is this true and the general rule? But I feel there are occassions when a 64 bit bootloader is nice, to access more memory at once for instance. Do you have any recommendations for me? Thanks BR Robert
> -----Original Message----- > From: Prafulla Wadaskar > Sent: 17 August 2012 13:25 > To: 'Albert ARIBAUD'; u-boot@lists.denx.de > Subject: RE: [U-Boot] [PATCH] edminiv2: orion5x: fix GPIO inits and > values > > > > > -----Original Message----- > > From: u-boot-bounces@lists.denx.de [mailto:u-boot- > > bounces@lists.denx.de] On Behalf Of Albert ARIBAUD > > Sent: 16 August 2012 22:05 > > To: u-boot@lists.denx.de > > Subject: [U-Boot] [PATCH] edminiv2: orion5x: fix GPIO inits and > values > > > > Orion5x did not actually write GPIO output values > > or input polarities, and ED Mini V2 had bad or > > missing values for GPIO settings. > > > > Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> > > --- > > arch/arm/cpu/arm926ejs/orion5x/cpu.c | 2 ++ > > include/configs/edminiv2.h | 13 +++++++++---- > > 2 files changed, 11 insertions(+), 4 deletions(-) > > > > diff --git a/arch/arm/cpu/arm926ejs/orion5x/cpu.c > > b/arch/arm/cpu/arm926ejs/orion5x/cpu.c > > index 792b11d..c3948d3 100644 > > --- a/arch/arm/cpu/arm926ejs/orion5x/cpu.c > > +++ b/arch/arm/cpu/arm926ejs/orion5x/cpu.c > > @@ -292,7 +292,9 @@ int arch_misc_init(void) > > writel(ORION5X_MPP0_7, ORION5X_MPP_BASE+0x00); > > writel(ORION5X_MPP8_15, ORION5X_MPP_BASE+0x04); > > writel(ORION5X_MPP16_23, ORION5X_MPP_BASE+0x50); > > + writel(ORION5X_GPIO_OUT_VALUE, ORION5X_GPIO_BASE+0x00); > > writel(ORION5X_GPIO_OUT_ENABLE, ORION5X_GPIO_BASE+0x04); > > + writel(ORION5X_GPIO_IN_POLARITY, ORION5X_GPIO_BASE+0x0c); > > > > /* initialize timer */ > > timer_init_r(); > > diff --git a/include/configs/edminiv2.h b/include/configs/edminiv2.h > > index 6a67aa5..1541cfb 100644 > > --- a/include/configs/edminiv2.h > > +++ b/include/configs/edminiv2.h > > @@ -69,13 +69,18 @@ > > * - GPIO16 is Power LED control (0 = on, 1 = off) > > * - GPIO17 is Power LED source select (0 = CPLD, 1 = GPIO16) > > * - GPIO18 is Power Button status (0 = Released, 1 = Pressed) > > - * - Last GPIO is 26, further bits are supposed to be 0. > > + * - GPIO19 is SATA disk power toggle (toggles on 0-to-1) > > + * - GPIO22 is SATA disk power status () > > + * - GPIO23 is supply status for SATA disk () > > + * - GPIO24 is supply control for board (write 1 to power off) > > + * Last GPIO is 25, further bits are supposed to be 0. > > * Enable mask has ones for INPUT, 0 for OUTPUT. > > - * Default is LED ON. > > + * Default is LED ON, board ON :) > > */ > > > > -#define ORION5X_GPIO_OUT_ENABLE 0x03fcffff > > -#define ORION5X_GPIO_OUT_VALUE 0x03fcffff > > +#define ORION5X_GPIO_OUT_ENABLE 0xfef4f0ca > > +#define ORION5X_GPIO_OUT_VALUE 0x00000000 > > +#define ORION5X_GPIO_IN_POLARITY 0x000000d0 > > > > /* > > * NS16550 Configuration > > -- > > Acked-By: Prafulla Wadaskar <prafulla@marvell.com> > Will pull this patch soon. Applied to u-boot-marvell.git master branch Regards... Prafulla . . .
diff --git a/arch/arm/cpu/arm926ejs/orion5x/cpu.c b/arch/arm/cpu/arm926ejs/orion5x/cpu.c index 792b11d..c3948d3 100644 --- a/arch/arm/cpu/arm926ejs/orion5x/cpu.c +++ b/arch/arm/cpu/arm926ejs/orion5x/cpu.c @@ -292,7 +292,9 @@ int arch_misc_init(void) writel(ORION5X_MPP0_7, ORION5X_MPP_BASE+0x00); writel(ORION5X_MPP8_15, ORION5X_MPP_BASE+0x04); writel(ORION5X_MPP16_23, ORION5X_MPP_BASE+0x50); + writel(ORION5X_GPIO_OUT_VALUE, ORION5X_GPIO_BASE+0x00); writel(ORION5X_GPIO_OUT_ENABLE, ORION5X_GPIO_BASE+0x04); + writel(ORION5X_GPIO_IN_POLARITY, ORION5X_GPIO_BASE+0x0c); /* initialize timer */ timer_init_r(); diff --git a/include/configs/edminiv2.h b/include/configs/edminiv2.h index 6a67aa5..1541cfb 100644 --- a/include/configs/edminiv2.h +++ b/include/configs/edminiv2.h @@ -69,13 +69,18 @@ * - GPIO16 is Power LED control (0 = on, 1 = off) * - GPIO17 is Power LED source select (0 = CPLD, 1 = GPIO16) * - GPIO18 is Power Button status (0 = Released, 1 = Pressed) - * - Last GPIO is 26, further bits are supposed to be 0. + * - GPIO19 is SATA disk power toggle (toggles on 0-to-1) + * - GPIO22 is SATA disk power status () + * - GPIO23 is supply status for SATA disk () + * - GPIO24 is supply control for board (write 1 to power off) + * Last GPIO is 25, further bits are supposed to be 0. * Enable mask has ones for INPUT, 0 for OUTPUT. - * Default is LED ON. + * Default is LED ON, board ON :) */ -#define ORION5X_GPIO_OUT_ENABLE 0x03fcffff -#define ORION5X_GPIO_OUT_VALUE 0x03fcffff +#define ORION5X_GPIO_OUT_ENABLE 0xfef4f0ca +#define ORION5X_GPIO_OUT_VALUE 0x00000000 +#define ORION5X_GPIO_IN_POLARITY 0x000000d0 /* * NS16550 Configuration
Orion5x did not actually write GPIO output values or input polarities, and ED Mini V2 had bad or missing values for GPIO settings. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> --- arch/arm/cpu/arm926ejs/orion5x/cpu.c | 2 ++ include/configs/edminiv2.h | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-)