diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/u-boot/board/theobroma-systems/puma_rk3399/README | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/u-boot/board/theobroma-systems/puma_rk3399/README')
-rw-r--r-- | roms/u-boot/board/theobroma-systems/puma_rk3399/README | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/roms/u-boot/board/theobroma-systems/puma_rk3399/README b/roms/u-boot/board/theobroma-systems/puma_rk3399/README new file mode 100644 index 000000000..9b31b0b37 --- /dev/null +++ b/roms/u-boot/board/theobroma-systems/puma_rk3399/README @@ -0,0 +1,107 @@ +Introduction +============ + +The RK3399-Q7 (Puma) is a system-on-module featuring the Rockchip +RK3399 in a Qseven-compatible form-factor. + +RK3399-Q7 features: + * CPU: ARMv8 64bit Big-Little architecture, + * Big: dual-core Cortex-A72 + * Little: quad-core Cortex-A53 + * IRAM: 200KB + * DRAM: 4GB-128MB dual-channel + * eMMC: onboard eMMC + * SD/MMC + * GbE (onboard Micrel KSZ9031) Gigabit ethernet PHY + * USB: + * USB3.0 dual role port + * 2x USB3.0 host, 1x USB2.0 host via onboard USB3.0 hub + * Display: HDMI/eDP/MIPI + * Camera: 2x CSI (one on the edge connector, one on the Q7 specified CSI ZIF) + * NOR Flash: onboard SPI NOR + * Companion Controller: onboard additional Cortex-M0 microcontroller + * RTC + * fan controller + * CAN + +Here is the step-by-step to boot to U-Boot on rk3399. + +Get the Source and build ATF/Cortex-M0 binaries +=============================================== + + > git clone git://git.theobroma-systems.com/arm-trusted-firmware.git + > git clone git://git.theobroma-systems.com/rk3399-cortex-m0.git + +Compile the ATF +=============== + + > cd arm-trusted-firmware + > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31 + > cp build/rk3399/release/bl31.bin ../u-boot/bl31-rk3399.bin + +Compile the M0 firmware +======================= + + > cd ../rk3399-cortex-m0 + > make CROSS_COMPILE=arm-cortex_m0-eabi- + > cp rk3399m0.bin ../u-boot + +Compile the U-Boot +================== + + > cd ../u-boot + > make CROSS_COMPILE=aarch64-linux-gnu- puma-rk3399_defconfig all + +Package the image +================= + +Creating a SPL image for SD-Card/eMMC + > tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl.bin spl_mmc.img +Creating a SPL image for SPI-NOR + > tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin spl_nor.img +Create the FIT image containing U-Boot proper, ATF, M0 Firmware, devicetree + > make CROSS_COMPILE=aarch64-linux-gnu- + +Flash the image +=============== + +Copy the SPL to offset 32k for SD/eMMC, offset 0 for NOR-Flash and the FIT +image to offset 256k card. + +SD-Card +------- + + > dd if=spl_mmc.img of=/dev/sdb seek=64 + > dd if=u-boot.itb of=/dev/sdb seek=512 + +eMMC +---- + +rkdeveloptool allows to flash the on-board eMMC via the USB OTG interface with +help of the Rockchip loader binary. + + > git clone https://github.com/rockchip-linux/rkdeveloptool + > cd rkdeveloptool + > autoreconf -i && ./configure && make + > git clone https://github.com/rockchip-linux/rkbin.git + > ./rkdeveloptool db rkbin/rk33/rk3399_loader_v1.08.106.bin + > ./rkdeveloptool wl 64 ../spl_mmc.img + > ./rkdeveloptool wl 512 ../u-boot.itb + +NOR-Flash +--------- + +Writing the SPI NOR Flash requires a running U-Boot. For the sake of simplicity +we assume you have a SD-Card with a partition containing the required files +ready. + + > load mmc 1:1 ${kernel_addr_r} spl_nor.img + > sf probe + > sf erase 0 +$filesize + > sf write $kernel_addr_r 0 ${filesize} + > load mmc 1:1 ${kernel_addr_r} u-boot.itb + > sf erase 0x40000 +$filesize + > sf write $kernel_addr_r 0x40000 ${filesize} + + +Reboot the system and you should see a U-Boot console on UART0 (115200n8). |