[PATCH/RFC] ARM: dts: marzen: Add FLASH node

Geert Uytterhoeven geert at linux-m68k.org
Mon Mar 20 11:57:44 PDT 2023


Hi Tudor,

On Mon, Mar 20, 2023 at 6:04 PM Tudor Ambarus <tudor.ambarus at linaro.org> wrote:
> Vignesh used to review CFI code, maybe he can intervene. I've never
> worked with CFI, but I can try to help. I'll need more debug data though.
>
> On 3/20/23 16:43, Geert Uytterhoeven wrote:
> > Add a device node for the Spansion S29GL512N NOR FLASH on the Marzen
> > development board.
> >
> > Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>
> > ---
> > Although the S29GL512N is a CFI FLASH, using "cfi-flash" instead of
> > "mtd-rom" does not work:
> >   1. Probing fails with "physmap-flash 0.flash: map_probe failed",
>
> I would first try to understand why the probe fails.

With debug code added, I saw that cfi_probe_chip() fails because
cfi_qry_mode_on() returns zero.  Printing actual vs. expected values
in map_word_equal() showed that nothing was read (all 0xff, IIRC).

Forcing big-endian (CONFIG_MTD_CFI_BE_BYTE_SWAP=y) didn't
help, and caused an unaligned access crash.

> >   2. The kernel crashes later in a spectacular way, cfr. the logs below.
> >
> > U-Boot flinfo says:
> >
> >     Bank # 1: CFI conformant flash (16 x 16)  Size: 64 MB in 512 Sectors
> >       AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E
> >       Erase timeout: 4096 ms, write timeout: 1 ms
> >       Buffer write timeout: 3 ms, buffer size: 64 bytes
> >       Sector Start Addresses:
> >       00000000   RO   00020000        00040000   RO   00060000   RO   00080000
> >       000A0000        000C0000        000E0000        00100000        00120000
> >       00140000        00160000        00180000        001A0000        001C0000
> >       ...
> >       03FC0000        03FE0000
> >
> >     Bank # 2: missing or unknown FLASH type
>
> Do you use "cfi-flash" compatible in u-boot and it works just fine? If
> yes, I would try to understand what are the differences between the
> probe paths from u-boot and linux. I know it doesn't help much, but we
> should start from somewhere if we don't have any other feedback.

It's a bit more complicated... This is a rather old board, and I only
have the originally installed U-Boot 2011.03, and no U-Boot sources.

U-Boot can write to the FLASH, as "saveenv" works (env at  0x40000).

Thanks for your help!

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



More information about the linux-arm-kernel mailing list