flash在uboot中与linux中地址问题

flash在uboot中与linux中地址问题

现象:bootflash在uboot下的地址为0-0x0FFFFFFF

​ usrflash在uboot下的地址也为0-0x0FFFFFFF

​ 但是在os中,bootflash的地址为0x001_0000_0000-0x001_0FFFFFFF

​ usrflash的地址为0x001_1000_0000-0x001_1FFF_FFF

问题:bootflash和usrflash地址不同;但uboot下的地址就相同,只需要切换片选,这个差异的原因是什么?

uboot是32位系统,但是os是64位,所以uboot表示大小不能全用来表示flash,占用空间太多;

OS下因为是64位,E2000q的地址分配。0x001_0000_0000之后的2GB都分配给了QSPI的高位空间,拥有足够的空间;

补充一点,查看飞腾的软件编程手册发现,只有0x000_8000_0000-0x000_FFFF_FFFF这中间的2GB是Memory,也就是内存区域,其他地方不能称作为内存,只能是可以说可以被cpu直接访问的区域;

posted @ 2025-12-03 17:26  Linux驱动开发  阅读(7)  评论(0)    收藏  举报