mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 09:13:01 +02:00
Merge pull request #1397 from kernelkit/sama7g54
Add support for Microchip SamA7G54 Eval Kit Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
@@ -24,6 +24,8 @@ jobs:
|
||||
- nanopi_r2s_boot
|
||||
- rpi2_boot
|
||||
- rpi64_boot
|
||||
- sama7g54_ek_emmc_boot
|
||||
- sama7g54_ek_sd_boot
|
||||
env:
|
||||
MAKEFLAGS: -j5
|
||||
steps:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
dtb-y += microchip/at91-sama7g5ek.dtb
|
||||
@@ -0,0 +1,18 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Infix OS device tree for Microchip SAMA7G5 Evaluation Kit
|
||||
*/
|
||||
|
||||
#include <arm/microchip/at91-sama7g5ek.dts>
|
||||
#include "infix.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
};
|
||||
|
||||
/* Thermal sensor disabled until OTP is calibrated */
|
||||
&thermal_sensor {
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -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 {}
|
||||
@@ -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))
|
||||
@@ -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
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"@ethtool:driver=macb": {
|
||||
"broken-flow-control": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
CONFIG_DEVICE_TREE_INCLUDES="infix-env.dtsi infix-key.dtsi sama7g54-ek-env-emmc.dtsi"
|
||||
@@ -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
|
||||
@@ -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\"";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -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\"";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
CONFIG_DEVICE_TREE_INCLUDES="infix-env.dtsi infix-key.dtsi sama7g54-ek-env-sd.dtsi"
|
||||
@@ -0,0 +1,4 @@
|
||||
label Infix (arm)
|
||||
kernel /boot/zImage
|
||||
fdtdir /boot
|
||||
append ${bootargs_root} ${bootargs_log} usbcore.authorized_default=2 -- ${bootargs_user}
|
||||
@@ -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
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
+12
-1
@@ -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
|
||||
|
||||
+134
-65
@@ -12,13 +12,14 @@ fi
|
||||
usage()
|
||||
{
|
||||
cat <<EOF
|
||||
Create SD card image from build artifacts for any supported board.
|
||||
Create SD card/eMMC image from build artifacts for any supported board.
|
||||
|
||||
Usage:
|
||||
$0 [OPTIONS] <board-name>
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
@@ -111,7 +115,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 +189,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
|
||||
@@ -286,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
|
||||
@@ -353,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"
|
||||
@@ -372,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 [ -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/"
|
||||
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
|
||||
@@ -443,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
|
||||
|
||||
@@ -489,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
|
||||
|
||||
# Clean up temp file if created
|
||||
rm -f "${GENIMAGE_CFG}.tmp"
|
||||
# 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 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
|
||||
@@ -525,7 +590,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")"
|
||||
@@ -539,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
|
||||
|
||||
Reference in New Issue
Block a user