Some K3 boards use a split initial boot stage requiring an extra file
called "sysfw.itb". If defined in the board configuration deploy this
file if available.
The causes the first-stage bootloader to be generated before the normal
U-Boot allowing the later build to use the firmware fetched during the
first-stage build.
- bsp-cli: `postinst` is now generated _after_ the hooks are run
- hooks are allowed to append to `postinst_functions` array
- hooks are _not_ allowed to modify `DEBIAN/postinst` directly anymore (it won't even be there)
- rewrite the postinst stuff in `helios4`'s `family_tweaks_bsp()` to use new way
- introduce `add_file_from_stdin_to_bsp_destination()`, a helper for easy heredoc-based adding of files to bsp-cli
- First and only argument is the destination path, relative to the root of the package -- do NOT include $destination -- it is already included.
- Containing directory, if any, is created automatically (no more "mkdir -p x; cp y x/z")
- The full path (including $destination) is set in $file_added_to_bsp_destination, declare in outer scope to get it if needed.
- using Kwiboo's `rk3568-2023.10` branch with BINMAN-handled blobs
- patches (defconfig unless indicated):
- boot usb first (rockchip-common)
- blink leds & keep red one one on preboot; reset SPI env once after deinfesting from Petitboot
- change usb_host0_xhci to otg (u-boot dtsi)
- enable DM_GADGET, UMS 🔥 and RockUSB
- **usage instructions**:
- build & burn image to SD card
- insert SD card into board
- **hold the recovery (RCY) button** and power on the board
- watch board boot
- **de-infest Petitboot**: use `armbian-install` to install bootloader to MTD
- if you don't, you'll need to hold the recovery button every boot
- optionally: use `armbian-install` to install OS to eMMC/NVMe/USB
- power-off board
- remove SD card (new u-boot always boots SD first!)
- boot into your newly de-infested machine
- boot order: USB, SD, MMC, NVME, SCSI
- de-infested machine can now boot (directly) from USB/SATA/NVMe, possibly via EFI:
- Armbian UEFI-arm64
- Fedora 38 aarch64
- HASSOS for ODROID-M1
- Talos arm64
- others...
- extra: new u-boot by Kwiboo (with GMAC patches) gives us stable MAC address
- although it is based on cpuid#, doesn't match the HK sticker on the board
- run `fw_setenv ethaddr XX:XX:XX:XX:XX:XX` to change eth addr in SPI flash environment if needed
- `odroidm1`: update DDR/BL31 blobs (this depends on https://github.com/armbian/rkbin/pull/20)
- current (6.1) does not yet carry the DTB
- u-boot (up to at least 2023.10-rc2) does NOT have ADC detection for N2L, so force the DTB
- `meson-g12b.conf`: add a specific if for `odroidn2l` _before_ the `odroidn2*` for FIP blobs
- vim1s/vim4: remove uEnv.txt and default extlinux args, use simple arguments instead
- meson-s4t7.conf: hack: rereadpt (re-read partition table) in initrd local-top (for eMMC boot of oowow'ed image)
- meson-s4t7.conf: include both `u-boot.bin.sd.bin.signed` and `u-boot.bin.signed` in uboot package
- meson-s4t7: patch kernel for different dt "model" across VIM4 and "New VIM4"
- meson-s4t7.conf: set `EXTLINUX_SPECIFIC_FDT=no`, so u-boot auto-determines which DTB to use
- don't specify DTB; this way both the "original VIM4" and the "new VIM4" can boot with the same image
- only "boot from SD" supported right now
- building uboot with xPack riscv-none-embed-gcc **external** toolchain setup in hooks
- kvim4: very high kernel logging + systemd debug logging to console
- kvim4/kvim1s: add uEnv.txt and ROOT_FS_LABEL="ROOTFS" and Khadas-esque extlinux
- meson-s4t7: unify khadas-vim1s and khadas-vim4 u-boot building
- kernel .config:
- s4t7: original Khadas vendor config
- s4t7: CONFIG_BINFMT_MISC=y
- s4t7: make NFS/sunrpc stuff =y
- s4t7: enable USB wifi drivers from Armbian network_drivers
- firmware: at https://github.com/armbian/firmware/pull/56
- extlinux tricks require https://github.com/armbian/build/pull/5462
- status:
- kvim1s: boots from SD and works as server/CLI
- kvim4: kernel panic during systemd-udevd
The default will align the data structures with the cluster size,
which causes the size to not be set to the full partition size. This
causes issues with some board ROMs. Use the -a flag to ignore the
alignment and fill the available space.
Co-authored-by: Igor <igor@armbian.com>