[U-Boot] [PATCH 1/2] at91sam9260.dtsi: add some labels

add labels to rtc, pinctrl and watchdog node.
This makes it possible to reference the nodes from board dts files.
Signed-off-by: Heiko Schocher hs@denx.de ---
arch/arm/dts/at91sam9260.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/dts/at91sam9260.dtsi b/arch/arm/dts/at91sam9260.dtsi index 476ad1dad2..800d96eb2f 100644 --- a/arch/arm/dts/at91sam9260.dtsi +++ b/arch/arm/dts/at91sam9260.dtsi @@ -437,7 +437,7 @@ u-boot,dm-pre-reloc; };
- pinctrl@fffff400 { + pinctrl: pinctrl@fffff400 { #address-cells = <1>; #size-cells = <1>; compatible = "atmel,at91rm9200-pinctrl", "simple-bus"; @@ -978,7 +978,7 @@ }; };
- rtc@fffffd20 { + rtc: rtc@fffffd20 { compatible = "atmel,at91sam9260-rtt"; reg = <0xfffffd20 0x10>; interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; @@ -986,7 +986,7 @@ status = "disabled"; };
- watchdog@fffffd40 { + watchdog: watchdog@fffffd40 { compatible = "atmel,at91sam9260-wdt"; reg = <0xfffffd40 0x10>; interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;

- at91sam9g20-taurus.dts: use labels - cleanup taurus port to compile clean with current mainline again. SPL has no serial output anymore, so it fits into SRAM.
Signed-off-by: Heiko Schocher hs@denx.de ---
arch/arm/dts/at91sam9g20-taurus.dts | 158 ++++++++++++++-------------- board/siemens/taurus/taurus.c | 4 +- configs/taurus_defconfig | 33 +++++- include/configs/taurus.h | 5 +- 4 files changed, 110 insertions(+), 90 deletions(-)
diff --git a/arch/arm/dts/at91sam9g20-taurus.dts b/arch/arm/dts/at91sam9g20-taurus.dts index cee228bb8c..c00c5a8b8d 100644 --- a/arch/arm/dts/at91sam9g20-taurus.dts +++ b/arch/arm/dts/at91sam9g20-taurus.dts @@ -15,7 +15,7 @@
/ { model = "Siemens taurus"; - compatible = "atmel,at91sam9g20ek", "atmel,at91sam9g20", "atmel,at91sam9"; + compatible = "atmel,at91sam9g20", "atmel,at91sam9";
chosen { u-boot,dm-pre-reloc; @@ -35,88 +35,86 @@ clock-frequency = <18432000>; }; }; +};
- ahb { - apb { - pinctrl@fffff400 { - board { - pinctrl_pck0_as_mck: pck0_as_mck { - atmel,pins = - <AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC1 periph B */ - }; - - }; - }; - - dbgu: serial@fffff200 { - u-boot,dm-pre-reloc; - status = "okay"; - }; - - usart0: serial@fffb0000 { - pinctrl-0 = - <&pinctrl_usart0 - &pinctrl_usart0_rts - &pinctrl_usart0_cts - &pinctrl_usart0_dtr_dsr - &pinctrl_usart0_dcd - &pinctrl_usart0_ri>; - status = "okay"; - }; - - usart1: serial@fffb4000 { - status = "okay"; - }; - - macb0: ethernet@fffc4000 { - phy-mode = "rmii"; - status = "okay"; - }; - - usb1: gadget@fffa4000 { - atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>; - status = "okay"; - }; - - ssc0: ssc@fffbc000 { - status = "okay"; - pinctrl-0 = <&pinctrl_ssc0_tx>; - }; - - spi0: spi@fffc8000 { - cs-gpios = <0>, <&pioC 11 0>, <0>, <0>; - mtd_dataflash@0 { - compatible = "atmel,at45", "atmel,dataflash"; - spi-max-frequency = <50000000>; - reg = <1>; - }; - }; - - rtc@fffffd20 { - atmel,rtt-rtc-time-reg = <&gpbr 0x0>; - status = "okay"; - }; - - watchdog@fffffd40 { - timeout-sec = <15>; - status = "okay"; - }; - - gpbr: syscon@fffffd50 { - status = "okay"; - }; - }; +&dbgu { + status = "okay"; +};
- nand0: nand@40000000 { - nand-bus-width = <8>; - nand-ecc-mode = "soft"; - nand-on-flash-bbt; - status = "okay"; - }; +&gpbr { + status = "okay"; +}; + +&macb0 { + phy-mode = "rmii"; + status = "okay"; +};
- usb0: ohci@00500000 { - num-ports = <2>; - status = "okay"; +&nand0 { + nand-bus-width = <8>; + nand-ecc-mode = "soft"; + nand-on-flash-bbt; + status = "okay"; +}; + +&pinctrl { + u-boot,dm-pre-reloc; + board { + pinctrl_pck0_as_mck: pck0_as_mck { + atmel,pins = + /* PC1 periph B */ + <AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>; }; + }; }; + +&rtc { + atmel,rtt-rtc-time-reg = <&gpbr 0x0>; + status = "okay"; +}; + +&spi0 { + cs-gpios = <0>, <&pioC 11 0>, <0>, <0>; + mtd_dataflash@0 { + compatible = "atmel,at45", "atmel,dataflash"; + spi-max-frequency = <50000000>; + reg = <1>; + }; +}; + +&ssc0 { + status = "okay"; + pinctrl-0 = <&pinctrl_ssc0_tx>; +}; + +&usart0 { + pinctrl-0 = + <&pinctrl_usart0 + &pinctrl_usart0_rts + &pinctrl_usart0_cts + &pinctrl_usart0_dtr_dsr + &pinctrl_usart0_dcd + &pinctrl_usart0_ri>; + status = "okay"; +}; + +&usart1 { + status = "okay"; +}; + +&usb0 { + num-ports = <2>; + status = "okay"; +}; + +&usb1 { + atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +&watchdog { + u-boot,dm-pre-reloc; + timeout-sec = <15>; + status = "okay"; +}; diff --git a/board/siemens/taurus/taurus.c b/board/siemens/taurus/taurus.c index 8396ce502b..e235279ae3 100644 --- a/board/siemens/taurus/taurus.c +++ b/board/siemens/taurus/taurus.c @@ -197,11 +197,11 @@ void mem_init(void)
/* Mirrors at A15 on ATMEL G20 SDRAM Controller with 64MB*/ if (ram_size == 0x800) { - printf("\n\r 64MB"); + printf("\n\r 64MB\n"); sdramc_configure(AT91_SDRAMC_NC_9); } else { /* Size already initialized */ - printf("\n\r 128MB"); + printf("\n\r 128MB\n"); } } #endif diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig index d69f4895ef..4fe3cb0d3c 100644 --- a/configs/taurus_defconfig +++ b/configs/taurus_defconfig @@ -1,5 +1,5 @@ CONFIG_ARM=y -CONFIG_SPL_SYS_THUMB_BUILD=y +CONFIG_SYS_THUMB_BUILD=y # CONFIG_SPL_USE_ARCH_MEMCPY is not set # CONFIG_SPL_USE_ARCH_MEMSET is not set CONFIG_ARCH_AT91=y @@ -9,20 +9,28 @@ CONFIG_TARGET_TAURUS=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y -CONFIG_SYS_MALLOC_F_LEN=0x1000 -CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_SPL_SYS_MALLOC_F_LEN=0x1000 CONFIG_SPL=y +CONFIG_DEBUG_UART_BASE=0xfffff200 +CONFIG_DEBUG_UART_CLOCK=18432000 CONFIG_SPL_SPI_FLASH_SUPPORT=y CONFIG_SPL_SPI_SUPPORT=y +CONFIG_DEBUG_UART=y CONFIG_NR_DRAM_BANKS=1 +CONFIG_TPL_SYS_MALLOC_F_LEN=0x1000 CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9G20,MACH_TYPE=2067,BOARD_TAURUS" CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) root=/dev/mtdblock7 rw rootfstype=jffs2" # CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_ARCH_EARLY_INIT_R=y CONFIG_BOARD_EARLY_INIT_F=y +# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set +CONFIG_SPL_SYS_MALLOC_SIMPLE=y +# CONFIG_TPL_BANNER_PRINT is not set +CONFIG_SPL_CRC32_SUPPORT=y CONFIG_SPL_NAND_SUPPORT=y -CONFIG_SPL_SPI_LOAD=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="U-Boot> " # CONFIG_CMD_BDI is not set @@ -31,6 +39,7 @@ CONFIG_CMD_BOOTZ=y CONFIG_CMD_DFU=y # CONFIG_CMD_LOADS is not set CONFIG_CMD_NAND=y +# CONFIG_CMD_PINMUX is not set CONFIG_CMD_SF=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y @@ -41,25 +50,39 @@ CONFIG_CMD_PING=y CONFIG_CMD_MTDPARTS=y # CONFIG_DOS_PARTITION is not set CONFIG_OF_CONTROL=y -CONFIG_OF_EMBED=y +CONFIG_SPL_OF_CONTROL=y CONFIG_DEFAULT_DEVICE_TREE="at91sam9g20-taurus" +CONFIG_SPL_OF_PLATDATA=y CONFIG_ENV_IS_IN_NAND=y +CONFIG_SPL_DM=y +CONFIG_BLK=y CONFIG_CLK=y CONFIG_CLK_AT91=y CONFIG_DFU_NAND=y # CONFIG_MMC is not set CONFIG_NAND=y CONFIG_NAND_ATMEL=y +CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_AT91=y +CONFIG_SPECIFY_CONSOLE_INDEX=y +CONFIG_DEBUG_UART_ATMEL=y +CONFIG_ATMEL_USART=y CONFIG_USB=y +CONFIG_DM_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_STORAGE=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_MANUFACTURER="Siemens AG" CONFIG_USB_GADGET_VENDOR_NUM=0x0908 CONFIG_USB_GADGET_PRODUCT_NUM=0x02d2 CONFIG_USB_GADGET_DOWNLOAD=y +CONFIG_WATCHDOG=y CONFIG_WDT=y CONFIG_WDT_AT91=y CONFIG_USE_TINY_PRINTF=y +CONFIG_HEXDUMP=y +# CONFIG_EFI_LOADER is not set diff --git a/include/configs/taurus.h b/include/configs/taurus.h index 3582eb2edf..c3d7d3f8a4 100644 --- a/include/configs/taurus.h +++ b/include/configs/taurus.h @@ -41,6 +41,7 @@ #define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */ #define CONFIG_SETUP_MEMORY_TAGS #define CONFIG_INITRD_TAG + #define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
/* general purpose I/O */ @@ -48,12 +49,9 @@ #define CONFIG_AT91_GPIO #define CONFIG_AT91_GPIO_PULLUP 1 /* keep pullups on peripheral pins */
-/* serial console */ -#define CONFIG_ATMEL_USART #define CONFIG_USART_BASE ATMEL_BASE_DBGU #define CONFIG_USART_ID ATMEL_ID_SYS
- /* * SDRAM: 1 bank, min 32, max 128 MB * Initialized before u-boot gets started. @@ -78,6 +76,7 @@ #define CONFIG_SYS_NAND_MASK_CLE (1 << 22) #define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIN_PC14 #define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PC13 +#define CONFIG_SYS_NAND_DRIVER_ECC_LAYOUT #endif
/* Ethernet */

On 11.04.2019 08:53, Heiko Schocher wrote:
- at91sam9g20-taurus.dts: use labels
- cleanup taurus port to compile clean with current mainline again. SPL has no serial output anymore, so it fits into SRAM.
Signed-off-by: Heiko Schocher hs@denx.de
[snip]
Hello Heiko,
This patch has several issues:
taurus_defconfig
+spl/dts/dt-platdata.c:11:46: error: missing braces around initializer [-Werror=missing-braces] + static const struct dtd_simple_bus dtv_ahb = { + ^ +spl/dts/dt-platdata.c:20:46: error: missing braces around initializer [-Werror=missing-braces] + static const struct dtd_simple_bus dtv_apb = { +cc1: all warnings being treated as errors +make[2]: *** [spl/dts/dt-platdata.o] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
and axm_defconfig :
+drivers/built-in.o: In function `get_current': +drivers/serial/serial.c:318: undefined reference to `default_serial_console' +make[2]: *** [spl/u-boot-spl] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Thanks, Eugen

Hello eugen,
Am 12.04.2019 um 13:24 schrieb Eugen.Hristev@microchip.com:
On 11.04.2019 08:53, Heiko Schocher wrote:
- at91sam9g20-taurus.dts: use labels
- cleanup taurus port to compile clean with current mainline again. SPL has no serial output anymore, so it fits into SRAM.
Signed-off-by: Heiko Schocher hs@denx.de
[snip]
Hello Heiko,
This patch has several issues:
taurus_defconfig
+spl/dts/dt-platdata.c:11:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_ahb = {
^
+spl/dts/dt-platdata.c:20:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_apb = {
+cc1: all warnings being treated as errors +make[2]: *** [spl/dts/dt-platdata.o] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ah, I had not warnings as errors active ... sorry for this!
Hmmm:
in generated ./include/generated/dt-structs-gen.h
struct dtd_simple_bus { bool ranges; };
and in spl/dts/dt-platdata.c:
#include <dt-structs.h>
static const struct dtd_simple_bus dtv_ahb = { .ranges = true, };
Do not see what is really wrong ... may friday afternoon ...
and axm_defconfig :
+drivers/built-in.o: In function `get_current': +drivers/serial/serial.c:318: undefined reference to `default_serial_console' +make[2]: *** [spl/u-boot-spl] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ups, sorry, just forgot to add this, update this in v2.
Thanks for the review!
bye, Heiko

On 12.04.2019 15:53, Heiko Schocher wrote:
External E-Mail
Hello eugen,
Am 12.04.2019 um 13:24 schrieb Eugen.Hristev@microchip.com:
On 11.04.2019 08:53, Heiko Schocher wrote:
- at91sam9g20-taurus.dts: use labels
- cleanup taurus port to compile clean with
current mainline again. SPL has no serial output anymore, so it fits into SRAM.
Signed-off-by: Heiko Schocher hs@denx.de
[snip]
Hello Heiko,
This patch has several issues:
taurus_defconfig
+spl/dts/dt-platdata.c:11:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_ahb = {
+ ^ +spl/dts/dt-platdata.c:20:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_apb = {
+cc1: all warnings being treated as errors +make[2]: *** [spl/dts/dt-platdata.o] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ah, I had not warnings as errors active ... sorry for this!
Hmmm:
in generated ./include/generated/dt-structs-gen.h
struct dtd_simple_bus { bool ranges; };
True but at line #44 you have
#define dtd_simple_bus dtd_atmel_at91rm9200_pinctrl
Which redefines things...
and in spl/dts/dt-platdata.c:
#include <dt-structs.h>
static const struct dtd_simple_bus dtv_ahb = { .ranges = true, };
Do not see what is really wrong ... may friday afternoon ...
and axm_defconfig :
+drivers/built-in.o: In function `get_current': +drivers/serial/serial.c:318: undefined reference to `default_serial_console' +make[2]: *** [spl/u-boot-spl] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ups, sorry, just forgot to add this, update this in v2.
Thanks for the review!
bye, Heiko

Hello Eugen,
Am 12.04.2019 um 15:07 schrieb Eugen.Hristev@microchip.com:
On 12.04.2019 15:53, Heiko Schocher wrote:
External E-Mail
Hello eugen,
Am 12.04.2019 um 13:24 schrieb Eugen.Hristev@microchip.com:
On 11.04.2019 08:53, Heiko Schocher wrote:
- at91sam9g20-taurus.dts: use labels
- cleanup taurus port to compile clean with
current mainline again. SPL has no serial output anymore, so it fits into SRAM.
Signed-off-by: Heiko Schocher hs@denx.de
[snip]
Hello Heiko,
This patch has several issues:
taurus_defconfig
+spl/dts/dt-platdata.c:11:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_ahb = {
+ ^ +spl/dts/dt-platdata.c:20:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_apb = {
+cc1: all warnings being treated as errors +make[2]: *** [spl/dts/dt-platdata.o] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ah, I had not warnings as errors active ... sorry for this!
Hmmm:
in generated ./include/generated/dt-structs-gen.h
struct dtd_simple_bus { bool ranges; };
True but at line #44 you have
#define dtd_simple_bus dtd_atmel_at91rm9200_pinctrl
Which redefines things...
indeed. As this is an autmatic generated file, I must look deeper into it!
bye, Heiko
and in spl/dts/dt-platdata.c:
#include <dt-structs.h>
static const struct dtd_simple_bus dtv_ahb = { .ranges = true, };
Do not see what is really wrong ... may friday afternoon ...
and axm_defconfig :
+drivers/built-in.o: In function `get_current': +drivers/serial/serial.c:318: undefined reference to `default_serial_console' +make[2]: *** [spl/u-boot-spl] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ups, sorry, just forgot to add this, update this in v2.
Thanks for the review!
bye, Heiko

Hello Eugen,
Am 12.04.2019 um 15:52 schrieb Heiko Schocher:
Hello Eugen,
Am 12.04.2019 um 15:07 schrieb Eugen.Hristev@microchip.com:
On 12.04.2019 15:53, Heiko Schocher wrote:
External E-Mail
Hello eugen,
Am 12.04.2019 um 13:24 schrieb Eugen.Hristev@microchip.com:
On 11.04.2019 08:53, Heiko Schocher wrote:
- at91sam9g20-taurus.dts: use labels
- cleanup taurus port to compile clean with
current mainline again. SPL has no serial output anymore, so it fits into SRAM.
Signed-off-by: Heiko Schocher hs@denx.de
[snip]
Hello Heiko,
This patch has several issues:
taurus_defconfig
+spl/dts/dt-platdata.c:11:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_ahb = {
+ ^ +spl/dts/dt-platdata.c:20:46: error: missing braces around initializer [-Werror=missing-braces]
- static const struct dtd_simple_bus dtv_apb = {
+cc1: all warnings being treated as errors +make[2]: *** [spl/dts/dt-platdata.o] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ah, I had not warnings as errors active ... sorry for this!
Hmmm:
in generated ./include/generated/dt-structs-gen.h
struct dtd_simple_bus { bool ranges; };
True but at line #44 you have
#define dtd_simple_bus dtd_atmel_at91rm9200_pinctrl
Which redefines things...
indeed. As this is an autmatic generated file, I must look deeper into it!
Hmm... following wip patch solves the warning:
$ git diff diff --git a/arch/arm/dts/at91sam9260.dtsi b/arch/arm/dts/at91sam9260.dtsi index 800d96eb2f..551364513f 100644 --- a/arch/arm/dts/at91sam9260.dtsi +++ b/arch/arm/dts/at91sam9260.dtsi @@ -440,7 +440,7 @@ pinctrl: pinctrl@fffff400 { #address-cells = <1>; #size-cells = <1>; - compatible = "atmel,at91rm9200-pinctrl", "simple-bus"; + compatible = "atmel,at91rm9200-pinctrl"; ranges = <0xfffff400 0xfffff400 0x600>; reg = <0xfffff400 0x200 /* pioA */ 0xfffff600 0x200 /* pioB */ $
This prevents that the line with:
#define dtd_simple_bus dtd_atmel_at91rm9200_pinctrl
gets created, but I wonder why other boards do not have this warning.
bye, Heiko
bye, Heiko
and in spl/dts/dt-platdata.c:
#include <dt-structs.h>
static const struct dtd_simple_bus dtv_ahb = { .ranges = true, };
Do not see what is really wrong ... may friday afternoon ...
and axm_defconfig :
+drivers/built-in.o: In function `get_current': +drivers/serial/serial.c:318: undefined reference to `default_serial_console' +make[2]: *** [spl/u-boot-spl] Error 1 +make[1]: *** [spl/u-boot-spl] Error 2 +make: *** [sub-make] Error 2
Ups, sorry, just forgot to add this, update this in v2.
Thanks for the review!
bye, Heiko

On 11.04.2019 08:53, Heiko Schocher wrote:
add labels to rtc, pinctrl and watchdog node.
This makes it possible to reference the nodes from board dts files.
Signed-off-by: Heiko Schocher hs@denx.de
Applied this one patch to u-boot-atmel/master
Thanks !
participants (2)
-
Eugen.Hristev@microchip.com
-
Heiko Schocher