From 24d8aa9cd0d6a558b76b1f20a64b2ff8b7451b0f Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 15:25:17 +0200 Subject: [PATCH 01/10] patches/frr: fix mgmtd crash on 32-bit Arm mgmtd hands its message handlers pointers into the receive stream, where messages are packed back to back, so some start unaligned. On 32-bit Arm GCC uses VFP stores for their 64-bit members, which the kernel cannot fix up, and mgmtd dies with SIGBUS as soon as a notification is sent. Signed-off-by: Joachim Wiberg --- doc/ChangeLog.md | 2 + ...msg-hand-handlers-an-aligned-message.patch | 65 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 patches/frr/10.5.5/0005-lib-mgmt_msg-hand-handlers-an-aligned-message.patch diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index db6afc3d7..1ac567296 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -34,6 +34,8 @@ All notable changes to the project are documented in this file. capabilities, in the CLI, the WebUI, and the operational datastore - The manufacturer from a VPD was not shown as `mfg-name` of its `vpd-*` component in the operational datastore +- Fix FRR mgmtd crash loop on 32-bit Arm, caused by unaligned access to + messages received from other daemons [v26.09.0][] - 2026-09-30 ------------------------- diff --git a/patches/frr/10.5.5/0005-lib-mgmt_msg-hand-handlers-an-aligned-message.patch b/patches/frr/10.5.5/0005-lib-mgmt_msg-hand-handlers-an-aligned-message.patch new file mode 100644 index 000000000..8ce645cc5 --- /dev/null +++ b/patches/frr/10.5.5/0005-lib-mgmt_msg-hand-handlers-an-aligned-message.patch @@ -0,0 +1,65 @@ +From 6088ca29476f8776426348ab413ddc4eccc6760b Mon Sep 17 00:00:00 2001 +From: Joachim Wiberg +Date: Sun, 4 Oct 2026 15:15:28 +0200 +Subject: [PATCH] lib: mgmt_msg: hand handlers an aligned message +Organization: Wires + +mgmt_msg_procbufs() passes handlers a pointer into the receive stream, +where messages are packed back to back. A message following one whose +length is not a multiple of 8 starts unaligned, and the native message +structs have 64-bit members. On 32-bit Arm GCC may use a VFP store for +those, e.g., `msg->refer_id = 0` in mgmt_fe_adapter_send_notify(), which +the kernel cannot fix up, so mgmtd dies with SIGBUS: + + Alignment trap: not handling instruction edc30b02 at [<00441bfc>] + Unhandled fault: alignment exception (0x801) at 0x023c3f8e + +Copy unaligned messages to an aligned buffer before calling the handler. + +--- + lib/mgmt_msg.c | 27 +++++++++++++++++++++++---- + 1 file changed, 23 insertions(+), 4 deletions(-) + +diff --git a/lib/mgmt_msg.c b/lib/mgmt_msg.c +index 8f22b31231..c341872dc4 100644 +--- a/lib/mgmt_msg.c ++++ b/lib/mgmt_msg.c +@@ -180,15 +180,34 @@ bool mgmt_msg_procbufs(struct mgmt_msg_state *ms, + + for (; left > sizeof(struct mgmt_msg_hdr); + left -= mhdr->len, data += mhdr->len) { ++ uint8_t *msg, *copy = NULL; ++ size_t msglen; ++ + mhdr = (struct mgmt_msg_hdr *)data; + + assert(MGMT_MSG_IS_MARKER(mhdr->marker)); ++ assert(mhdr->len >= sizeof(struct mgmt_msg_hdr)); + assert(left >= mhdr->len); + +- handle_msg(MGMT_MSG_MARKER_VERSION(mhdr->marker), +- (uint8_t *)(mhdr + 1), +- mhdr->len - sizeof(struct mgmt_msg_hdr), +- user); ++ msg = (uint8_t *)(mhdr + 1); ++ msglen = mhdr->len - sizeof(struct mgmt_msg_hdr); ++ ++ /* ++ * Messages are packed back to back, so one following a ++ * message whose length is not a multiple of 8 starts ++ * unaligned. Handlers cast it to structs with 64-bit ++ * members, which traps on 32-bit Arm when the compiler ++ * uses VFP/NEON stores, so give them an aligned copy. ++ */ ++ if ((uintptr_t)msg % sizeof(uint64_t)) { ++ copy = XMALLOC(MTYPE_TMP, msglen); ++ memcpy(copy, msg, msglen); ++ msg = copy; ++ } ++ ++ handle_msg(MGMT_MSG_MARKER_VERSION(mhdr->marker), msg, ++ msglen, user); ++ XFREE(MTYPE_TMP, copy); + ms->nrxm++; + nproc++; + } From 9c46fdca5ea0902070817d26aa9430205ee2446f Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 15:25:02 +0200 Subject: [PATCH 02/10] board/common: let boards enable SDHCI in U-Boot Every board with an SDHCI controller already enables MMC_SDHCI in its own U-Boot defconfig, so the common fragment only forced the driver on boards with other MMC controllers. On sunxi this breaks the SPL build, which has no DM_MMC and cannot compile sdhci.c. Signed-off-by: Joachim Wiberg --- board/common/uboot/extras.config | 1 - 1 file changed, 1 deletion(-) diff --git a/board/common/uboot/extras.config b/board/common/uboot/extras.config index 0037106a7..d88e46ed6 100644 --- a/board/common/uboot/extras.config +++ b/board/common/uboot/extras.config @@ -19,7 +19,6 @@ CONFIG_CMD_SETEXPR_FMT=y CONFIG_MMC=y -CONFIG_MMC_SDHCI=y CONFIG_CMD_MMC=y CONFIG_FS_SQUASHFS=y From 99334f958cde8882ae22804670c4494caadd9295 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 15:29:08 +0200 Subject: [PATCH 03/10] board/arm: add support for Banana Pi BPI-M1 The first Banana Pi, an Allwinner A20 board. Mainline U-Boot builds the SPL and U-Boot together from its Bananapi defconfig, and the A20 boot ROM loads them from 8 KiB into the SD card, so the GPT partition entries are moved to 1 MiB. The sunxi board code resets fdtfile after the environment is imported, dropping the vendor directory on 32-bit Arm, so ixvariant sets it again at preboot. POWER_SUPPLY is enabled explicitly, the sun4i USB PHY depends on it and the shared kernel config does not set it. GPIOLIB is added to the shared arm kernel config. Without it LEDS_GPIO and LEDS_TRIGGER_GPIO are dropped before any board fixup has selected a GPIO driver, so GPIO LEDs were missing on all 32-bit Arm boards. The board is enabled in the arm defconfigs like the other 32-bit boards, disable BR2_PACKAGE_BANANAPI_BPI_M1 to leave it out of a build. Signed-off-by: Joachim Wiberg --- .github/workflows/build-boot.yml | 1 + .github/workflows/build-image.yml | 6 + board/arm/Config.in | 1 + board/arm/README.md | 1 + board/arm/bananapi-bpi-m1/Config.in | 9 + board/arm/bananapi-bpi-m1/LICENSE | 13 + board/arm/bananapi-bpi-m1/README.md | 114 +++++++ .../arm/bananapi-bpi-m1/bananapi-bpi-m1.hash | 2 + board/arm/bananapi-bpi-m1/bananapi-bpi-m1.mk | 84 +++++ board/arm/bananapi-bpi-m1/dts/Makefile | 1 + .../bananapi-bpi-m1/dts/allwinner/infix.dtsi | 13 + .../dts/allwinner/sun7i-a20-bananapi.dts | 21 ++ board/arm/bananapi-bpi-m1/genimage.cfg.in | 78 +++++ .../lemaker,bananapi/etc/factory-config.cfg | 311 ++++++++++++++++++ .../finit.d/enabled/input-event-daemon.conf | 1 + .../product/lemaker,bananapi/etc/iitod.json | 124 +++++++ .../etc/input-event-daemon.conf | 5 + .../etc/udev/rules.d/70-power-key.rules | 1 + board/arm/bananapi-bpi-m1/uart-pins.png | Bin 0 -> 217766 bytes .../arm/bananapi-bpi-m1/uboot/bpi-m1-env.dtsi | 25 ++ board/arm/bananapi-bpi-m1/uboot/extras.config | 6 + board/arm/linux_defconfig | 1 + configs/arm_defconfig | 1 + configs/arm_minimal_defconfig | 1 + configs/bpi_m1_boot_defconfig | 38 +++ doc/ChangeLog.md | 2 + utils/mkimage.sh | 3 + 27 files changed, 863 insertions(+) create mode 100644 board/arm/bananapi-bpi-m1/Config.in create mode 100644 board/arm/bananapi-bpi-m1/LICENSE create mode 100644 board/arm/bananapi-bpi-m1/README.md create mode 100644 board/arm/bananapi-bpi-m1/bananapi-bpi-m1.hash create mode 100644 board/arm/bananapi-bpi-m1/bananapi-bpi-m1.mk create mode 100644 board/arm/bananapi-bpi-m1/dts/Makefile create mode 100644 board/arm/bananapi-bpi-m1/dts/allwinner/infix.dtsi create mode 100644 board/arm/bananapi-bpi-m1/dts/allwinner/sun7i-a20-bananapi.dts create mode 100644 board/arm/bananapi-bpi-m1/genimage.cfg.in create mode 100644 board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/factory-config.cfg create mode 120000 board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/finit.d/enabled/input-event-daemon.conf create mode 100644 board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json create mode 100644 board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/input-event-daemon.conf create mode 100644 board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/udev/rules.d/70-power-key.rules create mode 100644 board/arm/bananapi-bpi-m1/uart-pins.png create mode 100644 board/arm/bananapi-bpi-m1/uboot/bpi-m1-env.dtsi create mode 100644 board/arm/bananapi-bpi-m1/uboot/extras.config create mode 100644 configs/bpi_m1_boot_defconfig diff --git a/.github/workflows/build-boot.yml b/.github/workflows/build-boot.yml index 26b62920c..6c3a058c2 100644 --- a/.github/workflows/build-boot.yml +++ b/.github/workflows/build-boot.yml @@ -17,6 +17,7 @@ jobs: matrix: defconfig: - aarch64_qemu_boot + - bpi_m1_boot - bpi_r3_sd_boot - bpi_r3_emmc_boot - bpi_r4_sd_boot diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index d13fe1415..8c0625200 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -10,6 +10,7 @@ on: options: - raspberrypi-rpi2 - raspberrypi-rpi64 + - bananapi-bpi-m1 - bananapi-bpi-r3 - bananapi-bpi-r4 - bananapi-bpi-r64 @@ -69,6 +70,11 @@ jobs: targets="sdcard" bootloader_sdcard=rpi64-boot ;; + bananapi-bpi-m1) + arch=arm + targets="sdcard" + bootloader_sdcard=bpi-m1-boot + ;; bananapi-bpi-r3) arch=aarch64 targets="sdcard emmc" diff --git a/board/arm/Config.in b/board/arm/Config.in index 7d30b9695..d465cee1f 100644 --- a/board/arm/Config.in +++ b/board/arm/Config.in @@ -1,5 +1,6 @@ if BR2_arm +source "$BR2_EXTERNAL_INFIX_PATH/board/arm/bananapi-bpi-m1/Config.in" source "$BR2_EXTERNAL_INFIX_PATH/board/arm/microchip-sama7g54-ek/Config.in" source "$BR2_EXTERNAL_INFIX_PATH/board/arm/raspberrypi-rpi2/Config.in" diff --git a/board/arm/README.md b/board/arm/README.md index 6058d7ee3..0768b6bef 100644 --- a/board/arm/README.md +++ b/board/arm/README.md @@ -4,5 +4,6 @@ Arm 32-bit Board Specific Documentation ---------------------------- +- [Banana Pi BPI-M1 (32-bit)](bananapi-bpi-m1/) - [Microchip SAMA7G54-EK (32-bit)](microchip-sama7g54-ek/) - [Raspberry Pi 2 Model B (32-bit)](raspberrypi-rpi2/) diff --git a/board/arm/bananapi-bpi-m1/Config.in b/board/arm/bananapi-bpi-m1/Config.in new file mode 100644 index 000000000..e9545ba29 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_BANANAPI_BPI_M1 + bool "Banana Pi BPI-M1" + depends on BR2_arm + select SDCARD_AUX + select BR2_PACKAGE_INPUT_EVENT_DAEMON + help + Support for the Banana Pi BPI-M1 single-board computer, the + first Banana Pi, with an Allwinner A20 dual-core Cortex-A7, + 1 GiB DDR3, Gigabit Ethernet, SATA and an SD card slot. diff --git a/board/arm/bananapi-bpi-m1/LICENSE b/board/arm/bananapi-bpi-m1/LICENSE new file mode 100644 index 000000000..8cdb30a3a --- /dev/null +++ b/board/arm/bananapi-bpi-m1/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2026 The KernelKit Authors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/board/arm/bananapi-bpi-m1/README.md b/board/arm/bananapi-bpi-m1/README.md new file mode 100644 index 000000000..572354827 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/README.md @@ -0,0 +1,114 @@ +Banana Pi BPI-M1 +================ + +The [BPI-M1][1] is the first Banana Pi board, powered by the Allwinner +A20 dual-core Cortex-A7 @ 1 GHz with 1 GB DDR3 RAM. + +The board features: + +- Gigabit Ethernet +- SD card slot (full size) +- SATA 2.0 port +- 2x USB 2.0 host, 1x micro USB OTG +- HDMI, composite video and audio out +- 26-pin GPIO header + +> [!NOTE] +> The BPI-M1+ is a different board with its own device tree and is not +> covered by this BSP. + +How to Build +------------ + +There are no pre-built images for ARM 32-bit, so build both Infix and +the bootloader from source. + +1. Build the bootloader + + make O=x-boot-bpi-m1 bpi_m1_boot_defconfig + make O=x-boot-bpi-m1 + +2. Build Infix + + make O=x-arm arm_defconfig + make O=x-arm + +3. Create the SD card image + + ./utils/mkimage.sh -b x-boot-bpi-m1 -r x-arm bananapi-bpi-m1 + +To test only the bootloader, e.g., to verify the console, create a +boot-only image after step 1: + + ./utils/mkimage.sh -B -b x-boot-bpi-m1 bananapi-bpi-m1 + +Flashing to SD Card +------------------- + +[Flash the image][0] to an SD card (at least 2 GB): + +```bash +sudo bmaptool copy x-boot-bpi-m1/images/infix-bpi-m1-sdcard.img /dev/sdX +``` + +> [!WARNING] +> Ensure `/dev/sdX` is the correct device for your SD card and not used +> by the host system! Use `lsblk` to verify. + +Booting the Board +----------------- + +1. Insert the flashed SD card +2. Connect an Ethernet cable +3. Power up the board, 5V DC via the micro USB port +4. Find the assigned IP and SSH in, default login: `admin` / `admin` + +The board has no user button, so U-Boot always runs in developer mode. +Use `bootmenu` on the console for factory reset. + +LEDs and Buttons +---------------- + +| **Stage** | **USR** (green) | +|----------------|-----------------| +| U-Boot | on | +| System loading | 1 Hz | +| System up | on | +| Locate | 1 Hz | +| Fail safe | 5 Hz | +| Panic | 5 Hz | + +The Ethernet port LEDs show link and activity. + +The power button powers on the board, and a short press when running +powers it off. The reset button is a hardware reset. + +Unsupported Features +-------------------- + +The following hardware has no driver enabled in Infix: + +- Analog audio and composite video out +- HDMI audio, not supported by mainline Linux on the A20 +- IR receiver +- Micro USB OTG port +- Mali-400 GPU and video decoder + +Console Port +------------ + +UART pins + +The debug console is UART0, TX and RX on header J11 and GND on the +neighboring header J12: + +- Baud rate: 115200 +- Data bits: 8 +- Parity: None +- Stop bits: 1 + +> [!WARNING] +> Use only 3.3V serial adapters. + +[0]: https://www.kernelkit.org/posts/flashing-sdcard/ +[1]: https://docs.banana-pi.org/en/BPI-M1/BananaPi_BPI-M1 diff --git a/board/arm/bananapi-bpi-m1/bananapi-bpi-m1.hash b/board/arm/bananapi-bpi-m1/bananapi-bpi-m1.hash new file mode 100644 index 000000000..2b1e74432 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/bananapi-bpi-m1.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 d48246c717b505cc11df95171f2fd548b389e1a463f1af4c68d0b69fe0d1009b LICENSE diff --git a/board/arm/bananapi-bpi-m1/bananapi-bpi-m1.mk b/board/arm/bananapi-bpi-m1/bananapi-bpi-m1.mk new file mode 100644 index 000000000..7259b6fa7 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/bananapi-bpi-m1.mk @@ -0,0 +1,84 @@ +# Banana Pi BPI-M1 kernel configuration fixups +define BANANAPI_BPI_M1_LINUX_CONFIG_FIXUPS + # Allwinner A20 SoC + $(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_SUNXI) + $(call KCONFIG_ENABLE_OPT,CONFIG_MACH_SUN7I) + $(call KCONFIG_ENABLE_OPT,CONFIG_SUNXI_SRAM) + + # Serial console + $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250) + $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_CONSOLE) + $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_DW) + + # Network: GMAC with Realtek PHY + $(call KCONFIG_ENABLE_OPT,CONFIG_NET_VENDOR_STMICRO) + $(call KCONFIG_ENABLE_OPT,CONFIG_STMMAC_ETH) + $(call KCONFIG_ENABLE_OPT,CONFIG_STMMAC_PLATFORM) + $(call KCONFIG_ENABLE_OPT,CONFIG_DWMAC_SUNXI) + $(call KCONFIG_ENABLE_OPT,CONFIG_REALTEK_PHY) + + # MMC/SD and SATA + $(call KCONFIG_ENABLE_OPT,CONFIG_MMC_SUNXI) + $(call KCONFIG_ENABLE_OPT,CONFIG_AHCI_SUNXI) + + # AXP209 PMIC, supplies the CPU and USB VBUS regulators + $(call KCONFIG_ENABLE_OPT,CONFIG_I2C) + $(call KCONFIG_ENABLE_OPT,CONFIG_I2C_MV64XXX) + $(call KCONFIG_ENABLE_OPT,CONFIG_MFD_AXP20X_I2C) + $(call KCONFIG_ENABLE_OPT,CONFIG_REGULATOR_AXP20X) + + # USB Host, the PHY depends on POWER_SUPPLY, with keyboard and mouse + $(call KCONFIG_ENABLE_OPT,CONFIG_POWER_SUPPLY) + $(call KCONFIG_ENABLE_OPT,CONFIG_PHY_SUN4I_USB) + $(call KCONFIG_SET_OPT,CONFIG_USB_EHCI_HCD,m) + $(call KCONFIG_SET_OPT,CONFIG_USB_EHCI_HCD_PLATFORM,m) + $(call KCONFIG_SET_OPT,CONFIG_USB_OHCI_HCD,m) + $(call KCONFIG_SET_OPT,CONFIG_USB_OHCI_HCD_PLATFORM,m) + $(call KCONFIG_ENABLE_OPT,CONFIG_USB_HID) + $(call KCONFIG_SET_OPT,CONFIG_HID_GENERIC,m) + + # Power button on the AXP209, KEY_POWER for input-event-daemon + $(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_MISC) + $(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_AXP20X_PEK) + + # SPI header + $(call KCONFIG_ENABLE_OPT,CONFIG_SPI_SUN4I) + + # Temperature: SoC sensor in the touchscreen controller, used by + # the cpu-thermal zone to throttle, and AXP209 die temp over IIO + $(call KCONFIG_ENABLE_OPT,CONFIG_TOUCHSCREEN_SUN4I) + $(call KCONFIG_ENABLE_OPT,CONFIG_CPU_THERMAL) + $(call KCONFIG_ENABLE_OPT,CONFIG_IIO) + $(call KCONFIG_ENABLE_OPT,CONFIG_AXP20X_ADC) + $(call KCONFIG_ENABLE_OPT,CONFIG_SENSORS_IIO_HWMON) + + # LEDs: green user LED on GPIO, RTL8211E PHY LEDs offloaded to + # the PHY with the netdev trigger + $(call KCONFIG_ENABLE_OPT,CONFIG_LEDS_GPIO) + $(call KCONFIG_ENABLE_OPT,CONFIG_LEDS_TRIGGER_NETDEV) + + # HDMI output with framebuffer console, no HDMI audio in mainline + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM) + $(call KCONFIG_SET_OPT,CONFIG_DRM_SUN4I,m) + $(call KCONFIG_SET_OPT,CONFIG_DRM_SUN4I_HDMI,m) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_SUN4I_HDMI_CEC) + $(call KCONFIG_SET_OPT,CONFIG_DRM_SUN4I_BACKEND,m) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_EMULATION) + $(call KCONFIG_ENABLE_OPT,CONFIG_FB) + $(call KCONFIG_ENABLE_OPT,CONFIG_FRAMEBUFFER_CONSOLE) + + # Watchdog, RTC and SID (unique chip ID) + $(call KCONFIG_ENABLE_OPT,CONFIG_WATCHDOG) + $(call KCONFIG_ENABLE_OPT,CONFIG_SUNXI_WATCHDOG) + $(call KCONFIG_ENABLE_OPT,CONFIG_RTC_CLASS) + $(call KCONFIG_ENABLE_OPT,CONFIG_RTC_DRV_SUNXI) + $(call KCONFIG_ENABLE_OPT,CONFIG_NVMEM) + $(call KCONFIG_ENABLE_OPT,CONFIG_NVMEM_SUNXI_SID) + + # Crypto hardware acceleration + $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_DEV_ALLWINNER) + $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_DEV_SUN4I_SS) +endef + +$(eval $(ix-board)) +$(eval $(generic-package)) diff --git a/board/arm/bananapi-bpi-m1/dts/Makefile b/board/arm/bananapi-bpi-m1/dts/Makefile new file mode 100644 index 000000000..eeac3f151 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/dts/Makefile @@ -0,0 +1 @@ +dtb-y += allwinner/sun7i-a20-bananapi.dtb diff --git a/board/arm/bananapi-bpi-m1/dts/allwinner/infix.dtsi b/board/arm/bananapi-bpi-m1/dts/allwinner/infix.dtsi new file mode 100644 index 000000000..16cfafc86 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/dts/allwinner/infix.dtsi @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Common Infix OS defaults + */ + +/ { + chosen { + infix { + /* Default admin user password: 'admin' */ + factory-password-hash = "$5$mI/zpOAqZYKLC2WU$i7iPzZiIjOjrBF3NyftS9CCq8dfYwHwrmUK097Jca9A"; + }; + }; +}; diff --git a/board/arm/bananapi-bpi-m1/dts/allwinner/sun7i-a20-bananapi.dts b/board/arm/bananapi-bpi-m1/dts/allwinner/sun7i-a20-bananapi.dts new file mode 100644 index 000000000..662940942 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/dts/allwinner/sun7i-a20-bananapi.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Infix OS device tree for Banana Pi BPI-M1 + */ + +#include +#include "infix.dtsi" + +/* Only used by arch/arm topology to compare cores, silences boot errors */ +&cpu0 { + clock-frequency = <960000000>; +}; + +&cpu1 { + clock-frequency = <960000000>; +}; + +/* Keep the LED lit by U-Boot until iitod takes over */ +&{/leds/led} { + default-state = "keep"; +}; diff --git a/board/arm/bananapi-bpi-m1/genimage.cfg.in b/board/arm/bananapi-bpi-m1/genimage.cfg.in new file mode 100644 index 000000000..b3a21092f --- /dev/null +++ b/board/arm/bananapi-bpi-m1/genimage.cfg.in @@ -0,0 +1,78 @@ +# Disk image for Banana Pi BPI-M1 (Allwinner A20) + +image cfg.ext4 { + empty = true + temporary = true + size = 16M + + ext4 { + label = "cfg" + use-mke2fs = true + features = "uninit_bg" + extraargs = "-m 0 -i 4096" + } +} + +# The /var partition will be expanded automatically at first boot +# to use the full size of the SD-card or eMMC media. +image var.ext4 { + empty = true + temporary = true + size = 128M + + ext4 { + label = "var" + use-mke2fs = true + features = "uninit_bg" + extraargs = "-m 0 -i 4096" + } +} + +image #IX_ID##VERSION#-bpi-m1-#TARGET#.img { + hdimage { + partition-table-type = "gpt" + # The A20 boot ROM loads the SPL from 8 KiB, move the + # GPT partition entries out of its way + gpt-location = 1M + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8K + size = 1016K + } + + partition aux { + partition-uuid = D4EF35A0-0652-45A1-B3DE-D63339C82035 + image = "aux.ext4" + offset = 2M + } + + partition primary { + partition-type-uuid = 0FC63DAF-8483-4772-8E79-3D69D8477DE4 + bootable = true + size = 250M + image = "rootfs.squashfs" + } + + partition secondary { + partition-type-uuid = 0FC63DAF-8483-4772-8E79-3D69D8477DE4 + bootable = true + size = 250M + image = "rootfs.squashfs" + } + + partition cfg { + partition-uuid = 7aa497f0-73b5-47e5-b2ab-8752d8a48105 + image = "cfg.ext4" + } + + partition var { + partition-uuid = 8046A06A-E45A-4A14-A6AD-6684704A393F + image = "var.ext4" + } +} + +# Silence genimage warnings +config {} diff --git a/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/factory-config.cfg b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/factory-config.cfg new file mode 100644 index 000000000..e39e37c1d --- /dev/null +++ b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/factory-config.cfg @@ -0,0 +1,311 @@ +{ + "ieee802-dot1ab-lldp:lldp": { + "infix-lldp:enabled": true + }, + "ietf-hardware:hardware": { + "component": [ + { + "name": "USB", + "class": "infix-hardware:usb", + "state": { + "admin-state": "unlocked" + } + } + ] + }, + "ietf-interfaces:interfaces": { + "interface": [ + { + "name": "lo", + "type": "infix-if-type:loopback", + "ietf-ip:ipv4": { + "address": [ + { + "ip": "127.0.0.1", + "prefix-length": 8 + } + ] + }, + "ietf-ip:ipv6": { + "address": [ + { + "ip": "::1", + "prefix-length": 128 + } + ] + } + }, + { + "name": "eth0", + "type": "infix-if-type:ethernet", + "ietf-ip:ipv4": { + "infix-dhcp-client:dhcp": { + "option": [ + { + "id": "netmask" + }, + { + "id": "broadcast" + }, + { + "id": "router" + }, + { + "id": "domain" + }, + { + "id": "hostname", + "value": "auto" + }, + { + "id": "dns-server" + }, + { + "id": "ntp-server" + }, + { + "id": "vendor-class", + "value": "Banana Pi BPI-M1" + } + ] + } + }, + "ietf-ip:ipv6": { + "infix-dhcpv6-client:dhcp": { + "option": [ + { + "id": "ntp-server" + }, + { + "id": "client-fqdn" + }, + { + "id": "domain-search" + }, + { + "id": "dns-server" + } + ] + } + } + } + ] + }, + "ietf-keystore:keystore": { + "asymmetric-keys": { + "asymmetric-key": [ + { + "name": "gencert", + "public-key-format": "infix-crypto-types:x509-public-key-format", + "public-key": "", + "private-key-format": "infix-crypto-types:rsa-private-key-format", + "cleartext-private-key": "", + "certificates": {} + }, + { + "name": "genkey", + "public-key-format": "infix-crypto-types:ssh-public-key-format", + "public-key": "", + "private-key-format": "infix-crypto-types:rsa-private-key-format", + "cleartext-private-key": "", + "certificates": {} + } + ] + } + }, + "ietf-netconf-acm:nacm": { + "enable-nacm": true, + "read-default": "permit", + "write-default": "permit", + "exec-default": "permit", + "groups": { + "group": [ + { + "name": "admin", + "user-name": [ + "admin" + ] + }, + { + "name": "operator", + "user-name": [] + }, + { + "name": "guest", + "user-name": [] + } + ] + }, + "rule-list": [ + { + "name": "admin-acl", + "group": [ + "admin" + ], + "rule": [ + { + "name": "permit-all", + "module-name": "*", + "access-operations": "*", + "action": "permit", + "comment": "Allow 'admin' group complete access to all operations and data." + } + ] + }, + { + "name": "operator-acl", + "group": [ + "operator" + ], + "rule": [ + { + "name": "permit-system-rpcs", + "module-name": "ietf-system", + "rpc-name": "*", + "access-operations": "exec", + "action": "permit", + "comment": "Operators can reboot, shutdown, and set system time." + } + ] + }, + { + "name": "guest-acl", + "group": [ + "guest" + ], + "rule": [ + { + "name": "deny-all-write+exec", + "module-name": "*", + "access-operations": "create update delete exec", + "action": "deny", + "comment": "Guests cannot change anything or exec rpcs." + } + ] + }, + { + "name": "default-deny-all", + "group": [ + "*" + ], + "rule": [ + { + "name": "deny-password-access", + "path": "/ietf-system:system/authentication/user/password", + "access-operations": "*", + "action": "deny", + "comment": "No user except admins can access password hashes." + }, + { + "name": "deny-keystore-access", + "module-name": "ietf-keystore", + "access-operations": "*", + "action": "deny", + "comment": "No user except admins can access cryptographic keys." + }, + { + "name": "deny-truststore-access", + "module-name": "ietf-truststore", + "access-operations": "*", + "action": "deny", + "comment": "No user except admins can access trust store." + } + ] + } + ] + }, + "ietf-system:system": { + "hostname": "bpi-%m", + "infix-system:software": { + "update-url": "https://github.com/kernelkit/infix/releases.atom" + }, + "infix-schedule:schedules": { + "schedule": [ + { + "name": "nightly", + "description": "Every night at 03:00", + "recurrence": { + "frequency": "ietf-schedule:daily", + "byhour": [ + 3 + ] + } + }, + { + "name": "weekly", + "description": "Sunday nights at 03:00", + "recurrence": { + "frequency": "ietf-schedule:weekly", + "byday": [ + { + "weekday": "sunday" + } + ], + "byhour": [ + 3 + ] + } + } + ] + }, + "ntp": { + "enabled": true, + "server": [ + { + "name": "ntp.org", + "udp": { + "address": "pool.ntp.org" + }, + "iburst": true + } + ] + }, + "authentication": { + "user": [ + { + "name": "admin", + "password": "$factory$", + "infix-system:shell": "bash" + } + ] + }, + "infix-system:motd-banner": "Li0tLS0tLS0uCnwgIC4gLiAgfCBJbmZpeCBPUyDigJQgSW1tdXRhYmxlLkZyaWVuZGx5LlNlY3VyZQp8LS4gdiAuLXwgaHR0cHM6Ly9rZXJuZWxraXQub3JnCictJy0tLSctJwo=" + }, + "infix-meta:meta": { + "version": "1.10" + }, + "infix-services:mdns": { + "enabled": true + }, + "infix-services:web": { + "enabled": true, + "certificate": "gencert", + "console": { + "enabled": true + }, + "netbrowse": { + "enabled": true + }, + "restconf": { + "enabled": true + } + }, + "infix-services:ssh": { + "enabled": true, + "hostkey": [ + "genkey" + ], + "listen": [ + { + "name": "ipv4", + "address": "0.0.0.0", + "port": 22 + }, + { + "name": "ipv6", + "address": "::", + "port": 22 + } + ] + } +} diff --git a/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/finit.d/enabled/input-event-daemon.conf b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/finit.d/enabled/input-event-daemon.conf new file mode 120000 index 000000000..8238fd3b4 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/finit.d/enabled/input-event-daemon.conf @@ -0,0 +1 @@ +../available/input-event-daemon.conf \ No newline at end of file diff --git a/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json new file mode 100644 index 000000000..e80f55fa2 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json @@ -0,0 +1,124 @@ +{ + "input": { + "path": { + "locate": { + "path": "/run/led/locate" + }, + "status-prime": { + "path": "/run/led/status-prime" + }, + "status-ok": { + "path": "/run/led/status-ok" + }, + "status-err": { + "path": "/run/led/status-err" + }, + "status-crit": { + "path": "/run/led/status-crit" + }, + "fault-prime": { + "path": "/run/led/fault-prime" + }, + "fault-ok": { + "path": "/run/led/fault-ok" + }, + "fault-err": { + "path": "/run/led/fault-err" + }, + "fault-crit": { + "path": "/run/led/fault-crit" + }, + "startup": { + "path": "/run/finit/cond/usr/startup-config-ok" + }, + "fail-safe": { + "path": "/run/finit/cond/usr/failure-config-ok" + }, + "panic": { + "path": "/run/finit/cond/usr/failure-config-error" + } + }, + "udev": { + "power-a": { + "subsystem": "power_supply" + }, + "power-b": { + "subsystem": "power_supply" + } + } + }, + "output": { + "led-group": { + "port-link-act": { + "match": [ + "*:green:tp", + "*:green:sfp", + "*:green:port" + ], + "rules": [ + { + "if": "true", + "then": { + "trigger": "netdev", + "link": 1, + "rx": 1, + "tx": 1 + } + } + ] + }, + "port-alarm": { + "match": [ + "*:yellow:tp", + "*:yellow:sfp", + "*:yellow:port" + ], + "rules": [] + } + }, + "led": { + "bananapi:green:usr": { + "rules": [ + { + "if": "locate", + "then": "@blink-1hz" + }, + { + "if": "panic", + "then": "@blink-5hz" + }, + { + "if": "fail-safe", + "then": "@blink-5hz" + }, + { + "if": "startup", + "then": "@on" + }, + { + "if": "true", + "then": "@blink-1hz" + } + ] + } + } + }, + "aliases": { + "on": { + "brightness": true + }, + "off": { + "brightness": false + }, + "blink-1hz": { + "trigger": "timer", + "delay_on": 500, + "delay_off": 500 + }, + "blink-5hz": { + "trigger": "timer", + "delay_on": 100, + "delay_off": 100 + } + } +} diff --git a/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/input-event-daemon.conf b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/input-event-daemon.conf new file mode 100644 index 000000000..eb969fb68 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/input-event-daemon.conf @@ -0,0 +1,5 @@ +[Global] +listen = /dev/input/power-key + +[Keys] +POWER = poweroff diff --git a/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/udev/rules.d/70-power-key.rules b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/udev/rules.d/70-power-key.rules new file mode 100644 index 000000000..9d1f1b10d --- /dev/null +++ b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/udev/rules.d/70-power-key.rules @@ -0,0 +1 @@ +ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="axp20x-pek", SYMLINK+="input/power-key" diff --git a/board/arm/bananapi-bpi-m1/uart-pins.png b/board/arm/bananapi-bpi-m1/uart-pins.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e5b5304a70834d90d31691bd50c456445890b9 GIT binary patch literal 217766 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�U1mf`6N7B-Sl3cq~ervm%A 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

`3JZ=M?CdT+AtW@j2+|e=qQUd<}|d`PCEa2$+=m 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

$iKVJO3h+t(HrP&K4a* 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%0A8b5R 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 z z+?0&=^;28Y9U`6m_lLeCJNt;86oet+^d~qH&>v(y_XCqOLC+8q88a0nN979R2ZCwq zf7rbZiiCH!l02!u1b@*J|A8W$xP3nwt74|dE=}bSeWG649QbJSqNHnpQ!*Jw`H1_c zjKw(FpXYX2x`p2a=d^qp*|T3x0{Ep_dWi*?!28C{m;r?j#Y<*#n^oJOIyjL0MkyBV zR2kL!quuOv+%1@fqy>yFc-pMon=o}gSov7Ls`p7jkP`=SNMdCaqU+03gs7*31UnEW znZEyDPMxUg+00)&0p@!Z(VtTc#2a_CtvzBH#d_tR0(zxFtL`_%kjqJik>_>nYvO6R z9l9D|aehX342nn8UxX5=xD6R&Os}g7sgCrJk*y`gw~IVb%NfXDpG-3$E6ahZG*GWU z{!IEe_YJbEoo=v$kz{hFOK3ag0v~CmgQdQ)KJs!PlX^Adok6a7^Tu9qGQFP!QBT)~4|6FFM##hV zZviPYrGdPp-eJB*df#&s1X*lW835nT$TU}dxh3SOG*1J^O-CiwEI+Bep2JwG7e<_> zHDN z;74|s%vMSW_L^q^cxEVDw>WRU!jgAcQ!^-3uA>P>o7HR;BKx+_KJp6rxLd9h9(A=B zy%!?6TopN=m^*2GtvI4n0biPmCRu;#S7~wg#W??cB;L&3{}D6Svcys{?+NSBkNWE{ zsk30YfR}3QZ4BKYl_B)=Llryg(F-kT{jcPtdxyO>KV~3Mi%f|(OzniMds@8yd#Lua&I z@SO*A8AU#6dt0}vj5Tnvbv_QAXq91JzB{K(x}1T;)O;AsSp{_gnaGEy#lUb>(g&6? zhh}_kefxWv-IXfTqbpLR)K((xQc)GVPMycYA>Sh9B#tlA_h-yL*fv)4oYJYme^8G zMEb6MYrC$CO7Jur5^{NRW1)~(`qWD(yw5#2S?)&}`}1$S)(gG8p0ftldP0OQhc}|J zu3H%HmN1xxbB5dNoivVaDh!$~BjAZ?S&BNPRk%EN^sO~7#5=)rjwaOmul%BzqlDC# zm$fJxuM&)ZbSRZPx|nVtqbOp=MJij z`uKJ&Y#&Lz@8NbK=Wwg3_2_G7{1HK6M4+E;i!|Fk_BHop}gVp;BdKZ0AV{L7I=c# z#evTCp6A|{144G1$u?zeKWg4?_f57P&T0QgeKK~HW&Iz?yeoy{fi3N$vaY6Ej7hsN za&vvTNFxGi@95l0h{qXSu%Y-_pXWC_V67JRMDZEYz2(Pv_ZUJU#tjRO%T^23FM18; zM9*bBImG%BdrJr^qH3Nk@@J8I^zx2Ocj5*i7#WIPmSE+_we% z8LK&QILs-B@|Fmj<~uy?GIcq37;rhOWZG(&fgaX&Ut4C~U$ZAJ)Aq}(Z=oBP?&!F< z;qFd*>z$WB9XuzY4hqSKpc)A$Sx-B<6ALzF$_PV|{#nz^<$ox`o2e#N6J;{o0{nSs zsHD2VLFbg9i-m&%?Mhss+)X*Th>m}xIDh5CANRX1O>&|yiw}5kFXvqwc|x$L@BUap zD+^R|xp5$^1cim*(Ws=)-4(}+;EkwlZ`4Jf=wXMQnWu=Gj73O{X$0p=@FRGYXu3#; zq#NP7cM|4l;|}C-zixm`c**c10fOg-LmTl#TH@2cbl2;a>Mh~rO2jrhDtcmxmNn>9 z{;PX~J?VTAnZs_9U`i;{H)(&0=XnKff9BYt=8%(M*cD3gI&UCLDu^68Ya22rq!|Q@ zDm7KD3{K$yh!wZ#2RZK0uNRhiR-8=G0v;T106yXgy~oc@ScOpKQr3&JfFY5i0)2BJ zpY-R^bj=k`E~F3PGsZbNuR$5Qi<^I+EVmw%m^X%*g*&7lMCnVBov$#s$QuUofMLxvUd{RI8wf|S z76uITrc;63BMQ^rsdJQM&SO=oWE?8Kk*mad!;C?~9o;FLdlj+1|EuMc8NlO4AL7X>bX-9;qO{M?Fc`)p%>5gw4`M?6?q6V%p1E za|q68%FBHDzywIN7Ic3_$XcWC9rMR)d42$YGF3rnk*8WY)8}42WX_TJjuXmOotp_E5eYweV zTL-Pz4;fAx&BrnvRu5mb>W_kN288Wi$8 z!~?sY{Z`&NGMdd21cb^Cdt)N*MP!={n<-{*sA$M#rJsa;&$vUUYMaGHp;PY_$j6;@WX9DTg+?5dvVeB7Y>+H1shT@C#LnS!*4L0V6qa;La)->zt_1^J~%#TY9 z4L1^YBCN0qd%NjPyh%@!2n8yw1btz6zF6e_cvLD<8s2tFFPUGhv#k%JY2*c+@*c&>5G5%t|%+d*1d?*-Z&q*EdA74^*c6K z^3lDoKbwY=1V|p$bP`^vQS_CrDXMZL43F=SB6hxOl-X*d1p5=M%&x>Jl5~5qrU`kf z8K+D!VY>)A04u89c6i&y z0*oM)0nDsQvl~~A^2IOQI_h6tv}?L!z>qP>>kGs=7w0wQV)@_Xk;q=LmitdFfi za8HJY(Ieve&OkgN&l{64+o{ifDYG3bcdA{wa(j*!=t%8nWC@IqpMMtDb_^R)uP;wx z&DS{6@?Beo?&%YSRC~A@Y<2xCSj|E^yuk|yGSZGluZ8J`NA6|3fFG|~iXk(g0PBlL(LvtCqACT|b& zCvKCemFhJamsP5eEvGG@*u}0C>?)xQ;V0(6jQI$McLe7mC7k8PFMucWu=C;C9Kzy_ zNdi8`kWFJDJSb#ER%p#U=$t|cT#v@gy||PCM|ukiC}trK32G55)Oo>UQG5S(%O8_` zG1Z;SoueT_3k^u!lGVNdCfq2YcQel?3e6sjs!L`g;JS`icsIF#3DWrl!X-+VvgVCA zFQnohlLTFGl+7ithfOh)W#0cT*rD@AoxtAB0MAVOpk=5Q=A5!bcwCH>qiD{A{v2T(1 zAQDa@bsaUZXBpaG`$5hFRs86GrbIs3^7F}boQ$D}*r0~0al`&w7jwmS3_jQWh?}Fj zjp>7_B z!7548=ku*kW~N$9{c@{tyZCZj@qRwsA|5AH4r9OwdX&jYC5>uVMy+~J0=G5&FZ!PC zL>7Q)Fl%dAX(F(vg)gM%>He?S{*^3(YM~z1RQm%7t+K2y2WU#3a(7viNDvDe?4-Uv zTUB~-tF021iElJ;S?%fZ2b|ttX}?6?laps~RMogYSNpNAZ62X`wzNBR+|#!R`*FQH zQb@w_5s^W&=`&{$C$PRuFgkto){u*LnqDYU@6{VQU*1--9@TH+kCr5ZUJZe!rsl3~ z6CT*L(Fsley3_PDWxB#8b`w@$LF-1_{A?wZ9TTK`dhWgMcY5yelKq z)v%{}OR-W34bq%poMO!DI*0^tFj0&(<^>301@FllJZm#&yWh!EwPp%E}RV4a|6nOIkY$Q%RU8aH(PEgl%WH;W| zW~3xFG9+H7ABwc9w!|bL1V_eyk#PLAiLzNo~Q*5I% zkhQA$_8`Dfa*qcejvutL0gaY@Aul#O1+kwDcv7muXTDevz7XZ{PDF}_i$`5b-qR6~YN%*)PusV*E*+!BQa*afe_bjU) zN3ZrV_eWg+=v`djdE#1+Z-u>a2IGh}a`Vt!Bw=7J0prDGk{h}U&DRSvg{|6mBa3<_>U__w z_T7T0s?`F53s@LBCCNq3>WCnLMi{^^!`X=j7@jPl_L$bv+1_7>MwiVL{FqBG>~}iu z88Vu`CADbL|5MXb2f&RgbO#3jW{4ZAvfa?!xXXSWlYknn+|HOk0=1VRPn1b42Sz=8 zRF$JQ;07M!T>lNf;4P(WWt3~;TMEerRU0SkgO90K?P^Uf6>i`AptDF{Jz( z_!>Wa1tG$b!9MRmn)`IZ)BLnb-p6$cJON~EJnadP65hkz>EruDy> zlJX^w&!M>9zneI0};K58G^cu7s$unWbmpA;i+jc4RG9N69;+Z)tL1| z_&AHQO{Pre8*E`9yx{XlzTmBIb4T3=SkxEG4eCmb25tg&{+|XKhz#O~nmwbHO=D|3+5{5fvu|a~4u(5$C;*ER?n>PwLl$w3t zL{zfHv4YjXjvQ2N7Zf3D-lTmk&+rlH;XA)s*6gvOO-6~?H2@Myug!liZ~?<~5sg>z zeMcIh45`{h2LnUP;Uwu9Jw~~Q>&4@39fK;(m5wupW4@gQclYcdx5GOgf`qOIF~4E& zk9`*pSoV+CA6vS6CF8%uPv)6Ow%lHN6e!j5(*3mX=`H3W(?eTVw#z|id7lZn&6R60 z;lmCiTk|8y0-8E|UuV)yynmqHmaYXeG4ii(4E!wTlrb)HJPPF!(v)`jp^ z|Bv3>1`pOF<>vTFXOx$py~?B(Q9HCl&sS*5=C<9Knu6V(A0Fi-f+9D?aGy}$=&tc= zjyYjC`Eb)#88@zyij&uYuh>;5-E42-*>_hmEUf&|F5TWCqwD#4`$JWLpNT^Y3&iUS z7t9aff%+%h7TcZDT-yE*xYliH z$g|@5A4a;>hiCut?Kv({^BZ3Eok$HL+J}Ezi4H0_KiQwHM1b! zvR1KP$u5mI)97XW@1%tC*`)e6;ws3`^(YgBcC2ZGe}7atru8$BEhx$Yq&eK87!o~7 zD8R1u1CBmJ93op4o^!4OD}TA^)a^nvNxcK7!&C`K2uQ0@DEp6jM^JjmU+;f#*iFH^ zG`0JlC#lBlAm<&i3g0#IFez`L8f`4Qv25I^SDNl<`I88SO+<s?x?@%7xQ8+EY=-MpLsF$ z?A0HBywAjMm=vkIIGHYz3sEK*MLuWSt`$6H( zi{$9;{fYWKczJG6pxBPGn$ir5NRnfnZSdiPa)>nWyQ&po;O(ec4$x@BjP$R&Ukc6B zKIQ#(sGU7IXE$WOqpkY=f6|?>s}`7$o9M3UfULRun^*r#_Wc|5(&LN4tpDpaR~N`& zr`7yX&yJ$sOQ0>K{j&?9GjNJJ@YiHjy3_!fOOEaN&NoWFR~n%w2>jt(q3>fY!LQC| zlh6G4;kcRJ2=#03!eCUquuL(jkY}%bl|I5nq7$M+C3?Bd5RICB{u=ip;tcPDpZ*#D zhz-%I8p!7IlQ{#g-z7bI{AO;Z{;i)Rz}}e1UpsTd(zEiL;nFG>zjiD^Sx)LD3l;d9 zg#hE@o>pzQKiW?b<}jKB*)Kf*fh>-9S(sI@kFZC@^a&8V5r+wd56-BFM` z;s&A-g)E(xNA4`$RTJrLgQSS7HS*@!?>9o#70dNZ;!3B8tJ{~LQgzuGI)hi$o&}`Q zGF8V46iT=Df1{uR<$aQ6l@HPfh@hQPH>FKq0?b7!fO8~Y{_LEt|y4_>ny`h>I#;}`kMYHrp*M#$iunHvRVsMAnFlxB{grOtogL3K)t;$ zmP*vG?-qZN+aipbkgLBw(=)(-9<~~7Rjk#Sitp3e7#Qs?fj08{cva*k z%Lgq#Eky-Tp!O9K8?`r$~WbtMq|Ly}({_nBu zb`sT~@W@^$>3IKEc&4ZaW`F5Y{iJ+l=8d~b-^>%=)zuWb3kds=)Al!5H?x1C;p-v| zfojYF2LW#pM^0~MNB)#P`&mDOg7T}#pfZh%H)0%v-ltp{VV}+SuCFp=hQ)9MDM)54 zM|o%qRDE4?Tbj(C(0}x!yAEae;(E%)UVRWc@f+TzlbdwwIT8?!tf^Z?c{HklQj4TbNk1DD+1+w%-(a>c#RrNr74}1)cCLri+zxXN|=f z<+qcs35;*3GexuCuS`ovsGYi{tHuKQ4Np>L_UB7cPaE%WrVD02t$DS=Srlsd==AJt z&yx@Tr-hPc1H@R9?npSs;o(N2nT}9Altw5M@%ufZb<{CxW4Lg|czzAEN#!z{ub3=Y zY2a_utV?X6!{2iq0nUV&On9C1^N=Klgte#=aN#B}X@;OOW{O;WiC28t2r-{C`pR|6 z6PRSw&*E?`rCP8;R4)5OBupwC8dTr}@TF#b+e$9byioeuyk&|^$OkJ-iYgvBC#hoW zzoyvNy3g&SF$*p?DRE?=J?WQqBxMbD%+3R7R= z)RF2}-5+TPTqB{;-NqTocovd2rdXbakyJ<*ssHHdu;!P`3fZpa@w&$Qv_N95)kvUF zYZ<&-D*cWSQzU=sJ{Xw#%nL@}()WsfEaC}SR{0v62k}qhL4(jGq$E68SOvL{YU+L3 zG*bB0H=SIdQ^_@C`pjIP7e2$zq_AlV!Nqg2vKcz+?nGq@(rpm&c* zLa$E99PWv=7m@y(nV$Gyl>_o}BH(PdjLt|mD-s+MK2ec>%5WxPI4u-L#6~o?a*NkD zeve1~J~Xk>eZkPV_vE_KRrSoldlv+KKN{s3?FI8(S#k;{rPGU^$?s18@TKO*xxme` z7uqDE7*FeLbV^f*-nd_%LQ~pqQ!eOhtk{Qg4h&4_nvgDWM60mlm&NfwSe)pJri%mN zOSS%L7JHfB^i&7!2pVOP;P<%9(cj zvyQuap&Ej{@&8+@WBMyBRt3)dLXN4aaig0Q6Z4hFK{8Dt#P;#=HtNxxB7y53O@a4U zQng%{GAq+x*FMj;lf4Brvk zzR*$f609-Y6WpW-2dCP;OTE~Q7(Zp!g8%iNb+@9$^_TY2Z_Xkd{#tyhj?Tn~7Gyt- z%!c#b5E@MO>CUF_=)~krt7x2`AWxTTW7R+3e4j3uM|Bc@z|+(;t8`v)1KoEzHaz4l zDaQ1)ZNFeE-F7B4Bo1Be^4kGVz%#5yj}RT6{s7-Enx9d5UvbF|tv|Dg+jU3badUAj z-S$)}w%j}t>NpDqHuFXd30<=cC3+&~@+O4fHly7wt6+|15ctjt8mx-NGutR=ZYDdNf=IO%N)_Zs)dR6 zvk=M_87CI}blTtQwj9KEhyA^ui?Pz{g)hhW&<2%5{3~~;tu3S|t;vd7)J-mS$2g-p zTsqTz1( z>JynlmWG$1{Gn^1Poc|xG4DQ;N0VZs$E7n$hQr^D*$gUWd()6z8+?I_b2Jx`j@Usq z70LT$jY>z}jDu;!@dy$>N+LpvVG=>ufkSwR5HM5F&rQ!0!z5%SKwg2PI~WEU9iQVa zv)RF=S!)5KRcjaeh(g-Gj3y+y+-QEh@QTG(Zx^Y3)`IO8-+*u@q(S7iq7QqwqW#rv z1%h?j{N@!#z?}g5gNto^Ub^gzvASQl(aZCP;K#CKJfcN!JZ3>*5|baoVH9pF0sjDH zJHs(PIB%q?t$S}9?XS(BhicO!CI-I3I*zX|Jya`|i4wP5{A=bRCF$*f)Rgdk<|qCw z4Y)>I19QKw+2ksbD&H2g(`nqw#z~0o}i* zviuSuWmtj`VOWm<5)_!Z*~_<$c?C5m=UXjko9eAXzn~>b9>jdR7|2H3TE)EkYd&b$ zP<}0zbag56=t2mt>tBoG(lotCgP{9^0_zM*RA$9QUY$Pkbx^}7}Gq3IRwX>VNs&Xc`ABbh;IT4 zNk7b;puZ$ZiHPB7Tl<;XvPu?DNTNIPmY$JdEZZOE7OVG!zw*WxH*1xV45|woQgKO$_Xhg{^v#8=+%m{#Mz* zkdn_uL=pmhYqz$Uo50$1FXZvq5QqSpr7~Y6-=)TE19tDDbD<77{?GUWQZk|d>7j)n znlu526r*F7$PMREgT+Vdl3LNb^T>!Gg~eBMl2oC{`~HI4Wx<;a;|C_5*gH_sqIzNPPJqzdCb_HuJ)kyuI@*QolMBTo~mh4PP4dz-rcTOB-KXLDH z8G~&Fp$2yultDrmA%o>DB3n;1uRlJyO%dO1GS97aIM~Aw%oGO)=zIEBZ{+g?@Z4&O zI(*~~wYKS;NEc5?cVf^#1GM9W<)N^zeY4abb;88MFk4X?b|R;`{qT5w95%Fb`0FL5 z_8jc2F!v8@l2!9vbahfKn#J=AMC-n+T{C+2cc4+Pgw=}mIbCif#6KuukG*=5lGEXp zl2+)R)>Ls|9#lUGl&dtoa%D)mVojMV4qrNL!1r!EV7?z7or{iIHC;`9S}eeIxXRg`PsTi&>|(K_)3~FFVW)dyj_8F7SdG$Pie}eM%{wE`cfty}>TnMjO>uyPO}PkZ+Ej%380r z!QLDu_R7`kK?!-_%ghL!kEfC7XRXCJp7fC97e0n7BRT)d+^Kw}bN^w8d^l4U$Zyw< z@148a9C=o!>Oj_bVXwe4Ms zrJ|&!gc=1_`<{?Sjj@gsRM@_%UL{}qwn8`h+E;sD-;it>FLC3_HLzt8P5^~_o8)VL z3=2G{l2>YC>~$KeRv+mCEr2io$Eq>xPCpza=QeV6N|AO#d4tA)tKDu zAhgMo#k5Tk{u2LPaCb19Db{7{m)u_m6eN^}7OFbN17u>Op>jxkaA695o1&bzGRsyNR9OdPay(0F4D3QgA`Ev8}}7~=}6Q{V=PxZ{C-+KgAY8c zaWVU@GMNh;$LzhBn3i%?hPz3y`%T z^Qtab6& z?Zm^>bn*C`^tinEeX>eW7*BZEwDBw@%7w$^=e?VYimlI~pT+QQWcDkKOiK!3>Gai5 zkBTW+r5ii}&LjFp@fJ@UV~}JbdItXLs~o5AU2JJzgu{d8rGUgs5%*ZatS@+1;1&k< zku8lkXMd7Npfb_YG^H-FPiPMZ)MZpbPF%tmSw2Iia}W^0s(@J>6Lg*Pm57fdGJ9H+ z+K|Hj*7|D~Y8vn`Kx!L2u96=;U5R#MfKgkh=dgEmE{it0W7=6fu2tmOvF?p2yZ&KwmFT15pmlj97% zNhHh6Yk27sWo4mK96l?h@p>%BaWav^ETn}}Y&R)o5&r92HGe``n$qGy&`7j)%}m|8 zW{@Wlwye_!R@li0I6U`!W6>9$V|W4rBwxtq?{hYGNFIMPyUQ3=pS`Olo%{s zWAYwVXIiItfRA|MJ4>kQ$iBYOAQdJrHk}N*)&4BneHR_pPaghrZr`E$Wcudu=lAj^ zr-93v0I>w(XTm>Yv7acsO3S}IRw|mMMyPvxgeR){Ap*B3Nt1ttM?qq=(rFQlLQNb- z#}6r1hTQ`vh17@1O!2cjUlVWgQx`JrHrWa`2UwhZ^Hg4B?M`uUF$uqnksIv# z0QdUT4Mu!ohB-fBmxx?TvVV_@tYw)?kpnYk5%}lB2eu|#O))r6>eMZY>G4^X(KC*I ztE(N0Py4iVfhT`b+FbIm=r?wYU3kt~mgtqDl6Mx@5F)1JEHkX}jZ=|Q2AbqptZ$>= zPTSA?#}T%dgivjT!{ej@SNvwc=!Nl<9HZ$W4nrzq=Vb`ZQCstYfk&}#jPYYrB&`fB zV^(vHj`&1o#$yX7!k^7%*+noKx3me1;LmaJxpMiIu_#?J+b;sX{gp{7MyI=!(mz&$ z-lB&2D$&m2>a~Tm#c{FDndCpL?K1vfdGFL%S(k+iSH*V4PAax-I~BWP+qP|+729@d z$2Kdrot$0W{r2f|@%@5tU#yFTx!1&)Yv_5#uP_wDAz8gS6>BOyDIN2!0$Esm%k@mJ zz=GW}E{OIxxm0{(FHgbb3N{uk7EFP788{~C?92znK}Q+>_yV?;Rpn}`Um}9CeBkNG zT#ZA5PzQ7QN(6!P+vP@p;&X63eV*YQi`y zzg7}r6VRa;rlbyyGJoEElXld<=`P8;Df7^x zWKzJ7A1TD$AQ~wkOi~huJlbRtdg{P6^jq>o*Dz{uISOci6)3*24AS5zvAJW5{&KRe zm*FoiK$BTzIvMWOGFlNyLL&yG`o$MXRQ&`JdcH7p-Ng!LBcWl*ZXCxeHVgy6VMe|} zh760Lzt%8lG{fb8TgplsN`^}N_OT>I>>3SeiK}@i)h_~veQya-V$*yS%bR-kyP~B1 za5Mv0Vl#Rm@+Z=Qn6qj_28Gz2xVibH*~6{2TwgDYWs?$7{rJQFZ1OLyNVPes2t$+> z5u22hx*zNcBsld}YuIZ`ZVGgPlv~CI0YGRQwN5gHL=q)>FbT{ExpH%ld`guXw60Lf zJsM$yB5tarmWT}Lu+&u1cLQ_un`9Q+A2Qb0aPjX{?`$mAF&T6n=1^24f;CXK(9%>PpKe~3t>+~U=ZpAEt$5`OwN_+Yp zdQpZ7+w>H+fFvn8*yHWTfDLjrq-f3!-umIl&3OPxhsJyHlyn-S1tu#VX$gsQ!FAqs z4P!pH+D$8(LmR24Lbb*+cxO?b3vFcskB53vz*m@1%CJJt(xLAI+M8dKPTZx@z$T`Si$qki-iP{EZ4V)=z#tl@TR|-x86naGRS*+tjZkS`*Y|B~TzpAVj zT%nr-JuRr>3j6i7t&P zm%o>O%L~TWs7ozqe-j}3UXssIyYwlP->rO7**b2fE6BpVW zylEJ%cZv)*m_@GSIiqOC3=LpN6(&;N6xwHAVmp(eE7(4Pxlm<$u`HEb3V5@A1OO*> zbc;P*pkV^5D&xVkU8q4mA zXEZW50lRMjG^cL~Xg=XW=Bov1;Pc~Tze8v$z$-g8P>L;fk3{;3k7jMcBaPD4JdQXe zQj(iP$!7z=jW|=SN$SUmBmE)*G@Khy;G21-U>&-_U@D4ef-Rb|pDoc{ER?AI`oSYD z+OWb@wTx;B@ov@Zk1cSWt1`^%42vHTv`t!%QI1+iPJ)nZ^aF}6);gRvHf*a|7R+Gf|xs47NCM- zOGU`TM8BIyC7xINB-a}X%w4yq1Q0s?dJ;ROXicgbM3@TfM=SbXU}e3cfVOsOD~w!2 z$c2`7H8iA5FTaLRTrOX zXSIQj{-L$a)3l3x{mgKocFAd4zR_g;ra#Je65M(ZIUh>M6sDXa^{#Vx{M*O`>z8j8 zwP1+YuP)v+ZBLexUn~81%7-&SnShN*+SBFeQ{E^~7R|Z{RQU_L9lq1DP=NXkR9GtZ) zcZK0~E7qgJ6nHEJmC^Ea8@i0v;~Pk0m#B@#5;IniafdzdX`ZP<*(a|1KzFH|bT?TQ z1h4l7yDxJtwv$>z2W-r`VXP_jJ0_M1l__h2l+ie)fOXxfTUwq*>|#Pn%S1|UK}r_B z(V1WdS(K}ynwyY5OUromS^SJ1jwE3?GA~t9hY?JblHyFGO6z1@Yg&*xpRgpWSsHO) zFwA&0SqnBEs{Hc@zq3x5@xG*@$>~R%3V(>|&yIDn0y?YD?b% zLl%dYM8=_y7A5zmq`L@>Lb0tvuNbK)Yro8r5?UxVf}XMVl1`(fh_FY<{fI8$yr}R` zZon+Fxh?|ty`KCUUCN+Tfr3F#Mv1Zm5?Ry@gM}srf)D+&&V5VJ#`i)~9kb9fQA?TJ zV>yD6JeSD~#7(p1Oq))ttjzZdCuUb>+9R0)ibW{c{^rIdVr3f7Jjh5h?iG?{bR9s~ z7jXN1>W$vQUzXET=(pl^zB5dzMCwSWBLR2~c33ck^7p}E*|Th5Q!ezRYJOSCnId)P zJoA8;4S-WBuCfs{XvE8ye1RkC%7dx8&ML4RNh*u=?M^FlgHgs}e^jHqs7lGpbg+9V ztD&6&m0qzmxuriHSuOm&5$)atmi(EcaQFhj0Ua+Mj2&Zl|1XPX^*-h9pZPFBHZBk) z#y-(BfCqq{{U3c?=!L=VsmT{gEQq#7?SM0I47dnV-|%qyvLH5%?s27KZMxt*1sLlS z3Vxkhxfh$t-&WNc**wjuQ_EzFeQyy+XL_KKG}Md>8j%*op7AslHZTK$vx%jX6Tt^T zC-k#pKhU0ZKovNZ@&89I^R|jgnr6va4rP5My}@1;e-Eg_iRnws*rlY$EKQj>Dd7g^ ztMj|VdYp+O@*b7axnCtf7Di&~KHA)Y7KcFe|sjAp-; zAlO(@dl}=|l2$uq)jLSFy$0<{iQCh5eU@q6?l7wIZa%TKT$DiDPtaxGBc>pmvV@|F z(W%_tZq8PQeDAecl3rRIC#}p=#Z_W&mzFtS$gp5(yHyTPhptAQ_=YSpBYBL_4#~{y z>IjY(P!RZ|36Qr8al>#-RiM3(6J__k4bB0^#B#P#Ng=#3iCr{4upISFVL{3Vg)@D$ znIBcbqdeK9tN*0%?K$ia>%Q<;$ISvgdQqc`@r`H+iW^#b<7hopdUmCxO3>;N?Vdnd z7@24IaX?>YKb`jK$nfHFbq{vH5Bkua7hw#pVznf$#-vTrdYZ>bqZQq^vZy=d ze3^niT(r$`h5r#@EY?Qsc7s?zSI@i>)lDpcyW&JZl1*c!?FxKUHu*|9~ z59$!$3^`P#IXXY_V24_W!A^%j%A;1(3n^}978AX00bl2oG)uIc3hprbjmkZS6_%SL ztY*6)fb(DW&-{DA3nk9i{y=bxF#p(IpZ}9GIx()-g$@|$HrQIZ2$(6pQ#dij*{&CZUCF9+=WYf0`khSM!+_FdAQ+{NiykZ7%P2il0x~ z{9gXps7arnFs9aq7Pb=|l6u8I00^yahYM-I-&3@jfoMA|V_p!vk)}{)_=YOs>x5_Z z1#$_E?p*ws#u7iRdlvK14@Gj`jDc;_siH}A6dN+i8lnlV9lCfF#)K5J80imvYGj+P zl0u!#42;~kUIpI+Zmlb4;r1vO3aI&BEn$+VBEMlneT+KD^9wr zfcxpCh-vS&^$IF(-5j}!p1=aqUzc#_+Wl8~qlCU&i6x)WPANH#x)KL9JI1jSJM+TC z$IqEgzGI?f$svQbyX~y>N0f@QmkPdu$mjdsy_U0-g6Ch2Z#0HMzWJcoz|%O@SrkQZ)Y{1s2NCG8j_A1aH`V4<&~>*M2PffMaRjwG<;+k)yT~MpY{#9@u(jbOsbXp-}V= zc~HWGw}@&Ect8`*HOw(#QSwp;smQ;32(YgmYx?Qv{`0lzhRE+yeIZ7E6&To*@tlxv zZmP;K!n_%za9l>je?aG5pw75?v4tuPI`pB^@+PN-tb;odM|jl~8S5l>!!wqz=mhCt24#+GF5|etLW2)6i%OrP{HJX% zErridU;wi+!9AZ>bdQQ%O%F+WPZH+tJB#4mz?=?=eN$uEP?r%F{9a9JA zy(2f(Qf~kDj*(LdlPqZlJ?lp$(E(9cU!rENX{#*=onvE6Up?0PHo%gg*;LskcF~YDuL-`~~wqWVDo=O;(a3uKNUT+^O9K1%1;Xi;9FZco=-Q>Gg z_O+dHJ&h{Xn`RPsZU|xQaP%P`HYY)J$i-0xed-L9hh&NlX~qf@73Z1WMjw&n#Qg{p zK;)qZLszVJmto+`ak*~rV46D%zQ4A2$g;SD4D#{hec%3+z8i{?=D1(zunPTtsb@Dk ztUKp1j|wgp1D1A*Bt)d~ZNpi+2ag7>S zdTva53lV^d1lIDxh&gL~6}ZoPhP2OafNap}e}P26eX|a`w}{Wml{Gvisw?8l=bKhT znd8h&D2^9Nd8eDy=pp)b!#)%B{*$MHm--hFrf*XnJ2;0YvD3K-YBx_w3?S}}Dy7%9 zJTzy)xLaw5pZFvO9PEFaM{R4@s-$IY_pAzL0wj~y<05G^_lG~7lsUY35qH2{)ZIlq z2m62U(PKQ}`wHSB8;5s4m>t8-eL)*;A$W1R3kkHu!!9tnI{6QJ#|yq6N#)lib)vB% zKmEX{dT(N+S4%D`iJw)1guDPh*WnD58K=QKb9f~T7(FW}z zo&|QLmu9Utc9%AOQ`G>*sENJfcFBz6>;CXh8r9wjF3iA`zU!2jFM!?K15Dv`*@~1B zlH2*IUcQZj#k@IMGg>$^7H4uv;{?P=dsfm!WBcnx{Wq<*+r%pq`8HP& zN2a4px6?xDN^`<^1*so80#viSMH5EbFW}Nas?VBQj2wl<10YnnO{}DPu%0iTWrfOM z8~dsnpl_&1`fO{gWuc9sQ9Ex=w=?qG!)G18xzN${7EJjLl(yR&aM!8NfNLE-MvvL; zzX^8OK{n^JU&`3)DS!OoN$V(O)0n(|-kx+JAv>c%uv!b>BbOsigpf4)kt@Bh1mJO} zGa@zp`FH~gwc#2ULX2R}@}*8@Wgc`Pct*QZx%x6*_^PGsh+9+QTE{sA zE8QmK%q8pIlIYV~{adQal~(Ku_NtK+_{_Ta4{?NC0T*m?_R~Fpq{!14@00ndgVkCm zdM3M7|FCt3{hbx=>I%6S!Y z(o)?9T59Hj*hXA>=hRTPkfh8=eYZLDrMWcpxkEJB(oHD=2xwMGH#TRvm?jmWLDit; zPUrrSPSIL#&X6ybo*|>Q=&0MPIb2~}k@h!b{Jb`cf%_PBleY>zZg(^g_d!k+7+aiZ z@3khte3_6q-I?Y@9!BS5cxwW~ZUkKIxj1v?fq$2>0U}E*k(hYCZqP0?jG65D?+-Vp z7_k4&mg3=M#M+wt0L#{D?&C(?67^CIG5+cBJ~}2Z2u!C7b;TW2GVb`PT!Snj8!Kee zO<;<}KamY@JFnsOGHhw4*#SYNG%VwT7;3m{R(m)13#A~AvqQj1+#4$or!ss!;7k z8D&J7um}Vo`^0NtC8m&KEv`Ik4!xq%T2BX2xt63XJ=L^ zqOZvt92hPr9WAy47djoamKYd&QI1SJAjfnm!T0rJ^-dN7q*;-60MXZiVp&{{))1mw z6ON1zApH1mZQ>fQM;j3aUHG0tZk8zUha@`(Fj z`;MhzYwl-L)saXePC~sEYPR7zc~5+C*yYyd$t z2Z65;_Pt2Vny`@c>$dzzb+q(!)zTb=RyWFvi|^O9=4=t3d&%}3@oBh;LdL16p-7>CCJB<$JM0hpG-Pj~mjn5B+2=%#gHUj_3*#VxIa; z0focT28CidoW}!RkaMQ5$PW{AXCjO(Wn_;FlAk#>4D%Y%f3pjh_>4B;#OMCWiN+2h z0xSyBm)DKfuWD&AkuL68YDoTi`m^zCs|G5%+uKog}c&>vtLsa zSZxhK!WsE-#%(=l*Je;_KO}W$we;0C1`kMnG*Y1Wn&Wl}Ac!-M3XRg_x|J1{^8iux zdcl&~Qi2!|m+h@f+-XH}geWBuVsKyOrg%5g;Q7%7?xWrW%%w=7+ZHyFqcYf)BPKdA z&Eo$+?atwboXBh(YA75bA?5kDV~@pwj2hSqM3D$15>Ex~+#l-pW`$qwocX^?L_!U% z1Ojn=PihKheeGq7W!&9cjRYE25Ya*nlA<*kzX3%=QwL=W2-eZM6&rB;i>+NjoZNQX z+qMCVtbblFXSx)XoG=+sDum>Sl5fQ?e=QF5j)sYAA4zu3ceCSrwt^hkZosspTV*8^ z_fcXn><^jFR5}|f?-sOcyt|}*E?{R(U8S+_TDV(2;F%6>4_-8xEwr*$zgn83wLSVI zxixb9PNIkjz3j#jwe7&6<-QwEXyPaS&Wyu}Pv0C*gLt$852U@sL` zIl$CBgh;&<&v2M#jWyeF5a~sFn6f*qW0K8nX9q7lHwCBkPpU&cz9-7(qGR>A-IG;#07Lj}y1V z_cWcaCq^3TES{MfPneM2bu+@|peYZU>_TWf6Mz&=bq@X=^fOw~RuzB6 zW36)JtkzC9w<9l&&t#TEw>*~>w;BG+qyZAm4JTS$(sex)ksao$K_3Kb_wxX(-b^GB zYij_T+i1l<&=*Uve!W|jxAB-4jXEYr4CGs!)>^%Y!v>`U2Xe^uMo8W|$+zpB-^mh7 zfvz5qxML1N%lc90bHLO{ypW|$HynA^%ZS4f*}+Q+K5`t&y2E%BM})CDjM@-) z*Yj0)dEO1=Eqa}3RQ-4fsWA~LhxR7;fz&|uk?4MM=FO3GRBf-&Y_a(jiMK{a_V&A@ zz#A1y{nJ#Dak{vyEuC2_O-k|2-Z9Qtbt+QtO3Rlg&DE zXR13w23?-siG=nb3`JwHBF|xb?%r;OT)d{_w}9>emepE4LREXL;4@j*)!1&8!~xRX zbe{WtIoI%_^!{B^7cj|y;|V@)uYU$yuh4UV%&q*>?9Gk?E?il_V-KvABbfVZop|it zGce7)*-FK$&A4Jl;;PuL+F1Yf_mG)J1(mMPtuu{Q9gMIioB$A>at(@cJ_A>xHgTNK z-CAhxaQK5qwEj)K%VydB3aC$A-|d0$GJ`8^WyTOAstg=0ZH?@p#$S!zoPy$c1ZQow z$h^BgZ41I-v0!F%IS*9lB5EL#F}t64*4rR>wk^i`)6>Sc2Uqq@c^&WkzTVB2yxhAk zsk+`A=WLBjGs&5Y%UQ_Y|KePwr=OnTXu8tJinz9z{tw9tD^yd96)IwnSjv7za#EB$ zxg4|6a})ar$xsFP3s>Bd>bboszQI3yWB6 zZd8M*aGV_bFNp=>jgy&GW~>DM&#XMVnEO! zROiRyZR=&cL)nrIl&TFkL~5kiFp@?J3w`Fb;RjKDrK(x+;-roE%loy9N zM7#5GD5V~KpCnz;J$&(-AL8@MA#(k*7SFQ?B#V~^sa(#SY0%t}WK~>zR4kAVEqe%m z=n7-AZzqu$FzbuP>s8t{LkxI*{M4z>N)_cr&)ak~Cgi3C|C+E}wbl&et9a7!xF1MR z!HLT%b`?;!MIo|0j7<y4?A2@n;%et`3kL;djXdfnd9tCO#C z^&%7jt*-GXeKHsmT~ML)h|AIJFVN;^^VEPVEhE zgpr3gzmSR5?HMu9TAz`xt@ZSTao<8^BYQ-X%bOG`-}ch3c0htgim-?)TnPs{xiw%N z;`hD5jocrnAYp;E(uo1%V()sxj~zmB>EEISUN~`A z>Ig_ex+7k!I}9!&nij>uK)<^EAgR;eq;9>g`6T%0=~<8Ze7elEJB4@6A3cBEyH_JO zn9DKb$UYY9B!}f>DR}`&i~a6ABKq`_t=W3-YBWorWF;Ehphdx(8! z^~qwfU=j7muM>2u@p3~*-V+4Ilb7qTBJ{jUJ%*lOu4Io_547fcz9j5V7whGV-;$ZF zc#?K+`Oc1WH#iIFZNU!iyp1uy`It~pshWq?EZT~8zm=)6(d+neu~z8!uk9f_yfnH~ z%m4B3I@&5Ex8T{pn@h10v%)^C7-b!EIGPMLn=fMhaIjS2(JrQ=Qlp7!SHTy$hm72- z?zkMNT{8W-6s}$rPkGAw+eBJ~&b0NpJqIxq5&!AcXeBY`8*H~g;7PLG+Wis`46w&< zw+GL@x4Bz9<9pQbbbKg0T6CSr#)v4cG@j`!0|Incea(9|52^USHqQL!{L_zZj4`Iq z1j55Q#BmZE(k#hCV#e2|mg!CpohV;Z5EO6Hq^Jr+SHd_bUrkJxi{(ge0<(xxE@yF} z8^+Z%^)tp4ID__=GDdlCHmiIeTEreRM)qtvU^Uy6T9&Ex|u-*L>a+w7$Q5iewJo zU)>iJFZ)nI*KxK@lV9F9!`#xDB3tt+q@51M2d;)NB4u;AQW63(jx+9IEcj}7B?GB> zzrHrx_UBk<*7;81kAE8Q;oGjSciuRxSM1rdoYAbewS(&;n{dN_-vMs9i0N$1>i>}5 z10CECCC%L^8t976WA)se$bds1f76V{{mLh-$;;;~A`wpU&d& za9F(PD=VdO$qp!&J$&fJm$c!ZZPjQWr}VCSz8@ZVHl5c!_OH&L;W!_+J=a?;Ng|OK z^xJOgG&ho+U0BG=*Ao@3Jx{bp55K{*B_4^W2cq$`9`kfECn?k#ur{APz$Z(LiRj5g z+(#S=UIGzs{fszK0cv#JK{OR|2a`=9@iz2_9@|slLn+a)Gi{EJJon1dULX6!S&{PW zHT83;gPkw#NeLB00^NMBr>4M~7(89^t4wx4zIx-lIx02OJTAK{*B$x3>PwRX*+2`o z`cKSCP89R7^5=bWdBkneo%I#wqXkE}3u>Kjk*c4h!Jt6|LvfRMcCWmTc~<9|WlNRc zHCf6-t7Fwfk|8fg;6)Urj^?@Ap~fCom?s&t9!-Xc~RP;zy^66}rkci&SJ{0G?g3*IYk?OsroDq|V9fY)+9i|9FYeYWP9y19p9FI^aK@ z0aZ_@v@JV}J#XN~A3!A4CeCNXXWKKrvQH;T_lFG$##UBh4n@$Jj$b=%uGsNGVV$ur z2TwI=7Ee8fVaS7ccqp~O=o9BMI(D>?ZSNW7B&$@Q@eHVswl)Fh)oo3paqu?{1ckr@ zCVp?u>EymLU17i2Y$)NHufj8DV-IPc?+$|{CYZGO;N96FjY+p`aF9zph_Ah=SDk*3SGVR=C__+6i{e2pmW`w#o~Lv8vLwLJ-QPyMr$jD!*240 zWW<;xr1#`qw0XlV#%UDz^rt8Ba>WEO*Bv}`i#wASj^RezA#dJ(Rx{b%6wmF4we5^K z%K~#l9jHCOeYAhv_&)tu1wKmXKQSdQT+I(1ifAKT>NB8NpsOeIY($%|n-C}6pS5?} zSIn;c$C!kf`YRx{hFHTU7MVnkt!EWR3RI#Pk1rH2Q!USUK&y#U+OP`uno#? zY}N3nf3`xq2Q!?PJ37#fvYo+(_w0Ym;i}KAi~mU_#kcqcuRXTEPDwJ$piTXuA9LQT zjHR9Lm4?iV3o&>66MM`11A5Vy2RgU=lTGs;HvkfcFECX%H~i@87F}cW7XGB!B3690 zGl&3DoMe6oA&UJ2yN#CWe%R*S)C6e+1f8Jd05gZsndJ-YR_ zxo39=@}iH!yWRz$5B7%t$0(<-165CW#iHq|4>FgSl5NP!|LTvuLAd>aDG?E0LdYM> zdFy2eJTBhA+PRUPNs0c1XGfrU#~I~ijPirIK^?6I7{PY)`nU&Cu3myU=ei$?U2C4( zjt3II`P%bA+ke4I|E1pM@J+MHCK5x}>zl?(Rv*MmR%K=9C*nSUFXZ$2^7Jb8 z)Mn6`eLbpY-3_(6<5^5wzU_6>b9yHoVY%KIbx*@OpO%>GzLgVyMc0C@DQ>~*A=#SG z`TVaZ8Jf3WjRI%rBN-FRamu zzo0O2X75+2VvDZuxLzFs@-K4<*JC*w^qYE=cwA3>W=T0q7MtkmjaU7x9PfE#%H7iyeZ>D2jnayoapdG)9t!)S%#BfSNk&~w9amxC(1S-m_u)y-dK`Q zM1!mCuSZWZo@W~^IBh1G8BHp*v20Y|zeC*er3WJmzZ%Xr2s2vzX*lrj)#ZJyt&E;- zm6Z14FvXt~B_|w__Wu4V&YBXe&AT0q($Tx>WVz1p z>0!ILk zYj-H}dV+mx8cA&6^d9Jx2Tfx(Meun!CU@h(M^&{?3hDRycs?ZSNhFtd2slXNfFYT2 zS65GiZg4(Tb+o<&Z@k^;@#W|Hcruj9;aN#~?|R%E2!ckH@g|eYGFw;42@8Wl)qR!% z>(P^j`Ku%Wkaqs;-aC!z%6J~CuvBTmf4}I4cU^blwdr{#yFF=a-ElYebyo&pJv{8!lK(K7?Z5Q4w ztyOa;Sj>z}exMX`50 zZ1;0d!^V97^VcX1rTOFoQqT}!5N9#b{WwC2UmhQqA)!kJXan^A{6Gp%_Ec3>_0N@6 zg^i5L!c#r`ExvSoeB2Xecu3n56$Q6f!$Djh3?OewNCjSH84aCA-EWHT6;3=BpVjfDKN$Au z20(v(T$)QvM>lx{rIlM$Y+|sIu#m>JFAQ}3;h9sWgFld|*$(NqGcqy)3w}bQdq2V( z7?5D;8Ku978WGXsNJ=uMaX$)oa(<|EJ|CRA?F3_7y`0)^S3GYSJOZN?QZh}=0*T6) z+-g4oP6ewv^Vz__Si>|DE7||0T%$8m7GbllH`7~#(G|z~hC`fxgJG0rC2S&m$mZTO zx6mdl1-@}#H<#2iNH*`{LWGqkeE4(Oh+H81BpjZFTdmXykhV4cU#!{a)5Vk z^XJvf$y=M|(5OEsI{JH0z?&7jk$*NU3=5-`KN@J1;mef$MMpm4dOh(CWBL` z39Vy-@ZD7|fk;DS)8LtaHUavlGUhZpuCbQ2{lFz*-oZ{MQ_k%kiGE&u+Fd1y7+x9X zOdI?Juy_;Q2K<$3r;^-0ulk7%tK^Nnd<2p)HBE3*PIX<_cDvE~Kz=9|5qR+Fe_{i% z(3IDJ@M7yEI<+gdnMVE47DWzPNqq;4L=7A!Gl!PFqcVozDf-7HMKJ}R;7cfgy#Bde zKz5CHRp&X2vo1$BJa;81(25o{tFh@d40Fg?61|YovE>6R&+tr?tZE1MGPFb9&B zlX{5PrLqm~?|JQKEp|4GIw}{m(cl?OnTJn;PuMr%71X(9cAU;x zz%uWCZy}J^&9$%VOgFt*9j*FNLs_H4}j|EYzdVB;E zZ4@)Obk~_mc#?9UTHWhHl*ekyk$^#}Cs2XCB^lU%eD)$o@Uwi>1G@D=o+fH zeK}LXbJGv7ZO{%F{wYV=1_xai3e5W6ZS>ncAn6GGv&gd;?S*)Lfb5}0TAXC*e%n*X z;D)=TyC3=7Owu!`L(z?8`on1-k`Lr*3(R zx@fXF={#LH>L0D51J~^IG!omK_&=T>em)}xD`5k@HL+8NQF(|#Ho1tx+kP?OLn--d zXB!;e9ft&}&wg_Wt7Y@iDYEH+{^i4FoU)HLT`IrOX_edBWlW--}fEE>0Z8u&jwrcyr2Jdm$*~tnC&&#m?vo3&r-|qD%bf$wbukaq*Qn_YAd5%(1 z_dy-VbFzAdlp?8`Wc&EuWE1A--}i)ZOIli+WAnTW5{%0X5CRDy;sW;WGZ)pxw_sy&tFl zYV0w1_!n0HKT08RwE;Ikemtw!J6N3WfnsF#;b@qgurby^?a?22WB32ZjR(Nsr7wzE zR>n@ne;nceeshNDirI11i1oaqH(P4=HIe0lX!xFRjoR}_T3-y83&A!6ZJkj)uynDh zut|FAd-`2YJG*G1J!Rpoe@G1eJ!<~I(o-41`~PY~LWJ}Cf7=L_&U3iEifnC<>-h_1 zl+3d)&$s3q_2S45q3<;|MR-Q-uDq8 z0jnf?|E16S*W-VOgAkbe``Swc_|J*I&jLgAkN$t-8h;1u?>_1W{E}aS{ta3G`vlO@ zwFAUcLH-@&f8Bx0@dVmW1n5D;1-kS8J_3BXE65<>6kme3%h7t-q(GyU2S=!e|6GwL z;pguWs1EA?=s_Ru`xN~9hkePT4j0BoD=%TFYsxHbcr1XHahvK_)n68{GTC#A4Z9}I&vu+z)sR$Z3OIb)beiv za|7UWBfoqv^`p_#Zi1Qw+JgTcx|R@GAFCtnKP#7y7;#7a`e%->t9_q}Wv{UD#@Ebr zHQQ7BSie?tbU2?LDxAQd2DURu0g>oI2{a>prQColCm^?s9tnU=5h2024X~A7@$Uib z;|E99M>fcvf~;ARPT2EbI}ZWuQ*oFW8KpS}JBHNv;Nzu`kgfe z!dYa?15LwD6FiB+(_}rDP=Oqy5hn$3CI^wlaqS1=eKoAYz)q{{FNh;K$Vo~6Dw06% zWeG{iXK+P2+#WlRm^VEXmu@VS7n1rc$9S4G&y;L#z$aIu>GSr7n-jooHNX%2>#dN*tGnN5fx@H#w(4^=6{ExfFaCiT9=5u*98%{QdVA8k z1-3QLAJye)u>E^1l)ZOBq8o8@od(6U+HB>kPrO+;nQ3)og0*C?^y6FJ*3j7hjw<&E z%7)}38yxQ+)5vv^i1XS9JTv6)c>5(B%{?TasX==IJTwCMDVaC|Ho6ec8tCrYbUeC* z)UZ#-BQ##m8U}IK?~Hb`3H#4_9<@IOzeuNoNT+@Uq#WL+g&G5HC_CwpbO0ME)X&`i zUd3S~pWJO`;;D39%05`CAT)YD=2?0n_J2M@)c1Z;PNmWT_SHvWbLOHuZTbRu#&Zdv zn7a8PswL~+_EZ0ngulx{aUXUJLlC-sB3J(TcLF~O@Q(k=9#GVqzWk580;Q1}sAv6K n{Qf1fJs|)8xNIl-<&z(c*Nza3?8opI;7?LiPNZ7sXTbjfopy@l literal 0 HcmV?d00001 diff --git a/board/arm/bananapi-bpi-m1/uboot/bpi-m1-env.dtsi b/board/arm/bananapi-bpi-m1/uboot/bpi-m1-env.dtsi new file mode 100644 index 000000000..02328336b --- /dev/null +++ b/board/arm/bananapi-bpi-m1/uboot/bpi-m1-env.dtsi @@ -0,0 +1,25 @@ +/ { + config { + environment { + vendor = "Banana Pi"; + preboot = "led bananapi:green:usr on; run ixpreboot"; + boot_targets = "mmc0"; + ethprime = "eth0"; + + /* The sunxi board code resets fdtfile after the environment + * is imported, without the vendor directory on 32-bit Arm */ + ixvariant = "setenv fdtfile allwinner/sun7i-a20-bananapi.dtb"; + + /* 1 GiB DRAM at 0x40000000, the squashfs is loaded whole + * at ramdisk_addr_r so keep that last with room above it */ + fdt_addr_r = "0x42000000"; + kernel_addr_r = "0x43000000"; + scriptaddr = "0x48000000"; + ramdisk_addr_r = "0x49000000"; + + /* No user button, this is a development platform */ + ixbtn-devmode = "setenv dev_mode yes; echo Enabled"; + ixbtn-factory = "echo \"No button, use bootmenu\""; + }; + }; +}; diff --git a/board/arm/bananapi-bpi-m1/uboot/extras.config b/board/arm/bananapi-bpi-m1/uboot/extras.config new file mode 100644 index 000000000..e5d221816 --- /dev/null +++ b/board/arm/bananapi-bpi-m1/uboot/extras.config @@ -0,0 +1,6 @@ +CONFIG_DEVICE_TREE_INCLUDES="infix-env.dtsi infix-key.dtsi bpi-m1-env.dtsi" +CONFIG_SYS_PROMPT="(bpi-m1) " + +# CONFIG_ENV_IS_IN_FAT is not set +CONFIG_LED=y +CONFIG_LED_GPIO=y diff --git a/board/arm/linux_defconfig b/board/arm/linux_defconfig index 3c0639ad7..20ff6ac33 100644 --- a/board/arm/linux_defconfig +++ b/board/arm/linux_defconfig @@ -306,6 +306,7 @@ CONFIG_SERIAL_DEV_BUS=y CONFIG_VIRTIO_CONSOLE=y CONFIG_I2C_CHARDEV=y CONFIG_SPI=y +CONFIG_GPIOLIB=y CONFIG_THERMAL=y CONFIG_WATCHDOG=y CONFIG_I6300ESB_WDT=y diff --git a/configs/arm_defconfig b/configs/arm_defconfig index b0deb8918..311e92199 100644 --- a/configs/arm_defconfig +++ b/configs/arm_defconfig @@ -137,6 +137,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y +BR2_PACKAGE_BANANAPI_BPI_M1=y BR2_PACKAGE_MICROCHIP_SAMA7G54_EK=y BR2_PACKAGE_RASPBERRYPI_RPI2=y IX_VENDOR_HOME="https://www.kernelkit.org" diff --git a/configs/arm_minimal_defconfig b/configs/arm_minimal_defconfig index aa140d806..9ea8a38a1 100644 --- a/configs/arm_minimal_defconfig +++ b/configs/arm_minimal_defconfig @@ -115,6 +115,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y +BR2_PACKAGE_BANANAPI_BPI_M1=y BR2_PACKAGE_MICROCHIP_SAMA7G54_EK=y BR2_PACKAGE_RASPBERRYPI_RPI2=y IX_VENDOR_HOME="https://www.kernelkit.org" diff --git a/configs/bpi_m1_boot_defconfig b/configs/bpi_m1_boot_defconfig new file mode 100644 index 000000000..0d9999ddf --- /dev/null +++ b/configs/bpi_m1_boot_defconfig @@ -0,0 +1,38 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y +BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_GLIBC_STABLE=y +BR2_DL_DIR="$(BR2_EXTERNAL_INFIX_PATH)/dl" +BR2_CCACHE=y +BR2_CCACHE_DIR="$(BR2_EXTERNAL_INFIX_PATH)/.ccache" +BR2_PACKAGE_OVERRIDE_FILE="$(BR2_EXTERNAL_INFIX_PATH)/local.mk" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_INFIX_PATH)/patches" +BR2_SSP_NONE=y +BR2_INIT_NONE=y +BR2_SYSTEM_BIN_SH_NONE=y +# BR2_PACKAGE_BUSYBOX is not set +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Bananapi" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_INFIX_PATH)/board/common/uboot/extras.config $(BR2_EXTERNAL_INFIX_PATH)/board/arm/bananapi-bpi-m1/uboot/extras.config" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_INFIX_PATH)/board/arm/bananapi-bpi-m1/uboot/bpi-m1-env.dtsi" +BR2_PACKAGE_HOST_BMAP_TOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_RAUC=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y +IX_TRUSTED_KEYS=y +IX_TRUSTED_KEYS_DEVELOPMENT=y diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index 1ac567296..fd8a7ec52 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -24,6 +24,8 @@ All notable changes to the project are documented in this file. - CLI: `check`, `commit`, and `leave` warn about bridge ports with a missing or mismatched PVID, which drops untagged frames or puts them in the wrong VLAN, issue #354 +- Add support for the Banana Pi BPI-M1 (Allwinner A20) to the 32-bit Arm + build, with a new `bpi_m1_boot_defconfig` for its U-Boot bootloader ### Fixes diff --git a/utils/mkimage.sh b/utils/mkimage.sh index 7738e4277..c942744e9 100755 --- a/utils/mkimage.sh +++ b/utils/mkimage.sh @@ -185,6 +185,9 @@ get_bootloader_name() acer-connect-vero-w6m) echo "bpi_r3_emmc_boot" ;; + bananapi-bpi-m1) + echo "bpi_m1_boot" + ;; bananapi-bpi-r3) if [ "$target" = "emmc" ]; then echo "bpi_r3_emmc_boot" From bdfe2269d2c460965c6d3da02e78888eb510a910 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 18:50:25 +0200 Subject: [PATCH 04/10] statd: keep sensor names within the YANG pattern hwmon labels are free text, but normalize_sensor_name() only rewrote underscores, so a label like "SoC temperature" from the Allwinner A20 SoC sensor ended up in the name. The space breaks the pattern for sensor names, statd fails to parse the yanger data, and no hardware status is shown at all. Signed-off-by: Joachim Wiberg --- doc/ChangeLog.md | 2 ++ src/statd/python/yanger/ietf_hardware.py | 7 ++++++- test/case/statd/sensors/cli/show-hardware | 1 + test/case/statd/sensors/ietf-hardware.json | 13 +++++++++++++ test/case/statd/sensors/operational.json | 13 +++++++++++++ .../system/rootfs/sys/class/hwmon/hwmon3/name | 1 + .../rootfs/sys/class/hwmon/hwmon3/temp1_input | 1 + .../rootfs/sys/class/hwmon/hwmon3/temp1_label | 1 + .../statd/sensors/system/run/ls_+sys+class+hwmon | 1 + .../sensors/system/run/ls_+sys+class+hwmon+hwmon3 | 3 +++ 10 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/name create mode 100644 test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_input create mode 100644 test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_label create mode 100644 test/case/statd/sensors/system/run/ls_+sys+class+hwmon+hwmon3 diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index fd8a7ec52..abbe2149c 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -38,6 +38,8 @@ All notable changes to the project are documented in this file. `vpd-*` component in the operational datastore - Fix FRR mgmtd crash loop on 32-bit Arm, caused by unaligned access to messages received from other daemons +- Fix missing hardware status when a sensor label has characters not + allowed in a sensor name, e.g., "SoC temperature" on the Allwinner A20 [v26.09.0][] - 2026-09-30 ------------------------- diff --git a/src/statd/python/yanger/ietf_hardware.py b/src/statd/python/yanger/ietf_hardware.py index 9c25bc82c..548bd1b1a 100644 --- a/src/statd/python/yanger/ietf_hardware.py +++ b/src/statd/python/yanger/ietf_hardware.py @@ -128,6 +128,7 @@ def normalize_sensor_name(name): cpu_thermal -> cpu-thermal s5_temp -> s5-temp pwmfan -> pwmfan + SoC temperature -> SoC-temperature Strategy: 1. Drop the vendor/chipset prefix of a per-port device, where the @@ -151,7 +152,11 @@ def normalize_sensor_name(name): # Remove underscores before trailing numbers (sfp_2 -> sfp2) name = re.sub(r'_(\d+)$', r'\1', name) - return name.replace("_", "-") + # Labels are free text, e.g. "SoC temperature", but a name must + # match the YANG pattern [a-zA-Z0-9_][a-zA-Z0-9_.:+@-]* + name = re.sub(r'[^a-zA-Z0-9.:+@]+', '-', name.replace("_", "-")) + + return name.strip("-") CPU_COMPONENT = "cpu" diff --git a/test/case/statd/sensors/cli/show-hardware b/test/case/statd/sensors/cli/show-hardware index fb22cbb1e..d906fa0a6 100644 --- a/test/case/statd/sensors/cli/show-hardware +++ b/test/case/statd/sensors/cli/show-hardware @@ -13,3 +13,4 @@ cpu: S5 Temp 59.5 °C ok pwmfan 3200 RPM ok +Soc Temperature 41.2 °C ok diff --git a/test/case/statd/sensors/ietf-hardware.json b/test/case/statd/sensors/ietf-hardware.json index 144df05d7..fd93712b3 100644 --- a/test/case/statd/sensors/ietf-hardware.json +++ b/test/case/statd/sensors/ietf-hardware.json @@ -68,6 +68,19 @@ "value-timestamp": "2026-01-02T20:43:23+00:00", "oper-status": "ok" } + }, + { + "name": "sun4i-ts-SoC-temperature", + "class": "iana-hardware:sensor", + "sensor-data": { + "value": 41200, + "value-type": "celsius", + "value-scale": "milli", + "value-precision": 0, + "value-timestamp": "2026-01-02T20:43:23+00:00", + "oper-status": "ok" + }, + "description": "Soc Temperature" } ] } diff --git a/test/case/statd/sensors/operational.json b/test/case/statd/sensors/operational.json index 144df05d7..fd93712b3 100644 --- a/test/case/statd/sensors/operational.json +++ b/test/case/statd/sensors/operational.json @@ -68,6 +68,19 @@ "value-timestamp": "2026-01-02T20:43:23+00:00", "oper-status": "ok" } + }, + { + "name": "sun4i-ts-SoC-temperature", + "class": "iana-hardware:sensor", + "sensor-data": { + "value": 41200, + "value-type": "celsius", + "value-scale": "milli", + "value-precision": 0, + "value-timestamp": "2026-01-02T20:43:23+00:00", + "oper-status": "ok" + }, + "description": "Soc Temperature" } ] } diff --git a/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/name b/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/name new file mode 100644 index 000000000..80a569b99 --- /dev/null +++ b/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/name @@ -0,0 +1 @@ +sun4i_ts diff --git a/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_input b/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_input new file mode 100644 index 000000000..1a112cfa2 --- /dev/null +++ b/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_input @@ -0,0 +1 @@ +41200 diff --git a/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_label b/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_label new file mode 100644 index 000000000..8d9a877a5 --- /dev/null +++ b/test/case/statd/sensors/system/rootfs/sys/class/hwmon/hwmon3/temp1_label @@ -0,0 +1 @@ +SoC temperature diff --git a/test/case/statd/sensors/system/run/ls_+sys+class+hwmon b/test/case/statd/sensors/system/run/ls_+sys+class+hwmon index b51997471..324efcb17 100644 --- a/test/case/statd/sensors/system/run/ls_+sys+class+hwmon +++ b/test/case/statd/sensors/system/run/ls_+sys+class+hwmon @@ -1,3 +1,4 @@ hwmon0 hwmon1 hwmon2 +hwmon3 diff --git a/test/case/statd/sensors/system/run/ls_+sys+class+hwmon+hwmon3 b/test/case/statd/sensors/system/run/ls_+sys+class+hwmon+hwmon3 new file mode 100644 index 000000000..27c20f9a3 --- /dev/null +++ b/test/case/statd/sensors/system/run/ls_+sys+class+hwmon+hwmon3 @@ -0,0 +1,3 @@ +name +temp1_input +temp1_label From b625222ad8a9cfed2a992ea48326af622329bcf8 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 20:36:02 +0200 Subject: [PATCH 05/10] configs: build 32-bit Arm with 64-bit time_t libuev exports -D_TIME_BITS=64 to its users, its ABI has time_t in it, so mdns-alias and finit were built with a 64-bit time_t while everything else on 32-bit Arm used 32 bits. mdns-alias passes a struct timeval between libuev and Avahi, read the wrong size, and turned D-Bus timeouts into garbage. Avahi then reported every connection attempt as "Memory exhausted" and mdns-alias never got to publish anything. One time ABI for the whole system also makes 32-bit Arm Y2038 ready. Signed-off-by: Joachim Wiberg --- configs/arm_defconfig | 1 + configs/arm_minimal_defconfig | 1 + doc/ChangeLog.md | 2 ++ 3 files changed, 4 insertions(+) diff --git a/configs/arm_defconfig b/configs/arm_defconfig index 311e92199..156669a35 100644 --- a/configs/arm_defconfig +++ b/configs/arm_defconfig @@ -10,6 +10,7 @@ BR2_CCACHE_DIR="${BR2_EXTERNAL_INFIX_PATH}/.ccache" BR2_ENABLE_DEBUG=y BR2_GLOBAL_PATCH_DIR="${BR2_EXTERNAL_INFIX_PATH}/patches" BR2_DOWNLOAD_FORCE_CHECK_HASHES=y +BR2_TIME_BITS_64=y BR2_TARGET_GENERIC_HOSTNAME="infix" BR2_TARGET_GENERIC_ISSUE="Infix by KernelKit" BR2_INIT_FINIT=y diff --git a/configs/arm_minimal_defconfig b/configs/arm_minimal_defconfig index 9ea8a38a1..f38f8b719 100644 --- a/configs/arm_minimal_defconfig +++ b/configs/arm_minimal_defconfig @@ -10,6 +10,7 @@ BR2_CCACHE_DIR="${BR2_EXTERNAL_INFIX_PATH}/.ccache" BR2_ENABLE_DEBUG=y BR2_GLOBAL_PATCH_DIR="${BR2_EXTERNAL_INFIX_PATH}/patches" BR2_DOWNLOAD_FORCE_CHECK_HASHES=y +BR2_TIME_BITS_64=y BR2_TARGET_GENERIC_HOSTNAME="ix" BR2_TARGET_GENERIC_ISSUE="Infix by KernelKit" BR2_INIT_FINIT=y diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index abbe2149c..028e343be 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -38,6 +38,8 @@ All notable changes to the project are documented in this file. `vpd-*` component in the operational datastore - Fix FRR mgmtd crash loop on 32-bit Arm, caused by unaligned access to messages received from other daemons +- Fix mdns-alias failing to publish on 32-bit Arm, every retry ended in + "Memory exhausted". The 32-bit Arm builds now use 64-bit `time_t` - Fix missing hardware status when a sensor label has characters not allowed in a sensor name, e.g., "SoC temperature" on the Allwinner A20 From fd0a90cb497e9f3345478de25962640e0784bf01 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 20:36:56 +0200 Subject: [PATCH 06/10] configs: build 32-bit Arm without FRR The 32-bit Arm boards are small, and FRR with bash is a big part of the image. Static routing covers what they are used for. As with the minimal builds, BUSYBOX_SHOW_OTHERS is set explicitly, since it was selected only through bash. neofetch goes too, it selects bash. Signed-off-by: Joachim Wiberg --- configs/arm_defconfig | 5 +---- doc/ChangeLog.md | 3 ++- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/configs/arm_defconfig b/configs/arm_defconfig index 156669a35..108521113 100644 --- a/configs/arm_defconfig +++ b/configs/arm_defconfig @@ -34,6 +34,7 @@ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${BR2_EXTERNAL_INFIX_PATH}/board/arm/linux_ BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_PACKAGE_BUSYBOX_CONFIG="${BR2_EXTERNAL_INFIX_PATH}/board/common/busybox_defconfig" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_STRACE=y BR2_PACKAGE_STRESS_NG=y BR2_PACKAGE_JQ=y @@ -69,7 +70,6 @@ BR2_PACKAGE_CONNTRACK_TOOLS=y BR2_PACKAGE_DNSMASQ=y BR2_PACKAGE_ETHTOOL=y BR2_PACKAGE_FPING=y -BR2_PACKAGE_FRR=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set BR2_PACKAGE_IPERF3=y BR2_PACKAGE_IPROUTE2=y @@ -99,9 +99,6 @@ BR2_PACKAGE_TRACEROUTE=y BR2_PACKAGE_ULOGD=y BR2_PACKAGE_WHOIS=y BR2_PACKAGE_WIREGUARD_TOOLS=y -BR2_PACKAGE_BASH=y -BR2_PACKAGE_BASH_COMPLETION=y -BR2_PACKAGE_NEOFETCH=y BR2_PACKAGE_SUDO=y BR2_PACKAGE_TTYD=y BR2_PACKAGE_GETENT=y diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index 028e343be..3b865bfe1 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -13,7 +13,8 @@ All notable changes to the project are documented in this file. ietf-rip and ietf-ospf models, selected per control-plane-protocol by the `ripng`/`ospfv3` type and the IPv6 address-family - Support building without Frr, which also drops bash. The minimal - defconfigs are now built this way, with static routing only, issue #1670 + defconfigs, and the 32-bit Arm build, are now built this way, with + static routing only, issue #1670 - Check for a new software release on demand: `upgrade` without a bundle in the CLI, the Check now button on the WebUI dashboard, or the `check-update` RPC, see [Unattended Software Updates][unattended] From de8195a33c1a25b5249c8871c19c81999bdcda46 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 8 Oct 2026 17:17:44 +0200 Subject: [PATCH 07/10] package/iito: update to latest main, fix crash on 32-bit Arm iitod unpacked a boolean into a bool where jansson writes an int, corrupting the stack on 32-bit Arm as soon as an LED was set on or off, and printed 64-bit integers with %d, so blink rates came out wrong. The update also brings a control socket, root:wheel so admin users need no sudo, and the iitoctl tool, showing which rule drives each LED and why. Its locate method sets the config's locate input, optionally for a number of seconds, which is what a locate RPC needs. The git tree has no configure script, so the package is autoreconfigured. Signed-off-by: Joachim Wiberg --- doc/ChangeLog.md | 4 ++++ package/iito/iito.hash | 2 +- package/iito/iito.mk | 6 ++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index 3b865bfe1..6a63c8d53 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -27,6 +27,8 @@ All notable changes to the project are documented in this file. VLAN, issue #354 - Add support for the Banana Pi BPI-M1 (Allwinner A20) to the 32-bit Arm build, with a new `bpi_m1_boot_defconfig` for its U-Boot bootloader +- New `iitoctl` tool, shows which rule drives each LED and why, and can + start locate, the board's LEDs blink as configured: `iitoctl locate on` ### Fixes @@ -41,6 +43,8 @@ All notable changes to the project are documented in this file. messages received from other daemons - Fix mdns-alias failing to publish on 32-bit Arm, every retry ended in "Memory exhausted". The 32-bit Arm builds now use 64-bit `time_t` +- Fix the LED daemon, iitod, crashing on 32-bit Arm, which left all LEDs + off after boot - Fix missing hardware status when a sensor label has characters not allowed in a sensor name, e.g., "SoC temperature" on the Allwinner A20 diff --git a/package/iito/iito.hash b/package/iito/iito.hash index 6123f4088..bb56625eb 100644 --- a/package/iito/iito.hash +++ b/package/iito/iito.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 7db4077b7c132170e9c358397cc2a30ae810ce24b8a5b66eb6b31c7c203156c1 iito-1.1.0.tar.gz +sha256 070ed43b5d73ba43bb8c3b3c2d69bd36681f0e345ba4cf961308cb9d349c6bbe iito-8c671ea6408ba93318c840460ed7dd25af12eadc.tar.gz sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING diff --git a/package/iito/iito.mk b/package/iito/iito.mk index 0d51f205a..ee87f0120 100644 --- a/package/iito/iito.mk +++ b/package/iito/iito.mk @@ -4,11 +4,13 @@ # ################################################################################ -IITO_VERSION = 1.1.0 -IITO_SITE = https://github.com/kernelkit/iito/releases/download/v$(IITO_VERSION) +IITO_VERSION = 8c671ea6408ba93318c840460ed7dd25af12eadc +IITO_SITE = $(call github,kernelkit,iito,$(IITO_VERSION)) IITO_LICENSE = GPL-2.0 IITO_LICENSE_FILES = COPYING IITO_DEPENDENCIES = jansson libev udev +# No configure script in the git tree +IITO_AUTORECONF = YES define IITO_INSTALL_HOOK $(INSTALL) -D -m 0644 $(IITO_PKGDIR)/iitod.svc $(FINIT_D)/available/iitod.conf From 7ef0a3a940497c59d2315ce1c55dbc728cfea77a Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 23:22:44 +0200 Subject: [PATCH 08/10] confd: share rpc_user() between RPC handlers RPCs that act on the device should log who asked for them, but the helper that finds the requesting user was private to support.c. Signed-off-by: Joachim Wiberg --- src/confd/src/core.c | 18 ++++++++++++++++++ src/confd/src/core.h | 2 ++ src/confd/src/support.c | 18 ------------------ 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/confd/src/core.c b/src/confd/src/core.c index 7ebf70d51..6f88f1d31 100644 --- a/src/confd/src/core.c +++ b/src/confd/src/core.c @@ -61,6 +61,24 @@ FILE *fopenfp(mode_t mode, const char *group, const char *fmt, ...) return fp; } +/* The event session runs as confd itself, the caller is only known + * from the originator data: netopeer2 pushes the NETCONF session id + * and then the username, rousette pushes nothing */ +const char *rpc_user(sr_session_ctx_t *session, const char **via) +{ + const char *orig = sr_session_get_orig_name(session); + const void *data; + uint32_t size; + + *via = orig && orig[0] ? orig : "local session"; + + if (orig && !strcmp(orig, "netopeer2") && + !sr_session_get_orig_data(session, 1, &size, &data) && size) + return data; + + return NULL; +} + /* * Touch a Finit service .conf file to schedule a synchronized reload. * Equivalent to 'initctl touch ' but without the fork+exec overhead. diff --git a/src/confd/src/core.h b/src/confd/src/core.h index 707c6f72a..61d5664df 100644 --- a/src/confd/src/core.h +++ b/src/confd/src/core.h @@ -215,6 +215,8 @@ int finit_enablef(const char *fmt, ...) __attribute__((format(printf, 1, 2))); int finit_disablef(const char *fmt, ...) __attribute__((format(printf, 1, 2))); int finit_deletef(const char *fmt, ...) __attribute__((format(printf, 1, 2))); int finit_reloadf(const char *fmt, ...) __attribute__((format(printf, 1, 2))); + +const char *rpc_user(sr_session_ctx_t *session, const char **via); FILE *fopenp(const char *path, mode_t mode, const char *group); FILE *fopenfp(mode_t mode, const char *group, const char *fmt, ...) __attribute__((format(printf, 3, 4))); diff --git a/src/confd/src/support.c b/src/confd/src/support.c index 089e0f711..6a5c2d313 100644 --- a/src/confd/src/support.c +++ b/src/confd/src/support.c @@ -171,24 +171,6 @@ static void cleanup(const char *dir) WARN("Cannot remove %s: %s", dir, strerror(errno)); } -/* The event session runs as confd itself, the caller is only known - * from the originator data: netopeer2 pushes the NETCONF session id - * and then the username, rousette pushes nothing */ -static const char *rpc_user(sr_session_ctx_t *session, const char **via) -{ - const char *orig = sr_session_get_orig_name(session); - const void *data; - uint32_t size; - - *via = orig && orig[0] ? orig : "local session"; - - if (orig && !strcmp(orig, "netopeer2") && - !sr_session_get_orig_data(session, 1, &size, &data) && size) - return data; - - return NULL; -} - static int add_str(sr_val_t **output, size_t *cnt, const char *path, const char *leaf, sr_val_type_t type, const char *val) { From 8551cb707da7f1a6c5a7474f88464a7959207b18 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 4 Oct 2026 23:22:51 +0200 Subject: [PATCH 09/10] hardware: add locate RPC to find a chassis Blinks the board's locate LEDs, by default for 60 seconds, so the unit can be found, e.g., in a rack. Available over NETCONF/RESTCONF, as the CLI command locate, and from the Hardware page in the web interface. The default NACM rules deny guests, all other users may call it. confd forwards the request to iitod, which sets the locate input of its config and keeps the timer. Which LEDs blink, and how, is up to each board's iitod.json, the BPi-M1 blinks its only LED at 10 Hz to tell it apart from loading. Systems where iitod is disabled, because of unreliable kernel LED support, have no control socket and the RPC fails with an error saying so. Signed-off-by: Joachim Wiberg --- board/arm/bananapi-bpi-m1/README.md | 2 +- .../product/lemaker,bananapi/etc/iitod.json | 7 +- doc/ChangeLog.md | 4 + doc/hardware.md | 28 ++++ src/confd/src/Makefile.am | 1 + src/confd/src/core.c | 4 + src/confd/src/core.h | 3 + src/confd/src/locate.c | 132 ++++++++++++++++++ src/confd/yang/confd.inc | 2 +- src/confd/yang/confd/infix-hardware.yang | 33 +++++ ...24.yang => infix-hardware@2026-10-04.yang} | 0 src/klish-plugin-infix/xml/infix.xml | 21 +++ src/webui/internal/handlers/hardware.go | 14 ++ src/webui/internal/server/server.go | 1 + src/webui/templates/pages/hardware.html | 8 +- 15 files changed, 256 insertions(+), 4 deletions(-) create mode 100644 src/confd/src/locate.c rename src/confd/yang/confd/{infix-hardware@2026-09-24.yang => infix-hardware@2026-10-04.yang} (100%) diff --git a/board/arm/bananapi-bpi-m1/README.md b/board/arm/bananapi-bpi-m1/README.md index 572354827..f9e383566 100644 --- a/board/arm/bananapi-bpi-m1/README.md +++ b/board/arm/bananapi-bpi-m1/README.md @@ -74,7 +74,7 @@ LEDs and Buttons | U-Boot | on | | System loading | 1 Hz | | System up | on | -| Locate | 1 Hz | +| Locate | 10 Hz | | Fail safe | 5 Hz | | Panic | 5 Hz | diff --git a/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json index e80f55fa2..287630ac2 100644 --- a/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json +++ b/board/arm/bananapi-bpi-m1/rootfs/usr/share/product/lemaker,bananapi/etc/iitod.json @@ -81,7 +81,7 @@ "rules": [ { "if": "locate", - "then": "@blink-1hz" + "then": "@blink-10hz" }, { "if": "panic", @@ -119,6 +119,11 @@ "trigger": "timer", "delay_on": 100, "delay_off": 100 + }, + "blink-10hz": { + "trigger": "timer", + "delay_on": 50, + "delay_off": 50 } } } diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index 6a63c8d53..ca6368ebf 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -29,6 +29,10 @@ All notable changes to the project are documented in this file. build, with a new `bpi_m1_boot_defconfig` for its U-Boot bootloader - New `iitoctl` tool, shows which rule drives each LED and why, and can start locate, the board's LEDs blink as configured: `iitoctl locate on` +- New `infix-hardware:locate` RPC, blinks the board's locate LEDs to + identify the chassis, by default for 60 seconds. Available from the + CLI, `locate`, and the Hardware page in the web interface. Not allowed + for guest users ### Fixes diff --git a/doc/hardware.md b/doc/hardware.md index c54c22b5a..609db0145 100644 --- a/doc/hardware.md +++ b/doc/hardware.md @@ -31,6 +31,34 @@ Which hwmon device or thermal zone belongs to which component is decided when the data is collected, and is the only place platform specific names are recognized. +## Locate + +To find a chassis, e.g., in a rack, its LEDs can be set to blink. Which +LEDs blink, and how, depends on the device. Locate stops by itself after +60 seconds, unless another duration is given, or when stopped. + +

admin@example:/> locate
+admin@example:/> locate duration 300
+admin@example:/> locate stop
+admin@example:/> no locate
+
+ +The CLI commands call the `infix-hardware:locate` RPC, which takes +`enable` and `duration`, in seconds. Over RESTCONF: + +```sh +curl -su admin:admin -X POST -H "Content-Type: application/yang-data+json" \ + -d '{"infix-hardware:input": {"duration": 300}}' \ + https://example/restconf/operations/infix-hardware:locate +``` + +The web interface has a *Locate* button on the Hardware page. + +Users in the `admin` and `operator` NACM groups may call locate, guest +users may not. On systems where LED control is disabled, the LEDs keep +their hardware default behavior and the RPC fails with *LED control is +not available on this device*. + ## GPS/GNSS Receivers Infix supports GPS/GNSS receivers for hardware status monitoring and NTP diff --git a/src/confd/src/Makefile.am b/src/confd/src/Makefile.am index 6ea4efd2a..69ef9dbea 100644 --- a/src/confd/src/Makefile.am +++ b/src/confd/src/Makefile.am @@ -53,6 +53,7 @@ confd_plugin_la_SOURCES = \ keystore.c \ system.c \ support.c \ + locate.c \ schedule.c \ ntp.c \ ptp.c \ diff --git a/src/confd/src/core.c b/src/confd/src/core.c index 6f88f1d31..b89cf9e02 100644 --- a/src/confd/src/core.c +++ b/src/confd/src/core.c @@ -1003,6 +1003,10 @@ int sr_plugin_init_cb(sr_session_ctx_t *session, void **priv) if (rc) goto err; + rc = locate_rpc_init(&confd); + if (rc) + goto err; + rc = syslog_rpc_init(&confd); if (rc) goto err; diff --git a/src/confd/src/core.h b/src/confd/src/core.h index 61d5664df..e784e6a5b 100644 --- a/src/confd/src/core.h +++ b/src/confd/src/core.h @@ -280,6 +280,9 @@ int system_sw_rpc_init(struct confd *confd); /* support.c */ int support_rpc_init(struct confd *confd); +/* locate.c */ +int locate_rpc_init(struct confd *confd); + /* services.c */ int services_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd); diff --git a/src/confd/src/locate.c b/src/confd/src/locate.c new file mode 100644 index 000000000..d28ccdde0 --- /dev/null +++ b/src/confd/src/locate.c @@ -0,0 +1,132 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "core.h" + +#define IITOD_SOCKET "/run/iitod.sock" +#define IITOD_TIMEOUT 2 /* seconds */ + +static int fail(sr_session_ctx_t *session, const char *msg) +{ + sr_session_set_netconf_error(session, "application", "operation-failed", + NULL, NULL, msg, 0); + return SR_ERR_OPERATION_FAILED; +} + +/* + * One request, one reply, over the iitod control socket. Returns the + * parsed reply, or NULL with *err set. iitod is disabled on systems + * where kernel LED support is unreliable, then there is no socket. + */ +static json_t *iitod_call(json_t *req, const char **err) +{ + struct sockaddr_un sun = { .sun_family = AF_UNIX, .sun_path = IITOD_SOCKET }; + struct timeval tv = { .tv_sec = IITOD_TIMEOUT }; + char buf[4096], *msg; + json_t *reply = NULL; + size_t len = 0; + ssize_t n; + int sd; + + sd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); + if (sd < 0) { + *err = "failed creating socket"; + return NULL; + } + + /* Do not let a stuck iitod block confd, this also bounds connect() */ + setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); + setsockopt(sd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)); + + if (connect(sd, (struct sockaddr *)&sun, sizeof(sun))) { + if (errno == ENOENT) + *err = "LED control is not available on this device"; + else if (errno == ECONNREFUSED) + *err = "the LED daemon is not running"; + else + *err = "failed connecting to the LED daemon"; + goto done; + } + + msg = json_dumps(req, JSON_COMPACT); + if (!msg || dprintf(sd, "%s\n", msg) < 0) { + *err = "failed sending request to the LED daemon"; + free(msg); + goto done; + } + free(msg); + + while (len < sizeof(buf) - 1) { + n = read(sd, &buf[len], sizeof(buf) - 1 - len); + if (n <= 0) + break; + len += n; + } + buf[len] = 0; + + reply = json_loads(buf, 0, NULL); + if (!reply) + *err = "no valid reply from the LED daemon"; +done: + close(sd); + return reply; +} + +static int rpc_locate(sr_session_ctx_t *session, uint32_t sub_id, const char *path, + const sr_val_t *input, const size_t input_cnt, sr_event_t event, + unsigned request_id, sr_val_t **output, size_t *output_cnt, void *priv) +{ + const char *err, *user, *via; + uint32_t duration = 0; + json_t *req, *reply; + bool enable = false; + int rc = SR_ERR_OK; + + if (event != SR_EV_RPC) + return SR_ERR_OK; + + /* sysrepo passes the YANG defaults for leaves not given */ + for (size_t i = 0; i < input_cnt; i++) { + const char *leaf = strrchr(input[i].xpath, '/'); + + if (!leaf) + continue; + if (!strcmp(leaf, "/enable")) + enable = input[i].data.bool_val; + else if (!strcmp(leaf, "/duration")) + duration = input[i].data.uint32_val; + } + + user = rpc_user(session, &via); + AUDIT("Locate %s by user \"%s\" over %s.", enable ? "started" : "stopped", + user ?: "unknown", via); + + /* iitod only arms the timeout when enabling */ + req = json_pack("{s:s, s:{s:b, s:I}}", "method", "locate", "params", + "enable", enable, "timeout", (json_int_t)duration); + reply = iitod_call(req, &err); + json_decref(req); + if (!reply) + return fail(session, err); + + if (json_object_get(reply, "error")) + rc = fail(session, json_string_value(json_object_get(reply, "error")) ? : "failed"); + + json_decref(reply); + return rc; +} + +int locate_rpc_init(struct confd *confd) +{ + return register_rpc(confd->session, "/infix-hardware:locate", + rpc_locate, NULL, &confd->sub); +} diff --git a/src/confd/yang/confd.inc b/src/confd/yang/confd.inc index 054dca82b..24e265530 100644 --- a/src/confd/yang/confd.inc +++ b/src/confd/yang/confd.inc @@ -27,7 +27,7 @@ MODULES=( "infix-syslog@2026-09-24.yang" "iana-hardware@2018-03-13.yang" "ietf-hardware@2018-03-13.yang -e hardware-state -e hardware-sensor" - "infix-hardware@2026-09-24.yang" + "infix-hardware@2026-10-04.yang" "ieee802-dot1q-types@2022-10-29.yang" "infix-ip@2026-04-28.yang" "infix-if-type@2026-01-07.yang" diff --git a/src/confd/yang/confd/infix-hardware.yang b/src/confd/yang/confd/infix-hardware.yang index 6769774b6..a35c38c23 100644 --- a/src/confd/yang/confd/infix-hardware.yang +++ b/src/confd/yang/confd/infix-hardware.yang @@ -21,6 +21,11 @@ module infix-hardware { contact "kernelkit@googlegroups.com"; description "Vital Product Data augmentation of ieee-hardware and deviations."; + revision 2026-10-04 { + description "Add locate RPC, blinks LEDs to identify the chassis."; + reference "internal"; + } + revision 2026-09-24 { description "Constrain the character set of hardware component names."; reference "internal"; @@ -747,4 +752,32 @@ module infix-hardware { } } } + + rpc locate { + description + "Blink the LEDs of the chassis to physically identify it, e.g., in + a rack. Which LEDs blink, and how, is defined per board. Locate + stops by itself after the given duration, or when called again + with enable set to false. + + Fails on systems where LED control is disabled, the LEDs then keep + their hardware default behavior."; + + input { + leaf enable { + type boolean; + default true; + description "Start, or stop, blinking the LEDs."; + } + + leaf duration { + type uint32 { + range "1..86400"; + } + units "seconds"; + default 60; + description "Stop blinking by itself after this many seconds."; + } + } + } } diff --git a/src/confd/yang/confd/infix-hardware@2026-09-24.yang b/src/confd/yang/confd/infix-hardware@2026-10-04.yang similarity index 100% rename from src/confd/yang/confd/infix-hardware@2026-09-24.yang rename to src/confd/yang/confd/infix-hardware@2026-10-04.yang diff --git a/src/klish-plugin-infix/xml/infix.xml b/src/klish-plugin-infix/xml/infix.xml index 105700037..1f897bf5d 100644 --- a/src/klish-plugin-infix/xml/infix.xml +++ b/src/klish-plugin-infix/xml/infix.xml @@ -275,6 +275,24 @@ + + + + + + + + + set -- /infix-hardware:locate + if [ -n "$KLISH_PARAM_stop" ]; then + set -- "$@" enable false + elif [ -n "$KLISH_PARAM_seconds" ]; then + set -- "$@" duration "$KLISH_PARAM_seconds" + fi + doas -u "$KLISH_USER" rpc "$@" + + + /ietf-system:system-shutdown @@ -1099,6 +1117,9 @@ echo "Public: $pub" + + doas -u "$KLISH_USER" rpc /infix-hardware:locate enable false + diff --git a/src/webui/internal/handlers/hardware.go b/src/webui/internal/handlers/hardware.go index 8748926f0..30c679d61 100644 --- a/src/webui/internal/handlers/hardware.go +++ b/src/webui/internal/handlers/hardware.go @@ -4,6 +4,7 @@ package handlers import ( "context" + "fmt" "html/template" "log" "net/http" @@ -96,6 +97,19 @@ type HardwareHandler struct { RC *restconf.Client } +// Locate blinks LEDs to identify the chassis, for the duration +// given by the YANG default of the infix-hardware:locate RPC. +func (h *HardwareHandler) Locate(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/html") + if err := h.RC.Post(r.Context(), "/operations/infix-hardware:locate"); err != nil { + log.Printf("locate: %v", err) + fmt.Fprintf(w, `Failed: %s`, + template.HTMLEscapeString(err.Error())) + return + } + fmt.Fprint(w, `✓ Locating, LEDs are blinking`) +} + func (h *HardwareHandler) Overview(w http.ResponseWriter, r *http.Request) { data := hardwarePageData{ PageData: newPageData(w, r, "hardware", "Hardware"), diff --git a/src/webui/internal/server/server.go b/src/webui/internal/server/server.go index 6f95b8425..61aee687a 100644 --- a/src/webui/internal/server/server.go +++ b/src/webui/internal/server/server.go @@ -309,6 +309,7 @@ func New( mux.HandleFunc("GET /routing", routing.Overview) mux.HandleFunc("GET /wifi", wifi.Overview) mux.HandleFunc("GET /hardware", hw.Overview) + mux.HandleFunc("POST /hardware/locate", hw.Locate) mux.HandleFunc("GET /vpn", vpn.Overview) mux.HandleFunc("GET /dhcp", dhcp.Overview) mux.HandleFunc("GET /ntp", ntp.Overview) diff --git a/src/webui/templates/pages/hardware.html b/src/webui/templates/pages/hardware.html index cdc598d6e..7983180d7 100644 --- a/src/webui/templates/pages/hardware.html +++ b/src/webui/templates/pages/hardware.html @@ -12,7 +12,13 @@ {{/* ── Board ─────────────────────────────────────────────────────────── */}} {{if .Board.Model}}
-
Board
+
Board + +
+
From bc3407524354c6245d8c64a452ea581c3dec6212 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 8 Oct 2026 17:39:11 +0200 Subject: [PATCH 10/10] Makefile: run goals in order The workflows run 'make foo_defconfig apply-mirror' with -j5, so make started both goals at once and apply-mirror found no .config yet. All bootloader builds failed this way, and the two goals also raced on the git index.lock. Buildroot's own Makefile is .NOTPARALLEL for the same reason, -j still applies within each goal. Signed-off-by: Joachim Wiberg --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 16d5d6f7d..a801128a8 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,10 @@ override O := $(if $(filter /%,$O),$O,$(CURDIR)/$O) config := $(O)/.config bmake = $(MAKE) -C buildroot O=$(O) $1 + +# Goals depend on each other, e.g. 'make foo_defconfig apply-mirror', +# so run them in order. Like Buildroot, -j still applies to each goal. +.NOTPARALLEL: SNIPPETS_DIR := $(CURDIR)/configs/snippets MERGE_CONFIG := $(CURDIR)/buildroot/support/kconfig/merge_config.sh
Model{{.Board.Model}}