zephyr/boards
Torsten Rasmussen 536d34fa7a cmake: scripts: support board extension
Fixes: #69548

Support extending an existing board with new board variants.

This commit introduces the following changes to allow a board to be
extended out-of-tree.

The board yaml schema is extended to support an extend field which
will be used to identify the board to be extended.

A board 'plank' can be extended like this:
> board:
>   extend: plank
>   variants:
>     - name: ext
>       qualifier: soc1

For the rest of the build system this means that there is no longer a
single board directory.
The existing CMake variable BOARD_DIR is kept and reference the
directory which defines the board.
A new CMake variable BOARD_DIRECTORIES provides a list of all
directories which defines board targets for the board.
This means the directory which defines the board as well as all
directories that extends the board.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-10-26 17:14:06 +02:00
..
01space boards: 01space: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
96boards boards: remove `HCI_SPI` defaults 2024-10-25 08:55:07 +02:00
aconno boards: aconno: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
acrn boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
actinius boards: actinius: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
adafruit boards: adafruit: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
adi boards: adi: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
alientek boards: alientek: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
altr boards: altr: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
ambiq drivers: spi: Add SPI device support for Apollo3 SoCs 2024-10-26 11:31:11 +02:00
amd boards: amd: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
andestech dts: bindings: mbox: rename plic-sw to mbox-plic-sw 2024-10-23 16:53:13 +02:00
arduino doc: boards: add target-notes directive where missing 2024-10-23 15:30:44 -05:00
arm arch: arm: fix null pointer dereference check test 2024-10-26 03:58:05 +01:00
aspeed boards: aspeed: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
atmarktechno boards: atmarktechno: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
atmel boards: atmel: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
bbc boards: bbc: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
bcdevices boards: bcdevices: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
beagle boards: beagle: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
blues boards: blues: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
brcm boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
bytesatwork boards: bytesatwork: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
cdns boards: cdns: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
circuitdojo boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
common boards: amd: kv260_r5: update the board cmake to use xsdb runner 2024-10-23 11:34:24 +02:00
contextualelectronics boards: contextualelectronics: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
croxel boards: croxel: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
ct boards: ct: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
cypress doc: boards: add target-notes directive where missing 2024-10-23 15:30:44 -05:00
digilent boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
dptechnics boards: dptechnics: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
dragino boards: dragino: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
ebyte boards: ebyte: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
efinix boards: efinix: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
electronut boards: electronut: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
element14 boards: element14: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
enclustra/mercury_xu boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
ene boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
enjoydigital boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
espressif boards: espressif: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
ezurio boards: ezurio: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
fanke boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
firefly boards: firefly: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
franzininho boards: franzininho: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
gaisler boards: gaisler: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
gardena boards: gardena: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
gd boards: gd: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
google boards: google: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
hardkernel boards: hardkernel: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
heltec boards: heltec: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
holyiot boards: holyiot: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
infineon driver: pwm: infineon: cyw920829m2evk_02 pwm 2024-10-26 03:57:41 +01:00
innblue boards: innblue: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
intel boards: intel_adsp: use one twister.yaml 2024-10-22 18:31:09 -04:00
ite boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
khadas boards: khadas: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
kincony boards: kincony: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
lilygo documentation: lilygo: fix formatting for LoRa32 and T8-C3 2024-10-16 09:59:26 +02:00
lowrisc boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
luatos doc: boards: add target-notes directive where missing 2024-10-23 15:30:44 -05:00
m5stack boards: m5stack: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
madmachine drivers: video: csi: Drop source device phandle reference 2024-10-25 08:54:57 +02:00
makerdiary boards: makerdiary: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
mediatek/mt8195_adsp boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
microchip boards: microchip: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
mikroe boards: mikroe: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
mxchip boards: mxchip: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
native boards nrf_bsim: Add NVIC_GetPendingIRQ() equivalent 2024-10-24 17:01:50 +01:00
nordic boards: nordic: ipc: added dcache alignement 2024-10-24 03:45:35 +01:00
nuvoton boards: nuvoton: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
nxp boards: nxp: frdm_mcxn947: Enabled IRTC Driver. 2024-10-26 03:58:48 +01:00
olimex boards: olimex: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
openisa boards: openisa: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
others boards: others: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
panasonic boards: panasonic: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
particle boards: particle: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
phytec boards: PHYTEC: phyboard_polis: remove mimx8mm prefix 2024-10-24 14:07:18 +02:00
pine64 boards: pine64: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
pjrc doc: boards: add target-notes directive where missing 2024-10-23 15:30:44 -05:00
qemu boards: qemu: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
qorvo boards: qorvo: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
quicklogic boards: quicklogic: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
rakwireless boards: rak: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
raspberrypi boards: raspberrypi: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
raytac boards: raytac: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
renesas drivers: can: initial support for Renesas RA CANFD 2024-10-25 08:55:17 +02:00
renode boards: renode: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
ronoth boards: ronoth: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
ruuvi boards: ruuvi: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
sc boards: sc: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
seagate boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
seco boards: seco: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
seeed doc: boards: add target-notes directive where missing 2024-10-23 15:30:44 -05:00
segger boards: segger: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
sensry boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
shields boards: remove `HCI_SPI` defaults 2024-10-25 08:55:07 +02:00
sifive boards: sifive: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
silabs boards: silabs: sim3u1xx_dk: Enable crypto support 2024-10-24 17:52:05 +02:00
sipeed boards: longan: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
snps boards: snps: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
sparkfun soc: silabs: Default to sleeptimer for OS timer on Series 2 2024-10-24 17:51:01 +02:00
st boards: st: wb0: add DMA to supported feature set 2024-10-25 14:22:06 +02:00
starfive boards: starfive: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
tdk boards: tdk: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
technexion boards: technexion: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
telink boards: telink: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
ti boards: ti: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
toradex boards: toradex: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
u-blox boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
udoo boards: udoo: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
up-bridge-the-gap boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
vcc-gnd boards: vcc-gnd: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
vngiotlab boards: vngiotlab: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
waveshare boards: waveshare: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
we boards: we: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
weact boards: weact: usb2canfdv1: fix broken link 2024-10-25 17:34:25 -07:00
wemos boards: wemos: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
witte boards: witte: adopt new zephyr:board directive and role 2024-10-24 17:51:15 +02:00
wiznet boards: rpi: Fix selection of symbol 2024-10-23 16:52:36 +02:00
xen boards: Set full_name for all boards 2024-10-10 20:22:21 -04:00
CMakeLists.txt boards: shields: Allow adding source code to shields 2024-08-01 08:57:33 +01:00
Kconfig cmake: scripts: support board extension 2024-10-26 17:14:06 +02:00
Kconfig.v1 cmake: scripts: support board extension 2024-10-26 17:14:06 +02:00
Kconfig.v2 cmake: scripts: support board extension 2024-10-26 17:14:06 +02:00
deprecated.cmake boards: mps3: Add support for corstone300/an552 2024-10-26 03:58:05 +01:00
index.rst doc: extensions: boards: add search tips admonition 2024-10-16 12:26:27 +02:00