Skip to content
Snippets Groups Projects
Commit c382c386 authored by Bob Mottram's avatar Bob Mottram
Browse files

Preparation for possible future rockchip images

parent 16812bc9
No related branches found
No related tags found
No related merge requests found
......@@ -243,6 +243,69 @@ setup_flash_kernel() {
$INSTALL_PACKAGES flash-kernel
}
rockchip_setup_boot() {
dtb="$1"
rockchip_root_device='mmcblk0p2'
if [ "$2" ]; then
rockchip_root_device="$2"
fi
# Setup boot.cmd
if grep -q btrfs /etc/fstab ; then
fstype=btrfs
else
fstype=ext4
fi
# shellcheck disable=SC2012,SC2086
kernelVersion=$(ls /usr/lib/*/$dtb | head -1 | cut -d/ -f4)
version=$(echo "$kernelVersion" | sed 's/linux-image-\(.*\)/\1/')
initRd=initrd.img-$version
vmlinuz=vmlinuz-$version
# Create boot.cmd
cat >> /boot/boot.cmd <<EOF
setenv mmcdev 0
setenv mmcpart 1
setenv mmcroot /dev/${rockchip_root_device} ro
setenv mmcrootfstype $fstype rootwait fixrtc
setenv mmcrootflags subvol=@
setenv console ttyS0,115200n8
setenv kernel_file $vmlinuz
setenv initrd_file $initRd
setenv fdtfile $dtb
setenv loadaddr 0x46000000
setenv initrd_addr 0x48000000
setenv fdtaddr 0x47000000
setenv initrd_high 0xffffffff
setenv fdt_high 0xffffffff
setenv loadkernel load mmc \${mmcdev}:\${mmcpart} \${loadaddr} \${kernel_file}
setenv loadinitrd load mmc \${mmcdev}:\${mmcpart} \${initrd_addr} \${initrd_file}\\; setenv initrd_size \\\${filesize}
setenv loadfdt load mmc \${mmcdev}:\${mmcpart} \${fdtaddr} /dtbs/\${fdtfile}
setenv loadfiles run loadkernel\\; run loadinitrd\\; run loadfdt
setenv mmcargs setenv bootargs init=/lib/systemd/systemd console=\${console} root=\${mmcroot} rootfstype=\${mmcrootfstype} rootflags=\${mmcrootflags} ifnames=0 slub_debug=FZP slab_nomerge page_poison=1
run loadfiles; run mmcargs; bootz \${loadaddr} \${initrd_addr}:\${initrd_size} \${fdtaddr}
EOF
# boot.scr for rockchip based device
mkimage -C none -A arm64 -T script -d /boot/boot.cmd /boot/boot.scr
# Copy all DTBs
mkdir -p /boot/dtbs
# shellcheck disable=SC2086
cp /usr/lib/$kernelVersion/* /boot/dtbs
# extra boot modules
{ echo "vfat"; } >> /etc/initramfs-tools/modules
}
case "$MACHINE" in
beagleboneblack)
beaglebone_setup_boot am335x-boneblack
......@@ -290,4 +353,8 @@ case "$MACHINE" in
a20_setup_boot sun7i-a20-pcduino3.dtb "$EXTERNAL_DRIVE"
enable_serial_console ttyS0
;;
rock64)
rockchip_setup_boot "rockchip/rk3328-rock64.dtb" "$EXTERNAL_DRIVE"
enable_serial_console ttyS0
;;
esac
......@@ -99,7 +99,7 @@ logrotate kmod netbase rsyslog udev debian-archive-keyring"
beaglebone_pkgs="linux-image-armmp u-boot-tools u-boot"
# Packages needed on rockchip boards (maybe in future debian versions)
#rockchip_pkgs="linux-image-arm64 u-boot-tools u-boot u-boot-rockchip"
rockchip_pkgs="linux-image-arm64 u-boot-tools u-boot u-boot-rockchip"
# Packages needed on the Allwinner A20 devices:
a20_pkgs="linux-image-armmp-lpae u-boot-tools u-boot u-boot-sunxi"
......@@ -160,6 +160,19 @@ case "$MACHINE" in
--no-extlinux \
--foreign /usr/bin/qemu-arm-static \
--roottype btrfs \
"
;;
rock64)
extra_pkgs="$rockchip_pkgs"
extra_opts="\
--variant minbase \
--bootoffset=1mib \
--bootsize 128M \
--boottype vfat \
--no-kernel \
--no-extlinux \
--foreign /usr/bin/qemu-arm-static \
--roottype btrfs \
"
;;
qemu)
......
......@@ -108,6 +108,14 @@ beaglex15: prep
@echo ""
@echo "Build complete."
rock64: prep
$(eval ARCHITECTURE = arm64)
$(eval MACHINE = rock64)
$(MAKE_IMAGE)
@rm -f $(ARCHIVE)
@echo ""
@echo "Build complete."
# build Cubieboard2 SD card image
cubieboard2: prep
$(eval ARCHITECTURE = armhf)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment