您尚未登录。

楼主 #1 2020-06-11 10:34:20

luciferseva
会员
注册时间: 2020-05-20
已发帖子: 58
积分: 51.5

zero flash启动想知道为啥是这两个地址bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 启动内核

为啥要将内核的内容读到内存的0x41000000,有没有具体的说明和计算,文档啥的学习一下,是在哪个地方指定的?

离线

#2 2020-06-11 10:41:50

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 392
积分: 336

Re: zero flash启动想知道为啥是这两个地址bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 启动内核

zImage是自解压缩的镜像,可以随意放到内存的任意位置
Image属于未加压镜像需要放到指定内存位置,如0x40008000(arm32),参考内核内存映射模型
具体代码参照lds链接脚本,和stext的代码

离线

楼主 #3 2020-06-11 10:58:34

luciferseva
会员
注册时间: 2020-05-20
已发帖子: 58
积分: 51.5

Re: zero flash启动想知道为啥是这两个地址bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 启动内核

shaoxi2010 说:

zImage是自解压缩的镜像,可以随意放到内存的任意位置
Image属于未加压镜像需要放到指定内存位置,如0x40008000(arm32),参考内核内存映射模型
具体代码参照lds链接脚本,和stext的代码

还是有点不太懂,官网上的spiflash启动,uboot需要这样改动。烧写到flash0x110000 的是内核zImage,为啥要加载到0x41000000 ,有没有具体点的信息和设置说明,能详细讲解一下嘛?
#define CONFIG_BOOTCOMMAND   "sf probe 0; "                           \
                             "sf read 0x41800000 0x100000 0x10000; "  \
                             "sf read 0x41000000 0x110000 0x400000; " \
                             "bootz 0x41000000 - 0x41800000"

#define CONFIG_BOOTARGS      "console=ttyS0,115200 earlyprintk panic=5 rootwait " \
                             "mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2"

最近编辑记录 luciferseva (2020-06-11 10:59:10)

离线

#4 2020-06-11 11:12:25

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 392
积分: 336

Re: zero flash启动想知道为啥是这两个地址bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 启动内核

luciferseva 说:

还是有点不太懂,官网上的spiflash启动,uboot需要这样改动。烧写到flash0x110000 的是内核zImage,为啥要加载到0x41000000 ,有没有具体点的信息和设置说明,能详细讲解一下嘛?
#define CONFIG_BOOTCOMMAND   "sf probe 0; "                           \
                             "sf read 0x41800000 0x100000 0x10000; "  \
                             "sf read 0x41000000 0x110000 0x400000; " \
                             "bootz 0x41000000 - 0x41800000"

#define CONFIG_BOOTARGS      "console=ttyS0,115200 earlyprintk panic=5 rootwait " \
                             "mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2"

还是刚刚那个解释,我建议你改改内核加载地址试一试你就明白了,zImage可以放到内存区域内的任意位置,放在靠低位地址只是为了避免重叠。

离线

页脚

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

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