[U-Boot] [PATCH v7 2/3] mmc: meson: add MMC driver for Meson GX (S905)

Andreas Färber
2017-04-15T21:51:33Z

Am 15.04.2017 um 23:16 schrieb Andreas Färber:
> Am 15.04.2017 um 23:04 schrieb Alexander Graf:
>>> Am 15.04.2017 um 22:34 schrieb Andreas Färber <afaerber@suse.de>:
>>>> Am 15.04.2017 um 20:27 schrieb Alexander Graf:
>>>>> On 15.04.17 20:18, Heiner Kallweit wrote:
>>>>>> Am 15.04.2017 um 17:05 schrieb Andreas Färber:
>>>>>> But for the Vega S95 Telos I needed to disable the first of three MMC
>>>>>> nodes (SDIO) - otherwise U-Boot would happily iterate over them for
>>>>>> distro boot with Heinrich's patch, but GRUB would come up with no disks,
>>>>>> so that booting failed. I'm not yet sure why, maybe it's a UEFI-side
>>>>>> problem in that it is the first MMC device that is absent rather than
>>>>>> the last one?
>>>>>>
>>>>> I don't own this device so I can just provide a guess.
>>>>> Based on DT the device ordering most likely is:
>>>>> mmc0: SDIO
>>>>> mmc1: SD
>>>>> mmc2: eMMC
>>> [...]
>>>> If grub comes up, distro boot has successfully found the target binary
>>>> and executed it. For some reason, grub can not find its boot origin though.
>>>>
>>>> Andreas, please add debug prints like the ones below and check that the
>>>> device names match:
>>>
>>> U-Boot 2017.05-rc1-00318-g082535f-dirty (Apr 15 2017 - 22:29:17 +0200)
>>> vega-s95
>>>
>>> DRAM: 2 GiB
>>> MMC: mmc at 70000: 0, mmc at 72000: 1, mmc at 74000: 2
>>> Using default environment
>>>
>>> In: serial at 4c0
>>> Out: serial at 4c0
>>> Err: serial at 4c0
>>> Net: eth0: ethernet at c9410000
>>> Hit any key to stop autoboot: 0
>>> mmc_init: -95, time 1806
>>> MMC Device 0 not found
>>> no mmc device at slot 0
>>> switch to partitions #0, OK
>>> mmc1 is current device
>>> Scanning mmc 1:1...
>>> Setting boot device name to '//boot/dtb/amlogic/meson-gxbb-v'
>>> 20335 bytes read in 43 ms (460.9 KiB/s)
>>> Found EFI removable media binary efi/boot/bootaa64.efi
>>> Setting boot device name to '/efi/boot/bootaa64.efi'
>>> reading efi/boot/bootaa64.efi
>>> 129024 bytes read in 13 ms (9.5 MiB/s)
>>> ## Starting EFI application at 01080000 ...
>>> mmc_init: -95, time 1807
>>> Found 0 disks
>>
>> That looks like efi_disk didn't manage to enumerate any devices?
>
> Apparently. The last line comes from
> lib/efi_loader_efi_disk:efi_disk_register(), and CONFIG_BLK=y. As you
> can see, there is not a single "Scanning disk" line, so I guess we do
> not iterate over uclass devices properly?
>
> On the Odroid-C2 I get this:
>
> Scanning disk mmc at 72000.blk...
> Card did not respond to voltage select!
> mmc_init: -95, time 9
> Found 1 disks
>
> Therefore my guess that it matters at what point in time - before or
> after the disk we want - the error accessing an MMC device happens.

For comparison, Vega S95 with first MMC node disabled in DT:

Scanning disk mmc at 72000.blk...
Adding disk device 'mmc at 72000.blk'
** First descriptor is NOT a primary desc on 1:1 **
Scanning disk mmc at 74000.blk...
Adding disk device 'mmc at 74000.blk'
Found 2 disks

Regards,
Andreas

--
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)