展讯9832A DDR3不能开机

本文针对EMMC型号KMQN1000SM-B316开机失败的问题进行分析,并提供了解决方案,通过修改u-boot中mmc_send_ext_csd函数来诊断启动配置错误,发现EMMC设置为从用户区域启动而非预期的从boot1启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 EMMC型号KMQN1000SM-B316 ,开不机

2、有ERF报错请修改一下u-boot64/drivers/mmc/sprd_mmc.c的mmc_send_ext_csd函数在最后加一个512字节的for循环打印把ext_csd[0]到ext_csd[511]的值都打出来,替换fdl2.bin抓下载时的串口log:
static int mmc_send_ext_csd(struct mmc *mmc, u8 *ext_csd)
{
struct mmc_cmd cmd;
struct mmc_data data;
int err;
+ int i;

/* Get the Card Status Register */
cmd.cmdidx = MMC_CMD_SEND_EXT_CSD;
cmd.resp_type = MMC_RSP_R1;
cmd.cmdarg = 0;

data.dest = (char *)ext_csd;
data.blocks = 1;
data.blocksize = MMC_MAX_BLOCK_LEN;
data.flags = MMC_DATA_READ;

err = mmc_send_cmd(mmc, &cmd, &data);
debugf("mmc_send_ext_csd=%x\n",err);

+ for(i=0;i<512;i++)
+ printf("extcsd[%d]=0x%x\n", i, ext_csd[i]);
return err;


3、

从附件log看: extcsd[179]=0x38也就是说ext_csd[179]的bit[5:3]是7
 
从emmc spec可以看出bit[5:3] = 7代表从user area启动,原本这个值应该是1(从boot1启动)。
ext_csd[179]: PARTITION_CONFIG
Bit[5:3] : BOOT_PARTITION_ENABLE (R/W/E)
User selects boot data that will be sent to master
0x0 : Device not boot enabled (default)
0x1 : Boot partition 1 enabled for boot
0x2 : Boot partition 2 enabled for boot
0x3–0x6 : Reserved
0x7 : User area enabled for boot
 
也就是说器件不符合规范,需要emmc厂商修改这个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值