[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