利用xfel将boot0运行起来 输出内容如下:
HELLO! BOOT0 is starting!
BOOT0 commit : 27369ab
...
board init ok
ZQ value = 0x31***********
get_pmu_exist = -1
是不是说明boot0里面初始化ddr的操作失败了啊
求大佬指点
(附:本来想上传图片的,奈何上传半天没上传成功,只能手敲...)
离线
怎么通过write命令初始化uart呢?
离线
@bigmagic 那这是不是说明只运行boot0,初始化ddr失败了啊?
离线
@bigmagic
按照全志的惯例, 应该是从 sys_config.fex 的二进制文件读入配置, 再决定初始化哪组串口,前面应该有读配置(二进制)的过程.
没找到”从 sys_config.fex 的二进制文件读入配置“的过程啊
离线
fel 模式下下载boot0代码,ddr初始化不成功,这个感觉像主频不匹配?好想下载到nand或者sd卡中自启动试试,有没有办法操作一下
离线
out/d1-nezha/image/boot0_sdcard.fex
终于搞清楚了, 这个文件就是 TF卡 8K偏移的数据。
所以, 我们把 boot0_sdcard.bin或者boot0_sdcard_sun20iw1p1.bin 烧录到TF卡需要修改源码里面那个结构体数组。
是BT0_head这个结构体数组吗?
离线
所以这里是将整个64k的启动引导程序划分成立boot0和boot1吗?
这里的spl是boot0,boot1是指哪一个呢?还有spl目录下的fes文件具体是什么作用啊?用于烧录的fes1,是什么意思啊?有点迷糊。
离线
现在更改了BT0_head的初始数据,烧录boot0_sdcard_sun20iw1p1.bin至TF卡中,可以初始化DDR和mmc了,结果如下:
程序连续输出两个“error:bad magic.”错误提示停止了,仔细看了代码,是toc1的头部数据数据不对,而头部数据又是从UBOOT_START_SECTOR_IN_SDMMC=32800处读出来的,利用官方的PhoenixCard工具烧录tina_d1-nezha_uart0.img到TF卡中,输出头部数据,如下:
我的问题是:这个头部数据是在什么时候赋值的呢?这个“32800”是指扇区吗?
望大佬指点一下。
离线
这个头部数据是在哪里赋值的呢?是在打包阶段吗?
离线
March 说:这个头部数据是在哪里赋值的呢?是在打包阶段吗?
你看下脚本,里面有 各个.fex怎么生成的,
比如 update_boot0 专门生成 boot0*.fex 文件。
能力有限,还是不知道这个头部数据在哪里生成的。
离线