Hi Stefan, On 26 November 2015 at 10:12, Stefan Roese <s...@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 <s...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot