Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions board/aarch64/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,48 @@ Board Specific Documentation
- [Marvell CN9130-CRB](cn9130-crb/)
- [Microchip SparX-5i PCB135 (eMMC)](sparx5-pcb135/)
- [NanoPi R2S](r2s/)
- [Raspberry Pi 4 b](#raspberry-pi-4-b)

# Raspberry Pi 4 b

## Support level
Full support for base board but not any extension board on the
GPIOs.

### Touch screen
The [Raspberry Pi touch display v1][RPI-TOUCH] is supported, including
touch functionality. There are multiple touchscreens on the market for
Raspberry Pi, but only the official (first version with 800x480
resolution) is currently supported. Infix supplies all drivers
required to utilize the hardware, but you need to add the actual
graphical application in a container.

There are some important considerations you need to know about when
using Infix for graphical applications. The container needs access to
/dev/dri/ to be able to access the graphics card, and it also needs
access to /run/udev to be able to find the input devices.

Example of running Doom in Infix:

```cli
admin@example:/> configure
admin@example:/config/> edit container doom
admin@example:/config/container/doom/> set image docker://mattiaswal/alpine-doom:latest
admin@example:/config/container/doom/> set privileged
admin@example:/config/container/doom/> edit mount udev
admin@example:/config/container/doom/mount/udev/> set type bind
admin@example:/config/container/doom/mount/udev/> set target /run/udev/
admin@example:/config/container/doom/mount/udev/> set source /run/udev/
admin@example:/config/container/doom/mount/udev/> end
admin@example:/config/container/doom/mount/xorg.conf/> set content U2VjdGlvbiAiU2VydmVyTGF5b3V0IgogICAgSWRlbnRpZmllciAiRGVmYXVsdExheW91dCIKICAgIFNjcmVlbiAwICJTY3JlZW4wIiAwIDAKRW5kU2VjdGlvbgpTZWN0aW9uICJEZXZpY2UiCiAgICBJZGVudGlmaWVyICJpTVggTENEIgogICAgRHJpdmVyICJtb2Rlc2V0dGluZyIKICAgIEJ1c0lEICJwbGF0Zm9ybTozMmZjNjAwMC5kaXNwbGF5LWNvbnRyb2xsZXIiCiAgICBPcHRpb24gImttc2RldiIgIi9kZXYvZHJpL2NhcmQxIgpFbmRTZWN0aW9uCgpTZWN0aW9uICJTY3JlZW4iCiAgICBJZGVudGlmaWVyICJTY3JlZW4wIgogICAgRGV2aWNlICJpTVggTENEIgogICAgRGVmYXVsdERlcHRoIDI0CkVuZFNlY3Rpb24KCg==
admin@example:/config/container/doom/mount/xorg.conf/> set target /etc/X11/xorg.conf
admin@example:/config/container/doom/mount/xorg.conf/> end
admin@example:/config/container/doom/> edit volume var
admin@example:/config/container/doom/volume/var/> set target /var
admin@example:/config/container/doom/volume/var/> leave
admin@example:/>

```


[RPI-TOUCH]: https://www.raspberrypi.com/products/raspberry-pi-touch-display/
8 changes: 0 additions & 8 deletions board/common/post-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,3 @@ if [ "$BR2_TARGET_ROOTFS_SQUASHFS" = "y" ]; then
# Quick intro for beginners, with links to more information
cp "$BR2_EXTERNAL_INFIX_PATH/board/common/README.txt" "$BINARIES_DIR/"
fi

boards=$(${BR2_EXTERNAL_INFIX_PATH}/board/common/selected-boards.sh ${BR2_EXTERNAL_INFIX_PATH} ${O})
for board in $boards; do
[ ! -f "${BR2_EXTERNAL_INFIX_PATH}/src/board/${board}/post-image.sh" ] && continue
RELEASE=$(ver)
export INFIX_ID RELEASE
${BR2_EXTERNAL_INFIX_PATH}/src/board/${board}/post-image.sh
done
61 changes: 0 additions & 61 deletions board/common/selected-boards.sh

This file was deleted.

4 changes: 3 additions & 1 deletion doc/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ All notable changes to the project are documented in this file.
- Upgrade Linux kernel to 6.12.42 (LTS)
- Raspberry Pi 4 is now a part of the aarch64 image, as well as a SDcard
image for initial deployments.

- Add support for [Raspberry Pi touch display][RPI-TOUCH] on Raspberry Pi 4

### Fixes
- containers: prune dangling images to reclaim disk space (#1098)

[RPI-TOUCH]: https://www.raspberrypi.com/products/raspberry-pi-touch-display/

[v25.06.0][] - 2025-07-01
-------------------------

Expand Down
7 changes: 1 addition & 6 deletions package/board/raspberry-pi-4/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,5 @@ config BR2_PACKAGE_RASPBERRY_PI_4
select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI
select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI

select BR2_PACKAGE_RPI_FIRMWARE
select BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4
select BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X
select SDCARD_AUX
select BR2_TARGET_UBOOT_NEEDS_UBOOT_TOOLS
help
Raspberry pi 4
Raspberry Pi 4
55 changes: 35 additions & 20 deletions package/board/raspberry-pi-4/raspberry-pi-4.mk
Original file line number Diff line number Diff line change
@@ -1,46 +1,61 @@
define RASPBERRY_PI_4_LINUX_CONFIG_FIXUPS
$(call KCONFIG_ENABLE_OPT,CONFIG_SOUND)
$(call KCONFIG_ENABLE_OPT,CONFIG_SND)
$(call KCONFIG_ENABLE_OPT,CONFIG_SND_SOC)
$(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_BCM2835)
$(call KCONFIG_ENABLE_OPT,CONFIG_CLK_RASPBERRYPI)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM)
$(call KCONFIG_SET_OPT,CONFIG_DRM_V3D,m)
$(call KCONFIG_SET_OPT,CONFIG_DRM_VC4,m)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_VC4_HDMI_CEC)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_LOAD_EDID_FIRMWARE)

$(call KCONFIG_ENABLE_OPT,CONFIG_FB)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_EMULATION)


$(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_MOUSE)
$(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_KEYBOARD)
$(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_TOUCHSCREEN)
$(call KCONFIG_SET_OPT,CONFIG_TOUCHSCREEN_EDT_FT5X06,m)
$(call KCONFIG_SET_OPT,CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN,m)
$(call KCONFIG_SET_OPT,CONFIG_INPUT_MOUSEDEV,m)
$(call KCONFIG_SET_OPT,CONFIG_HID_GENERIC,m)

# RPI
$(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BCM)
$(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BCM2835)
$(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BRCMSTB)
$(call KCONFIG_ENABLE_OPT,CONFIG_BCM2835_MBOX)
$(call KCONFIG_SET_OPT,CONFIG_BCM2835_MBOX,y)
$(call KCONFIG_ENABLE_OPT,CONFIG_BCM2835_WDT)
$(call KCONFIG_ENABLE_OPT,CONFIG_DMA_BCM2835)
$(call KCONFIG_ENABLE_OPT,CONFIG_RASPBERRYPI_FIRMWARE)
$(call KCONFIG_ENABLE_OPT,CONFIG_PINCTRL_BCM2835)
$(call KCONFIG_ENABLE_OPT,CONFIG_GPIO_BCM2835)
$(call KCONFIG_SET_OPT,CONFIG_BRCMFMAC,m)
$(call KCONFIG_ENABLE_OPT,CONFIG_BRCMFMAC_SDIO)
$(call KCONFIG_ENABLE_OPT,CONFIG_I2C_BCM2835)
$(call KCONFIG_SET_OPT,CONFIG_I2C_BCM2835,m)
$(call KCONFIG_SET_OPT,CONFIG_BCM2711_THERMAL,m)
$(call KCONFIG_ENABLE_OPT,CONFIG_MMC_BCM2835)
$(call KCONFIG_ENABLE_OPT,CONFIG_MMC_SDHCI_IPROC)
$(call KCONFIG_ENABLE_OPT,CONFIG_BCM2711_THERMAL)
$(call KCONFIG_ENABLE_OPT,CONFIG_RASPBERRYPI_POWER)
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250)
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_CONSOLE)
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_BCM2835AUX)
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_EXTENDED)
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_SHARE_IRQ)
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_VENDOR_BROADCOM)
$(call KCONFIG_ENABLE_OPT,CONFIG_BCMGENET)
endef
$(call KCONFIG_SET_OPT,CONFIG_BCMGENET,m)
$(call KCONFIG_SET_OPT,CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY,m)
$(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_BCM2835)
$(call KCONFIG_ENABLE_OPT,CONFIG_CLK_RASPBERRYPI)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_KMS_HELPER)
$(call KCONFIG_SET_OPT,CONFIG_DRM_V3D,m)
$(call KCONFIG_SET_OPT,CONFIG_DRM_VC4,m)
$(call KCONFIG_SET_OPT,CONFIG_STAGING,y)
$(call KCONFIG_SET_OPT,CONFIG_SND_BCM2835,m)

$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_VC4_HDMI_CEC)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_LOAD_EDID_FIRMWARE)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_PANEL_BRIDGE)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_BRIDGE)
$(call KCONFIG_SET_OPT,CONFIG_DRM_TOSHIBA_TC358762,m)
$(call KCONFIG_SET_OPT,CONFIG_DRM_PANEL_SIMPLE,m)

$(call KCONFIG_ENABLE_OPT,CONFIG_FB)
$(call KCONFIG_ENABLE_OPT,CONFIG_FRAMEBUFFER_CONSOLE)
$(call KCONFIG_ENABLE_OPT,CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY)
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_EMULATION)

$(call KCONFIG_SET_OPT,CONFIG_TOUCHSCREEN_EDT_FT5X06,m)

$(call KCONFIG_ENABLE_OPT,CONFIG_BACKLIGHT_CLASS_DEVICE)
endef
$(eval $(ix-board))
$(eval $(generic-package))
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 40a8201087967980260b7424bbbde69fea24a773 Mon Sep 17 00:00:00 2001
From: Tobias Waldekranz <tobias@waldekranz.com>
Date: Tue, 12 Mar 2024 10:27:24 +0100
Subject: [PATCH 01/28] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for
Subject: [PATCH 01/30] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for
PPU on 6393X
Organization: Wires

Expand All @@ -13,7 +13,7 @@ register 0, bit 15). Therefore, increase the timeout threshold to 1s.
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 211c219dd52d..d64c3eef4447 100644
index 211c219dd52db..d64c3eef4447a 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -86,7 +86,7 @@ int mv88e6xxx_write(struct mv88e6xxx_chip *chip, int addr, int reg, u16 val)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From a6289c5551cdfc4aa715e6ba66c9030e9dbbe9e1 Mon Sep 17 00:00:00 2001
From: Tobias Waldekranz <tobias@waldekranz.com>
Date: Wed, 27 Mar 2024 15:52:43 +0100
Subject: [PATCH 02/28] net: dsa: mv88e6xxx: Improve indirect register access
Subject: [PATCH 02/30] net: dsa: mv88e6xxx: Improve indirect register access
perf on 6393
Organization: Wires

Expand All @@ -22,7 +22,7 @@ other accesses use the regular indirect interface.
5 files changed, 119 insertions(+)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index d64c3eef4447..47138492885e 100644
index d64c3eef4447a..47138492885e6 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -6539,6 +6539,13 @@ static int mv88e6xxx_detect(struct mv88e6xxx_chip *chip)
Expand All @@ -40,7 +40,7 @@ index d64c3eef4447..47138492885e 100644
chip->info->prod_num, chip->info->name, rev);

diff --git a/drivers/net/dsa/mv88e6xxx/global1.h b/drivers/net/dsa/mv88e6xxx/global1.h
index 3dbb7a1b8fe1..5ea956aadecc 100644
index 3dbb7a1b8fe11..5ea956aadecc9 100644
--- a/drivers/net/dsa/mv88e6xxx/global1.h
+++ b/drivers/net/dsa/mv88e6xxx/global1.h
@@ -218,6 +218,9 @@
Expand All @@ -54,7 +54,7 @@ index 3dbb7a1b8fe1..5ea956aadecc 100644
#define MV88E6XXX_G1_CTL2 0x1c
#define MV88E6185_G1_CTL2_CASCADE_PORT_MASK 0xf000
diff --git a/drivers/net/dsa/mv88e6xxx/global2.h b/drivers/net/dsa/mv88e6xxx/global2.h
index 82f9b410de0b..3663645621c9 100644
index 82f9b410de0b8..3663645621c9d 100644
--- a/drivers/net/dsa/mv88e6xxx/global2.h
+++ b/drivers/net/dsa/mv88e6xxx/global2.h
@@ -143,6 +143,9 @@
Expand All @@ -68,7 +68,7 @@ index 82f9b410de0b..3663645621c9 100644
#define MV88E6XXX_G2_EEPROM_CMD 0x14
#define MV88E6XXX_G2_EEPROM_CMD_BUSY 0x8000
diff --git a/drivers/net/dsa/mv88e6xxx/smi.c b/drivers/net/dsa/mv88e6xxx/smi.c
index a990271b7482..f54bb0e79030 100644
index a990271b74823..f54bb0e79030c 100644
--- a/drivers/net/dsa/mv88e6xxx/smi.c
+++ b/drivers/net/dsa/mv88e6xxx/smi.c
@@ -8,6 +8,8 @@
Expand Down Expand Up @@ -169,7 +169,7 @@ index a990271b7482..f54bb0e79030 100644
chip->smi_ops = &mv88e6xxx_smi_indirect_ops;
else
diff --git a/drivers/net/dsa/mv88e6xxx/smi.h b/drivers/net/dsa/mv88e6xxx/smi.h
index c6c71d5757f5..788cf68b7b33 100644
index c6c71d5757f5d..788cf68b7b334 100644
--- a/drivers/net/dsa/mv88e6xxx/smi.h
+++ b/drivers/net/dsa/mv88e6xxx/smi.h
@@ -31,6 +31,36 @@
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 91a77f0ff1202cd1f7bca0a62b7c1d07209feb7d Mon Sep 17 00:00:00 2001
From: Tobias Waldekranz <tobias@waldekranz.com>
Date: Mon, 22 Apr 2024 23:18:01 +0200
Subject: [PATCH 03/28] net: dsa: mv88e6xxx: Honor ports being managed via
Subject: [PATCH 03/30] net: dsa: mv88e6xxx: Honor ports being managed via
in-band-status
Organization: Wires

Expand All @@ -18,7 +18,7 @@ when in-band-status is being used.
1 file changed, 6 insertions(+)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 47138492885e..b96bc12dc6a8 100644
index 47138492885e6..b96bc12dc6a86 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -964,6 +964,9 @@ static void mv88e6xxx_mac_link_down(struct phylink_config *config,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 562c9080217c439d2ce92307ad675ee3e0572d44 Mon Sep 17 00:00:00 2001
From: Tobias Waldekranz <tobias@waldekranz.com>
Date: Wed, 24 Apr 2024 22:41:04 +0200
Subject: [PATCH 04/28] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user
Subject: [PATCH 04/30] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user
ports on 6393X
Organization: Wires

Expand Down Expand Up @@ -34,7 +34,7 @@ forwarded like any other.
1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c
index 04053fdc6489..f25fb3214acb 100644
index 04053fdc6489a..f25fb3214acb9 100644
--- a/drivers/net/dsa/mv88e6xxx/port.c
+++ b/drivers/net/dsa/mv88e6xxx/port.c
@@ -1432,6 +1432,23 @@ static int mv88e6393x_port_policy_write_all(struct mv88e6xxx_chip *chip,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From e3a3a1d5a835028eb83444b809d87bada292a6f0 Mon Sep 17 00:00:00 2001
From: Tobias Waldekranz <tobias@waldekranz.com>
Date: Thu, 16 Nov 2023 19:44:32 +0100
Subject: [PATCH 05/28] net: dsa: mv88e6xxx: Add LED infrastructure
Subject: [PATCH 05/30] net: dsa: mv88e6xxx: Add LED infrastructure
Organization: Wires

Parse DT for LEDs and register them for devices that support it,
Expand All @@ -17,7 +17,7 @@ though no actual implementations exist yet.
create mode 100644 drivers/net/dsa/mv88e6xxx/leds.h

diff --git a/drivers/net/dsa/mv88e6xxx/Makefile b/drivers/net/dsa/mv88e6xxx/Makefile
index a9a9651187db..6720d9303914 100644
index a9a9651187db7..6720d93039148 100644
--- a/drivers/net/dsa/mv88e6xxx/Makefile
+++ b/drivers/net/dsa/mv88e6xxx/Makefile
@@ -9,6 +9,7 @@ mv88e6xxx-objs += global2.o
Expand All @@ -29,7 +29,7 @@ index a9a9651187db..6720d9303914 100644
mv88e6xxx-objs += pcs-6352.o
mv88e6xxx-objs += pcs-639x.o
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index b96bc12dc6a8..f92b7d7d5780 100644
index b96bc12dc6a86..f92b7d7d57801 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -37,6 +37,7 @@
Expand All @@ -52,7 +52,7 @@ index b96bc12dc6a8..f92b7d7d5780 100644

static void mv88e6xxx_port_teardown(struct dsa_switch *ds, int port)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h
index a54682240839..32c87ab754d1 100644
index a546822408396..32c87ab754d1f 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.h
+++ b/drivers/net/dsa/mv88e6xxx/chip.h
@@ -207,6 +207,7 @@ struct mv88e6xxx_avb_ops;
Expand Down Expand Up @@ -102,7 +102,7 @@ index a54682240839..32c87ab754d1 100644
static inline bool mv88e6xxx_has_stu(struct mv88e6xxx_chip *chip)
diff --git a/drivers/net/dsa/mv88e6xxx/leds.c b/drivers/net/dsa/mv88e6xxx/leds.c
new file mode 100644
index 000000000000..e3de10991f29
index 0000000000000..e3de10991f297
--- /dev/null
+++ b/drivers/net/dsa/mv88e6xxx/leds.c
@@ -0,0 +1,185 @@
Expand Down Expand Up @@ -293,7 +293,7 @@ index 000000000000..e3de10991f29
+}
diff --git a/drivers/net/dsa/mv88e6xxx/leds.h b/drivers/net/dsa/mv88e6xxx/leds.h
new file mode 100644
index 000000000000..8afa2a0c0527
index 0000000000000..8afa2a0c05278
--- /dev/null
+++ b/drivers/net/dsa/mv88e6xxx/leds.h
@@ -0,0 +1,12 @@
Expand Down
Loading