Commit Graph
15 Commits
Author SHA1 Message Date
Joachim Wiberg 54d88cc00e Support for Compute Module 4 IoT Router Broad Mini
This commit adds support for the Raspberry Pi CM4 based mini DFRobot IoT
Router board, SKU:DFR0767.  It comes with an additional RTL8111 PCIe NIC
hence the addidtional kernel module and firmware.  The latter fixes:

r8169 0000:01:00.0: Direct firmware load for rtl_nic/rtl8168h-2.fw failed with error -2
r8169 0000:01:00.0: Unable to load firmware rtl_nic/rtl8168h-2.fw (-2)

Please note, the change in BCMGENET from module to built-in is to ensure
it is probed before any PCIe NIC, both this board and the CM4-based NVME
NAS base board enumerate the built-in MAC as eth0.

Also, unlike the RPi 3B/4B, it is not a given fact that a CM4 based board
comes with WiFi onboard, and since most compute module setups are DYI, we
take the easy way out and leave it as an exercise to the user to add WiFi
interface to the config.

https://wiki.dfrobot.com/Compute_Module_4_IoT_Router_Board_Mini_SKU_DFR0767

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:00 +01:00
Joachim Wiberg 9b057ad547 Support for Raspberry Pi 3B (BCM2837)
The BCM2837 core is used not just in the RPi 3B but also in the Zero 2W,
both device trees have been added to the board config.

The BCM2711 support has been extended to include RPi 400 and CM4 I/O.

To support the BCM2837 family more firmware options habe been enabled,
since the RPi3 does not have bootcode.bin flashed in the SoC.  The SD
card image now uses a hybrid GPT/MBR format so the RPi3 bootcode.bin
can read all files from the first VFAT partition.

The default device tree for Linux is now chosen by the U-Boot probe and
the only exception is the "laundry room" detector that looks for a RPi4
with a 7" touch screen, which then selects the DSI enabled RPi4 variant.
This is enough to properly load an RPi 3B and a CM4 based router board.

The BCM2837 does not have PCI/PCIe or a built-in MAC so it relies on the
USB to Ethernet LAN78xx which does not support disabling pause frames.
I have opted for checking for EOPNOTSUPP instead of adding yet another
quirk, because it is likely to be a common limitation of more drivers
and chipsets, and this code is best-effort anyway.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:25:59 +01:00
Joachim Wiberg 81f1da6272 package/board: fix RPi4 boot from aarch64 image
Fixes a minor regression after merge of BPi-R3.  The RPi4 device tree,
specifically regulator-sd-io-1v8 in bcm2711-rpi-4-b.dts, requires the
GPIO voltage regulator be built-in for the SD card controller.

Fixes #1197

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-13 21:24:11 +02:00
Mattias Walström 56fce18d66 workflows/build-boot: Add mt7976 bootloader
It is the chipset used on banana pi r3.
2025-09-14 13:37:49 +02:00
Mattias Walström 399894e9a1 Add new board banana pi r3
The Banana Pi R3 is a high-performance networking board featuring:
- MediaTek MT7986 ARM Cortex-A53 quad-core processor
- 4x Gigabit LAN ports (lan1-lan4)
- 1x Gigabit WAN port
- 2x SFP ports (sfp1, sfp2) for fiber connectivity
- Dual WiFi interfaces (wifi0 for 2.4GHz, wifi1 for 5GHz)
- USB support
- SD card boot support
2025-09-14 13:37:48 +02:00
Mattias Walström 709f2769ce Build aux when build infix 2025-09-07 13:43:26 +02:00
Mattias Walström c3975f4ce5 board/rpi-4: Add support for RPI official touchscreen
This adds support for Raspberry Pi Official touchscreen (only version 1)
Can be seen here: https://www.raspberrypi.com/products/raspberry-pi-touch-display/

Sound is enabled in the kernel due to it is required by the GPU.
2025-08-22 22:23:06 +02:00
Mattias Walström ce895a4c59 boards/rpi-4: Remove stuff related to bootloader build 2025-08-22 21:43:43 +02:00
Joachim Wiberg ebf4157e2c configs: new defconfig for rpi4 bootloader
This commit migrates the bootloader build from Raspberry Pi 4 board
package to a dedicated bootloader defconfig.  The idea is to set up
dedicated wokflows for building bootloaders, which change rarely,
streamlining the Infix image builds.

A dedicated workflow, or job in an existing workflow, can then do
the composition to minimal SD-card images useful for starting up
Infix on boards where SD-card is the primary boot source.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-08-11 16:50:57 +02:00
Mattias Walström d5d3eef08b rpi4: Move to a board package and normal aarch64 build
Features availible on RPI4 so far is:

* WiFi
* USB
* (Graphics, untested)
2025-07-11 17:06:39 +02:00
Tobias Waldekranz e6ea2991e1 board: Make ix-board reusable from upper externals
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
2025-05-16 20:06:09 +02:00
Mattias Walström d8cbdd7d92 imx8mp-evk: Add USB and HDMI support 2025-05-07 13:24:04 +02:00
Tobias Waldekranz 88763034ed board: imx8mp-evk: Add 2025-02-20 14:39:46 +01:00
Tobias Waldekranz f0ae1aa835 package/board: Rsync overlay directory, if available 2024-12-04 11:27:03 +01:00
Tobias Waldekranz 88f7c6070a package/board: Let the user select the set of boards to support
Introduce a new approach to dtb-building:

Old way: `rsync` an overlay containing our dt source to the kernel,
and then build via buildroot's `_INTREE_DTS_NAME`. This does not work
in recent kernels (at least since 6.12), which requires all dtb's to
be explicitly listed in a `Makefile`.

New way: Create a separate package for every board, and build the
device trees via the kernel's standard interface for building external
modules. This has two main advantages:

1. We can easily interpose a patched version of an upstream device
   tree. E.g., we can easily set the factory password.

2. It is much easier to get an overview of which boards are enabled,
   rather than scrolling back and forth in the `_INTREE_DTS_NAME` list.

Enable all fully supported boards in the defconfigs.
2024-12-04 11:27:03 +01:00