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

Stefan Roese
2015-11-26T13:04:34Z

Hi Jagan,

(added Simon, as he's the DM guru)

On 26.11.2015 13:46, Jagan Teki wrote:
> Hi Stefan,
>
> On 26 November 2015 at 18:02, Stefan Roese <sr@denx.de> wrote:
>> Hi Jagan,
>>
>>
>> On 26.11.2015 13:24, Jagan Teki wrote:
>>>
>>> On 26 November 2015 at 17:33, Jagan Teki <jteki@openedev.com> wrote:
>>>>
>>>> This series is combination of mtd and sf tunning stuff in previous
>>>> version patches.[1][2]
>>>>
>>>> This is whole patch series for add mtd support to spi-flash
>>>> framework and related stuff.
>>>>
>>>> The idea is to introduce the spi-nor flash framework which
>>>> similar to Linux with driver-model support.
>>>>
>>>> Detail changes:
>>>> - drivers/mtd/spi/sf_probe.c: spi-flash to spi drivers interface(dm and
>>>> non-dm)
>>>> - drivers/mtd/spi/sf_ops.c: Core spi-flash functionalities.
>>>> - spi_flash ops and dm_spi_ops are not needed as flash opertaion are
>>>> common for dm and non-dm via MTD
>>>>
>>>> Changes in v7:
>>>> - Rebase to master
>>>> - Added MTD core support to dataflash
>>>> - Few patch bisectable separations
>>>>
>>>> Changes in v6, v5, v4, v3, v2:
>>>> - One patch bisectable separation
>>>> - Rebase to master
>>>> - added newly mtd stuff patches.
>>>>
>>>> Testing:
>>>> $ git clone git://git.denx.de/u-boot-spi.git
>>>> $ cd u-boot-spi
>>>> $ git checkout -b spi-nor-mtd origin/next-spi-nor-mtd
>>>>
>>>> [1]
>>>> http://u-boot.10912.n7.nabble.com/PATCH-v6-00-23-sf-MTD-support-td233769.html
>>>> [2] http://lists.denx.de/pipermail/u-boot/2015-October/229857.html
>>>>
>>>> thanks!
>>>> Jagan.
>>>>
>>>> Jagan Teki (34):
>>>> sf: spi_flash_validate_params => spi_flash_scan
>>>> sf: Move spi_flash_scan code to sf_ops
>>>> sf: Move read_id code to sf_ops
>>>> sf: probe: Code cleanup
>>>> sf: Use static for file-scope functions
>>>> sf: Fix Makefile
>>>> sf: Use simple name for register access functions
>>>> sf: Use flash function pointers in dm_spi_flash_ops
>>>> sf: Flash power up read-only based on idcode0
>>>> sf: Use static for file-scope functions
>>>> sf: Remove unneeded header includes
>>>> sf: probe: Use spi_flash_scan in dm-spi-flash
>>>> sf: Re-factorize spi_flash_probe_tail code
>>>> dm-sf: Re-factorize spi_flash_std_probe code
>>>> zynq: Enable CONFIG_SPL_MTD_SUPPORT
>>>> sf: Add MTD support to spi_flash
>>>> sf: Use mtd_info ops instead of spi_flash ops
>>>> cmd_sf: Use mtd->size instead of flash->size
>>>> sf: Use mtd->erasesize instead of flash->erase_size
>>>> dm-sf: use mtd_ops, drop dm_spi_flash_ops
>>>> sf: Use MTD lock operations
>>>> sf: Add MTD support for non-dm spi_flash interface
>>>> sf: probe: Minor cleanup
>>>> sf: Drop SNOR_F_SST_WR flash->flags
>>>> sf: Remove unneeded SST_BP and SST_WP
>>>> sf: ops: Fix missing break on spansion read_bar
>>>> sf: Drop SPI_FLASH_MTD driver
>>>> configs: Remove CONFIG_SPI_FLASH_MTD
>>>> sf: dataflash: Remove unneeded spi data
>>>> sf: dataflash: Move flash id detection into jedec_probe
>>>> sf: dataflash: Fix add_dataflash return logic
>>>> sf: dataflash: Add MTD core support
>>>> sf: dataflash: Rename sf_dataflash.c to mtd_dataflash.c
>>>> mtd: dataflash: Minor cleanups
>>>
>>>
>>> Tested whole series except 'sf prot' and dataflash.
>>>
>>> Tested-by: Jagan Teki <jteki@openedev.com>
>>
>>
>> Thanks.
>>
>> BTW: Is this series also tested on a board with SPL_DM and
>> DM_SPI and DM_SPI_FLASH enabled? By loading in SPL the main
>> U-Boot image via SPI NOR flash?
>
> Don't know the reason yet SPL is not working with my microzed
> board(even with MMC), so I took the fsbl instead of SPL. The
> combination I have verified with both dm and non-dm cases on u-boot.
>
> Michal, Can you verify the SPI_SPL flow as well.

So you have no experience with DM in SPL?

>> I'm asking since I'm currently struggling to get this working
>> on MVEBU. And am experiencing problems with the DM SPI
>> bus and device probing. Without SPL_DM this is working just
>> fine.
>
> OK, means you're trying for SPI_SPL with DM is it?

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@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)?

Thanks,
Stefan