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:
parent
eb249e61bd
commit
9f7d9ff5c3
13
config/boards/odroidm1.wip
Normal file
13
config/boards/odroidm1.wip
Normal 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"
|
||||
83
config/bootscripts/boot-rockchip64-vendor.cmd
Normal file
83
config/bootscripts/boot-rockchip64-vendor.cmd
Normal 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
|
||||
10552
config/kernel/linux-rk3568-odroid-edge.config
Normal file
10552
config/kernel/linux-rk3568-odroid-edge.config
Normal file
File diff suppressed because it is too large
Load Diff
26
config/sources/families/rk3568-odroid.conf
Normal file
26
config/sources/families/rk3568-odroid.conf
Normal 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
|
||||
@ -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
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user