Commit Graph
138 Commits
Author SHA1 Message Date
Joachim Wiberg 834f325097 board/aarch64: update RPi64 ddocs a bit
[skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-11-20 19:51:05 +01:00
Joachim Wiberg 762ae77158 board: update factory-configs with dhcpv4 vendor-class
Devices should tell the server what they are in case an administrator
wants to group or hand out dedicated leases and information to some
devices on the lan.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-11-20 10:45:42 +01:00
Mattias Walström b98b8b57ee bpi-r3: uboot: add extra eMMC commands
expose mmc bootpart e.g.
2025-11-15 14:46:24 +01:00
Mattias Walström 154393d2dd bpi-r3: Update README
* Correct switch modes for NAND
* Remove bootbus
2025-11-15 11:52:04 +01:00
Joachim Wiberg baf554248d board/aarch64: update bpi-r3 readme
[skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-11-13 00:05:19 +01:00
Joachim Wiberg 95cd83542a utils: add support for generating both sdcard and emmc images
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-11-12 23:07:59 +01:00
Mattias Walström 27073033e3 bpi-r3: Document eMMC flashing and booting with Infix 2025-11-07 21:15:56 +01:00
Mattias Walström 42195d7394 bpi-r3: Build device tree for eMMC version 2025-11-07 21:15:56 +01:00
Mattias Walström a1b5e3b63b bpi-r3: Add eMMC bootloader 2025-11-07 21:15:55 +01:00
Mattias Walström 16d53e1ce4 rpi-4: Remove product specific gen-interfaces file
This could not have worked, it is a read-only filesystem, and
it should not be there since rpi-4 has it's own factory-config.

This fix #1191
2025-11-07 08:38:32 +01:00
Joachim Wiberg 7f555fd2bd confd: relocate /dhcp-client to /interfaces/interface/ipv4/dhcp
Please note, this change drops not only the global enabled flag, but also the
per-interface enabled flag, converting it to a presence container.  The name
of the container is also shortened from dhcp-client -> dhcp.  A pattern that
expected to be reused also for the DHCPv6 client.

Fixes #1109

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-11-06 16:36:56 +01:00
Joachim Wiberg 45efa9484e board/common: speed up mounting and boot
Reduce /var image size to 128M (resized at first boot anyway) and tune
mke2fs options for faster mounting.  Set ext4 'uninit_bg' feature and
use '-m 0 -i 4096' extraargs in genimage to optimize filesystem creation
and reduce overhead.  The genimage tool has several tweaks enabled by
default already, the 'uninit_bg' feature speeds up the time to check
the file system.

Disable periodic fsck with tune2fs at boot while keeping safety checks
intact.  Adjust mount options in fstab to reduce journal syncs and
improve boot time.

Fix severe performance regression in find_partition_by_label() that was
calling sgdisk on every block device including virtual devices (ram, loop,
dm-mapper). This caused boot delays of up to 24 seconds on systems with
many block devices. Now skip virtual devices that don't have GPT tables,
reducing the delay to ~2 seconds.

Also clean up is_mmc() function to use cached result.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-11-01 23:05:19 +01:00
Joachim Wiberg 97d4068f68 board: raspberrypi-rpi64: rename SD card image from rpi4 to rpi64
Align the SD card image naming with the board name for consistency.

[skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 22:57:37 +01:00
Joachim Wiberg daf8b29178 uttls/mkimage.sh: consolidate sdcard.img generation
This commit consolidates mkimage.sh scripts into a unified SD card image
creation tool that works for all boards.  It needs a bootloader an $ARCH
rootfs.squashfs image and a genimage.cfg.in template.

- Detects build directories from `O=` environment variable or `output/`
- Sources `.config` to discover Buildroot paths
- Uses Buildroot's `support/scripts/genimage.sh` when available
- Automatically generates `.bmap` files if `bmaptool` is available
- Fallback to direct `genimage` invocation if wrapper not found

See the online instructions for usage.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:09 +01:00
Joachim Wiberg 24755e7e5f board/aarch64: add broken-flow-control interface quirk
Add new interface quirk to allow skipping disabling of flow control on
all RPi 3B/4B devices that have the smsc95xx driver.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:08 +01:00
Joachim Wiberg 4b55e38741 board/aarch64: use %m modifier in default xPi hostnames
The xPi's usually don't have a VPD so the chassis mac-address probed at
boot is usually null in /run/system.json.  This commit adds a fallbkack
mechanism to populate this field so it can be used for unique hostnames
even on these boards.

Ths ietf-hardware.yang model does not have a notion of physical address,
so we augment one tht is generic enought to be used for other hardware
components than Ethernet, similar to what ietf-interfaces.yang use.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:08 +01:00
Joachim Wiberg c66c0b46b5 board/aarch64: update BPi-R3 factory-config
- Enable bridging of LAN ports in br0, default IP: 192.168.0.1/24
- Enable firewall with two zones: 'wan' and 'lan', policy: lan-to-wan
- Enable DHCP server on br0

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:07 +01:00
Joachim Wiberg 7784e68347 board/aarch64: bump NanoPi R2S to tier 2 status
This commit drops the board specific defconfig in favor of proper BSP
support for the FriendlyARM NanoPi R2S to Infix as part of the default
Aarch64 build.

The name FriendlyARM was elected over FriendlyELEC ("new" name) to be
consistent with both kernel and Buildroot naming standards.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:07 +01:00
Joachim Wiberg ab56c1be50 Relocate src/board/* and package/board/* to board/
This commit consolidates all BSP support files into the Buildroot standard
board/ directory.  The concept of selectable boards in menuconfig remains
as-is but now lives in board/ instead.

Drop support for board-specific post-build.sh scripts, not needed atm. and
we should really use Buildroot _POST_INSTALL_HOOKS in the board .mk files
instead.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:06 +01:00
Joachim Wiberg 8af593707a Rename raspberry-pi-4 -> raspberry-pi64
With the additional support for RPi3, including Zero 2W, this commit renames
all relevant directories and Config.In options to match.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:06 +01:00
Joachim Wiberg 3265f46990 board/aarch64: ensure dwc2 controller is in host mode
The DWC2 controller is a very common IP block in ARM and RiscV SoCs.  With the
USB subsystem back to a built-in we can now enable host mode for the DWC2 (USB
2.0) ports on RPi.  It also opens up for merging the NanoPi R2S into the
generic aarch64 build.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:26:02 +01:00
Joachim Wiberg 937d4c38c7 board: make usb subsystem a built-in
Use kernel cmdline option 'usbcore.authorized_default=2' to lock all
external/user-visible USB ports by default.

The kernel distinguishes internal vs external USB ports using ACPI
methods (_UPC and _PLD) on x86/x86_64 systems.  On ACPI systems, ports
marked as non-visible but connectable are considered internal (e.g.,
hard-wired USB-to-Ethernet adapters) and are automatically authorized,
while user-visible external ports require manual authorization.

However, on device tree systems the kernel lacks a standard mechanism
for identifying internal ports. The 'authorized_default=2' setting falls
back to requiring authorization for all devices on these platforms,

We list user-accessible USB ports in the device tree ('usb-ports' and
'usb-port-names'), with unlisted ports being implicitly internal and
managed separately.

Fixes #1065

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:25:59 +01:00
Joachim Wiberg b2a41e4868 board: drop team support, add common USB to Ethernet drivers
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-31 13:25:59 +01:00
Joachim Wiberg b3ea0f3207 board/aarch64: add support for std partition labels on cmdline
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-13 21:24:15 +02:00
Joachim Wiberg d715f02da0 board: enable rauc upgrade history and event logging (json)
The rauc event logger is a separate glib logger that by default logs to
the system console, with annoying ANSI escape sequences.  This commit
drops the default stdout/stderr redirect of these log messages and adds
a more exhaustive bundle install and event log, in json format, instead.

For more information about event logging, see the rauc documentation:
https://rauc.readthedocs.io/en/latest/advanced.html

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 21:32:59 +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
Joachim Wiberg 4417465135 Update factory-config.cfg for NanoPi and RPi
The motd-banner was behind on the new slogan:

.-------.
|  . .  | Infix OS — Immutable.Friendly.Secure
|-. v .-| https://kernelkit.org
'-'---'-'

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-07 19:30:21 +02:00
Mattias Walström 8abc27e698 board: rpi4: Use a more minimal xorg.conf 2025-08-23 23:45:41 +02:00
Mattias Walström e6bd55c0be doc: Document Raspberry pi support
Including touchscreen support.
2025-08-22 22:23:07 +02:00
Joachim Wiberg eefe84fd4b configs: update dependencies for fireant and disable CONFIG_MMC_PCI
The board/common/uboot/extras.config was updated with CONFIG_MMC_PCI
*after* we last built the SparX5i bootloader, and this was really only
needed for the Qemu build, so let's move the requirement there.

Also, we now (Buildroot 2025.02) need to update the dependencies for the
Fireant bootloader with libbsd (for some reason) and dtc, of course.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-08-12 10:46:35 +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
Joachim Wiberg ff4e20221c configs,rpi4: complete port, Infix booting
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-05-25 23:15:37 +02:00
Joachim Wiberg 808edf0a29 configs,rpi4: quirk, phy-detached-when-down
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-05-25 23:15:36 +02:00
Joachim Wiberg 3f68e297ef configs,rpi4: quirk, override /etc/watchdogd.conf
Apparently the BCM2835 watchdog driver does not hook into /dev/watchdog
but creates its own /dev/watchdog0, and is very picky about interval and
timeout as well it seems.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-05-25 23:15:36 +02:00
Joachim Wiberg 0158fe1adb configs,rpi4: add factory default password
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-05-25 23:15:35 +02:00
Joachim Wiberg 4345ec1694 configs,rpi4: switch to mainline kernel, fix console access
- switch to 6.12 LTS, same as other Infix boards
 - trim down kernel config a bit
 - sync defconfig with r2s to switch to Finit

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-05-25 23:15:35 +02:00
Joachim Wiberg ebace5020b configs: new rpi4_defconfig
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-05-25 20:37:27 +02:00
Joachim Wiberg 71b11026bb configs/r2s_defconfig: bump kernel to 6.12.21 (LTS)
- Bump kernel to 6.12.21, same as other tier one boards
 - Fix #1006 byt enabling netlink for ethtool (now works!)
 - Sync defconfigs:
   - LIBXCRYPT now in an rdep of another package
   - Disable FORCE check hashes for now
 - Drop patches for 6.10 tree (r2s kernel)
 - Port RTL8153b patch for R2S LAN LED support

Fixes #1006

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-04-07 05:54:54 +02:00
Jon-Olov Vatn 267c8e0103 Fix #787 Add doc on Mgmt via Console (and SSH and Web)
- Updating SSH information
- Adding Web services information (general, RESTCONF and Web Console)
- Adding Console information
  Generic info, and some updates w.r.t specific boards (baudrate, etc)
2025-01-29 12:27:48 +01:00
Tobias Waldekranz 27b7d831d0 styx-dcp-sc-28p: Move board specific overlay files to package
This way, we only install these files if the board is enabled.
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
Tobias Waldekranz a3f85a3872 linux: Upgrade to 6.12.1
Exploratory change to smoke out any regressions that this might
introduce.
2024-12-04 11:27:03 +01:00
Joachim Wiberg 5d524006a3 board/aarch64: styx: led setup using a plain script at boot
After the initial probe, set up all port leds:

 - Disable all LEDs
 - Enable netdev trigger for all green LEDs (tp + sfp)
 - Enable link statux and rx/tx activity
 - Skip all aux LEDs

Also in script, a neat little flash function that can be used both for a
production test, to verify all LEDs work, and at runtime to locate the
device in a rack of devicess.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-11-08 14:30:04 +01:00
Joachim Wiberg 4c1de659cb board/aarch64: styx: rename second green led and drop second sfp led
On Rev. B, the second LED on the copper ports is green instead of yellow.
This patch renames them from yellow -> aux => <device>:aux:tp

Also on Rev. B, the second LED for SFP ports do not work at all.  This
patch drops them from the device tree to avoid confusion.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-11-08 14:30:04 +01:00
Joachim Wiberg 3b01f2d806 Revert "board/aarch64: styx: Remove unconnected LED"
This reverts commit 7d1a708274.  Turns out
the second LED is actually connected.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-11-08 14:30:04 +01:00
Joachim Wiberg ae82f7fdcf board/aarch64: disable rtc on styx, all revs
The RTC in the CN913x series does not have any "valid" bit, and this
board (all revs) does not have any backup power connected, so it will
return garbage values after every vold boot.

It was therefore decided to disable the RTC completely and set system
time manually, or using an NTP client.  This way any time skips would
only ever be forward, never backwards.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-11-03 22:14:00 +01:00
Mattias Walström b0f4192f24 kernel: Reboot device if kernel panics
The worst way of handling a kernel crash is to do nothing at all.
2024-10-31 15:55:47 +01:00
Joachim Wiberg a7e7b75a97 board/aarch64: update r2s factory-config
- add default-deny-all rule from 2341e07
 - enable iburst for the ntp client (quicker initial sync)
 - bump meta version (to skip .cfg migration at boot)

Fix #750 [skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-10-23 08:04:31 +02:00
Joachim Wiberg d7abe46768 board/aarch64: disable port led control on styx, for now
For details, see discussion in #670

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-10-17 13:03:29 +02:00
Joachim Wiberg 025c3ab7f6 doc: new setting on general interface settings
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2024-10-11 16:41:21 +02:00