[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

-----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 . . .
participants (3)
-
Albert ARIBAUD
-
Prafulla Wadaskar
-
Robert Thorhuus