[U-Boot] [bug report] sunxi: booting from eMMC

Jaehoon Chung jh80.chung at samsung.com
Wed Oct 12 14:05:24 CEST 2016


Added Hans (sunxi maintainer)

On 10/12/2016 08:25 PM, Alexandr Bochkarev wrote:
>> This log means that there is no card on slot..
> But then i tried my board with mainline u-boot, emmc was on sdc0 lines.
> 
> Now i tried, boot marsboard from sd, hit button to stop kernel loading.
> sun7i# mmc list
> SUNXI SD/MMC: 0
> 
> Looks like its doesnt see emmc on sdc2.

If i misunderstood something, let me know, plz. :)
(Because i don't have targets relevant to sunxi..)

U-Boot SPL 2014.04-10685-g4af825f-dirty (Jun 14 2014 - 17:55:48)
-> This is right? 2014?

What did you mean sdc0/sdc1/sdc2...do you mean the hardware line?
If it's hardware line..sdc0 is for eMMC?

"Card did not respond to voltage select!"
1. There is no card on slot..
2. Power doesn't supply..

Did you check everything? Power, clock, gpio pin..


Best Regards,
Jaehoon Chung

> 
> 
> sun7i# printenv
> Environment size: 1919/131068 bytes
> autoboot=run loadkernel && run setargs && true && bootm 0x48000000
> baudrate=115200
> boot_ram=saved_stdout=$stdout;setenv stdout nc;if iminfo 0x41000000; then true; setenv stdout $saved_stdout; source 0x41000000;else setenv stdout $saved_stdout;fi
> bootcmd=if run loadbootenv; then echo Loaded environment from ${bootenv};env import -t ${scriptaddr} ${filesize};fi;if test -n "${uenvcmd}"; then echo Running uenvcmd ...;run uenvcmd;fi;if run loadbootscr; then echo Jumping to ${bootscr};source ${scriptaddr};fi;run autoboot;
> bootdelay=2
> bootenv=uEnv.txt
> bootm_size=0x10000000
> bootscr=boot.scr
> console=ttyS0,115200
> device=mmc
> ethact=dwmac.1c50000
> ethaddr=02:d8:09:82:e3:9b
> kernel=uImage
> loadbootenv=fatload $device $partition $scriptaddr ${bootenv} || ext2load $device $partition $scriptaddr boot/${bootenv} || ext2load $device $partition $scriptaddr ${bootenv}
> loadbootscr=fatload $device $partition $scriptaddr ${bootscr} || ext2load $device $partition $scriptaddr boot/${bootscr} ||ext2load $device $partition $scriptaddr ${bootscr}
> loadkernel=if bootpath=/boot/ && ext2load $device $partition 0x43000000 ${bootpath}${script} && ext2load $device $partition 0x48000000 ${bootpath}${kernel};then true; elif bootpath=/ && fatload $device $partition 0x43000000 ${script} && fatload $device $partition 0x48000000 ${kernel};then true; elif bootpath=/ && ext2load $device $partition 0x43000000 ${bootpath}${script} && ext2load $device $partition 0x48000000 ${bootpath}${kernel};then true; else false;fi
> loglevel=8
> panicarg=panic=10
> partition=0:1
> script=script.bin
> scriptaddr=0x44000000
> setargs=if test -z \\"$root\\"; then if test \\"$bootpath\\" = "/boot/"; then root="/dev/mmcblk0p1 rootwait"; else root="/dev/mmcblk0p2 rootwait"; fi; fi; setenv bootargs console=${console} root=${root} loglevel=${loglevel} ${panicarg} ${extraargs}
> stderr=serial
> stdin=serial
> stdout=serial
> 
> 
>> 12 окт. 2016 г., в 17:09, Jaehoon Chung <jh80.chung at samsung.com> написал(а):
>>
>> On 10/12/2016 07:52 PM, Alexandr Bochkarev wrote:
>>> In order to exclude possible errors on my board, i get MarsBoard A20 Lite, desolder nand, and put on emmc pads my emmc flash.
>>> So emmc is on sdc2 lines. When iam booting from sd on sdc1, linux kernel can init emmc, and i got /dev/mmcblkp1, works well.
>>> But when i eject sd and try to boot from sdc2 emmc, get the same err 17. 
>>> In this case i have used some old uboot from marsboard site, because mainline u-boot have not config for a20 marsboard.
>>>
>>> U-Boot SPL 2014.04-10685-g4af825f-dirty (Jun 14 2014 - 17:55:48)
>>> Board: MarsBoard-A20 & MarsPI
>>> DRAM: 1024 MiB
>>> CPU: 960000000Hz, AXI/AHB/APB: 3/2/2
>>> Card did not respond to voltage select!
>>
>> This log means that there is no card on slot..
>> In my case..when i set the wrong mmc boot dev in environment, I had seen the similar log.
>> Could you share the environment values?
>>
>>> spl: mmc init failed: err - -17
>>> ### ERROR ### Please RESET the board ###
>>>
>>> So, the problem with eMMC KLM4G1FE3B-B001 is exists(
>>> Maybe you know some cheap emmc, which is 100% works with mainline u-boot?
>>
>> I'm not sure...100% working card...because we don't ensure 100% what problem there are in mainline u-boot.
>>
>>>
>>>> 7 окт. 2016 г., в 14:44, Alexandr Bochkarev <aneox.inbox at gmail.com <mailto:aneox.inbox at gmail.com>> написал(а):
>>>>
>>>> Hi!
>>>> Very appreciate your help! Hope we will fix it, because my board will be garbage without emmc (
>>>> So, my steps:
>>>>
>>>> git clone git://git.denx.de/u-boot.git --depth 1; cd u-boot;
>>>> make CROSS_COMPILE=arm-linux-gnueabihf- A20-OLinuXino-Lime_defconfig
>>>> make CROSS_COMPILE=arm-linux-gnueabihf-
>>>>
>>>> Also turn on CONFIG_MMC_TRACE
>>
>> the below log seems that is nothing to do..arguments/response data..everything are 0..
>> It's strange.
>>
>>
>> Best Regards,
>> Jaehoon Chung
>>
>>>>
>>>> After run, got:
>>>>
>>>> Trying to boot from MMC1
>>>> CMD_SEND:0
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_NONE
>>>> CMD_SEND:8
>>>> ..ARG... 0x00000000
>>>> ..RET... -110
>>>> CMD_SEND:55
>>>> ..ARG... 0x00000000
>>>> ..RET... -110
>>>> CMD_SEND:0
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_NONE
>>>> CMD_SEND:1
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R3,4.. 0x00000000 
>>>> CMD_SEND:1
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R3,4.. 0x00000000 
>>>> CMD_SEND:0
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_NONE
>>>> CMD_SEND:1
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R3,4.. 0x00000000 
>>>> CMD_SEND:1
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R3,4.. 0x00000000 
>>>> CMD_SEND:2
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R2.. 0x00000000 
>>>> ..          .. 0x00000000 
>>>> ..          .. 0x00000000 
>>>> ..          .. 0x00000000 
>>>>
>>>> .....DUMPING DATA
>>>> .....000 - 00 00 00 00 
>>>> .....004 - 00 00 00 00 
>>>> .....008 - 00 00 00 00 
>>>> .....012 - 00 00 00 00 
>>>> CMD_SEND:3
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CMD_SEND:9
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R2.. 0x00000000 
>>>> ..          .. 0x00000000 
>>>> ..          .. 0x00000000 
>>>> ..          .. 0x00000000 
>>>>
>>>> .....DUMPING DATA
>>>> .....000 - 00 00 00 00 
>>>> .....004 - 00 00 00 00 
>>>> .....008 - 00 00 00 00 
>>>> .....012 - 00 00 00 00 
>>>> CMD_SEND:13
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CURR STATE:3
>>>> CMD_SEND:7
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CMD_SEND:8
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CMD_SEND:8
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CMD_SEND:6
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1b.. 0x00000000 
>>>> CMD_SEND:13
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CURR STATE:4
>>>> CMD_SEND:8
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CMD_SEND:6
>>>> ..ARG... 0x00000000
>>>> ..RET... -110
>>>> CMD_SEND:16
>>>> ..ARG... 0x00000000
>>>> ..MMC_RSP_R1,5,6,7 . 0x00000000 
>>>> CMD_SEND:17
>>>> ..ARG... 0x00000000
>>>> ..RET... -110
>>>>
>>>> hdr read sector 80, count=0
>>>> mmc_load_image_raw_sector: mmc block read error
>>>> SPL: failed to boot from all boot devices
>>>> ### ERROR ### Please RESET the board ###
>>>>
>>>> So, 
>>>> spl_mmc.c on line 66, blk_dread return 0 count
>>>> blk.h on line 389, block_dev->block_read(block_dev, start, blkcnt, buffer) return 0
>>>> block_dev->block_read is a pointer, seems like it defined in mmc_legacy.c on line 144, bdesc->block_read = mmc_bread;
>>>> mmc.c, line 285 mmc_read_blocks return Failed to read blocks
>>>> mmc.c, line 223, mmc_send_cmd return 0, cmdidx was 17, like last in mmc trace
>>>>
>>>>
>>>>> 7 окт. 2016 г., в 5:48, Jaehoon Chung <jh80.chung at samsung.com <mailto:jh80.chung at samsung.com>> написал(а):
>>>>>
>>>>> On 10/03/2016 02:39 AM, AneoX wrote:
>>>>>> Emmc Card was the new one, so i just burn a dump of working sd. Previously
>>>>>> sd have been wired to board for test.
>>>>>>
>>>>>> Board is a custom,  like olinuxino lime which with nand and sd slot, 512 mb
>>>>>> ram. So i using it defconfig and in case of sd card, it works.
>>>>>> Emmc lines has external pullups according to the datasheet.
>>>>>
>>>>> Well, i needs to get more information..If you guess that seems to return 0 from block_read()..
>>>>> then you can find which condition was hit..is it impossible?
>>>>>
>>>>> If you can share more debug message..then i will help you.
>>>>>
>>>>> Best Regards,
>>>>> Jaehoon Chung
>>>>>
>>>>>>
>>>>>> 2 окт. 2016 г. 23:28 пользователь "Jagan Teki" <jagannadh.teki at gmail.com <mailto:jagannadh.teki at gmail.com>>
>>>>>> написал:
>>>>>>
>>>>>> On Sun, Oct 2, 2016 at 10:45 PM, AneoX <aneox.inbox at gmail.com <mailto:aneox.inbox at gmail.com>> wrote:
>>>>>>> Like a sd card. I have emmc to sd adapter, so
>>>>>>>
>>>>>>> dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
>>>>>>
>>>>>> I guess you cleaned[1] the card before doing this?
>>>>>>
>>>>>>>
>>>>>>> and then just solder emmc to my board.
>>>>>>
>>>>>> OK, which a20 board?
>>>>>>
>>>>>> [1] http://linux-sunxi.org/Bootable_SD_card
>>>>>>
>>>>>> thanks!
>>>>>> --
>>>>>> Jagan Teki
>>>>>> Free Software Engineer | www.openedev.com <http://www.openedev.com/>
>>>>>> U-Boot, Linux | Upstream Maintainer
>>>>>> Hyderabad, India.
>>>>>> _______________________________________________
>>>>>> U-Boot mailing list
>>>>>> U-Boot at lists.denx.de <mailto:U-Boot at lists.denx.de>
>>>>>> http://lists.denx.de/mailman/listinfo/u-boot
>>>>
>>>
>>
> 
> 
> 
> 



More information about the U-Boot mailing list