[U-Boot] [PATCH v7 00/34] sf: MTD support

Stefan Roese
2015-11-26T18:12:47Z

Hi Simon,

On 26.11.2015 18:55, Simon Glass wrote:
> Hi Stefan,
>
> On 26 November 2015 at 09:47, Stefan Roese <sr@denx.de> wrote:
>> Hi Simon,
>>
>> On 26.11.2015 17:48, Simon Glass wrote:
>>
>> <snip>
>>
>>
>>>> Yes. I'm trying to enable SPL_DM on MVEBU. And this with
>>>> DM_SPI and DM_SPI_FLASH enabled as well. I've the kirkwood
>>>> SPI driver ported to DM here for this (patches will follow).
>>>>
>>>>> what kind of issue?
>>>>> is it failed to probe device or something?
>>>>
>>>>
>>>> Here the log (with some debug() enabled):
>>>>
>>>> ----------<-------------------------------
>>>> uclass_find_device_by_seq: 0 -1
>>>> uclass_find_device_by_seq: 0 0
>>>> - -1 -1
>>>> - not found
>>>> bind node serial at 12000
>>>> - found match at 'ns16550_serial'
>>>> Bound device serial at 12000 to root_driver
>>>> uclass_find_device_by_seq: 0 -1
>>>> uclass_find_device_by_seq: 0 0
>>>> - -1 -1
>>>> - not found
>>>>
>>>> U-Boot SPL 2016.01-rc1-00267-gdb3362c-dirty (Nov 26 2015 - 14:00:16)
>>>> High speed PHY - Version: 2.0
>>>> Detected Device ID 6828
>>>> board SerDes lanes topology details:
>>>> | Lane # | Speed | Type |
>>>> --------------------------------
>>>> | 0 | 5 | PCIe0 |
>>>> | 1 | 3 | SATA0 |
>>>> | 2 | 3 | SATA1 |
>>>> | 3 | 3 | SATA3 |
>>>> | 4 | 3 | SATA2 |
>>>> | 5 | 5 | USB3 HOST1 |
>>>> --------------------------------
>>>> PCIe, Idx 0: detected no link
>>>> High speed PHY - Ended Successfully
>>>> DDR3 Training Sequence - Ver TIP-1.29.0
>>>> DDR3 Training Sequence - Switching XBAR Window to FastPath Window
>>>> DDR3 Training Sequence - Ended Successfully
>>>> Trying to boot from SPI
>>>> uclass_find_device_by_seq: 0 0
>>>> - not found
>>>> uclass_find_device_by_seq: 1 0
>>>> - not found
>>>> Invalid bus 0 (err=-19)
>>>> SPI probe failed.
>>>> SPL: failed to boot from all boot devices
>>>> ### ERROR ### Please RESET the board ###
>>>> ----------<-------------------------------
>>>>
>>>> Simon, do you have a clue what's missing here? SPI NOR booting
>>>> is working just fine in SPL without SPL_DM enabled on this
>>>> platform. AFAICT, I've added the required "u-boot,dm-pre-reloc"
>>>> properties to the dts.
>>>>
>>>>> I will verify the same and
>>>>> let you know.
>>>>
>>>>
>>>> How can you verify this if SPI is not working at all for you? Or
>>>> did I misunderstand you (see above)?
>>>
>>>
>>> -19 means -ENODEV. I suppose CONFIG_SPL_OF_CONTROL is enabled.
>>
>>
>> Yes.
>>
>>> You can
>>> check the device tree used for SPL in your build directory -
>>> spl/u-boot-spl.dtb.
>>>
>>> From the debugging it looks like you have no SPI flash devices.
>>
>>
>> That is my understanding as well. And I fail to see, where this
>> device get added to the list of UCLASS devices.
>>
>>> You can check chromebook_jerry which uses this feature. See this node:
>>>
>>> &spi2 {
>>> status = "okay";
>>> u-boot,dm-pre-reloc;
>>>
>>> spi_flash: spiflash at 0 {
>>> u-boot,dm-pre-reloc;
>>> compatible = "spidev", "spi-flash";
>>> spi-max-frequency = <20000000>; /* Reduce for Dediprog em100 pro */
>>> reg = <0>;
>>> };
>>> };
>>
>>
>> I've checked this now and reworked the dts a bit. But still no
>> cigar. The debug output is identical to the last one.
>>
>> I've attached the dts / dtb and the current .config. It would
>> be great if you could take a quick look at it to see, what I
>> am missing here.
>
> CONFIG_SPL_OF_TRANSLATE should be defined I think,

Yes. But this does not explain why this device is not found at all.
This would only result in an incorrect base-address. And this works
since the serial node seems to be okay (DM in SPL here as well).

> and also you need a
> u-boot,dm-pre-reloc in the soc {} node, otherwise the properties there
> will not appear.

Its already there in the dtsi file. I've added it again in this
dts file as well.

>
> You can call dm_dump_all() in SPL, and dm_dump_uclass(), to see what
> devices are present.

Ah, this is helpful. Thanks. Here the output for your profound
inspection: ;)

Trying to boot from SPI
uclass_find_device_by_seq: 0 0
- not found
uclass_find_device_by_seq: 1 0
- not found
Invalid bus 0 (err=-19)
SPI probe failed.
Class Probed Name
----------------------------------------
root [ + ] root_driver
serial [ + ] `-- serial at 12000
uclass 0: root
- * root_driver @ 40029f18, seq 0, (req -1)

Cannot find uclass for id 1: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 2: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 3: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 4: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 5: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 6: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 7: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 8: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 9: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 10: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 11: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 12: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 13: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 14: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 15: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 16: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 17: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 18: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 19: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 20: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 21: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 22: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 23: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 24: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 25: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 26: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 27: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 28: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 29: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 30: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 31: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 32: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 33: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 34: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 35: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 36: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 37: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 38: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 39: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
uclass 40: serial
- * serial at 12000 @ 40029f84, seq 0, (req -1)

uclass 41: spi
uclass 42: spi_flash
uclass 43: spi_generic
Cannot find uclass for id 44: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 45: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 46: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 47: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 48: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 49: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 50: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
Cannot find uclass for id 51: please add the UCLASS_DRIVER() declaration for this UCLASS_... id
SPL: failed to boot from all boot devices

Any more ideas? Can you send me the output of these *dump* functions
on the chromebook_jerry please?

Thanks,
Stefan