请教各位大神!
我现在有个am3352的自制板子,采用spIFlash启动。
现又在mmc1接口上接了一个emmc,我修改uboot程序,现想实现一个最基本的通信。
第一步:mmc dev 1(切换到mmc1)
第二部:mmcinfo
现在卡在第一步就死机了
首先修改了mux
static struct module_pin_mux mmc1_pin_mux[] = {
{OFFSET(gpmc_ad11), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT3 */
{OFFSET(gpmc_ad10), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT2 */
{OFFSET(gpmc_ad9), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT1 */
{OFFSET(gpmc_ad8), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT0 */
{OFFSET(gpmc_csn1), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_CLK */
{OFFSET(gpmc_csn2), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_CMD */
{OFFSET(gpmc_csn0), (MODE(7) | RXACTIVE | PULLUP_EN)}, /* MMC1_WP */
{OFFSET(gpmc_advn_ale), (MODE(7) | RXACTIVE | PULLUP_EN)}, /* MMC1_CD */
{OFFSET(mcasp0_aclkx), (MODE(6) | RXACTIVE| PULLUP_EN)},
{-1},
};(注意这里用的GPMC_AD8-9-10-11引脚不是ad0。。。)
configure_module_pin_mux(mmc1_pin_mux);
定位 现在卡在了
mmc_init_setup这个函数
一到读mmc1的寄存器就挂了
static int mmc_init_setup(struct mmc *mmc)
{
struct hsmmc *mmc_base = (struct hsmmc *)mmc->priv;
unsigned int reg_val;
unsigned int dsor;
ulong start;
mmc_board_init(mmc);
writel(readl(&mmc_base->sysconfig) | MMC_SOFTRESET,
&mmc_base->sysconfig);
start = get_timer(0);
while ((readl(&mmc_base->sysstatus) & RESETDONE) == 0) {
if (get_timer(0) – start > MAX_RETRY_MS) {
printf("%s: timedout waiting for cc2!\n", __func__);
return TIMEOUT;
}
}。。。。。。。
。。。。。。。。。。。。
就到红色字体就挂了
请问可能是什么原因引起的???
我用的是ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin
Nancy Wang:
dts文件中有没有做相应的配置?自制的板子是参考的开发板设计的吗?
jiawei zhang:
回复 Nancy Wang:
我用的是ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin
dts文件夹下只有一个makefile。。。
Nancy Wang:
回复 jiawei zhang:
arch\arm\dts\am335x-evm.dts没有吗?
jiawei zhang:
回复 Nancy Wang:
没有
jiawei zhang:
回复 jiawei zhang:
我现在用官网下载的ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin 放到开发板上 启动到uboot后
发送指令:mmc dev 1 同样也是在读首个寄存器地址的时候跑飞。。。
yongqing wang:
回复 jiawei zhang:
你是参看哪款板子做的?
jiawei zhang:
回复 yongqing wang:
TMDSSK3358 – AM335x Starter Kit紫色的那个开发板
我用开发板原装自带的uboot 在紫色的这个开发板上使用 的时候
当我在uboot下 发送 mmc dev 1 这个指令的时候也是同样的现象都是跑到这个地方飞了
用的sdk版本是ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.bin
设备树下也没有相关的配置地方。。。
yongqing wang:
回复 jiawei zhang:
出错提示信息是啥
jiawei zhang:
回复 yongqing wang:
readl(&mmc_base->sysconfig)读到这个mmc1的寄存器地址 就卡住了
这个问题很好复现 只要用3358那个紫色的官方开发板直接上电跑uboot输入mmc dev 1 就能复现