Files
build/config/boards/orangepi5.conf
Ricardo Pardini 54c896e029 rk3588: configure UEFI_EDK2_BOARD_ID for all UEFI-supported boards
- From https://github.com/edk2-porting/edk2-rk3588/releases/tag/v0.9.1
  - For example, for `rock-5b_UEFI_Release_v0.9.1.img`
    - `UEFI_EDK2_BOARD_ID` is `rock-5b`
- **Important**: this has no effect unless optional extension is enabled
- to test this out:
  - make sure to read carefully the instructions at https://github.com/edk2-porting/edk2-rk3588/blob/master/README.md
  - suppose you previously built the regular u-boot version with:
    - `./compile.sh BOARD=rock-5b BRANCH=legacy RELEASE=jammy`
  - now you can build the UEFI version with:
    - `./compile.sh BOARD=rock-5b BRANCH=legacy RELEASE=jammy EXT=uefi-edk2-rk3588`
  - write the produced image to SD or eMMC and boot it
  - use normally, or enter "UMS" mode by selecting that option in the grub menu
    - You can write image to eMMC, boot it, enter UMS, write it again to NVMe, reboot, press <ESC> in UEFI and boot from NVMe
    - Also works if .img is written to eg USB stick, and UEFI edk2 is separately deployed to SPI flash
- **Important**: make _absolutely_ sure you are able to force Maskrom mode (by shorting pins, pressing buttons, etc) before writing an UEFI image to eMMC; UEFI has no RockUSB ("Loader mode" support) at all. The new "initramfs-usb-gadget-ums" extension hopes to address this, but it is not guaranteed to work.
2023-11-19 22:31:33 +01:00

86 lines
3.8 KiB
Plaintext

# Rockchip RK3588S octa core 4/8/16GB RAM SoC NVMe USB3 USB-C GbE
BOARD_NAME="Orange Pi 5"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="efectn"
BOOTCONFIG="orangepi_5_defconfig" # vendor name, not standard, see hook below, set BOOT_SOC below to compensate
BOOTCONFIG_SATA="orangepi_5_sata_defconfig"
BOOT_SOC="rk3588"
KERNEL_TARGET="legacy,edge"
KERNEL_TEST_TARGET="legacy"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588s-orangepi-5.dtb"
BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
BOOTFS_TYPE="fat"
DDR_BLOB='rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin'
BL31_BLOB='rk35/rk3588_bl31_v1.38.elf'
declare -g UEFI_EDK2_BOARD_ID="orangepi-5" # This _only_ used for uefi-edk2-rk3588 extension
declare -g BLUETOOTH_HCIATTACH_PARAMS="-s 115200 /dev/ttyS9 bcm43xx 1500000" # For the bluetooth-hciattach extension
enable_extension "bluetooth-hciattach" # Enable the bluetooth-hciattach extension
function post_family_tweaks_bsp__orangepi5_copy_usb2_service() {
display_alert "Installing BSP firmware and fixups"
# Add USB2 init service. Otherwise, USB2 and TYPE-C won't work by default
cp $SRC/packages/bsp/orangepi5/orangepi5-usb2-init.service $destination/lib/systemd/system/
return 0
}
function post_family_tweaks__orangepi5_enable_usb2_service() {
display_alert "$BOARD" "Installing board tweaks" "info"
# enable usb2 init service
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable orangepi5-usb2-init.service >/dev/null 2>&1"
return 0
}
function post_family_tweaks__orangepi5_naming_audios() {
display_alert "$BOARD" "Renaming orangepi5 audios" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
return 0
}
function post_family_config_branch_legacy__orangepi5_uboot_add_sata_target() {
display_alert "$BOARD" "Configuring ($BOARD) standard and sata uboot target map" "info"
UBOOT_TARGET_MAP="
BL31=$RKBIN_DIR/$BL31_BLOB $BOOTCONFIG spl/u-boot-spl.bin u-boot.dtb u-boot.itb;;idbloader.img u-boot.itb rkspi_loader.img
BL31=$RKBIN_DIR/$BL31_BLOB $BOOTCONFIG_SATA spl/u-boot-spl.bin u-boot.dtb u-boot.itb;; rkspi_loader_sata.img
"
}
function post_uboot_custom_postprocess__create_sata_spi_image() {
display_alert "$BOARD" "Create rkspi_loader_sata.img" "info"
dd if=/dev/zero of=rkspi_loader_sata.img bs=1M count=0 seek=16
/sbin/parted -s rkspi_loader_sata.img mklabel gpt
/sbin/parted -s rkspi_loader_sata.img unit s mkpart idbloader 64 7167
/sbin/parted -s rkspi_loader_sata.img unit s mkpart vnvm 7168 7679
/sbin/parted -s rkspi_loader_sata.img unit s mkpart reserved_space 7680 8063
/sbin/parted -s rkspi_loader_sata.img unit s mkpart reserved1 8064 8127
/sbin/parted -s rkspi_loader_sata.img unit s mkpart uboot_env 8128 8191
/sbin/parted -s rkspi_loader_sata.img unit s mkpart reserved2 8192 16383
/sbin/parted -s rkspi_loader_sata.img unit s mkpart uboot 16384 32734
dd if=idbloader.img of=rkspi_loader_sata.img seek=64 conv=notrunc
dd if=u-boot.itb of=rkspi_loader_sata.img seek=16384 conv=notrunc
}
# Override family config for this board; let's avoid conditionals in family config.
function post_family_config__orangepi5_use_vendor_uboot() {
BOOTSOURCE='https://github.com/orangepi-xunlong/u-boot-orangepi.git'
BOOTBRANCH='branch:v2017.09-rk3588'
BOOTPATCHDIR="legacy"
}