-
有安装包么?
-
gggggg
-
原帖由 gooogleman 于 2013-11-27 23:23 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1596611&ptid=419771][/url]
先把薄码开关拨到MMC2启动,即OM[5:1] 为b'00010,把启动TF卡插入MMC2,上电启动,进入uboot命令行模式后执行命令:
mmc erase boot 0 0 1024
即可擦除uboot分区最前面的引导部分。注意,不要此时烧写uboot,此时 ...
从TF启动,就是mmc erase boot 1 0 0, 从eMMC启动,mmc erase boot 0 0 0 , 不用那个1024. 它最终调用mmc_erase的
[ 本帖最后由 seanew 于 2013-11-28 16:18 编辑 ]
-
关于eMMC,我听人说,要在初始化时,设置一个结构,里面有一成员是控制是否是热插拔设备,我找了很久,看了4412datasheet,都没有见着,而且这个成员即使有,也应该是CPU侧的寄存器来控制.因为这个Xmmc0CDn就是被cpu来操作,是当检测pin还是当GPIO控制的.三星文档上指示这个pin是检测屏,但参考图中却是当作电源使能的GPIO来用的.资料太少,搞不清这个pin,我想不会是在HOST显式地去改变这个PIN定义吧.
-
可以支持,我现在已经能够从iNand启动kernel了.
-
原帖由 gooogleman 于 2013-11-27 22:40 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1596570&ptid=419771][/url]
晚上搞定这个事情先。
iNand启动时候
SKD4X12 # mmc list
S5P_MSHC4: 0
S3C_HSMMC2: 1
SKD4X12 #
不关机切换成
SD/TF MM2 启动的时候一样
SKD4X12 # mmc list
S5P_MSHC4: 0
S3C_HSMMC2: 1
SKD4X12 # ...
为什么变? 我前面已经给出代码分析了.可以看看.
-
原帖由 gooogleman 于 2013-11-27 23:23 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1596611&ptid=419771][/url]
先把薄码开关拨到MMC2启动,即OM[5:1] 为b'00010,把启动TF卡插入MMC2,上电启动,进入uboot命令行模式后执行命令:
mmc erase boot 0 0 10240
即可擦除uboot分区最前面的引导部分。注意,不要此时烧写uboot,此时 ...
呵呵,所以我说你们的烧写文档有问题,你们还否认.在给客户设计前自己一定要明白原理,这是最起码的,因为迟早会出问题的......
-
原帖由 Wince.Android 于 2013-11-27 15:04 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1596246&ptid=419771][/url]
int emmc_boot_open(struct mmc *mmc)
{
int err;
struct mmc_cmd cmd;
/* Boot ack enable, boot partition enable , boot partition access */
cmd.cmdidx = MMC_CMD_SWITCH;
cmd.resp_type = MMC_RS ...
是的,我现在就是这样的,每次烧写完后,TF卡必须重新烧卡.我认为,这个烧写方式一定是有问题的.三星没有这么混的.
-
就当是4412留给开发者的"NVRAM"用的就好啦.原来我的烧写文档是你写的啊,这里面是很奇怪,不带电切换烧写模式,这个才让人摸不着头脑的步骤. 切换开关只是在最后烧写完才用的的步骤,结果被用在下载img时使用,不对的地方........
-
换作15pf,33pf,200pf问题依旧.不加它也是这样.
查了一下,发现是4412的Xmmc0CDn信号并不是一直高,导致iNand电压不稳定,所以访问失败.直接用GPIO控制拉高,就能访问了.
但问题是,这个Xmmc0CDn是个检测pin,为何用它来控制iNand电源,另外,这个信号为何不一直高,以给iNand供电?参考电路上也是这样设计的.
-
希望这个帖子可以帮助你.
http://www.denx.de/wiki/DULG/Sou ... rgetHasEABIVersion0
-
!INF_REG3_REG == 7 这个值正是Sate4412 开发板TF 小卡启动的配置,这里判断到是TF 小卡启动,那么就关闭了emmc?
不对吧? #define BOOT_EMMC_4_4 7
/* eMMC 4.4 BOOT */
cmp r2, #0x8
moveq r3, #BOOT_EMMC_4_4
cmp r2, #0x28
moveq r3, #BOOT_EMMC_4_4
从eMMC启动的时候,才会向r3写入7, 然后INF_REG3_REG的值才会是7.
-
我也发现这个问题很奇怪.不知我用的烧写文档是否来自你手?
OM开机就已经定了, 这个INF_REG3_REG 只是被系统用来存放OM设置值而已.请看lowlevel_init.S中的read_om函数,
ldr r0, =S5PV310_POWER_BASE
ldr r1, [r0,#OMR_OFFSET]
bic r2, r1, #0xffffffc1
这个就是读取OM设置pin状态,并写入r2.
/* SD/MMC BOOT */
cmp r2, #0x4
moveq r3, #BOOT_MMCSD
/* eMMC BOOT */
cmp r2, #0x6
moveq r3, #BOOT_EMMC
/* eMMC 4.4 BOOT */
cmp r2, #0x8
moveq r3, #BOOT_EMMC_4_4
cmp r2, #0x28
moveq r3, #BOOT_EMMC_4_4
上面就是根据r2值,记入相应的启动方式到r3
ldr r0, =INF_REG_BASE
str r3, [r0, #INF_REG3_OFFSET]
mov pc, lr
上面就是将存放在r3中的OM设置值存入INF_REG3_REG.
-
uboot运行稳定,但内核中的内存在哪配置啊?我是内核解压完,Uncompressing Linux... done, booting the kernel.之后就重启,每次都这样,然然后打开low level debug宏,发现每次都是上面那个异常.导致启动失败.我通过高低MPLL频率,配置了uboot内存,内存才跑起来, 但kernel这块内存还要配置什么?没有做过配置.下面是它自己检测出来的.
Memory: 2047MB = 2047MB total
Memory: 1697420k/1697420k available, 398708k reserved, 1342464K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xfea00000 - 0xffe00000 ( 20 MB)
vmalloc : 0xee800000 - 0xf6000000 ( 120 MB)
lowmem : 0xc0000000 - 0xee000000 ( 736 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.init : 0xc0008000 - 0xc0037000 ( 188 kB)
.text : 0xc0037000 - 0xc05d0000 (5732 kB)
.data : 0xc05d0000 - 0xc061dec0 ( 312 kB)
.bss : 0xc061dee4 - 0xc0755e60 (1248 kB)
-
这个iNand支持dual voltage, 2.7~3.6V, 1.6~1.95V, 目前我们接的是VCC是3.3V,VCCQ也是3.3V,但始终1000次返回0ff8080,cmd1一直busy.现在改成VCCQ为1.8V,出来了如下错误:
CMD[1] ARG:40ff8000
[ERROR] response timeout error : 00000104 cmd 1
看代码是如下问题:
if (mask & INTMSK_RTO) {
if (((cmd->cmdidx == 8 || cmd->cmdidx == 41 || cmd->cmdidx == 55)) == 0) {
printf("[ERROR] response timeout error : %08x cmd %d\n",
mask, cmd->cmdidx);
}
return TIMEOUT;
}
不解啊??????
-
接了200pf旁路电容后,仍然超时.还有别的什么原因吗?
-
多谢. 我们硬件板上的时钟就是从CPU出来后,通过一个22ohm的电阻直接连接在iNand的时钟线上了,没有连电容,看到参考电路上有,哎.请问这个电容是起什么作用的? 另外,参考板上接的是一个15PF电容,cmd8也是超时的,cmd1也要执行十遍左右,才开始执行cmd2. 或许参考板上的也有点小了?
-
时钟线上只有一个22ohm的电阻,没有接电容. 刚才看了一下,发现从发第一个cmd0开始,就超时.从网上了解,说是在发命令前要有74clk的时钟等待MMC内部初始化好,看代码是延时1000us应该差不多了.不知是哪里做的不对.
-
真不错,有没有针对4412的时钟配置帖子啊?
-
嗯,感觉还要做个应用开启才行。研究中……