您尚未登录。

楼主 # 2021-12-28 19:55:29

uuid
会员
注册时间: 2020-12-08
已发帖子: 45
积分: 31

全志 D1 SDK 固打包件文件结构分析

D1 固件文件解构:

① boot0_sdcard.fex

② boot_package.fex

③ env.fex

④ env.fex

⑤ boot.vfat

⑥ rootfs

离线

楼主 #1 2021-12-28 19:55:39

uuid
会员
注册时间: 2020-12-08
已发帖子: 45
积分: 31

Re: 全志 D1 SDK 固打包件文件结构分析

boot_package.fex 包含文件:

① fw_jump.bin 
② u-boot-sun20iw1p1.bin
③ board.dtb

boot_package.fex 使用这个命令生成:

./dragonsecboot  -pack boot_package.cfg

boot_package.cfg 内容:

package]
;item=Item_TOC_name,         Item_filename,
;item=scp,                    scp.fex
item=opensbi,                 fw_jump.bin
item=u-boot,                u-boot-sun20iw1p1.bin
item=dtb,                    board.dtb
;item=logo,                   bootlogo.bmp.lzma
;item=shutdowncharge,         bempty.bmp.lzma
;item=androidcharge,          battery_charge.bmp.lzma

离线

楼主 #2 2021-12-28 20:04:47

uuid
会员
注册时间: 2020-12-08
已发帖子: 45
积分: 31

Re: 全志 D1 SDK 固打包件文件结构分析

boot.img:

mkbootimg --kernel  Image  --ramdisk  ramdisk.img --board  d1-nezha_min --base  0x40200000 --kernel_offset  0x0 --ramdisk_offset  0x01000000 -o  boot.img

离线

#3 2021-12-29 09:36:08

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 全志 D1 SDK 固打包件文件结构分析

要摒弃tina系统,这些都得深入研究,D1主线化不知猴年马月?很讨厌这种非标的实现。

离线

#4 2022-02-09 22:33:39

tigger
Moderator
注册时间: 2021-06-18
已发帖子: 172
积分: 111

Re: 全志 D1 SDK 固打包件文件结构分析

根据这个网页: https://blog.csdn.net/codeos/article/details/119747194

boot0 的偏移地址是 8K

boot_package.fex 的偏移地址是 16400K  和 12288K ,其中后面那个是备份的。

boot0跳转到u-boot之前会对 boot_package.fex前面的1K大小的结构头进行简单的校验



手动制作 boot_package.fex步骤

$ cp sunxi.dtb sunxi.fex            // 重命名
$ fastdtb sunxi.fex                    // 会在sunxi.fex 文件尾部增加很大的一片内容

$ cp u-boot-sun8iw11p1.bin u-boot.fex    // 重命名
$ update_uboot_fdt u-boot.fex sunxi.fex u-boot.fex // 将u-boot.fex放在前面并且1K对齐,sunxi.fex放在后面并且最后补了很多0

$ update_uboot u-boot.fex         sys_config.bin        // 先在u-boot.fex后面补0xFF一直补到0x80000,然后追加 sys_config.bin,然后再补0xff一直补到0x90000
$ dragonsecboot -pack boot_package.cfg  // 在文件头部加一个 sbrom_toc1_item_info 结构头,1K对齐;然后追加u-boot.fex,然后尾部补0,一直补到0x94000

测试:

将boot0,烧写到tf卡 8K偏移处,然后将上面生成的 boot_package.fex烧写到tf卡16400K偏移处,用开发板从tf卡启动,可以正常从boot0跳转到u-boot

离线

#5 2022-02-09 22:57:56

memory
会员
注册时间: 2021-08-11
已发帖子: 442
积分: 418

Re: 全志 D1 SDK 固打包件文件结构分析

@tigger
这个不错,根据上面这个网页信息,我去D1 SDK 里面测试了一下,

$ cd /opt/D1/tina_d1_open/out/d1-mangopi_mq_rgb800x480_gt9xx/image

然后dd到img文件:

$
$ dd if=boot0_sdcard.fex of=/mnt/hgfs/D/y.img bs=1K seek=8
64+0 records in
64+0 records out
65536 bytes (66 kB, 64 KiB) copied, 0.0143461 s, 4.6 MB/s
$
$ dd if=boot_package.fex of=/mnt/hgfs/D/y.img bs=1K seek=12288
944+0 records in
944+0 records out
966656 bytes (967 kB, 944 KiB) copied, 0.297141 s, 3.3 MB/s
$
$ dd if=boot_package.fex of=/mnt/hgfs/D/y.img bs=1K seek=16400
944+0 records in
944+0 records out
966656 bytes (967 kB, 944 KiB) copied, 0.217014 s, 4.5 MB/s
$
$

用 win32diskimager 烧录到 TF卡,可以正常启动到 uboot了。

离线

#6 2022-02-10 20:58:48

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 1902
个人网站

Re: 全志 D1 SDK 固打包件文件结构分析

用buildroot自带的genimage把tina dragon的活干完,让dragon无活可干。
https://bbs.aw-ol.com/topic/1022/share/7




boot0:
image = "boot0_sdcard.fex"

uboot,opensbi等:
image = "boot_package.fex"

开机画面等:
image = "boot-resource.fex"

uboot的环境变量:
image = "env.fex"

uboot的环境变量备份:
image = "env.fex"

Linux kernel:
image = "boot.fex"

根文件系统:
image = "rootfs.fex"

这两个不知道干嘛的:
image = "dsp0.fex"
image = "recovery.fex"





离线

#7 2022-02-10 23:47:23

qianhao
会员
注册时间: 2017-12-14
已发帖子: 138
积分: 122

Re: 全志 D1 SDK 固打包件文件结构分析

关注!

离线

#8 2022-03-14 12:28:11

东方总败
会员
注册时间: 2022-02-28
已发帖子: 33
积分: 48

Re: 全志 D1 SDK 固打包件文件结构分析

fastdtb sunxi.fex 
update_uboot_fdt u-boot.fex sunxi.fex u-boot.fex
update_uboot u-boot.fex
dragonsecboot -pack boot_package.cfg
这几条指令是什么意思?linux下也没有这几条指令或软件

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn