From 3d088f3e2b8ed3d33881e4bafc74166333dd92f1 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 4 Feb 2026 15:24:44 +0100 Subject: [PATCH 1/5] Add support for Microchip SAMA7G54-EK Evaluation Kit Signed-off-by: Joachim Wiberg --- .github/workflows/build-boot.yml | 2 + .github/workflows/build-image.yml | 7 ++ board/arm/Config.in | 1 + board/arm/microchip-sama7g54-ek/Config.in | 7 ++ board/arm/microchip-sama7g54-ek/LICENSE | 13 ++ board/arm/microchip-sama7g54-ek/README.md | 116 ++++++++++++++++++ board/arm/microchip-sama7g54-ek/dts/Makefile | 1 + .../dts/microchip/at91-sama7g5ek.dts | 18 +++ .../dts/microchip/infix.dtsi | 13 ++ .../arm/microchip-sama7g54-ek/genimage.cfg.in | 85 +++++++++++++ .../microchip-sama7g54-ek.mk | 69 +++++++++++ .../rootfs/etc/rauc/system.conf | 12 ++ .../etc/product/interface-quirks.json | 5 + .../uboot/emmc-extras.config | 1 + .../microchip-sama7g54-ek/uboot/extras.config | 13 ++ .../uboot/sama7g54-ek-env-emmc.dtsi | 19 +++ .../uboot/sama7g54-ek-env-sd.dtsi | 19 +++ .../uboot/sd-extras.config | 1 + board/arm/rootfs/boot/syslinux/syslinux.conf | 4 + configs/arm_defconfig | 1 + configs/arm_minimal_defconfig | 1 + configs/sama7g54_ek_emmc_boot_defconfig | 38 ++++++ configs/sama7g54_ek_sd_boot_defconfig | 38 ++++++ 23 files changed, 484 insertions(+) create mode 100644 board/arm/microchip-sama7g54-ek/Config.in create mode 100644 board/arm/microchip-sama7g54-ek/LICENSE create mode 100644 board/arm/microchip-sama7g54-ek/README.md create mode 100644 board/arm/microchip-sama7g54-ek/dts/Makefile create mode 100644 board/arm/microchip-sama7g54-ek/dts/microchip/at91-sama7g5ek.dts create mode 100644 board/arm/microchip-sama7g54-ek/dts/microchip/infix.dtsi create mode 100644 board/arm/microchip-sama7g54-ek/genimage.cfg.in create mode 100644 board/arm/microchip-sama7g54-ek/microchip-sama7g54-ek.mk create mode 100644 board/arm/microchip-sama7g54-ek/rootfs/etc/rauc/system.conf create mode 100644 board/arm/microchip-sama7g54-ek/rootfs/usr/share/product/microchip,sama7g5ek/etc/product/interface-quirks.json create mode 100644 board/arm/microchip-sama7g54-ek/uboot/emmc-extras.config create mode 100644 board/arm/microchip-sama7g54-ek/uboot/extras.config create mode 100644 board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-emmc.dtsi create mode 100644 board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-sd.dtsi create mode 100644 board/arm/microchip-sama7g54-ek/uboot/sd-extras.config create mode 100644 board/arm/rootfs/boot/syslinux/syslinux.conf create mode 100644 configs/sama7g54_ek_emmc_boot_defconfig create mode 100644 configs/sama7g54_ek_sd_boot_defconfig diff --git a/.github/workflows/build-boot.yml b/.github/workflows/build-boot.yml index f138fd9e1..ca285be62 100644 --- a/.github/workflows/build-boot.yml +++ b/.github/workflows/build-boot.yml @@ -24,6 +24,8 @@ jobs: - nanopi_r2s_boot - rpi2_boot - rpi64_boot + - sama7g54_ek_emmc_boot + - sama7g54_ek_sd_boot env: MAKEFLAGS: -j5 steps: diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index d73f91540..27c9a9b86 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -12,6 +12,7 @@ on: - raspberrypi-rpi64 - bananapi-bpi-r3 - friendlyarm-nanopi-r2s + - microchip-sama7g54-ek default: 'raspberrypi-rpi64' jobs: @@ -71,6 +72,12 @@ jobs: echo "ARCH=aarch64" >> $GITHUB_ENV echo "BUILD_EMMC=false" >> $GITHUB_ENV ;; + microchip-sama7g54-ek) + echo "BOOTLOADER_SD=sama7g54-ek-sd-boot" >> $GITHUB_ENV + echo "BOOTLOADER_EMMC=sama7g54-ek-emmc-boot" >> $GITHUB_ENV + echo "ARCH=arm" >> $GITHUB_ENV + echo "BUILD_EMMC=true" >> $GITHUB_ENV + ;; *) echo "Error: Unknown board ${{ inputs.board }}" exit 1 diff --git a/board/arm/Config.in b/board/arm/Config.in index d24bc1a6b..7d30b9695 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/microchip-sama7g54-ek/Config.in" source "$BR2_EXTERNAL_INFIX_PATH/board/arm/raspberrypi-rpi2/Config.in" endif diff --git a/board/arm/microchip-sama7g54-ek/Config.in b/board/arm/microchip-sama7g54-ek/Config.in new file mode 100644 index 000000000..d729497d6 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_MICROCHIP_SAMA7G54_EK + bool "Microchip SAMA7G54-EK Evaluation Kit" + depends on BR2_arm + select SDCARD_AUX + help + Support for the Microchip SAMA7G54 Evaluation Kit featuring + a Cortex-A7 processor with MACB Gigabit Ethernet and MMC storage. diff --git a/board/arm/microchip-sama7g54-ek/LICENSE b/board/arm/microchip-sama7g54-ek/LICENSE new file mode 100644 index 000000000..8cdb30a3a --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/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/microchip-sama7g54-ek/README.md b/board/arm/microchip-sama7g54-ek/README.md new file mode 100644 index 000000000..11926ab30 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/README.md @@ -0,0 +1,116 @@ +Microchip SAMA7G54-EK +===================== + +The [SAMA7G54-EK][1] is an evaluation kit for the Microchip SAMA7G5 series, +featuring an ARM Cortex-A7 processor @ 800 MHz with 512 MB DDR3L RAM. + +The board features: + +- 2x MACB Gigabit Ethernet ports +- 8 GB eMMC (SDMMC0) + microSD card slot (SDMMC1) +- QSPI NOR flash +- USB 2.0 host ports +- CAN bus interfaces +- Flexcom serial ports (UART, SPI, I2C) + +How to Build +------------ + +Since there are no pre-built images for ARM 32-bit, you need to build +both Infix and the bootloader from source. + +### SD Card + +1. Build the bootloader + + make O=x-boot-sama7g54 sama7g54_ek_sd_boot_defconfig + make O=x-boot-sama7g54 + +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-sama7g54 -r x-arm microchip-sama7g54-ek + +### eMMC + +1. Build the bootloader + + make O=x-boot-sama7g54-emmc sama7g54_ek_emmc_boot_defconfig + make O=x-boot-sama7g54-emmc + +2. Build Infix (same as above, skip if already built) + + make O=x-arm arm_defconfig + make O=x-arm + +3. Create the eMMC image + + ./utils/mkimage.sh -b x-boot-sama7g54-emmc -r x-arm -t emmc microchip-sama7g54-ek + +Flashing to SD Card +------------------- + +[Flash the image][0] to a microSD card (at least 2 GB): + +```bash +sudo dd if=x-boot-sama7g54/images/infix-arm-sdcard.img of=/dev/sdX \ + bs=1M status=progress oflag=direct +``` + +You can also use `bmaptool` for faster writes: + +```bash +sudo bmaptool copy x-boot-sama7g54/images/infix-arm-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. + +Flashing to eMMC +----------------- + +The SAMA7G5EK has an on-board 8 GB eMMC (SDMMC0/mmc0). Jumper J22 +controls if booting from onboard storage is allowed or not; open means +allowed. When open, the SW4 button can also prevent booting from eMMC +if held at power on. + +The easiest method is to flash from a running SD card system: + +1. Boot the board from SD card +2. Transfer the eMMC image to the board (USB drive, network, etc.) +3. Flash the eMMC: + + sudo bmaptool copy emmc.img /dev/mmcblk0 + +4. Power off, remove SD card, and boot from eMMC + +Booting the Board +----------------- + +1. Insert the flashed SD card (or ensure eMMC is flashed) +2. Connect an Ethernet cable +3. Power up the board +4. Find the assigned IP and SSH in, default login: `admin` / `admin` + +Console Port +------------ + +The debug console is on Flexcom3 (active by default): + +- Baud rate: 115200 +- Data bits: 8 +- Parity: None +- Stop bits: 1 + +Connect a USB-to-serial adapter to the board's debug UART header. + +> [!WARNING] +> Use only 3.3V serial adapters. + +[0]: https://kernelkit.org/posts/flashing-sdcard/ +[1]: https://www.microchip.com/en-us/development-tool/EV21H18A diff --git a/board/arm/microchip-sama7g54-ek/dts/Makefile b/board/arm/microchip-sama7g54-ek/dts/Makefile new file mode 100644 index 000000000..dae28453a --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/dts/Makefile @@ -0,0 +1 @@ +dtb-y += microchip/at91-sama7g5ek.dtb diff --git a/board/arm/microchip-sama7g54-ek/dts/microchip/at91-sama7g5ek.dts b/board/arm/microchip-sama7g54-ek/dts/microchip/at91-sama7g5ek.dts new file mode 100644 index 000000000..503d70045 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/dts/microchip/at91-sama7g5ek.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Infix OS device tree for Microchip SAMA7G5 Evaluation Kit + */ + +#include +#include "infix.dtsi" + +/ { + chosen { + stdout-path = "serial0:115200n8"; + }; +}; + +/* Thermal sensor disabled until OTP is calibrated */ +&thermal_sensor { + status = "disabled"; +}; diff --git a/board/arm/microchip-sama7g54-ek/dts/microchip/infix.dtsi b/board/arm/microchip-sama7g54-ek/dts/microchip/infix.dtsi new file mode 100644 index 000000000..16cfafc86 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/dts/microchip/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/microchip-sama7g54-ek/genimage.cfg.in b/board/arm/microchip-sama7g54-ek/genimage.cfg.in new file mode 100644 index 000000000..0a8c5e3e6 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/genimage.cfg.in @@ -0,0 +1,85 @@ +# Disk image for Microchip SAMA7G5EK (sama7g5 evaluation kit) + +image boot.vfat { + vfat { + files = { + "boot.bin", + "u-boot.bin" + } + } + + size = 16M +} + +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 #INFIX_ID##VERSION#-sama7g54-ek-#TARGET#.img { + hdimage { + partition-table-type = "hybrid" + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition aux { + partition-uuid = D4EF35A0-0652-45A1-B3DE-D63339C82035 + image = "aux.ext4" + } + + 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/microchip-sama7g54-ek/microchip-sama7g54-ek.mk b/board/arm/microchip-sama7g54-ek/microchip-sama7g54-ek.mk new file mode 100644 index 000000000..85020623e --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/microchip-sama7g54-ek.mk @@ -0,0 +1,69 @@ +# Microchip SAMA7G54-EK kernel configuration fixups +define MICROCHIP_SAMA7G54_EK_LINUX_CONFIG_FIXUPS + # AT91/Microchip SoC + $(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_AT91) + $(call KCONFIG_ENABLE_OPT,CONFIG_SOC_SAMA7G5) + $(call KCONFIG_ENABLE_OPT,CONFIG_ATMEL_CLOCKSOURCE_TCB) + + # Serial console (FLEXCOM) + # Use ttyAT naming to avoid major/minor conflict with the + # 8250 driver (needed by Raspberry Pi 2 in the shared ARM config) + $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_ATMEL) + $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_ATMEL_CONSOLE) + $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_ATMEL_TTYAT) + $(call KCONFIG_ENABLE_OPT,CONFIG_MFD_ATMEL_FLEXCOM) + + # Network: MACB Ethernet + $(call KCONFIG_ENABLE_OPT,CONFIG_NET_VENDOR_MICROCHIP) + $(call KCONFIG_ENABLE_OPT,CONFIG_MACB) + $(call KCONFIG_ENABLE_OPT,CONFIG_MICREL_PHY) + + # MMC/SD + $(call KCONFIG_ENABLE_OPT,CONFIG_MMC_SDHCI) + $(call KCONFIG_ENABLE_OPT,CONFIG_MMC_SDHCI_PLTFM) + $(call KCONFIG_ENABLE_OPT,CONFIG_MMC_SDHCI_OF_AT91) + + # Pin control and GPIO + $(call KCONFIG_ENABLE_OPT,CONFIG_PINCTRL_AT91) + $(call KCONFIG_ENABLE_OPT,CONFIG_PINCTRL_AT91PIO4) + $(call KCONFIG_ENABLE_OPT,CONFIG_GPIO_SYSFS) + + # I2C and SPI + $(call KCONFIG_ENABLE_OPT,CONFIG_I2C_AT91) + $(call KCONFIG_ENABLE_OPT,CONFIG_SPI_ATMEL) + $(call KCONFIG_ENABLE_OPT,CONFIG_SPI_ATMEL_QUADSPI) + + # Power management and reset + $(call KCONFIG_ENABLE_OPT,CONFIG_POWER_RESET) + $(call KCONFIG_ENABLE_OPT,CONFIG_POWER_RESET_AT91_RESET) + $(call KCONFIG_ENABLE_OPT,CONFIG_POWER_RESET_AT91_SAMA5D2_SHDWC) + + # Watchdog + $(call KCONFIG_ENABLE_OPT,CONFIG_WATCHDOG) + $(call KCONFIG_ENABLE_OPT,CONFIG_SAMA5D4_WATCHDOG) + + # DMA and RTC + $(call KCONFIG_ENABLE_OPT,CONFIG_AT_XDMAC) + $(call KCONFIG_ENABLE_OPT,CONFIG_RTC_CLASS) + $(call KCONFIG_ENABLE_OPT,CONFIG_RTC_DRV_AT91SAM9) + + # Crypto hardware acceleration + $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_DEV_ATMEL_AES) + $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_DEV_ATMEL_TDES) + $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_DEV_ATMEL_SHA) + + # USB Host + $(call KCONFIG_ENABLE_OPT,CONFIG_USB_EHCI_HCD) + $(call KCONFIG_ENABLE_OPT,CONFIG_USB_OHCI_HCD) + + # Regulators + $(call KCONFIG_ENABLE_OPT,CONFIG_REGULATOR) + $(call KCONFIG_ENABLE_OPT,CONFIG_REGULATOR_FIXED_VOLTAGE) + $(call KCONFIG_ENABLE_OPT,CONFIG_REGULATOR_MCP16502) + + # NVMEM for OTP + $(call KCONFIG_ENABLE_OPT,CONFIG_NVMEM_MICROCHIP_OTPC) +endef + +$(eval $(ix-board)) +$(eval $(generic-package)) diff --git a/board/arm/microchip-sama7g54-ek/rootfs/etc/rauc/system.conf b/board/arm/microchip-sama7g54-ek/rootfs/etc/rauc/system.conf new file mode 100644 index 000000000..dbdb8e70e --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/rootfs/etc/rauc/system.conf @@ -0,0 +1,12 @@ +[system] +compatible=infix-sama7g54-ek +bootloader=uboot +statusfile=/mnt/aux/rauc.status + +[slot.rootfs.0] +device=/dev/disk/by-partlabel/primary +bootname=primary + +[slot.rootfs.1] +device=/dev/disk/by-partlabel/secondary +bootname=secondary diff --git a/board/arm/microchip-sama7g54-ek/rootfs/usr/share/product/microchip,sama7g5ek/etc/product/interface-quirks.json b/board/arm/microchip-sama7g54-ek/rootfs/usr/share/product/microchip,sama7g5ek/etc/product/interface-quirks.json new file mode 100644 index 000000000..7e1171d32 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/rootfs/usr/share/product/microchip,sama7g5ek/etc/product/interface-quirks.json @@ -0,0 +1,5 @@ +{ + "@ethtool:driver=macb": { + "broken-flow-control": true + } +} diff --git a/board/arm/microchip-sama7g54-ek/uboot/emmc-extras.config b/board/arm/microchip-sama7g54-ek/uboot/emmc-extras.config new file mode 100644 index 000000000..eeeed82bc --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/uboot/emmc-extras.config @@ -0,0 +1 @@ +CONFIG_DEVICE_TREE_INCLUDES="infix-env.dtsi infix-key.dtsi sama7g54-ek-env-emmc.dtsi" diff --git a/board/arm/microchip-sama7g54-ek/uboot/extras.config b/board/arm/microchip-sama7g54-ek/uboot/extras.config new file mode 100644 index 000000000..6d3cf0fc7 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/uboot/extras.config @@ -0,0 +1,13 @@ +# Common U-Boot extras for SAMA7G54-EK +CONFIG_EFI_PARTITION=y +CONFIG_ENV_IMPORT_FDT=y +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y +CONFIG_RSA=y +CONFIG_RSA_VERIFY=y +CONFIG_BLKMAP=y +CONFIG_LZ4=y +CONFIG_LZMA=y +CONFIG_CMD_UNLZ4=y +CONFIG_CMD_UNZIP=y +CONFIG_CMD_IMI=y diff --git a/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-emmc.dtsi b/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-emmc.dtsi new file mode 100644 index 000000000..8c1595963 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-emmc.dtsi @@ -0,0 +1,19 @@ +/ { + config { + environment { + vendor = "Microchip"; + bootcmd = "run ixboot"; + boot_targets = "mmc0"; + fdtfile = "microchip/at91-sama7g5ek.dtb"; + fdt_addr_r = "0x62000000"; + kernel_addr_r = "0x63000000"; + scriptaddr = "0x68000000"; + ramdisk_addr_r = "0x69000000"; + ixbootdelay = "0.5"; + bootdelay = "-2"; + bootmenu_delay = "10"; + ixbtn-devmode = "setenv dev_mode yes; echo Enabled"; + ixbtn-factory = "echo \"No button, use bootmenu\""; + }; + }; +}; diff --git a/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-sd.dtsi b/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-sd.dtsi new file mode 100644 index 000000000..6d5f9f740 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-sd.dtsi @@ -0,0 +1,19 @@ +/ { + config { + environment { + vendor = "Microchip"; + bootcmd = "run ixboot"; + boot_targets = "mmc1"; + fdtfile = "microchip/at91-sama7g5ek.dtb"; + fdt_addr_r = "0x62000000"; + kernel_addr_r = "0x63000000"; + scriptaddr = "0x68000000"; + ramdisk_addr_r = "0x69000000"; + ixbootdelay = "0.5"; + bootdelay = "-2"; + bootmenu_delay = "10"; + ixbtn-devmode = "setenv dev_mode yes; echo Enabled"; + ixbtn-factory = "echo \"No button, use bootmenu\""; + }; + }; +}; diff --git a/board/arm/microchip-sama7g54-ek/uboot/sd-extras.config b/board/arm/microchip-sama7g54-ek/uboot/sd-extras.config new file mode 100644 index 000000000..d34222e55 --- /dev/null +++ b/board/arm/microchip-sama7g54-ek/uboot/sd-extras.config @@ -0,0 +1 @@ +CONFIG_DEVICE_TREE_INCLUDES="infix-env.dtsi infix-key.dtsi sama7g54-ek-env-sd.dtsi" diff --git a/board/arm/rootfs/boot/syslinux/syslinux.conf b/board/arm/rootfs/boot/syslinux/syslinux.conf new file mode 100644 index 000000000..83459fec0 --- /dev/null +++ b/board/arm/rootfs/boot/syslinux/syslinux.conf @@ -0,0 +1,4 @@ +label Infix (arm) + kernel /boot/zImage + fdtdir /boot + append ${bootargs_root} ${bootargs_log} usbcore.authorized_default=2 -- ${bootargs_user} diff --git a/configs/arm_defconfig b/configs/arm_defconfig index 101da83a4..75c773a05 100644 --- a/configs/arm_defconfig +++ b/configs/arm_defconfig @@ -135,6 +135,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_MICROCHIP_SAMA7G54_EK=y BR2_PACKAGE_RASPBERRYPI_RPI2=y INFIX_VENDOR_HOME="https://kernelkit.org" INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers." diff --git a/configs/arm_minimal_defconfig b/configs/arm_minimal_defconfig index a94f38553..2e4a86dd4 100644 --- a/configs/arm_minimal_defconfig +++ b/configs/arm_minimal_defconfig @@ -117,6 +117,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_MICROCHIP_SAMA7G54_EK=y BR2_PACKAGE_RASPBERRYPI_RPI2=y INFIX_VENDOR_HOME="https://kernelkit.org" INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers." diff --git a/configs/sama7g54_ek_emmc_boot_defconfig b/configs/sama7g54_ek_emmc_boot_defconfig new file mode 100644 index 000000000..19f7f923c --- /dev/null +++ b/configs/sama7g54_ek_emmc_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_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.9)/at91bootstrap-v4.0.9.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama7g5ekemmc_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4microchip-2025.04)/u-boot-at91-linux4microchip-2025.04.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama7g5ek_mmc" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_INFIX_PATH)/board/common/uboot/extras.config $(BR2_EXTERNAL_INFIX_PATH)/board/arm/microchip-sama7g54-ek/uboot/extras.config $(BR2_EXTERNAL_INFIX_PATH)/board/arm/microchip-sama7g54-ek/uboot/emmc-extras.config" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_INFIX_PATH)/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-emmc.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 +TRUSTED_KEYS=y +TRUSTED_KEYS_DEVELOPMENT=y diff --git a/configs/sama7g54_ek_sd_boot_defconfig b/configs/sama7g54_ek_sd_boot_defconfig new file mode 100644 index 000000000..57274befb --- /dev/null +++ b/configs/sama7g54_ek_sd_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_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,at91bootstrap,v4.0.9)/at91bootstrap-v4.0.9.tar.gz" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama7g5eksd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,linux4sam,u-boot-at91,linux4microchip-2025.04)/u-boot-at91-linux4microchip-2025.04.tar.gz" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama7g5ek_mmc1" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_INFIX_PATH)/board/common/uboot/extras.config $(BR2_EXTERNAL_INFIX_PATH)/board/arm/microchip-sama7g54-ek/uboot/extras.config $(BR2_EXTERNAL_INFIX_PATH)/board/arm/microchip-sama7g54-ek/uboot/sd-extras.config" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_INFIX_PATH)/board/arm/microchip-sama7g54-ek/uboot/sama7g54-ek-env-sd.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 +TRUSTED_KEYS=y +TRUSTED_KEYS_DEVELOPMENT=y From 0c8ce332d16ce908a8f5aa398c584e3c0bbfdd55 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 4 Feb 2026 15:28:27 +0100 Subject: [PATCH 2/5] utils: support SamA7G65 in mkimage.sh Signed-off-by: Joachim Wiberg --- utils/mkimage.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/utils/mkimage.sh b/utils/mkimage.sh index 218a15bda..875395132 100755 --- a/utils/mkimage.sh +++ b/utils/mkimage.sh @@ -111,7 +111,7 @@ run_genimage() --config "$genimage_cfg" if command -v bmaptool >/dev/null 2>&1; then - for img in "${BINARIES_DIR}"/*-sdcard.img "${BINARIES_DIR}"/*-emmc.img; do + for img in "${BINARIES_DIR}"/*-sdcard*.img "${BINARIES_DIR}"/*-emmc*.img; do [ -f "$img" ] || continue log "Generating block map for $(basename "$img")..." bmaptool create -o "${img}.bmap" "$img" @@ -185,6 +185,13 @@ get_bootloader_name() friendlyarm-nanopi-r2s) echo "nanopi_r2s_boot" ;; + microchip-sama7g54-ek) + if [ "$target" = "emmc" ]; then + echo "sama7g54_ek_emmc_boot" + else + echo "sama7g54_ek_sd_boot" + fi + ;; *) err "Unknown bootloader for board: $board" return 1 @@ -525,7 +532,7 @@ if [ -n "$DOWNLOAD_BOOT" ]; then log "Moving $TARGET images to $ORIGINAL_BINARIES_DIR..." mkdir -p "$ORIGINAL_BINARIES_DIR" - for img in "${BINARIES_DIR}"/*-sdcard.img* "${BINARIES_DIR}"/*-emmc.img*; do + for img in "${BINARIES_DIR}"/*-sdcard*.img* "${BINARIES_DIR}"/*-emmc*.img*; do if [ -f "$img" ]; then mv "$img" "$ORIGINAL_BINARIES_DIR/" log " $(basename "$img")" From a7a630e0d9713c3043fbe6781f3a489bc7b5c03c Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 4 Feb 2026 15:29:36 +0100 Subject: [PATCH 3/5] utils: allow creating bootloader-only images Signed-off-by: Joachim Wiberg --- utils/mkimage.sh | 190 +++++++++++++++++++++++++++++++---------------- 1 file changed, 126 insertions(+), 64 deletions(-) diff --git a/utils/mkimage.sh b/utils/mkimage.sh index 875395132..98eace9de 100755 --- a/utils/mkimage.sh +++ b/utils/mkimage.sh @@ -12,13 +12,14 @@ fi usage() { cat < Options: -b boot-dir Path to bootloader build directory (default: O= or output/) + -B Boot-only image (no rootfs, for bootloader testing) -d Download bootloader files from latest-boot release -f Force re-download of bootloader even if cached -h This help text @@ -56,6 +57,9 @@ Examples: # Create eMMC image instead of SD card: $0 -t emmc bananapi-bpi-r3 + # Create boot-only image for bootloader testing: + $0 -B -b build-boot microchip-sama7g54-ek + EOF } @@ -293,12 +297,41 @@ discover_rpi_boot_files() echo "$files" } -while getopts "hldfob:r:t:" opt; do +# Filter genimage.cfg.in for boot-only image +# Removes rootfs-related blocks: image cfg.ext4, image var.ext4, +# and partitions: aux, primary, secondary, cfg, var +filter_bootonly_genimage() +{ + awk ' + BEGIN { skip=0; depth=0 } + /^image cfg\.ext4/ || /^image var\.ext4/ { + skip=1; depth=1; next + } + /^[[:space:]]*partition (aux|primary|secondary|cfg|var)[[:space:]]*\{/ { + skip=1; depth=1; next + } + skip==1 { + # Count braces on this line to track nesting depth + n = gsub(/{/, "{") + m = gsub(/}/, "}") + depth = depth + n - m + if (depth <= 0) { skip=0; depth=0 } + next + } + { print } + ' +} + +while getopts "hldfoBb:r:t:" opt; do case $opt in b) BOOT_DIR="$OPTARG" STANDALONE=1 ;; + B) + BOOT_ONLY=1 + STANDALONE=1 + ;; d) DOWNLOAD_BOOT=1 STANDALONE=1 @@ -360,6 +393,11 @@ if [ -n "$STANDALONE" ]; then default_dir=$(find_build_dir) || die "Could not find build directory. Set O= or use -b/-r option" : "${BOOT_DIR:=$default_dir}" : "${ROOT_DIR:=$default_dir}" + elif [ -n "$BOOT_ONLY" ]; then + # Boot-only mode: only need bootloader directory + if [ -z "$BOOT_DIR" ]; then + BOOT_DIR=$(find_build_dir) || die "Could not find boot directory. Use -b option" + fi else if [ -z "$BOOT_DIR" ]; then BOOT_DIR=$(find_build_dir) || die "Could not find boot directory. Use -b option" @@ -379,51 +417,54 @@ if [ -n "$STANDALONE" ]; then # Add host tools to PATH (for genimage, bmaptool, etc.) for dir in "$BOOT_DIR" "$ROOT_DIR"; do + [ -n "$dir" ] || continue if [ -d "$dir/host/bin" ]; then export PATH="$dir/host/bin:$PATH" break fi done - # Copy rootfs and partition images to BINARIES_DIR (skip if same directory) + # Copy rootfs and partition images to BINARIES_DIR (skip in boot-only mode) mkdir -p "$BINARIES_DIR" - # Normalize paths for comparison - boot_images=$(cd "$BOOT_DIR" && pwd)/images - root_images="" - - if [ -f "$ROOT_DIR" ]; then - # Direct path to rootfs.squashfs file - log "Copying rootfs from $ROOT_DIR to $BINARIES_DIR/rootfs.squashfs" - cp "$ROOT_DIR" "$BINARIES_DIR/rootfs.squashfs" - elif [ -f "$ROOT_DIR/images/rootfs.squashfs" ]; then - root_images=$(cd "$ROOT_DIR" && pwd)/images - # Only copy if different directories - if [ "$boot_images" != "$root_images" ]; then - # Build directory with images/ - copy rootfs and partition images - log "Copying artifacts from $ROOT_DIR/images/ to $BINARIES_DIR/" - cp "$ROOT_DIR/images/rootfs.squashfs" "$BINARIES_DIR/" + if [ -z "$BOOT_ONLY" ]; then + # Normalize paths for comparison + boot_images=$(cd "$BOOT_DIR" && pwd)/images + root_images="" + + if [ -f "$ROOT_DIR" ]; then + # Direct path to rootfs.squashfs file + log "Copying rootfs from $ROOT_DIR to $BINARIES_DIR/rootfs.squashfs" + cp "$ROOT_DIR" "$BINARIES_DIR/rootfs.squashfs" + elif [ -f "$ROOT_DIR/images/rootfs.squashfs" ]; then + root_images=$(cd "$ROOT_DIR" && pwd)/images + # Only copy if different directories + if [ "$boot_images" != "$root_images" ]; then + # Build directory with images/ - copy rootfs and partition images + log "Copying artifacts from $ROOT_DIR/images/ to $BINARIES_DIR/" + cp "$ROOT_DIR/images/rootfs.squashfs" "$BINARIES_DIR/" + # Copy partition images if they exist + for img in aux.ext4 cfg.ext4 var.ext4; do + if [ -f "$ROOT_DIR/images/$img" ]; then + cp "$ROOT_DIR/images/$img" "$BINARIES_DIR/" + fi + done + else + log "Rootfs already in place at $BINARIES_DIR/" + fi + elif [ -f "$ROOT_DIR/rootfs.squashfs" ]; then + # Directory directly containing rootfs.squashfs + log "Copying rootfs from $ROOT_DIR/rootfs.squashfs" + cp "$ROOT_DIR/rootfs.squashfs" "$BINARIES_DIR/" # Copy partition images if they exist for img in aux.ext4 cfg.ext4 var.ext4; do - if [ -f "$ROOT_DIR/images/$img" ]; then - cp "$ROOT_DIR/images/$img" "$BINARIES_DIR/" + if [ -f "$ROOT_DIR/$img" ]; then + cp "$ROOT_DIR/$img" "$BINARIES_DIR/" fi done else - log "Rootfs already in place at $BINARIES_DIR/" + die "Could not find rootfs.squashfs in $ROOT_DIR" fi - elif [ -f "$ROOT_DIR/rootfs.squashfs" ]; then - # Directory directly containing rootfs.squashfs - log "Copying rootfs from $ROOT_DIR/rootfs.squashfs" - cp "$ROOT_DIR/rootfs.squashfs" "$BINARIES_DIR/" - # Copy partition images if they exist - for img in aux.ext4 cfg.ext4 var.ext4; do - if [ -f "$ROOT_DIR/$img" ]; then - cp "$ROOT_DIR/$img" "$BINARIES_DIR/" - fi - done - else - die "Could not find rootfs.squashfs in $ROOT_DIR" fi else # Export for Buildroot genimage.sh wrapper @@ -450,29 +491,31 @@ if [ -n "$DOWNLOAD_BOOT" ]; then # Now use the temporary directory for composition BINARIES_DIR="$SDCARD_TEMP_DIR" - log "Linking rootfs files to $BINARIES_DIR..." - # Link rootfs and partition images to temp directory - if [ -f "$ROOT_DIR" ]; then - # Direct path to rootfs.squashfs file - ln -sf "$(realpath "$ROOT_DIR")" "$BINARIES_DIR/rootfs.squashfs" - elif [ -f "$ROOT_DIR/images/rootfs.squashfs" ]; then - ln -sf "$(realpath "$ROOT_DIR/images/rootfs.squashfs")" "$BINARIES_DIR/rootfs.squashfs" - # Link partition images if they exist - for img in aux.ext4 cfg.ext4 var.ext4; do - if [ -f "$ROOT_DIR/images/$img" ]; then - ln -sf "$(realpath "$ROOT_DIR/images/$img")" "$BINARIES_DIR/$img" - fi - done - elif [ -f "$ROOT_DIR/rootfs.squashfs" ]; then - ln -sf "$(realpath "$ROOT_DIR/rootfs.squashfs")" "$BINARIES_DIR/rootfs.squashfs" - # Link partition images if they exist - for img in aux.ext4 cfg.ext4 var.ext4; do - if [ -f "$ROOT_DIR/$img" ]; then - ln -sf "$(realpath "$ROOT_DIR/$img")" "$BINARIES_DIR/$img" - fi - done - else - die "Could not find rootfs.squashfs in $ROOT_DIR" + # Link rootfs and partition images to temp directory (skip in boot-only mode) + if [ -z "$BOOT_ONLY" ]; then + log "Linking rootfs files to $BINARIES_DIR..." + if [ -f "$ROOT_DIR" ]; then + # Direct path to rootfs.squashfs file + ln -sf "$(realpath "$ROOT_DIR")" "$BINARIES_DIR/rootfs.squashfs" + elif [ -f "$ROOT_DIR/images/rootfs.squashfs" ]; then + ln -sf "$(realpath "$ROOT_DIR/images/rootfs.squashfs")" "$BINARIES_DIR/rootfs.squashfs" + # Link partition images if they exist + for img in aux.ext4 cfg.ext4 var.ext4; do + if [ -f "$ROOT_DIR/images/$img" ]; then + ln -sf "$(realpath "$ROOT_DIR/images/$img")" "$BINARIES_DIR/$img" + fi + done + elif [ -f "$ROOT_DIR/rootfs.squashfs" ]; then + ln -sf "$(realpath "$ROOT_DIR/rootfs.squashfs")" "$BINARIES_DIR/rootfs.squashfs" + # Link partition images if they exist + for img in aux.ext4 cfg.ext4 var.ext4; do + if [ -f "$ROOT_DIR/$img" ]; then + ln -sf "$(realpath "$ROOT_DIR/$img")" "$BINARIES_DIR/$img" + fi + done + else + die "Could not find rootfs.squashfs in $ROOT_DIR" + fi fi fi @@ -496,13 +539,28 @@ if { [ "$BOARD" = "raspberrypi-rpi2" ] || [ "$BOARD" = "raspberrypi-rpi64" ]; } GENIMAGE_TEMPLATE="${GENIMAGE_CFG}.tmp" fi -# Epxand template variables -sed "s|#VERSION#|${RELEASE}|" "$GENIMAGE_TEMPLATE" | \ -sed "s|#INFIX_ID#|${INFIX_ID}|" | \ -sed "s|#TARGET#|${TARGET}|" > "$GENIMAGE_CFG" +# Filter for boot-only mode if requested +if [ -n "$BOOT_ONLY" ]; then + log "Filtering genimage config for boot-only image..." + filter_bootonly_genimage < "$GENIMAGE_TEMPLATE" > "${GENIMAGE_CFG}.filtered" + GENIMAGE_TEMPLATE="${GENIMAGE_CFG}.filtered" +fi + +# Expand template variables +# For boot-only mode, append "-boot" to the target name in the image filename +if [ -n "$BOOT_ONLY" ]; then + sed "s|#VERSION#|${RELEASE}|" "$GENIMAGE_TEMPLATE" | \ + sed "s|#INFIX_ID#|${INFIX_ID}|" | \ + sed "s|#TARGET#|${TARGET}|" | \ + sed "s|-${TARGET}\.img|-${TARGET}-boot.img|" > "$GENIMAGE_CFG" +else + sed "s|#VERSION#|${RELEASE}|" "$GENIMAGE_TEMPLATE" | \ + sed "s|#INFIX_ID#|${INFIX_ID}|" | \ + sed "s|#TARGET#|${TARGET}|" > "$GENIMAGE_CFG" +fi -# Clean up temp file if created -rm -f "${GENIMAGE_CFG}.tmp" +# Clean up temp files if created +#rm -f "${GENIMAGE_CFG}.tmp" "${GENIMAGE_CFG}.filtered" # Find and set up for calling genimage/genimage.sh if [ -z "$BR2_CONFIG" ]; then @@ -546,8 +604,12 @@ if [ -n "$DOWNLOAD_BOOT" ]; then BINARIES_DIR="$ORIGINAL_BINARIES_DIR" fi -log "$TARGET image created successfully:" -for img in "${BINARIES_DIR}"/*-sdcard.img* "${BINARIES_DIR}"/*-emmc.img*; do +if [ -n "$BOOT_ONLY" ]; then + log "$TARGET boot-only image created successfully:" +else + log "$TARGET image created successfully:" +fi +for img in "${BINARIES_DIR}"/*-sdcard*.img* "${BINARIES_DIR}"/*-emmc*.img*; do if [ -f "$img" ]; then if [ -n "$STANDALONE" ]; then # Show relative path in standalone mode From fd4cda35b5255487d813e932c9a103983c4116d2 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Fri, 6 Feb 2026 10:27:59 +0100 Subject: [PATCH 4/5] configs: add missing fdt_add_pubkey to bootloader defconfigs Follow-up to c152c5f361223ef539953e15e262ffeb81cd6c11 Signed-off-by: Joachim Wiberg --- configs/aarch64_qemu_boot_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/aarch64_qemu_boot_defconfig b/configs/aarch64_qemu_boot_defconfig index fe0dc2524..e15251810 100644 --- a/configs/aarch64_qemu_boot_defconfig +++ b/configs/aarch64_qemu_boot_defconfig @@ -24,5 +24,6 @@ BR2_TARGET_UBOOT_FORMAT_DTB=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 TRUSTED_KEYS=y TRUSTED_KEYS_DEVELOPMENT=y From 055c8dd1ae94a5fca1cb28644664fbbf43abb029 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 4 Feb 2026 15:29:54 +0100 Subject: [PATCH 5/5] doc: update ChangeLog, support for Microchip SAMA7G54-EK Signed-off-by: Joachim Wiberg --- doc/ChangeLog.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index 479aa9e71..b5d424da3 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -3,6 +3,17 @@ Change Log All notable changes to the project are documented in this file. +[v26.01.0][UNRELEASED] +------------------------- + +### Changes + +- Add support for Microchip SAMA7G54-EK Evaluation Kit, Arm Cortex-A7 + +### Fixes + +N/A + [v26.01.0][] - 2026-02-03 ------------------------- @@ -1907,7 +1918,7 @@ Supported YANG models in addition to those used by sysrepo and netopeer: - N/A [buildroot]: https://buildroot.org/ -[UNRELEASED]: https://github.com/kernelkit/infix/compare/v25.11.0...HEAD +[UNRELEASED]: https://github.com/kernelkit/infix/compare/v26.01.0...HEAD [v26.01.0]: https://github.com/kernelkit/infix/compare/v25.11.0...v26.01.0 [v25.11.0]: https://github.com/kernelkit/infix/compare/v25.10.0...v25.11.0 [v25.10.0]: https://github.com/kernelkit/infix/compare/v25.09.0...v26.10.0