TI中文支持网
TI专业的中文技术问题搜集分享网站

应用AM3358,自己设计的应用板,UART启动,由UART口将SPL和uboot下载到ARM芯片,窗口显示如下结果

SD卡没有插入,所以MMC端口没有设备是可以理解的,但电路中有设计这部分电路。
NAND Flash电路设计的是MT29F8G16ADADAH4,且测量芯片供电电压正确,为何结果显示NAND:  0 MiB?是有错误么?是哪部分的错误呢?
Net:   <ethaddr> not set. Validating first E-fuse MAC,这句话是什么意思?<ethaddr>是IP地址么?需要在哪里设置呢?谢谢
Steven Liu1:

NAND没有识别成功,建议你查一下,你当前的配置文件中是否有做好NAND的配置。因为修改我们的SDK UBOOT时候,选择什么样的EEPROM配置,会决定了你的当前配置中是否有NAND。一些开发板型号上面是没有NAND的,所以就没有对NAND进行配置了,建议参考GPEVM的配置进行,因为上面是有NAND的。

Yalan Han:

回复 Steven Liu1:

您好,按照您的建议,我改了如下部分,红色标记为我的更改,因为我是自己设计的板子,所以更改情况如红色标记处:

static unsigned short detect_daughter_board_profile(void){ unsigned short val;

if (i2c_probe(I2C_CPLD_ADDR)) return PROFILE_NONE;

if (i2c_read(I2C_CPLD_ADDR, CFG_REG, 1, (unsigned char *)(&val), 2)) return PROFILE_NONE;

return (1 << (val & PROFILE_MASK));}

void enable_board_pin_mux(struct am335x_baseboard_id *header){ /* Do board-specific muxes. */ if (board_is_bone(header)) { /* Beaglebone pinmux */ configure_module_pin_mux(i2c1_pin_mux); configure_module_pin_mux(mii1_pin_mux); configure_module_pin_mux(mmc0_pin_mux);#ifndef CONFIG_NOR configure_module_pin_mux(mmc1_pin_mux);#endif#if defined(CONFIG_NOR) && !defined(CONFIG_NOR_BOOT) configure_module_pin_mux(bone_norcape_pin_mux);#endif } else if (board_is_gp_evm(header)){ /* General Purpose EVM */ unsigned short profile = detect_daughter_board_profile(); configure_module_pin_mux(rgmii1_pin_mux); configure_module_pin_mux(mmc0_pin_mux); /* In profile #2 i2c1 and spi0 conflict. */ if (profile & ~PROFILE_2) configure_module_pin_mux(i2c1_pin_mux); /* Profiles 2 & 3 don't have NAND */ if (profile & ~(PROFILE_2 | PROFILE_3)) configure_module_pin_mux(nand_pin_mux); else if (profile == PROFILE_2) { configure_module_pin_mux(mmc1_pin_mux); configure_module_pin_mux(spi0_pin_mux); } } else if (board_is_idk(header)) { /* * Industrial Motor Control (IDK) * note: IDK console is on UART3 by default. * So u-boot mus be build with CONFIG_SERIAL4 and * CONFIG_CONS_INDEX=4 */ configure_module_pin_mux(mii1_pin_mux); configure_module_pin_mux(mmc0_no_cd_pin_mux); } 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(mmc0_pin_mux_sk_evm); } else if (board_is_bone_lt(header)) { /* Beaglebone LT pinmux */ configure_module_pin_mux(i2c1_pin_mux); configure_module_pin_mux(mii1_pin_mux); configure_module_pin_mux(mmc0_pin_mux); configure_module_pin_mux(mmc1_pin_mux); } else {/* puts("Unknown board, cannot configure pinmux."); hang(); */ unsigned short profile = detect_daughter_board_profile(); configure_module_pin_mux(rgmii1_pin_mux); configure_module_pin_mux(mmc0_pin_mux); /* Profiles 2 & 3 don't have NAND */ if (profile & ~(PROFILE_2 | PROFILE_3)) configure_module_pin_mux(nand_pin_mux); }}

但是更改后,结果仍然显示的是nand为0MB,不知道是不是还有别的地方需要修改呢?谢谢

Steven Liu1:

回复 Yalan Han:

我觉得这样改有两个问题:

1. 改的函数是在detect_daughter_board_profile,这个是GPEVM的配置中daughter board的配置。那么你的EEPROM必须要设置为GPEVM的类型,印象中,设置完了后启动时,板卡还会检测daughter board是否存在,这里估计也是需要改的,这样才能确保你能够运行到上述的红字配置。

2. 在对NAND的配置中,你增加的代码还要对profile进行判定,profile是根据GPEVM的CPLD来确定的,这块也是需要处理。

综上,先确认能否运行到上述的代码,然后直接把那个if判断去掉,试试看在uboot下面 nand info看一下。

Yalan Han:

回复 Steven Liu1:

谢谢,我也尝试过将红字部分进行如下的更改:

else { configure_module_pin_mux(gpio0_7_pin_mux); configure_module_pin_mux(rgmii1_pin_mux); configure_module_pin_mux(mmc0_pin_mux); configure_module_pin_mux(nand_pin_mux);}

去掉了if的判断,nand仍未0MB,nand info信息:

Device 0: MT29F8G16ADADAH4, sector size 128 KiB Page size 2048 b OOB size 64 b Erase size 131072 b

不知道这种情况下对不对?是不是由于ARM是32位,所以不能判断出nand的大小

赞(0)
未经允许不得转载:TI中文支持网 » 应用AM3358,自己设计的应用板,UART启动,由UART口将SPL和uboot下载到ARM芯片,窗口显示如下结果
分享到: 更多 (0)