[U-Boot] [PATCH] xscale: add support for the polaris board

The Polaris board is based on the TrizepsIV module of Keith & Koep (http://www.keith-koep.com).
Signed-off-by: Stefano Babic sbabic@denx.de --- MAINTAINERS | 4 ++++ Makefile | 7 ++++++- board/trizepsiv/conxs.c | 27 +++++++++++++++------------ include/configs/trizepsiv.h | 28 +++++++++++++++++++++++----- 4 files changed, 48 insertions(+), 18 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS index 9379c7e..97476e9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -500,6 +500,10 @@ Rowel Atienza rowel@diwalabs.com
armadillo ARM720T
+Stefano Babic sbabic@denx.de + + trizepsiv xscale + Dirk Behme dirk.behme@gmail.com
omap3_beagle ARM CORTEX-A8 (OMAP3530 SoC) diff --git a/Makefile b/Makefile index acec1a0..3a77988 100644 --- a/Makefile +++ b/Makefile @@ -3082,8 +3082,13 @@ scpu_config: unconfig pxa255_idp_config: unconfig @$(MKCONFIG) $(@:_config=) arm pxa pxa255_idp
+polaris_config \ trizepsiv_config : unconfig - @$(MKCONFIG) $(@:_config=) arm pxa trizepsiv + @mkdir -p $(obj)include + @if [ "$(findstring polaris,$@)" ] ; then \ + echo "#define CONFIG_POLARIS 1" >>$(obj)include/config.h ; \ + fi; + @$(MKCONFIG) -a trizepsiv arm pxa trizepsiv
wepep250_config : unconfig @$(MKCONFIG) $(@:_config=) arm pxa wepep250 diff --git a/board/trizepsiv/conxs.c b/board/trizepsiv/conxs.c index 5c0eb41..8c11456 100644 --- a/board/trizepsiv/conxs.c +++ b/board/trizepsiv/conxs.c @@ -44,13 +44,18 @@ extern struct serial_device serial_ffuart_device; extern struct serial_device serial_btuart_device; extern struct serial_device serial_stuart_device;
+#if CONFIG_POLARIS +#define BOOT_CONSOLE "serial_stuart" +#else +#define BOOT_CONSOLE "serial_ffuart" +#endif /* ------------------------------------------------------------------------- */
/* * Miscelaneous platform dependent initialisations */
-void usb_board_init(void) +int usb_board_init(void) { UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) & ~(UHCHR_SSEP0 | UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE); @@ -71,6 +76,8 @@ void usb_board_init(void)
/* Set port power control mask bits, only 3 ports. */ UHCRHDB |= (0x7<<17); + + return 0; }
void usb_board_init_fail(void) @@ -89,7 +96,6 @@ void usb_board_stop(void)
CKEN &= ~CKEN10_USBHOST;
- puts("Called USB STOP\n"); return; }
@@ -112,17 +118,14 @@ int board_late_init(void) #if defined(CONFIG_SERIAL_MULTI) char *console=getenv("boot_console");
- if ((strcmp(console,"serial_btuart") == 0) || - (strcmp(console,"serial_stuart") == 0) || - (strcmp(console,"serial_ffuart") == 0)) { - setenv("stdout",console); - setenv("stdin", console); - setenv("stderr",console); - } else { - setenv("stdout", "serial"); - setenv("stdin", "serial"); - setenv("stderr", "serial"); + if ((console == NULL) || (strcmp(console,"serial_btuart") && + strcmp(console,"serial_stuart") && + strcmp(console,"serial_ffuart"))) { + console = BOOT_CONSOLE; } + setenv("stdout",console); + setenv("stdin", console); + setenv("stderr",console); #endif return 0; } diff --git a/include/configs/trizepsiv.h b/include/configs/trizepsiv.h index bfa7157..170d080 100644 --- a/include/configs/trizepsiv.h +++ b/include/configs/trizepsiv.h @@ -93,7 +93,6 @@ #undef CONFIG_SHOW_BOOT_PROGRESS
#define CONFIG_BOOTDELAY 3 -#define CONFIG_SERVERIP 192.168.1.99 #define CONFIG_BOOTCOMMAND "run boot_flash" #define CONFIG_BOOTARGS "console=ttyS0,38400 ramdisk_size=12288"\ " rw root=/dev/ram initrd=0xa0800000,5m" @@ -239,11 +238,17 @@ #define CONFIG_SYS_GRER1_VAL 0x00000000 #define CONFIG_SYS_GRER2_VAL 0x00000000 #define CONFIG_SYS_GRER3_VAL 0x00000000 -#define CONFIG_SYS_GFER0_VAL 0x00000000 + #define CONFIG_SYS_GFER1_VAL 0x00000000 -#define CONFIG_SYS_GFER2_VAL 0x00000000 #define CONFIG_SYS_GFER3_VAL 0x00000020
+#if CONFIG_POLARIS +#define CONFIG_SYS_GFER0_VAL 0x00000001 +#define CONFIG_SYS_GFER2_VAL 0x00200000 +#else +#define CONFIG_SYS_GFER0_VAL 0x00000000 +#define CONFIG_SYS_GFER2_VAL 0x00000000 +#endif
#define CONFIG_SYS_PSSR_VAL 0x20 /* CHECK */
@@ -259,7 +264,11 @@
#define CONFIG_SYS_MSC0_VAL 0x4df84df0 #define CONFIG_SYS_MSC1_VAL 0x7ff87ff4 +#if CONFIG_POLARIS +#define CONFIG_SYS_MSC2_VAL 0xa2697ff8 +#else #define CONFIG_SYS_MSC2_VAL 0xa26936d4 +#endif #define CONFIG_SYS_MDCNFG_VAL 0x880009C9 #define CONFIG_SYS_MDREFR_VAL 0x20ca201e #define CONFIG_SYS_MDMRS_VAL 0x00220022 @@ -278,9 +287,15 @@ #define CONFIG_SYS_MCIO0_VAL 0x00008407 #define CONFIG_SYS_MCIO1_VAL 0x0000c108
-#define CONFIG_NET_MULTI 1 +#define CONFIG_NET_MULTI 0 #define CONFIG_DRIVER_DM9000 1 -#define CONFIG_DM9000_BASE 0x08000000 + +#if CONFIG_POLARIS +#define CONFIG_DM9000_BASE 0x0C800000 +#else +#define CONFIG_DM9000_BASE 0x08000000 +#endif + #define DM9000_IO CONFIG_DM9000_BASE #define DM9000_DATA (CONFIG_DM9000_BASE+0x8004)
@@ -312,6 +327,9 @@ /* write flash less slowly */ #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1
+/* Unlock to be used with Intel chips */ +#define CONFIG_SYS_FLASH_PROTECTION 1 + /* Flash environment locations */ #define CONFIG_ENV_IS_IN_FLASH 1 #define CONFIG_ENV_ADDR (PHYS_FLASH_1 + CONFIG_SYS_MONITOR_LEN) /* Addr of Environment Sector */

On 10:45 Wed 24 Jun , Stefano Babic wrote:
The Polaris board is based on the TrizepsIV module of Keith & Koep (http://www.keith-koep.com).
Signed-off-by: Stefano Babic sbabic@denx.de
MAINTAINERS | 4 ++++
please add it in the MAKEALL
Makefile | 7 ++++++- board/trizepsiv/conxs.c | 27 +++++++++++++++------------ include/configs/trizepsiv.h | 28 +++++++++++++++++++++++----- 4 files changed, 48 insertions(+), 18 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS index 9379c7e..97476e9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -500,6 +500,10 @@ Rowel Atienza rowel@diwalabs.com
armadillo ARM720T
+Stefano Babic sbabic@denx.de
- trizepsiv xscale
Dirk Behme dirk.behme@gmail.com
omap3_beagle ARM CORTEX-A8 (OMAP3530 SoC) diff --git a/Makefile b/Makefile index acec1a0..3a77988 100644 --- a/Makefile +++ b/Makefile @@ -3082,8 +3082,13 @@ scpu_config: unconfig pxa255_idp_config: unconfig @$(MKCONFIG) $(@:_config=) arm pxa pxa255_idp
+polaris_config \ trizepsiv_config : unconfig
- @$(MKCONFIG) $(@:_config=) arm pxa trizepsiv
- @mkdir -p $(obj)include
- @if [ "$(findstring polaris,$@)" ] ; then \
echo "#define CONFIG_POLARIS 1" >>$(obj)include/config.h ; \
- fi;
- @$(MKCONFIG) -a trizepsiv arm pxa trizepsiv
wepep250_config : unconfig @$(MKCONFIG) $(@:_config=) arm pxa wepep250 diff --git a/board/trizepsiv/conxs.c b/board/trizepsiv/conxs.c index 5c0eb41..8c11456 100644 --- a/board/trizepsiv/conxs.c +++ b/board/trizepsiv/conxs.c @@ -44,13 +44,18 @@ extern struct serial_device serial_ffuart_device; extern struct serial_device serial_btuart_device; extern struct serial_device serial_stuart_device;
+#if CONFIG_POLARIS +#define BOOT_CONSOLE "serial_stuart" +#else +#define BOOT_CONSOLE "serial_ffuart" +#endif /* ------------------------------------------------------------------------- */
/*
- Miscelaneous platform dependent initialisations
*/
-void usb_board_init(void) +int usb_board_init(void) { UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) & ~(UHCHR_SSEP0 | UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE); @@ -71,6 +76,8 @@ void usb_board_init(void)
/* Set port power control mask bits, only 3 ports. */ UHCRHDB |= (0x7<<17);
- return 0;
}
why?
void usb_board_init_fail(void) @@ -89,7 +96,6 @@ void usb_board_stop(void)
CKEN &= ~CKEN10_USBHOST;
- puts("Called USB STOP\n"); return;
}
@@ -112,17 +118,14 @@ int board_late_init(void) #if defined(CONFIG_SERIAL_MULTI) char *console=getenv("boot_console");
- if ((strcmp(console,"serial_btuart") == 0) ||
(strcmp(console,"serial_stuart") == 0) ||
(strcmp(console,"serial_ffuart") == 0)) {
setenv("stdout",console);
setenv("stdin", console);
setenv("stderr",console);
- } else {
setenv("stdout", "serial");
setenv("stdin", "serial");
setenv("stderr", "serial");
- if ((console == NULL) || (strcmp(console,"serial_btuart") &&
strcmp(console,"serial_stuart") &&
strcmp(console,"serial_ffuart"))) {
}console = BOOT_CONSOLE;
- setenv("stdout",console);
- setenv("stdin", console);
- setenv("stderr",console);
#endif return 0; } diff --git a/include/configs/trizepsiv.h b/include/configs/trizepsiv.h index bfa7157..170d080 100644 --- a/include/configs/trizepsiv.h +++ b/include/configs/trizepsiv.h @@ -93,7 +93,6 @@ #undef CONFIG_SHOW_BOOT_PROGRESS
#define CONFIG_BOOTDELAY 3 -#define CONFIG_SERVERIP 192.168.1.99
not related to this patch
#define CONFIG_BOOTCOMMAND "run boot_flash" #define CONFIG_BOOTARGS "console=ttyS0,38400 ramdisk_size=12288"\ " rw root=/dev/ram initrd=0xa0800000,5m" @@ -239,11 +238,17 @@ #define CONFIG_SYS_GRER1_VAL 0x00000000 #define CONFIG_SYS_GRER2_VAL 0x00000000 #define CONFIG_SYS_GRER3_VAL 0x00000000 -#define CONFIG_SYS_GFER0_VAL 0x00000000
#define CONFIG_SYS_GFER1_VAL 0x00000000 -#define CONFIG_SYS_GFER2_VAL 0x00000000 #define CONFIG_SYS_GFER3_VAL 0x00000020
+#if CONFIG_POLARIS +#define CONFIG_SYS_GFER0_VAL 0x00000001 +#define CONFIG_SYS_GFER2_VAL 0x00200000 +#else +#define CONFIG_SYS_GFER0_VAL 0x00000000 +#define CONFIG_SYS_GFER2_VAL 0x00000000 +#endif
#define CONFIG_SYS_PSSR_VAL 0x20 /* CHECK */
@@ -259,7 +264,11 @@
#define CONFIG_SYS_MSC0_VAL 0x4df84df0 #define CONFIG_SYS_MSC1_VAL 0x7ff87ff4 +#if CONFIG_POLARIS +#define CONFIG_SYS_MSC2_VAL 0xa2697ff8 +#else #define CONFIG_SYS_MSC2_VAL 0xa26936d4 +#endif #define CONFIG_SYS_MDCNFG_VAL 0x880009C9 #define CONFIG_SYS_MDREFR_VAL 0x20ca201e #define CONFIG_SYS_MDMRS_VAL 0x00220022 @@ -278,9 +287,15 @@ #define CONFIG_SYS_MCIO0_VAL 0x00008407 #define CONFIG_SYS_MCIO1_VAL 0x0000c108
-#define CONFIG_NET_MULTI 1 +#define CONFIG_NET_MULTI 0
???
#define CONFIG_DRIVER_DM9000 1 -#define CONFIG_DM9000_BASE 0x08000000
+#if CONFIG_POLARIS +#define CONFIG_DM9000_BASE 0x0C800000 +#else +#define CONFIG_DM9000_BASE 0x08000000 +#endif
#define DM9000_IO CONFIG_DM9000_BASE #define DM9000_DATA (CONFIG_DM9000_BASE+0x8004)
@@ -312,6 +327,9 @@ /* write flash less slowly */ #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1
+/* Unlock to be used with Intel chips */ +#define CONFIG_SYS_FLASH_PROTECTION 1
^^^ whitespace please fix
Best Regards, J.

Jean-Christophe PLAGNIOL-VILLARD wrote:
MAINTAINERS | 4 ++++
please add it in the MAKEALL
Right. I will fix it.
-void usb_board_init(void) +int usb_board_init(void) { UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) & ~(UHCHR_SSEP0 | UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE); @@ -71,6 +76,8 @@ void usb_board_init(void)
/* Set port power control mask bits, only 3 ports. */ UHCRHDB |= (0x7<<17);
- return 0;
}
why?
The usb_board_init() prototype was changed sometimes ago and now the return value is checked (it was not when the trizeps module was added to u-boot). So now the usb initialization can fail (and it does..).
To be honest, this fix is not related to this patch, but because it is a small change I inserted here. Should be enough if I add a comment about it in the git commit or do you think it is required to pull it apart in an another patch ?
#define CONFIG_BOOTDELAY 3 -#define CONFIG_SERVERIP 192.168.1.99
not related to this patch
You are right, I will drop this change here and I will send another patch to clean up these parameters (and CONFIG_EXTRA_ENV_SETTINGS, too).
-#define CONFIG_NET_MULTI 1 +#define CONFIG_NET_MULTI 0
???
There is only one ethernet controller available and for this reason I cleared the NET_MULTI flag. However, I see other boards use another approach and leave this flag set. I can let the same approach here.
+/* Unlock to be used with Intel chips */ +#define CONFIG_SYS_FLASH_PROTECTION 1
Thanks, I'll fix it.
Best Regards, Stefano Babic

On 09:00 Mon 29 Jun , stefano babic wrote:
Jean-Christophe PLAGNIOL-VILLARD wrote:
MAINTAINERS | 4 ++++
please add it in the MAKEALL
Right. I will fix it.
-void usb_board_init(void) +int usb_board_init(void) { UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) & ~(UHCHR_SSEP0 | UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE); @@ -71,6 +76,8 @@ void usb_board_init(void)
/* Set port power control mask bits, only 3 ports. */ UHCRHDB |= (0x7<<17);
- return 0;
}
why?
The usb_board_init() prototype was changed sometimes ago and now the return value is checked (it was not when the trizeps module was added to u-boot). So now the usb initialization can fail (and it does..).
To be honest, this fix is not related to this patch, but because it is a small change I inserted here. Should be enough if I add a comment about it in the git commit or do you think it is required to pull it apart in an another patch ?
please
#define CONFIG_BOOTDELAY 3 -#define CONFIG_SERVERIP 192.168.1.99
not related to this patch
You are right, I will drop this change here and I will send another patch to clean up these parameters (and CONFIG_EXTRA_ENV_SETTINGS, too).
-#define CONFIG_NET_MULTI 1 +#define CONFIG_NET_MULTI 0
???
There is only one ethernet controller available and for this reason I cleared the NET_MULTI flag. However, I see other boards use another approach and leave this flag set. I can let the same approach here.
IIRC we you check the ifdef only not the value
Best Regards, J.

stefano babic wrote:
<snip>
-#define CONFIG_NET_MULTI 1 +#define CONFIG_NET_MULTI 0
???
There is only one ethernet controller available and for this reason I cleared the NET_MULTI flag. However, I see other boards use another approach and leave this flag set. I can let the same approach here.
This doesn't really mean that there are multiple Ethernet controllers. It just means that U-boot should use the framework that supports multiple interfaces. Most drivers only support one framework or the other (MULTI or !MULTI), but in a couple of releases !MULTI will be going away completely.
Also, we only check if CONFIG_NET_MULTI is defined, not its value.
regards, Ben

Ben Warren wrote:
This doesn't really mean that there are multiple Ethernet controllers. It just means that U-boot should use the framework that supports multiple interfaces. Most drivers only support one framework or the other (MULTI or !MULTI), but in a couple of releases !MULTI will be going away completely.
Also, we only check if CONFIG_NET_MULTI is defined, not its value.
Thanks, understood.
Best regards, Stefano Babic
participants (5)
-
Ben Warren
-
Jean-Christophe PLAGNIOL-VILLARD
-
Stefano Babic
-
Stefano Babic
-
stefano babic