[U-Boot] [PATCH 0/7] Remove defines for SPI default speed and mode

Adam Ford
2018-12-10T20:17:58Z

On Mon, Dec 10, 2018 at 1:20 PM Simon Goldschmidt
<simon.k.r.goldschmidt@gmail.com> wrote:
>
> Am 10.12.2018 um 16:42 schrieb Adam Ford:
> > On Mon, Dec 10, 2018 at 4:54 AM Patrick Delaunay
> > <patrick.delaunay@st.com> wrote:
> >>
> >>
> >> This patch-set finish (after the last Simmon comment)
> >> and depends on the previous serie named:
> >> "Read default speed and mode values from DT"
> >>
> >> http://patchwork.ozlabs.org/project/uboot/list/?series=76834
> >>
> >> This patchset remove the unnecessary defines for SPI speed and mode
> >> when DM mode is used for SPI (CONFIG_DM_SPI_FLASH).
> >>
> >> Build result is available for the serie in gihub and travis:
> >> https://github.com/patrickdelaunay/u-boot/tree/topic/spi
> >> https://travis-ci.org/patrickdelaunay/u-boot/branches
> >>
> >>
> > After applying both of your patches, the da850evm no longer boots from
> > SPI flash.
>
> I just did test this and it worked for me. Booting from QSPI on
> socfpga_socrates and loading something in U-Boot via sf probe/sf read, so:
> Tested-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
>
> >
> > U-Boot SPL 2019.01-rc1-00754-g21fb8c41b1 (Dec 10 2018 - 09:02:28 -0600)
> > Trying to boot from SPI
> > Warning: SPI speed fallback to 100 kHz
> >
> > [repeat in perpetuity]
> >
> > U-Boot SPL 2019.01-rc1-00754-g21fb8c41b1 (Dec 10 2018 - 09:02:28 -0600)
> > Trying to boot from SPI
> > Warning: SPI speed fallback to 100 kHz
> >
> > I then tried to apply the first patch, and it also fails booting.
> >
> > I'll reply to the original series with a similar message. Looking at
> > the comments, it looks like the code is assuming the DM_SPI_FLASH
> > means DT when in reality, the da850evm's SPL is using platdata. I
> > looked at the platdata structure and I didn't see entries for SPI mode
> > or speed. However, I cannot prove this is the issue on the da850evm
> > without diving into it a bit more.
>
> Adam, from reading the da850-emv.dts and its '-u-boot.dtsi', it seems
> the fdtgrep indicators to keep the flash for the SPL dts are missing
> (compare to socfpga_cyclone5_socrates-u-boot.dtsi). In this case, the
> code does not find a flash node.
>
> The same would of course apply when using platdata.

I tried modifying the -u-boot.dtsi file to look like:

&flash {
compatible = "m25p64", "spi-flash";
u-boot,dm-pre-reloc;
};

Unfortunately, I not get some build errors. Do you have any
suggestions? I know the dtsi didn't need the "u-boot,dm-pre-reloc;"
before this patch.
Might there be a platdata example I can follow?

The build errors as as follows:

make[2]: 'arch/arm/dts/da850-evm.dtb' is up to date.
CAT u-boot-dtb.bin
COPY u-boot.bin
MKIMAGE u-boot.img
MKIMAGE u-boot-dtb.img
DTOC C spl/dts/dt-platdata.c
DTOC H include/generated/dt-structs-gen.h
Traceback (most recent call last):
Traceback (most recent call last):
File "./tools/dtoc/dtoc", line 109, in <module>
File "./tools/dtoc/dtoc", line 109, in <module>
options.output)
options.output)
File "/home/aford/src/u-boot/tools/dtoc/dtb_platdata.py", line 564,
in run_steps
File "/home/aford/src/u-boot/tools/dtoc/dtb_platdata.py", line 564,
in run_steps
plat.scan_reg_sizes()
plat.scan_reg_sizes()
File "/home/aford/src/u-boot/tools/dtoc/dtb_platdata.py", line 335,
in scan_reg_sizes
File "/home/aford/src/u-boot/tools/dtoc/dtb_platdata.py", line 335,
in scan_reg_sizes
addr = fdt_util.fdt_cells_to_cpu(val[i:], reg.na)
addr = fdt_util.fdt_cells_to_cpu(val[i:], reg.na)
File "/home/aford/src/u-boot/tools/dtoc/fdt_util.py", line 54, in
fdt_cells_to_cpu
File "/home/aford/src/u-boot/tools/dtoc/fdt_util.py", line 54, in
fdt_cells_to_cpu
out = out << 32 | fdt32_to_cpu(val[1])
out = out << 32 | fdt32_to_cpu(val[1])
IndexErrorIndexError: : list index out of rangelist index out of range

scripts/Makefile.spl:287: recipe for target 'spl/dts/dt-platdata.c' failed
make[1]: *** [spl/dts/dt-platdata.c] Error 1
make[1]: *** Waiting for unfinished jobs....
scripts/Makefile.spl:284: recipe for target
'include/generated/dt-structs-gen.h' failed
make[1]: *** [include/generated/dt-structs-gen.h] Error 1
Makefile:1591: recipe for target 'spl/u-boot-spl' failed
make: *** [spl/u-boot-spl] Error 2

>
> Regards,
> Simon
>
> >
> > adam
> >>
> >> Patrick Delaunay (7):
> >> spi: update management of default speed and mode
> >> spi: add comment for spi_flash_probe_bus_cs function
> >> da850evm: sf: Read default speed and mode values from DT
> >> dfu: sf: Read default speed and mode values from DT
> >> mips: mt76xx: gardena-smart-gateway: Read default speed and mode
> >> values from DT
> >> env: Read default speed and mode values from DT
> >> spi: remove define for SPI default SPEED and MODE
> >>
> >> board/davinci/da8xxevm/da850evm.c | 7 +++++++
> >> board/gardena/smart-gateway-mt7688/board.c | 24 ++++++++++++++++++++----
> >> cmd/sf.c | 10 ++++++----
> >> common/spl/spl_spi.c | 11 ++++++-----
> >> common/splash_source.c | 11 ++++++-----
> >> drivers/dfu/dfu_sf.c | 10 ++++++++--
> >> env/Kconfig | 4 ++--
> >> env/sf.c | 5 ++++-
> >> include/spi_flash.h | 18 ++++++++++++++++++
> >> 9 files changed, 77 insertions(+), 23 deletions(-)
> >>
> >> --
> >> 2.7.4
> >>
>