rk3566文档
泰山派linux build sdk
这部分uboot因为是在内核和rootfs之前编译的 好像暂时没有配置这两个东西的内容?
target
image-stage1: rk356x_spl_loader_v1.16.112.bin
image-stage2: u-boot.bin (FIT)
bl31_0x[xxxxxxx]: ATF的六个阶段,0x…地址表示起始执行地址
bl31.elf
tee.bin:
log: output/TSPI-RK3566-USER-V10-LINUX/{builddate}/log/
stage 1
芯片上电/复位后, cpu运行bootrom中的代码, 将stage1 也就是SPL放到sram中
执行硬件配置,如时钟和dram初始化, 然后将stage 2的代码加载到sdram中(uboot.bin)
还可以引导FIT镜像和原始img
设备树
外设的配置文件, 源码-目标: dts:dtb
bootloader会在系统启动时将dtb传递给内核
FIT
Flattended Image Tree, 将多个镜像(内核 设备树 ramdisk等)通过dts语法编译生成一个镜像文件
its: fit源码文件, 还会包含签名信息
itb: fit target
its code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| /dts-v1/; / { description = "U-Boot FIT source file for arm";
images { fdt { data = /incbin/("@KERNEL_DTB@"); type = "flat_dt"; arch = "arm64"; compression = "none"; load = <0xffffff00>;
hash { algo = "sha256"; }; };
kernel { data = /incbin/("@KERNEL_IMG@"); type = "kernel"; arch = "arm64"; os = "linux"; compression = "none"; entry = <0xffffff01>; load = <0xffffff01>;
hash { algo = "sha256"; }; };
resource { data = /incbin/("@RESOURCE_IMG@"); type = "multi"; arch = "arm64"; compression = "none";
hash { algo = "sha256"; }; }; };
configurations { default = "conf";
conf { rollback-index = <0x00>; fdt = "fdt"; kernel = "kernel"; multi = "resource";
signature { algo = "sha256,rsa2048"; padding = "pss"; key-name-hint = "dev"; sign-images = "fdt", "kernel", "multi"; }; }; }; };
|
stage 2
TODO
编译过程
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| process_args $* prepare select_toolchain select_chip_info fixup_platform_configure select_ini_file handle_args_late sub_commands clean_files make PYTHON=python2 CROSS_COMPILE=${TOOLCHAIN} all --jobs=${JOB} pack_images finish echo ${TOOLCHAIN} date
|
ini配置如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| // rk3568TRUST.ini [VERSION] MAJOR=1 MINOR=0 [BL30_OPTION] SEC=0 [BL31_OPTION] SEC=1 PATH=bin/rk35/rk3568_bl31_v1.43.elf ADDR=0x00040000 [BL32_OPTION] SEC=1 PATH=bin/rk35/rk3568_bl32_v2.09.bin ADDR=0x08400000 [BL33_OPTION] SEC=0 [OUTPUT] PATH=trust.img
// rk3568MINIALL.ini [CHIP_NAME] NAME=RK3568 [VERSION] MAJOR=1 MINOR=1 [CODE471_OPTION] NUM=1 Path1=bin/rk35/rk3568_ddr_1332MHz_v1.16.bin Sleep=1 [CODE472_OPTION] NUM=1 Path1=bin/rk35/rk356x_usbplug_v1.17.bin [LOADER_OPTION] NUM=2 LOADER1=FlashData LOADER2=FlashBoot FlashData=bin/rk35/rk3568_ddr_1332MHz_v1.16.bin FlashBoot=bin/rk35/rk356x_spl_v1.12.bin [OUTPUT] PATH=rk356x_spl_loader_v1.16.112.bin [SYSTEM] NEWIDB=true [FLAG] 471_RC4_OFF=true RC4_OFF=true
|
uboot.bin(fit)含:
uboot
atf-[2~6]
optee