[ast2500] aspeed-smc fail with MX25L25635F

Cédric Le Goater clg at kaod.org
Thu Apr 1 22:22:10 AEDT 2021


Hi,

On 4/1/21 12:17 PM, Shakeeb B K wrote:
> Hi All,
> 
> We figured that the issue here is with part MX25L25635F not supporting 4B dual mode opcode - 0x3c. It instead uses 0x3b.

The 4B issue is a long story ... Is is a MX25L25635F or a MX25L25635E ? 

Could you give use more info on the board ? the full dmesg would be helpful.

I fail to reproduce on the systems I have. 

> aspeed-smc enables dual mode by default with SNOR_HWCAPS_READ_1_1_2 in the setup, 
> and hence disabling dual mode from  flash_info table in spi-nor is not helpful.
> 
> I see that there is no way to override opcode in spi-nor framework either.
> There are a couple of queries here -
> 1. Why is SNOR_HWCAPS_READ_1_1_2 enabled by default in aspeed-smc, while we could have done with the flash_info table?
> 2. Can there be an extension in spi-nor to support read opcode override?
> 
> Any thoughts on what would be the preferred fix? 

I think you should add a mx25l25635_post_bfpt_fixups once you have found 
the correct criteria.
 

C. 

> Thanks,
> Shakeeb
> 
> On Thu, Mar 18, 2021 at 9:32 PM Shakeeb B K <shakeebbk at gmail.com <mailto:shakeebbk at gmail.com>> wrote:
> 
>     Hi All,
> 
>     We are working with Macronix MX25L25635F, and are not able to get spi nor access working from linux(develop-5.10).
>     u-boot flash drivers work fine - able to verify the flash contents.
>     But linux aspeed-smc seems to be having issues, with read calibration failing all the time
>     [    1.746960] aspeed-smc 1e620000.spi: Using 50 MHz SPI frequency
>     [    1.753028] aspeed-smc 1e620000.spi: control register: 000b0641
>     [    1.758982] aspeed-smc 1e620000.spi: control register changed to: 00000600
>     [    1.765947] aspeed-smc 1e620000.spi: default control register: 00000600
>     [    1.772810] aspeed-smc 1e620000.spi: mx25l25635e (32768 Kbytes)
>     [    1.778773] aspeed-smc 1e620000.spi: CE0 window [ 0x20000000 - 0x22000000 ] 32MB
>     [    1.786286] aspeed-smc 1e620000.spi: CE1 window [ 0x22000000 - 0x2a000000 ] 128MB
>     [    1.793873] aspeed-smc 1e620000.spi: write control register: 00120602
>     [    1.800341] aspeed-smc 1e620000.spi: read control register: 203c0641
>     [    1.806791] aspeed-smc 1e620000.spi: AHB frequency: 198 MHz
>     [    1.823440] aspeed-smc 1e620000.spi: Trying HCLK/5 [203c0d41] ...
>     [    1.831524] aspeed-smc 1e620000.spi:   * [00080000] 0 HCLK delay, 4ns DI delay : FAIL
>     [    1.841333] aspeed-smc 1e620000.spi:   * [00000000] 0 HCLK delay, 0ns DI delay : FAIL
>     [    1.851152] aspeed-smc 1e620000.spi:   * [00090000] 1 HCLK delay, 4ns DI delay : FAIL
>     [    1.860969] aspeed-smc 1e620000.spi:   * [00010000] 1 HCLK delay, 0ns DI delay : FAIL
>     [    1.870746] aspeed-smc 1e620000.spi:   * [000a0000] 2 HCLK delay, 4ns DI delay : FAIL
>     [    1.880579] aspeed-smc 1e620000.spi:   * [00020000] 2 HCLK delay, 0ns DI delay : FAIL
>     [    1.890435] aspeed-smc 1e620000.spi:   * [000b0000] 3 HCLK delay, 4ns DI delay : FAIL
>     [    1.900301] aspeed-smc 1e620000.spi:   * [00030000] 3 HCLK delay, 0ns DI delay : FAIL
>     [    1.910182] aspeed-smc 1e620000.spi:   * [000c0000] 4 HCLK delay, 4ns DI delay : FAIL
>     [    1.920060] aspeed-smc 1e620000.spi:   * [00040000] 4 HCLK delay, 0ns DI delay : FAIL
>     [    1.929964] aspeed-smc 1e620000.spi:   * [000d0000] 5 HCLK delay, 4ns DI delay : FAIL
>     [    1.939869] aspeed-smc 1e620000.spi:   * [00050000] 5 HCLK delay, 0ns DI delay : FAIL
>     [    1.947796] aspeed-smc 1e620000.spi: Trying HCLK/4 [203c0641] ...
>     [    1.955529] aspeed-smc 1e620000.spi:   * [00008000] 0 HCLK delay, 4ns DI delay : FAIL
>     [    1.964998] aspeed-smc 1e620000.spi:   * [00000000] 0 HCLK delay, 0ns DI delay : FAIL
>     [    1.974483] aspeed-smc 1e620000.spi:   * [00009000] 1 HCLK delay, 4ns DI delay : FAIL
>     [    1.983967] aspeed-smc 1e620000.spi:   * [00001000] 1 HCLK delay, 0ns DI delay : FAIL
>     [    1.993475] aspeed-smc 1e620000.spi:   * [0000a000] 2 HCLK delay, 4ns DI delay : FAIL
>     [    2.002986] aspeed-smc 1e620000.spi:   * [00002000] 2 HCLK delay, 0ns DI delay : FAIL
>     [    2.012508] aspeed-smc 1e620000.spi:   * [0000b000] 3 HCLK delay, 4ns DI delay : FAIL
>     [    2.022035] aspeed-smc 1e620000.spi:   * [00003000] 3 HCLK delay, 0ns DI delay : FAIL
>     [    2.031581] aspeed-smc 1e620000.spi:   * [0000c000] 4 HCLK delay, 4ns DI delay : FAIL
>     [    2.041131] aspeed-smc 1e620000.spi:   * [00004000] 4 HCLK delay, 0ns DI delay : FAIL
>     [    2.050639] aspeed-smc 1e620000.spi:   * [0000d000] 5 HCLK delay, 4ns DI delay : FAIL
>     [    2.060203] aspeed-smc 1e620000.spi:   * [00005000] 5 HCLK delay, 0ns DI delay : FAIL
>     [    2.068116] aspeed-smc 1e620000.spi: No good frequency, using dumb slow
>     [    2.077460] 5 fixed-partitions partitions found on MTD device bmc
>     [    2.083721] Creating 5 MTD partitions on "bmc":
>     [    2.088289] 0x000000000000-0x000000060000 : "u-boot"
>     [    2.096067] 0x000000060000-0x000000080000 : "u-boot-env"
>     [    2.104054] 0x000000080000-0x0000004c0000 : "kernel"
>     [    2.111699] 0x0000004c0000-0x000001c00000 : "rofs"
>     [    2.119091] 0x000001c00000-0x000002000000 : "rwfs"
>     ...
>     rofs = mtd4 squashfs rwfs = mtd5 jffs2
>     mount: mounting /dev/mtdblock4 on run/initramfs/ro failed: Invalid argument
>     [    3.654132] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x0000000c)
>     [    3.685843] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x00000044)
>     [    3.694229] overlayfs: upper fs does not support tmpfile.
>     [    3.699946] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x0000002c)
>     [    3.708309] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x00000044)
>     [    3.716672] overlayfs: upper fs does not support RENAME_WHITEOUT.
>     [    3.722885] overlayfs: upper fs does not support xattr, falling back to index=off and metacopy=off.
>     chroot: can't execute '/bin/sh': No such file or directory
> 
>     Unable to confirm /sbin/init is an executable non-empty file
>     in merged file system mounted at /root.
> 
>     Found a related discussion on https://lists.ozlabs.org/pipermail/openbmc/2019-April/015925.html <https://lists.ozlabs.org/pipermail/openbmc/2019-April/015925.html>, 
>     but the workaround mentioned there - to drop read calibration with /optimize_read=false /didn't help.
>     FYI - Able to boot the same image from tftpboot and qemu.
> 
>     Has anyone come across similar issue or any suggestions to try out?
> 
>     Thanks,
>     Shakeeb
> 



More information about the openbmc mailing list