Add CSC Odroid M1 with legacy, current and edge kernel (#4368)

* `odroidm1`.wip: hk's `legacy`= 4.19 and `edge`= mainline+tobetter's 5.19 rebased; *requires* `skip_spiboot=true`

- @TODO: family/etc naming is terrible with vendor kernels. Sorry. Fight over it and let me know?
- @TODO: config is very probably incomplete.
- new `boot-rockchip64-vendor.cmd`:
  - does not use fixed load_addr, instead use ramdisk_addr_r for everything
  - load kernel and initrd as late as possible
  - look for overlays twice:
    - once: with prefix and folder
    - twice: without prefix, nor folder; helps with vendor provided overlays like hk's and tobetter's
- wip: edge: tobetter's patchset rebased against 5.19.3
- wip: edge: bump to tobetter's 5.19
- legacy: .config `CONFIG_ARM64_VA_BITS_48=y`
- wip m1: update legacy config from odroid
- odroidm1: container/bpf stuff in legacy config

* Update configs and enable beta build target

* Adjust current kernel

* Update targets

* Remove everything but EDGE kernel

* Cleanup

* Fix

Co-authored-by: Ricardo Pardini <ricardo@pardini.net>
This commit is contained in:
Igor Pečovnik 2022-10-30 21:09:16 +01:00 committed by GitHub
parent eb249e61bd
commit 9f7d9ff5c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 12245 additions and 0 deletions

View File

@ -0,0 +1,13 @@
# Rockchip RK3568 quad core 4GB-8GB GBE PCIe USB3 SATA NVMe
BOARD_NAME="ODROID M1"
BOARDFAMILY="rk3568-odroid" # Vendor kernel, has its own family. Uses rockchip64_common for most stuff.
BOOT_SOC="rk3568" # This determined BOOT_SCENARIO et al.
KERNEL_TARGET="edge" # Only mainline based kernel
BOOT_FDT_FILE="rockchip/rk3568-odroid-m1.dtb" # HK's DTB, quite incomplete, eg: there's no SPI-NOR support, etc.
SRC_EXTLINUX="no" # NO EXTLINUX! Family defines a custom bootscript too.
ASOUND_STATE="asound.state.station-m2" # @TODO: probably should fix this later.
IMAGE_PARTITION_TABLE="gpt" # HK's bootloader in SPI requires GPT partition table.
DDR_BLOB="rk35/rk3568_ddr_1560MHz_v1.10.bin" # Real blob, is actually used. in rkbin repository. HK uses 1.09, 1.10 seems to work just as well.
BL31_BLOB="rk35/rk356x_usbplug_v1.10.bin--FAKE" # Not really used for anything, as the name proves.
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"

View File

@ -0,0 +1,83 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/armbianEnv.txt to set supported parameters
#
setenv overlay_error "false"
# default values
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv console "both"
setenv bootlogo "false"
setenv rootfstype "ext4"
setenv docker_optimizations "on"
setenv earlycon "off"
echo "Boot script loaded from ${devtype} ${devnum}"
if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}armbianEnv.txt
env import -t ${ramdisk_addr_r} ${filesize}
fi
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,1500000 ${consoleargs}"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
if test "${bootlogo}" = "true"; then
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
else
setenv consoleargs "splash=verbose ${consoleargs}"
fi
# get PARTUUID of first partition on SD/eMMC the boot script was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
# once with prefix
if load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
# once without prefix, nor folder
if load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}dtb/rockchip/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-fixup.scr; then
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${ramdisk_addr_r}
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${ramdisk_addr_r}
fi
fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,26 @@
source "${BASH_SOURCE%/*}/include/rockchip64_common.inc"
# Disable uboot compilation; this board boots from HK stuff in SPI first.
# We apply a bootscript, and use GPT partitions, so HK-stuff-in-SPI loads our boot.scr.
unset BOOTSOURCE
BOOTCONFIG="none" # This is patched on top of HK's defconfig, disabling SPI-NOR MTD, so we can boot from SD/eMMC directly
BOOTSCRIPT='boot-rockchip64-vendor.cmd:boot.cmd' # Use ramaddr_r for loading fdt and armbianEnv; more flexible with overlays
# ODROID's vendor kernel, and tobetter's kernel for mainline.
LINUXFAMILY="rk3568-odroid" # a separate family for this (separate kernel deb) # @TODO: rename
KERNELPATCHDIR='odroidm1-'$BRANCH
LINUXCONFIG='linux-rk3568-odroid-'$BRANCH # @TODO: rename?
EXTRAWIFI="no"
WIREGUARD="no"
SKIP_BOOTSPLASH="yes"
case $BRANCH in
edge)
KERNELSOURCE='https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git'
KERNELBRANCH='branch:v6.2-armsoc/dts64'
;;
esac
prepare_boot_configuration

View File

@ -10,6 +10,10 @@ jethubj80 edge jammy cli
jethubj100 edge jammy cli beta yes
# Odroid M1
odroidm1 edge kinetic cli beta yes
# Orangepi 3 LTS
orangepi3-lts edge jammy cli beta yes