1
0
Fork 0
forked from mirror/openwrt
openwrt/target/linux/starfive/image/Makefile
Zoltan HERPAI 39423810c1 starfive: add uEnv script on VF2 boards
Certain versions of the VF2 bootloader require the presence of a
vf2_uEnv.txt in the boot partition to properly load a non-SDK kernel.
Add this file during the SD-card generation.

Known VF2 bootloader versions exhibiting this behaviour are:

U-Boot 2021.10 (Mar 31 2025 - 22:49:46 +0800), Build: jenkins-github_visionfive2_6.12-11

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-03-22 12:41:54 +01:00

86 lines
2.5 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2023 Toco Technologies <info@toco.ae>
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
FAT32_BLOCK_SIZE=1024
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_STARFIVE_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
define Build/boot-scr-jh7110
rm -f $@-boot.scr
mkimage -A riscv -O linux -T script -C none -a 0 -e 0 -d mmc.bootscript.jh7110 $@-boot.scr
endef
define Build/boot-scr-jh7100
rm -f $@-boot.scr
mkimage -A riscv -O linux -T script -C none -a 0 -e 0 -d mmc.bootscript.jh7100 $@-boot.scr
endef
define Build/riscv-sdcard
rm -f $@.boot #$(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img
mkfs.fat $@.boot -C $(FAT32_BLOCKS)
mcopy -i $@.boot $(LINUX_DIR)/arch/riscv/boot/dts/$(DEVICE_DTS).dtb ::dtb
mcopy -i $@.boot $@-boot.scr ::boot.scr.uimg
mcopy -i $@.boot $(IMAGE_KERNEL) ::Image
mcopy -i $@.boot jh7110-vf2-uenv.txt ::vf2_uEnv.txt
./gen_starfive_sdcard_img.sh \
$@ \
$@.boot \
$(IMAGE_ROOTFS) \
$(CONFIG_STARFIVE_SD_BOOT_PARTSIZE) \
$(CONFIG_TARGET_ROOTFS_PARTSIZE)
endef
define Device/Default
PROFILES := Default
KERNEL_NAME := Image
KERNEL := kernel-bin
IMAGES := sdcard.img.gz
IMAGE/sdcard.img.gz := boot-scr-jh7110 | riscv-sdcard | append-metadata | gzip
endef
define Device/JH7100
PROFILES := Default
KERNEL_NAME := Image
KERNEL := kernel-bin
IMAGES := sdcard.img.gz
IMAGE/sdcard.img.gz := boot-scr-jh7100 | riscv-sdcard | append-metadata | gzip
endef
define Device/visionfive2-v1.2a
DEVICE_VENDOR := StarFive
DEVICE_MODEL := VisionFive2 v1.2a
DEVICE_DTS := starfive/jh7110-starfive-visionfive-2-v1.2a
DEVICE_PACKAGES := kmod-eeprom-at24 kmod-leds-gpio
endef
TARGET_DEVICES += visionfive2-v1.2a
define Device/visionfive2-v1.3b
DEVICE_VENDOR := StarFive
DEVICE_MODEL := VisionFive2 v1.3b
DEVICE_DTS := starfive/jh7110-starfive-visionfive-2-v1.3b
DEVICE_PACKAGES := kmod-eeprom-at24 kmod-leds-gpio uboot-envtools
endef
TARGET_DEVICES += visionfive2-v1.3b
define Device/beaglev-starlight
$(call Device/JH7100)
DEVICE_VENDOR := BeagleV
DEVICE_MODEL := Starlight
DEVICE_DTS := starfive/jh7100-beaglev-starlight
endef
TARGET_DEVICES += beaglev-starlight
define Device/visionfive-v1
$(call Device/JH7100)
DEVICE_VENDOR := StarFive
DEVICE_MODEL := VisionFive v1
DEVICE_DTS := starfive/jh7100-starfive-visionfive-v1
DEVICE_PACKAGES := kmod-eeprom-at24 kmod-brcmfmac cypress-firmware-43430-sdio wpad-basic-mbedtls \
kmod-leds-gpio
endef
TARGET_DEVICES += visionfive-v1
$(eval $(call BuildImage))