commit 5cf0d014879f55572a6214073fe57083a281c446 Author: Uklosk Date: Sun Jun 2 16:57:15 2024 +0200 Initial commit diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..93abcb7 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +/home/jmga/Dev/rgx35xx/scripts/env.sh +TPL_DIR=/home/jmga/Dev/rgx35xx/tools/trusted-firmware-a +UBOOT_DIR=/home/jmga/Dev/rgx35xx/tools/u-boot +LINUX_DIR=/home/jmga/Dev/rgx35xx/tools/linux +SUNXITOOLS_DIR=/home/jmga/Dev/rgx35xx/tools/sunxi-tools + +cd ${TPL_DIR} +# Build Trusted Platform Firmware +make clean +make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h616 DEBUG=1 + + +cd ${UBOOT_DIR} +# Prepare U-Boot Build +make clean +make CROSS_COMPILE=aarch64-linux-gnu- anbernic_rg35xxh_defconfig + +# Build U-Boot +make CROSS_COMPILE=aarch64-linux-gnu- BL31=${TPL_DIR}/build/sun50i_h616/debug/bl31.bin SCP=/dev/null + +# Create Boot Script boot.cmd +echo "setenv bootargs console=ttyS0,115200 +booti 0x40200000 - 0x4fa00000 +" > boot.cmd + +# Create Boot Script Image +mkimage -C none -A arm64 -T script -d boot.cmd boot.scr + + +cd ${LINUX_DIR} +# Init Kernel Defconfig +make clean +ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig + +# Build Kernel Image +ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j30 Image + +# Build Device Trees +ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j30 dtbs diff --git a/scripts/clean.sh b/scripts/clean.sh new file mode 100755 index 0000000..9b443f3 --- /dev/null +++ b/scripts/clean.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +EXTRACT_DIR=extracted +BUILD_DIR=build + +# Clean +rm -rf ${EXTRACT_DIR} ${BUILD_DIR} + +# Create output dir +mkdir -p ${EXTRACT_DIR} +mkdir -p ${BUILD_DIR} diff --git a/scripts/env.sh b/scripts/env.sh new file mode 100755 index 0000000..3decddd --- /dev/null +++ b/scripts/env.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +TPL_DIR=/home/jmga/Dev/rgx35xx/tools/trusted-firmware-a +UBOOT_DIR=/home/jmga/Dev/rgx35xx/tools/u-boot +LINUX_DIR=/home/jmga/Dev/rgx35xx/tools/linux +SUNXITOOLS_DIR=/home/jmga/Dev/rgx35xx/tools/sunxi-tools \ No newline at end of file diff --git a/scripts/extract.sh b/scripts/extract.sh new file mode 100755 index 0000000..52b3d96 --- /dev/null +++ b/scripts/extract.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +IMAGES_DIR=images +IMAGE_NAME=RG35XXH-V1.1.0-EN16GB-240428.IMG +IMAGE=${IMAGES_DIR}/${IMAGE_NAME} +EXTRACT_DIR=extracted + +# Create output dirs +mkdir -p ${EXTRACT_DIR} + +# Extract boot0 +dd if=${IMAGE} of=${EXTRACT_DIR}/boot0.img bs=1024 skip=8 count=64 status=progress + +# Extract boot package +dd if=${IMAGE} of=${EXTRACT_DIR}/boot_package.img bs=1024 skip=16400 count=20464 status=progress + +# Extract boot image +dd if=${IMAGE} of=${EXTRACT_DIR}/boot.img bs=512 skip=8978432 count=131072 status=progress + +# Extract env image +dd if=${IMAGE} of=${EXTRACT_DIR}/env.img bs=512 skip=8945664 count=32768 status=progress + +# Boot resource image +dd if=${IMAGE} of=${EXTRACT_DIR}/boot-resource.img bs=512 skip=8880128 count=65536 status=progress + +# Boot Roms image +dd if=${IMAGE} of=${EXTRACT_DIR}/Roms.img bs=512 skip=73728 count=8806400 status=progress + +# Boot UDISK image +dd if=${IMAGE} of=${EXTRACT_DIR}/UDISK.img bs=512 skip=25886720 count=4487168 status=progress + +# Boot rootfs image +dd if=${IMAGE} of=${EXTRACT_DIR}/rootfs.img bs=512 skip=9109504 count=16777216 status=progress + +# Extract boot.img +unpackbootimg -i ${EXTRACT_DIR}/boot.img -o ${EXTRACT_DIR}/boot_image/ + +# Extract env.img +strings ${EXTRACT_DIR}/env.img > ${EXTRACT_DIR}/env.txt \ No newline at end of file diff --git a/scripts/felboot.sh b/scripts/felboot.sh new file mode 100755 index 0000000..bf23c14 --- /dev/null +++ b/scripts/felboot.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +/home/jmga/Dev/rgx35xx/scripts/env.sh +TPL_DIR=/home/jmga/Dev/rgx35xx/tools/trusted-firmware-a +UBOOT_DIR=/home/jmga/Dev/rgx35xx/tools/u-boot +LINUX_DIR=/home/jmga/Dev/rgx35xx/tools/linux +SUNXITOOLS_DIR=/home/jmga/Dev/rgx35xx/tools/sunxi-tools + +# FEL Boot +sudo ${SUNXITOOLS_DIR}/sunxi-fel -v uboot ${UBOOT_DIR}/u-boot-sunxi-with-spl.bin \ + write 0x40200000 ${LINUX_DIR}/arch/arm64/boot/Image \ + write 0x4fa00000 ${LINUX_DIR}/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dtb \ + write 0x4fc00000 ${UBOOT_DIR}/boot.scr \ No newline at end of file diff --git a/scripts/repackage.sh b/scripts/repackage.sh new file mode 100755 index 0000000..7482c91 --- /dev/null +++ b/scripts/repackage.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +IMAGES_DIR=images +IMAGE_NAME=RG35XXH-V1.1.0-EN16GB-240428.IMG +IMAGE=${IMAGES_DIR}/${IMAGE_NAME} +EXTRACT_DIR=extracted +BUILD_DIR=build + +# Create dirs +mkdir -p ${EXTRACT_DIR} +mkdir -p ${BUILD_DIR} + +# Repackage boot0 +cp ${EXTRACT_DIR}/boot0.img ${BUILD_DIR}/boot0.img + +# Repackage boot package +cp ${EXTRACT_DIR}/boot_package.img ${BUILD_DIR}/boot_package.img + +# Repackage boot resource +cp ${EXTRACT_DIR}/boot-resource.img ${BUILD_DIR}/boot-resource.img + +# Repackage boot.img +mkbootimg --kernel ${EXTRACT_DIR}/boot_image/boot.img-zImage --ramdisk ${EXTRACT_DIR}/boot_image/boot.img-ramdisk.gz --dt ${EXTRACT_DIR}/boot_image/boot.img-dtb \ +--board sun50i_arm64 --base 40078000 --kernel_offset 00008000 --ramdisk_offset 01f88000 \ +--second_offset 00e88000 --tags_offset fff88100 --cmdline "earlyprintk=ttyS0,115200 +loglevel=8 initcall_debug=0 console=tty0 console=ttyS0,115200 rootwait root=/dev/mmcblk0p3 +init=/sbin/init" -o ${BUILD_DIR}/boot.img + +# Repackage env.img +mkenvimage -s 0x1000000 -o ${BUILD_DIR}/env.img ${EXTRACT_DIR}/env.txt \ No newline at end of file