Skip to content

Conversation

cladmi
Copy link
Contributor

@cladmi cladmi commented Sep 30, 2019

Contribution description

Define one board for each of the available modules.

Migrate the board to be implemented with a common/slwstk6000b.

This PR currently does not migrate CPU_MODEL, only handles the renaming.

It depends on boards/slwstk6000b: move CPU definiton to Makefile.features #12334

Testing procedure

Using these boards still work with the new name, and murdock manages to compile everything.

I unfortunately do not have any of the boards for testing.

Reviewing the build system output

Comparing the output of info-build for both configuration.

In the PR

BOARD=slwstk6000b-slwrb4150a make --no-print-directory -C examples/hello-world/ info-build | sed "s|${PWD}/||"g
BOARD=slwstk6000b-slwrb4162a make --no-print-directory -C examples/hello-world/ info-build | sed "s|${PWD}/||"g

On master:

BOARD_MODULE=slwrb4150a BOARD=slwstk6000b make --no-print-directory -C examples/hello-world/ info-build | sed "s|${PWD}/||"g
BOARD_MODULE=slwrb4162a BOARD=slwstk6000b make --no-print-directory -C examples/hello-world/ info-build | sed "s|${PWD}/||"g

The difference is only because of the renaming and new common module.

  • board name changed
    • board
    • boards supported
    • bin directory (so outfiles)
    • The board macro changed, but nothing is using the name or the uppercase macro (review of git grep -e SLWSTK6000B slwstk6000b)
  • New USEMODULE board_common_slwstk6000b
  • Included makefiles now reference the common/slwstk6000b
diff output
--- /tmp/output_ref	2019-09-30 19:38:11.463213775 +0200
+++ /tmp/output_pr	2019-09-30 19:37:19.746764721 +0200
@@ -2,9 +2,9 @@
 APPDIR:      examples/hello-world
 
 supported boards:
-acd52832 airfy-beacon arduino-due arduino-duemilanove arduino-leonardo arduino-mega2560 arduino-mkr1000 arduino-mkrfox1200 arduino-mkrzero arduino-nano arduino-uno arduino-zero avsextrem b-l072z-lrwan1 b-l475e-iot01a blackpill blackpill-128kib bluepill bluepill-128kib calliope-mini cc2538dk cc2650-launchpad cc2650stk ek-lm4f120xl esp32-mh-et-live-minikit esp32-olimex-evb esp32-wemos-lolin-d32-pro esp32-wroom-32 esp32-wrover-kit esp8266-esp-12x esp8266-olimex-mod esp8266-sparkfun-thing f4vi1 feather-m0 firefly fox frdm-k22f frdm-k64f frdm-kw41z hifive1 hifive1b i-nucleo-lrwan1 ikea-tradfri iotlab-a8-m3 iotlab-m3 limifrog-v1 lobaro-lorabox lsn50 maple-mini mbed_lpc1768 mega-xplained microbit msb-430 msb-430h msba2 msbiot mulle native nrf51dk nrf51dongle nrf52832-mdk nrf52840-mdk nrf52840dk nrf52dk nrf6310 nucleo-f030r8 nucleo-f031k6 nucleo-f042k6 nucleo-f070rb nucleo-f072rb nucleo-f091rc nucleo-f103rb nucleo-f207zg nucleo-f302r8 nucleo-f303k8 nucleo-f303re nucleo-f303ze nucleo-f334r8 nucleo-f401re nucleo-f410rb nucleo-f411re nucleo-f412zg nucleo-f413zh nucleo-f429zi nucleo-f446re nucleo-f446ze nucleo-f722ze nucleo-f746zg nucleo-f767zi nucleo-l031k6 nucleo-l053r8 nucleo-l073rz nucleo-l152re nucleo-l432kc nucleo-l433rc nucleo-l452re nucleo-l476rg nucleo-l496zg nucleo-l4r5zi nz32-sc151 opencm904 openmote-b openmote-cc2538 p-l496g-cell02 particle-argon particle-boron particle-xenon pba-d-01-kw2x phynode-kw41z pic32-clicker pic32-wifire pyboard reel remote-pa remote-reva remote-revb ruuvitag samd21-xpro same54-xpro saml10-xpro saml11-xpro saml21-xpro samr21-xpro samr30-xpro samr34-xpro seeeduino_arch-pro sensebox_samd21 slstk3401a slstk3402a sltb001a slwstk6000b slwstk6220a sodaq-autonomo sodaq-explorer sodaq-one sodaq-sara-aff spark-core stk3600 stk3700 stm32f0discovery stm32f3discovery stm32f429i-disc1 stm32f4discovery stm32f723e-disco stm32f769i-disco stm32l0538-disco stm32l476g-disco teensy31 telosb thingy52 ublox-c030-u201 udoo usb-kw41z waspmote-pro wsn430-v1_3b wsn430-v1_4 yunjia-nrf51822 z1
+acd52832 airfy-beacon arduino-due arduino-duemilanove arduino-leonardo arduino-mega2560 arduino-mkr1000 arduino-mkrfox1200 arduino-mkrzero arduino-nano arduino-uno arduino-zero avsextrem b-l072z-lrwan1 b-l475e-iot01a blackpill blackpill-128kib bluepill bluepill-128kib calliope-mini cc2538dk cc2650-launchpad cc2650stk ek-lm4f120xl esp32-mh-et-live-minikit esp32-olimex-evb esp32-wemos-lolin-d32-pro esp32-wroom-32 esp32-wrover-kit esp8266-esp-12x esp8266-olimex-mod esp8266-sparkfun-thing f4vi1 feather-m0 firefly fox frdm-k22f frdm-k64f frdm-kw41z hifive1 hifive1b i-nucleo-lrwan1 ikea-tradfri iotlab-a8-m3 iotlab-m3 limifrog-v1 lobaro-lorabox lsn50 maple-mini mbed_lpc1768 mega-xplained microbit msb-430 msb-430h msba2 msbiot mulle native nrf51dk nrf51dongle nrf52832-mdk nrf52840-mdk nrf52840dk nrf52dk nrf6310 nucleo-f030r8 nucleo-f031k6 nucleo-f042k6 nucleo-f070rb nucleo-f072rb nucleo-f091rc nucleo-f103rb nucleo-f207zg nucleo-f302r8 nucleo-f303k8 nucleo-f303re nucleo-f303ze nucleo-f334r8 nucleo-f401re nucleo-f410rb nucleo-f411re nucleo-f412zg nucleo-f413zh nucleo-f429zi nucleo-f446re nucleo-f446ze nucleo-f722ze nucleo-f746zg nucleo-f767zi nucleo-l031k6 nucleo-l053r8 nucleo-l073rz nucleo-l152re nucleo-l432kc nucleo-l433rc nucleo-l452re nucleo-l476rg nucleo-l496zg nucleo-l4r5zi nz32-sc151 opencm904 openmote-b openmote-cc2538 p-l496g-cell02 particle-argon particle-boron particle-xenon pba-d-01-kw2x phynode-kw41z pic32-clicker pic32-wifire pyboard reel remote-pa remote-reva remote-revb ruuvitag samd21-xpro same54-xpro saml10-xpro saml11-xpro saml21-xpro samr21-xpro samr30-xpro samr34-xpro seeeduino_arch-pro sensebox_samd21 slstk3401a slstk3402a sltb001a slwstk6000b-slwrb4150a slwstk6000b-slwrb4162a slwstk6220a sodaq-autonomo sodaq-explorer sodaq-one sodaq-sara-aff spark-core stk3600 stk3700 stm32f0discovery stm32f3discovery stm32f429i-disc1 stm32f4discovery stm32f723e-disco stm32f769i-disco stm32l0538-disco stm32l476g-disco teensy31 telosb thingy52 ublox-c030-u201 udoo usb-kw41z waspmote-pro wsn430-v1_3b wsn430-v1_4 yunjia-nrf51822 z1
 
-BOARD:   slwstk6000b
+BOARD:   slwstk6000b-slwrb4150a
 CPU:     efm32
 MCU:     efm32
 
@@ -15,12 +15,12 @@
 
 DEFAULT_MODULE: auto_init board core core_msg cpu sys
 DISABLE_MODULE: 
-USEMODULE:      boards_common_silabs cortexm_common cortexm_common_periph cortexm_fpu cpu_efr32mg1p gecko_sdk_emlib gecko_sdk_emlib_extra newlib newlib_nano newlib_syscalls_default periph periph_common periph_gpio periph_pm periph_uart pm_layered silabs_aem silabs_bc stdio_uart
+USEMODULE:      board_common_slwstk6000b boards_common_silabs cortexm_common cortexm_common_periph cortexm_fpu cpu_efr32mg1p gecko_sdk_emlib gecko_sdk_emlib_extra newlib newlib_nano newlib_syscalls_default periph periph_common periph_gpio periph_pm periph_uart pm_layered silabs_aem silabs_bc stdio_uart
 
-ELFFILE: examples/hello-world/bin/slwstk6000b/hello-world.elf
-HEXFILE: examples/hello-world/bin/slwstk6000b/hello-world.hex
-BINFILE: examples/hello-world/bin/slwstk6000b/hello-world.bin
-FLASHFILE: examples/hello-world/bin/slwstk6000b/hello-world.bin
+ELFFILE: examples/hello-world/bin/slwstk6000b-slwrb4150a/hello-world.elf
+HEXFILE: examples/hello-world/bin/slwstk6000b-slwrb4150a/hello-world.hex
+BINFILE: examples/hello-world/bin/slwstk6000b-slwrb4150a/hello-world.bin
+FLASHFILE: examples/hello-world/bin/slwstk6000b-slwrb4150a/hello-world.bin
 
 FEATURES_USED:
          periph_gpio periph_pm periph_uart
@@ -46,8 +46,8 @@
 	-Icore/include  
 	-Idrivers/include  
 	-Isys/include  
-	-Iboards/slwstk6000b/include  
-	-Iboards/slwstk6000b/modules/slwrb4150a/include  
+	-Iboards/common/slwstk6000b/include  
+	-Iboards/common/slwstk6000b/modules/slwrb4150a/include  
 	-Iboards/common/silabs/include  
 	-Iboards/common/silabs/drivers/include  
 	-Icpu/efm32/include  
@@ -55,8 +55,8 @@
 	-Icpu/cortexm_common/include  
 	-Icpu/cortexm_common/include/vendor  
 	-Isys/libc/include  
-	-Iexamples/hello-world/bin/pkg/slwstk6000b/gecko_sdk/dist/emlib/inc  
-	-Iexamples/hello-world/bin/pkg/slwstk6000b/gecko_sdk/dist/emlib-extra/inc
+	-Iexamples/hello-world/bin/pkg/slwstk6000b-slwrb4150a/gecko_sdk/dist/emlib/inc  
+	-Iexamples/hello-world/bin/pkg/slwstk6000b-slwrb4150a/gecko_sdk/dist/emlib-extra/inc
 
 CC:      arm-none-eabi-gcc
 CFLAGS: 
@@ -79,8 +79,8 @@
 	-DCPU_MODEL_EFR32MG1P233F256GM48  
 	-DCPU_ARCH_CORTEX_M4F  
 	-DRIOT_APPLICATION=\"hello-world\"  
-	-DBOARD_SLWSTK6000B=\"slwstk6000b\"  
-	-DRIOT_BOARD=BOARD_SLWSTK6000B  
+	-DBOARD_SLWSTK6000B_SLWRB4150A=\"slwstk6000b-slwrb4150a\"  
+	-DRIOT_BOARD=BOARD_SLWSTK6000B_SLWRB4150A  
 	-DCPU_EFM32=\"efm32\"  
 	-DRIOT_CPU=CPU_EFM32  
 	-DMCU_EFM32=\"efm32\"  
@@ -98,7 +98,7 @@
 	-Wformat-overflow  
 	-Wformat-truncation  
 	-include  
-	examples/hello-world/bin/slwstk6000b/riotbuild/riotbuild.h
+	examples/hello-world/bin/slwstk6000b-slwrb4150a/riotbuild/riotbuild.h
 
 CXX:     arm-none-eabi-g++
 CXXUWFLAGS: 
@@ -136,14 +136,14 @@
 OFLAGS:  
 
 FLASHER: dist/tools/jlink/jlink.sh
-FFLAGS:  flash examples/hello-world/bin/slwstk6000b/hello-world.bin
+FFLAGS:  flash examples/hello-world/bin/slwstk6000b-slwrb4150a/hello-world.bin
 
 TERMPROG:  dist/tools/pyterm/pyterm
 TERMFLAGS: -p "/dev/ttyACM0" -b "115200" 
 PORT:      /dev/ttyACM0
 
 DEBUGGER:       dist/tools/jlink/jlink.sh
-DEBUGGER_FLAGS: debug examples/hello-world/bin/slwstk6000b/hello-world.elf
+DEBUGGER_FLAGS: debug examples/hello-world/bin/slwstk6000b-slwrb4150a/hello-world.elf
 
 DOWNLOAD_TO_FILE:   /usr/bin/wget -nv -c -O
 DOWNLOAD_TO_STDOUT: /usr/bin/curl -s
@@ -158,7 +158,6 @@
 MAKEFILE_LIST: 
 	examples/hello-world/Makefile  
 	Makefile.include  
-	/home/harter/work/git/rapstore/riot-buildsystem-ci-server/boards/vaduz-boards.mk.pre  
 	makefiles/utils/variables.mk  
 	makefiles/utils/strings.mk  
 	makefiles/docker.inc.mk  
@@ -168,15 +167,17 @@
 	makefiles/info.inc.mk  
 	makefiles/scan-build.inc.mk  
 	Makefile.features  
-	boards/slwstk6000b/Makefile.features  
+	boards/slwstk6000b-slwrb4150a/Makefile.features  
+	boards/common/slwstk6000b/Makefile.features  
 	boards/common/silabs/Makefile.features  
 	cpu/efm32/Makefile.features  
 	cpu/efm32/efm32-features.mk  
 	cpu/cortexm_common/Makefile.features  
 	makefiles/pseudomodules.inc.mk  
 	makefiles/defaultmodules.inc.mk  
-	boards/slwstk6000b/Makefile.include  
-	boards/slwstk6000b/module-info.mk  
+	boards/slwstk6000b-slwrb4150a/Makefile.include  
+	boards/common/slwstk6000b/Makefile.include  
+	boards/common/slwstk6000b/module-info.mk  
 	makefiles/tools/serial.inc.mk  
 	makefiles/tools/jlink.inc.mk  
 	boards/common/silabs/Makefile.include  
@@ -187,14 +188,16 @@
 	makefiles/toolchain/gnu.inc.mk  
 	makefiles/tools/gdb.inc.mk  
 	Makefile.dep  
-	boards/slwstk6000b/Makefile.dep  
+	boards/slwstk6000b-slwrb4150a/Makefile.dep  
+	boards/common/slwstk6000b/Makefile.dep  
 	boards/common/silabs/Makefile.dep  
 	cpu/efm32/Makefile.dep  
 	sys/Makefile.dep  
 	sys/test_utils/Makefile.dep  
 	drivers/Makefile.dep  
 	Makefile.dep  
-	boards/slwstk6000b/Makefile.dep  
+	boards/slwstk6000b-slwrb4150a/Makefile.dep  
+	boards/common/slwstk6000b/Makefile.dep  
 	boards/common/silabs/Makefile.dep  
 	cpu/efm32/Makefile.dep  
 	sys/Makefile.dep  
@@ -220,9 +223,9 @@
 APPDIR:      examples/hello-world
 
 supported boards:
-acd52832 airfy-beacon arduino-due arduino-duemilanove arduino-leonardo arduino-mega2560 arduino-mkr1000 arduino-mkrfox1200 arduino-mkrzero arduino-nano arduino-uno arduino-zero avsextrem b-l072z-lrwan1 b-l475e-iot01a blackpill blackpill-128kib bluepill bluepill-128kib calliope-mini cc2538dk cc2650-launchpad cc2650stk ek-lm4f120xl esp32-mh-et-live-minikit esp32-olimex-evb esp32-wemos-lolin-d32-pro esp32-wroom-32 esp32-wrover-kit esp8266-esp-12x esp8266-olimex-mod esp8266-sparkfun-thing f4vi1 feather-m0 firefly fox frdm-k22f frdm-k64f frdm-kw41z hifive1 hifive1b i-nucleo-lrwan1 ikea-tradfri iotlab-a8-m3 iotlab-m3 limifrog-v1 lobaro-lorabox lsn50 maple-mini mbed_lpc1768 mega-xplained microbit msb-430 msb-430h msba2 msbiot mulle native nrf51dk nrf51dongle nrf52832-mdk nrf52840-mdk nrf52840dk nrf52dk nrf6310 nucleo-f030r8 nucleo-f031k6 nucleo-f042k6 nucleo-f070rb nucleo-f072rb nucleo-f091rc nucleo-f103rb nucleo-f207zg nucleo-f302r8 nucleo-f303k8 nucleo-f303re nucleo-f303ze nucleo-f334r8 nucleo-f401re nucleo-f410rb nucleo-f411re nucleo-f412zg nucleo-f413zh nucleo-f429zi nucleo-f446re nucleo-f446ze nucleo-f722ze nucleo-f746zg nucleo-f767zi nucleo-l031k6 nucleo-l053r8 nucleo-l073rz nucleo-l152re nucleo-l432kc nucleo-l433rc nucleo-l452re nucleo-l476rg nucleo-l496zg nucleo-l4r5zi nz32-sc151 opencm904 openmote-b openmote-cc2538 p-l496g-cell02 particle-argon particle-boron particle-xenon pba-d-01-kw2x phynode-kw41z pic32-clicker pic32-wifire pyboard reel remote-pa remote-reva remote-revb ruuvitag samd21-xpro same54-xpro saml10-xpro saml11-xpro saml21-xpro samr21-xpro samr30-xpro samr34-xpro seeeduino_arch-pro sensebox_samd21 slstk3401a slstk3402a sltb001a slwstk6000b slwstk6220a sodaq-autonomo sodaq-explorer sodaq-one sodaq-sara-aff spark-core stk3600 stk3700 stm32f0discovery stm32f3discovery stm32f429i-disc1 stm32f4discovery stm32f723e-disco stm32f769i-disco stm32l0538-disco stm32l476g-disco teensy31 telosb thingy52 ublox-c030-u201 udoo usb-kw41z waspmote-pro wsn430-v1_3b wsn430-v1_4 yunjia-nrf51822 z1
+acd52832 airfy-beacon arduino-due arduino-duemilanove arduino-leonardo arduino-mega2560 arduino-mkr1000 arduino-mkrfox1200 arduino-mkrzero arduino-nano arduino-uno arduino-zero avsextrem b-l072z-lrwan1 b-l475e-iot01a blackpill blackpill-128kib bluepill bluepill-128kib calliope-mini cc2538dk cc2650-launchpad cc2650stk ek-lm4f120xl esp32-mh-et-live-minikit esp32-olimex-evb esp32-wemos-lolin-d32-pro esp32-wroom-32 esp32-wrover-kit esp8266-esp-12x esp8266-olimex-mod esp8266-sparkfun-thing f4vi1 feather-m0 firefly fox frdm-k22f frdm-k64f frdm-kw41z hifive1 hifive1b i-nucleo-lrwan1 ikea-tradfri iotlab-a8-m3 iotlab-m3 limifrog-v1 lobaro-lorabox lsn50 maple-mini mbed_lpc1768 mega-xplained microbit msb-430 msb-430h msba2 msbiot mulle native nrf51dk nrf51dongle nrf52832-mdk nrf52840-mdk nrf52840dk nrf52dk nrf6310 nucleo-f030r8 nucleo-f031k6 nucleo-f042k6 nucleo-f070rb nucleo-f072rb nucleo-f091rc nucleo-f103rb nucleo-f207zg nucleo-f302r8 nucleo-f303k8 nucleo-f303re nucleo-f303ze nucleo-f334r8 nucleo-f401re nucleo-f410rb nucleo-f411re nucleo-f412zg nucleo-f413zh nucleo-f429zi nucleo-f446re nucleo-f446ze nucleo-f722ze nucleo-f746zg nucleo-f767zi nucleo-l031k6 nucleo-l053r8 nucleo-l073rz nucleo-l152re nucleo-l432kc nucleo-l433rc nucleo-l452re nucleo-l476rg nucleo-l496zg nucleo-l4r5zi nz32-sc151 opencm904 openmote-b openmote-cc2538 p-l496g-cell02 particle-argon particle-boron particle-xenon pba-d-01-kw2x phynode-kw41z pic32-clicker pic32-wifire pyboard reel remote-pa remote-reva remote-revb ruuvitag samd21-xpro same54-xpro saml10-xpro saml11-xpro saml21-xpro samr21-xpro samr30-xpro samr34-xpro seeeduino_arch-pro sensebox_samd21 slstk3401a slstk3402a sltb001a slwstk6000b-slwrb4150a slwstk6000b-slwrb4162a slwstk6220a sodaq-autonomo sodaq-explorer sodaq-one sodaq-sara-aff spark-core stk3600 stk3700 stm32f0discovery stm32f3discovery stm32f429i-disc1 stm32f4discovery stm32f723e-disco stm32f769i-disco stm32l0538-disco stm32l476g-disco teensy31 telosb thingy52 ublox-c030-u201 udoo usb-kw41z waspmote-pro wsn430-v1_3b wsn430-v1_4 yunjia-nrf51822 z1
 
-BOARD:   slwstk6000b
+BOARD:   slwstk6000b-slwrb4162a
 CPU:     efm32
 MCU:     efm32
 
@@ -233,12 +236,12 @@
 
 DEFAULT_MODULE: auto_init board core core_msg cpu sys
 DISABLE_MODULE: 
-USEMODULE:      boards_common_silabs cortexm_common cortexm_common_periph cortexm_fpu cpu_efr32mg12p gecko_sdk_emlib gecko_sdk_emlib_extra newlib newlib_nano newlib_syscalls_default periph periph_common periph_gpio periph_pm periph_uart pm_layered silabs_aem silabs_bc stdio_uart
+USEMODULE:      board_common_slwstk6000b boards_common_silabs cortexm_common cortexm_common_periph cortexm_fpu cpu_efr32mg12p gecko_sdk_emlib gecko_sdk_emlib_extra newlib newlib_nano newlib_syscalls_default periph periph_common periph_gpio periph_pm periph_uart pm_layered silabs_aem silabs_bc stdio_uart
 
-ELFFILE: examples/hello-world/bin/slwstk6000b/hello-world.elf
-HEXFILE: examples/hello-world/bin/slwstk6000b/hello-world.hex
-BINFILE: examples/hello-world/bin/slwstk6000b/hello-world.bin
-FLASHFILE: examples/hello-world/bin/slwstk6000b/hello-world.bin
+ELFFILE: examples/hello-world/bin/slwstk6000b-slwrb4162a/hello-world.elf
+HEXFILE: examples/hello-world/bin/slwstk6000b-slwrb4162a/hello-world.hex
+BINFILE: examples/hello-world/bin/slwstk6000b-slwrb4162a/hello-world.bin
+FLASHFILE: examples/hello-world/bin/slwstk6000b-slwrb4162a/hello-world.bin
 
 FEATURES_USED:
          periph_gpio periph_pm periph_uart
@@ -264,8 +267,8 @@
 	-Icore/include  
 	-Idrivers/include  
 	-Isys/include  
-	-Iboards/slwstk6000b/include  
-	-Iboards/slwstk6000b/modules/slwrb4162a/include  
+	-Iboards/common/slwstk6000b/include  
+	-Iboards/common/slwstk6000b/modules/slwrb4162a/include  
 	-Iboards/common/silabs/include  
 	-Iboards/common/silabs/drivers/include  
 	-Icpu/efm32/include  
@@ -273,8 +276,8 @@
 	-Icpu/cortexm_common/include  
 	-Icpu/cortexm_common/include/vendor  
 	-Isys/libc/include  
-	-Iexamples/hello-world/bin/pkg/slwstk6000b/gecko_sdk/dist/emlib/inc  
-	-Iexamples/hello-world/bin/pkg/slwstk6000b/gecko_sdk/dist/emlib-extra/inc
+	-Iexamples/hello-world/bin/pkg/slwstk6000b-slwrb4162a/gecko_sdk/dist/emlib/inc  
+	-Iexamples/hello-world/bin/pkg/slwstk6000b-slwrb4162a/gecko_sdk/dist/emlib-extra/inc
 
 CC:      arm-none-eabi-gcc
 CFLAGS: 
@@ -297,8 +300,8 @@
 	-DCPU_MODEL_EFR32MG12P332F1024GL125  
 	-DCPU_ARCH_CORTEX_M4F  
 	-DRIOT_APPLICATION=\"hello-world\"  
-	-DBOARD_SLWSTK6000B=\"slwstk6000b\"  
-	-DRIOT_BOARD=BOARD_SLWSTK6000B  
+	-DBOARD_SLWSTK6000B_SLWRB4162A=\"slwstk6000b-slwrb4162a\"  
+	-DRIOT_BOARD=BOARD_SLWSTK6000B_SLWRB4162A  
 	-DCPU_EFM32=\"efm32\"  
 	-DRIOT_CPU=CPU_EFM32  
 	-DMCU_EFM32=\"efm32\"  
@@ -316,7 +319,7 @@
 	-Wformat-overflow  
 	-Wformat-truncation  
 	-include  
-	examples/hello-world/bin/slwstk6000b/riotbuild/riotbuild.h
+	examples/hello-world/bin/slwstk6000b-slwrb4162a/riotbuild/riotbuild.h
 
 CXX:     arm-none-eabi-g++
 CXXUWFLAGS: 
@@ -354,14 +357,14 @@
 OFLAGS:  
 
 FLASHER: dist/tools/jlink/jlink.sh
-FFLAGS:  flash examples/hello-world/bin/slwstk6000b/hello-world.bin
+FFLAGS:  flash examples/hello-world/bin/slwstk6000b-slwrb4162a/hello-world.bin
 
 TERMPROG:  dist/tools/pyterm/pyterm
 TERMFLAGS: -p "/dev/ttyACM0" -b "115200" 
 PORT:      /dev/ttyACM0
 
 DEBUGGER:       dist/tools/jlink/jlink.sh
-DEBUGGER_FLAGS: debug examples/hello-world/bin/slwstk6000b/hello-world.elf
+DEBUGGER_FLAGS: debug examples/hello-world/bin/slwstk6000b-slwrb4162a/hello-world.elf
 
 DOWNLOAD_TO_FILE:   /usr/bin/wget -nv -c -O
 DOWNLOAD_TO_STDOUT: /usr/bin/curl -s
@@ -376,7 +379,6 @@
 MAKEFILE_LIST: 
 	examples/hello-world/Makefile  
 	Makefile.include  
-	/home/harter/work/git/rapstore/riot-buildsystem-ci-server/boards/vaduz-boards.mk.pre  
 	makefiles/utils/variables.mk  
 	makefiles/utils/strings.mk  
 	makefiles/docker.inc.mk  
@@ -386,15 +388,17 @@
 	makefiles/info.inc.mk  
 	makefiles/scan-build.inc.mk  
 	Makefile.features  
-	boards/slwstk6000b/Makefile.features  
+	boards/slwstk6000b-slwrb4162a/Makefile.features  
+	boards/common/slwstk6000b/Makefile.features  
 	boards/common/silabs/Makefile.features  
 	cpu/efm32/Makefile.features  
 	cpu/efm32/efm32-features.mk  
 	cpu/cortexm_common/Makefile.features  
 	makefiles/pseudomodules.inc.mk  
 	makefiles/defaultmodules.inc.mk  
-	boards/slwstk6000b/Makefile.include  
-	boards/slwstk6000b/module-info.mk  
+	boards/slwstk6000b-slwrb4162a/Makefile.include  
+	boards/common/slwstk6000b/Makefile.include  
+	boards/common/slwstk6000b/module-info.mk  
 	makefiles/tools/serial.inc.mk  
 	makefiles/tools/jlink.inc.mk  
 	boards/common/silabs/Makefile.include  
@@ -405,14 +409,16 @@
 	makefiles/toolchain/gnu.inc.mk  
 	makefiles/tools/gdb.inc.mk  
 	Makefile.dep  
-	boards/slwstk6000b/Makefile.dep  
+	boards/slwstk6000b-slwrb4162a/Makefile.dep  
+	boards/common/slwstk6000b/Makefile.dep  
 	boards/common/silabs/Makefile.dep  
 	cpu/efm32/Makefile.dep  
 	sys/Makefile.dep  
 	sys/test_utils/Makefile.dep  
 	drivers/Makefile.dep  
 	Makefile.dep  
-	boards/slwstk6000b/Makefile.dep  
+	boards/slwstk6000b-slwrb4162a/Makefile.dep  
+	boards/common/slwstk6000b/Makefile.dep  
 	boards/common/silabs/Makefile.dep  
 	cpu/efm32/Makefile.dep  
 	sys/Makefile.dep  

Issues/PRs references

The riot-devel email where I talked about it https://lists.riot-os.org/pipermail/devel/2019-August/006289.html
Part of Tracking: move CPU/CPU_MODEL to Makefile.features #11477

Depends on boards/slwstk6000b: move CPU definiton to Makefile.features #12334

@cladmi
Copy link
Contributor Author

cladmi commented Sep 30, 2019

@basilfx I did the renaming by appending the module. This now split it in two boards. What do you think?

This currently does not do any cleanup just refactoring to have separate boards.

@benpicco benpicco added Area: boards Area: Board ports Type: cleanup The issue proposes a clean-up / The PR cleans-up parts of the codebase / documentation CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Sep 30, 2019
@basilfx
Copy link
Member

basilfx commented Oct 1, 2019

This looks good. I think it is a good trade-off between re-use and duplication. I don't own the board to test this, unfortunately.

@cladmi
Copy link
Contributor Author

cladmi commented Oct 1, 2019

Ah I expected you had it as you were the contributor. But indeed you were not the one testing it in the PR.

What do you think about this change @kaibeckmann ?

@cladmi cladmi force-pushed the pr/board/slwstk6000b/split branch from cf5242c to 9de2ec5 Compare October 1, 2019 12:31
@cladmi
Copy link
Contributor Author

cladmi commented Oct 1, 2019

Rebased as the dependency was merged.

@cladmi
Copy link
Contributor Author

cladmi commented Oct 1, 2019

My bad, I forgot the include $(RIOTBASE)/Makefile.base I will also rebase on the new changes.

@cladmi cladmi force-pushed the pr/board/slwstk6000b/split branch 2 times, most recently from 00bc5d1 to a118fa0 Compare October 1, 2019 14:52
@cladmi
Copy link
Contributor Author

cladmi commented Oct 1, 2019

This one also has overlap with #12337 on the blacklisted file so need to be synchronized if merged.

@aabadie
Copy link
Contributor

aabadie commented Oct 2, 2019

This PR needs a rebase.

@cladmi cladmi force-pushed the pr/board/slwstk6000b/split branch from a118fa0 to db8374d Compare October 2, 2019 09:07
@kaibeckmann
Copy link

Ah I expected you had it as you were the contributor. But indeed you were not the one testing it in the PR.

What do you think about this change @kaibeckmann ?

Well, I think the original idea behind the module system was, that there are a ton of modules available from silabs. To have a own folder for each, would clutter the boards-folder. If someone makes the support for each. If not (like at the moment) the new structure is better to understand.

I tested the pr (compiled, flashed, interacted) on the slwstk6000b-slwrb4150a and slwstk6000b-slwrb4162a. Its working.

@fjmolinas fjmolinas added the Reviewed: 3-testing The PR was tested according to the maintainer guidelines label Oct 3, 2019
@fjmolinas
Copy link
Contributor

I tested the pr (compiled, flashed, interacted) on the slwstk6000b-slwrb4150a and slwstk6000b-slwrb4162a. Its working.

I added the tested flag.

Well, I think the original idea behind the module system was, that there are a ton of modules available from silabs. To have a own folder for each, would clutter the boards-folder. If someone makes the support for each. If not (like at the moment) the new structure is better to understand.

IMO the board, or at least the main component here would be the daughterboard, the slwstk6000b is an interface, a set of external drivers with a neasy to use interface. There is a similar case with smart-rf06 evaluation kit where you can connect a set of daughterboards featuring different cpu/radios.

If these daughterboards can be plugged in to many mainboards then I think the logic should be flipped, the daughterboard would by default have a specific mainboard (slwstk6000b in this case)
but the mainboard could be changed (of course doing this would mean it's a different "BOARD" in the RIOT sense).

How I think this would grow is that we would add the mainboards in silabs/common while daughterboards would be added with one mainboard as a BOARD in RIOT/boards/. If a user wants to use a different combination he would just change the mainboard used by that board or define it as an external BOARD. So at the end we would have 1 board example for every daughterboard we support.

Because of this I think it might make more sense to have the board names inverted as well, so slwrb4162a-slwstk6000b.

what do you think? I have only had a quick look at the code and datasheets, so maybe what I'm saying makes no sense or is unfeasible.

@cladmi
Copy link
Contributor Author

cladmi commented Oct 4, 2019

Well, I think the original idea behind the module system was, that there are a ton of modules available from silabs. To have a own folder for each, would clutter the boards-folder. If someone makes the support for each. If not (like at the moment) the new structure is better to understand.

The issue is that in RIOT there is no handling of multiple boards in one directory. It goes more into having one board per directory and put in "common" the redundant part.
For RIOT it is like only the first one exists and is even tested/compiled.
To not clutter, we could keep only a few defined but make it easy to define the new ones as external boards (#12183)

My issue is the indirection to get to the CPU_MODEL, features for a board.

The way the slwstk6000b is currently organized made me put it first. As modules are implemented inside it and not in a common/silabs_modules directory. I can change this if wanted.
The modules could be also split in a separate 'common' too as they currently only change headers but use the same board.c.

My short term goal is having one RIOT "board" per module/combination so changed first the name to stay similar to the current one too keep the changes minimal.
Please tell me if I need to switch the other way around.

Changing the current organization and then splitting the modules to a common would be a separate step for me.

@fjmolinas
Copy link
Contributor

Changing the current organization and then splitting the modules to a common would be a separate step for me.

Yes, my comment was just a though on future organization if the directory gets cluttered, and would be handled in different PRs.

My issue is the indirection to get to the CPU_MODEL, features for a board.

My short term goal is having one RIOT "board" per module/combination so changed first the name to stay similar to the current one too keep the changes minimal.

I understand the reasoning and the issue addressed here. @basilfx agreed with the changes, and @kaibeckmann had no issue given the current state, we can tackle refactoring when multiple daughter-boards appear.

I would go ahead as is, is it ok to squash @basilfx ?

@fjmolinas
Copy link
Contributor

ping @basilfx

@basilfx
Copy link
Member

basilfx commented Oct 8, 2019

Yes, please squash and rebase.

@cladmi cladmi force-pushed the pr/board/slwstk6000b/split branch from db8374d to f4e27ca Compare October 8, 2019 13:35
Migrate the board to be implemented with a common/slwstk6000b.

It is a pre step for splitting the board for each "BOARD_MODULE".
@cladmi cladmi force-pushed the pr/board/slwstk6000b/split branch from f4e27ca to a993218 Compare October 8, 2019 13:36
@cladmi
Copy link
Contributor Author

cladmi commented Oct 8, 2019

Squashed and rebased. I reworded the first commit message to say boards/slwstk6000b as I was saying board/ only.

@cladmi
Copy link
Contributor Author

cladmi commented Oct 8, 2019

Two examples were too big for the slwstk6000b-slwrb150a only, I added the board to the BOARD_INSUFFICIENT_MEMORY and will squash directly.

compile/examples/lua_REPL/slwstk6000b-slwrb4150a:gnu
compile/tests/unittests/slwstk6000b-slwrb4150a:gnu

Define one board for each of the available modules.
@cladmi cladmi force-pushed the pr/board/slwstk6000b/split branch from 9d4888a to 1ab5a93 Compare October 8, 2019 14:34
Copy link
Contributor

@fjmolinas fjmolinas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Murdock is green, ACK!

@fjmolinas fjmolinas merged commit 94e0032 into RIOT-OS:master Oct 8, 2019
@cladmi
Copy link
Contributor Author

cladmi commented Oct 9, 2019

Thank you for the review!

@cladmi cladmi deleted the pr/board/slwstk6000b/split branch October 9, 2019 09:34
@kb2ma kb2ma added this to the Release 2019.10 milestone Oct 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: boards Area: Board ports CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Reviewed: 3-testing The PR was tested according to the maintainer guidelines Type: cleanup The issue proposes a clean-up / The PR cleans-up parts of the codebase / documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants