大家新年好,
我用的是am335x平台、sdk8.0, 我想把sd卡里的uboot、内核镜像、根文件系统 烧录到emmc(64g)里面,让我的板子脱离sd卡也能启动系统。
请问我应该怎么做呢?有没有这方面的参考资料呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家新年好,
我用的是am335x平台、sdk8.0, 我想把sd卡里的uboot、内核镜像、根文件系统 烧录到emmc(64g)里面,让我的板子脱离sd卡也能启动系统。
请问我应该怎么做呢?有没有这方面的参考资料呢?
可以参考这个emmc烧写全纪录:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/73278.aspx
这个里面是用的uniflash,如果你想用SD卡烧录,参考这里面的步骤即可。
你好,我板子的emmc是连在mmc1上的,用的是sdk8.0,uboot在启动的时候我修改i2c读取板子ID为sk板,也就是用sk的配置,好像sk板子没有emmc吧,我在uboot里面没有改过任何关于emmc管脚之类的东西,然后在uboot环境中打印了如下信息,这是不是代表我的emmc已经驱动起来了?关于sk板的uboot,应该没有启动这方面的驱动才对吧,为什么能读到我板子emmc的信息呢?
U-Boot# mmcinfo
Device: OMAP SD/MMC
Manufacturer ID: fe
OEM: 14e
Name: MMC64
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.41
High Capacity: Yes
Capacity: 59.5 GiB
Bus Width: 4-bit
U-Boot#
我们的BBB板子上面是有EMMC卡的,接在MMC1上。SK上没有。
我估计你还是在板级配置的时候配置了,所以会有。你可以查下pinmux来确认配置。
如果为了移植,就参考beagleboneblack的配置中是如何进行配置的即可。
我确认我修改sdk时只改了i2c读取板子ID的内容(选择sk板),其他没改过,就是它能识别emmc让我很疑惑!
请问你说的pinmux具体是查看哪个文件呢?这些引脚的配置区分sk板和BBB板的么?
还有,我用的是sdk08,参照sdk06的烧录emmc方法,需要注意什么呢?
感谢!
AM335x的PIN脚是有复用模式设置的,要想正常的进行访问,首先管脚的状态设置必须要正确,才能收发信号。参考AM335x的TRM手册,在control module的章节列出了他的地址,你可以通过这个来确认,你是不是配置了。(一般来说,除了功能管脚,多数的管脚模式都会被配置成为模式7,GPIO模式。)
你现在的eMMC能正常识别了的话,是否能正常的写入读取数据呢?试试看。
我建议的思路还是,查源码中BBB的配置是如何进行的,参考这个来,这样是最直观便捷的方式。
我看了board/ti/am335x/mux.c
void enable_board_pin_mux(struct am335x_baseboard_id *header) 函数了面,
else if (board_is_evm_sk(header)) {
/* Starter Kit EVM */
configure_module_pin_mux(i2c1_pin_mux);
configure_module_pin_mux(gpio0_7_pin_mux);
configure_module_pin_mux(rgmii1_pin_mux);
configure_module_pin_mux(rgmii2_pin_mux);
configure_module_pin_mux(mmc0_pin_mux_sk_evm);
}
确实没有configure_module_pin_mux(mmc1_pin_mux);
我板子启动确实是用的sk的配置:[ 0.000000] Machine model: TI AM335x EVM-SK
很是疑惑。
我改了PIN脚配置,未格式化前如下:
U-Boot# mmc info
Device: OMAP SD/MMC
Manufacturer ID: 3
OEM: 5344
Name: SU04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
格式化后:
U-Boot# mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
U-Boot# mmc erase 0 20000
MMC erase: dev # 1, block # 0, count 131072 ... 131072 blocks erased: OK
U-Boot# mmcinfo
Device: OMAP SD/MMC
Manufacturer ID: fe
OEM: 14e
Name: MMC64
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.41
High Capacity: Yes
Capacity: 59.5 GiB
Bus Width: 4-bit
执行读写命令:
U-Boot# mmc write 0x90000000 0x600 0x10
MMC write: dev # 1, block # 1536, count 16 ... 16 blocks written: OK
U-Boot# mmc read 0x90000000 0x600 0x10
MMC read: dev # 1, block # 1536, count 16 ... 16 blocks read: OK
问题1:这个打印信息证明我的EMMC成功驱动了么?
问题2:格式化前感觉读到的是sd卡的信息,为什么格式化前和格式化后EMMC的信息不同的?(执行mmcinfo命令)
问题3:sdk08和sdk6.0的EMMC烧录步骤有哪些区别?
1. 从操作上看,是进行读写了,但是读写的数据对不对这样无法辨识不知道。你直接把MLO写进去,然后就用mmc1启动,看是否能读到,启动成功就好了。
2. 只能说明之前没配置,读写这里应该是有问题的。其他的说明不了啥。如果想进一步确认,那一次读的对,查看你的eMMC卡的Manufacutre ID可以帮助你来辨识。
3. SDK 6.0在上面的链接中给出了,SDK8.0的目前还没有客户做过,不过流程上应该一致。PROCESSOR SDK的话,可以参考下面: