
Hi Stefan,
On 26 November 2015 at 10:12, Stefan Roese sr@denx.de wrote:
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@12000 - found match at 'ns16550_serial' Bound device serial@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@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@12000
That shows that the SPI device or driver is not being found. I don't see a driver for 'marvell,armada-380-spi' in the tree anyway - is it your own private patches?
If you add DEBUG to drivers/core/lists.c you may be able to see why it is not finding a driver for that node.
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@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?
I can do that when I am back next week...but I'm pretty sure it would show the SPI and SPI flash to be available.
Regards, Simon