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

Alexandr Bochkarev aneox.inbox at gmail.com
Wed Oct 12 14:11:49 CEST 2016


On marsboard today i used 2014 u-boot, sd card on sdc0 hardware lines and emmc on sdc2 hardware lines.
and get error "Card did not respond to voltage select!» , then i tried to boot without sd card, only with emmc on sdc2

On my board i used mainline u-boot, emmc on sdc0 hardware lines.
And get block read error, logs below.

Brom on A20 chip firstly tries sdc0, if fail, then sdc2.

I dont checked only gpio pins, maybe in det pin problem, i will try, thx.


> 12 окт. 2016 г., в 18:05, Jaehoon Chung <jh80.chung at samsung.com> написал(а):
> 
> 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