<div dir="ltr">Hi Cédric,<div><br></div><div>The part we are using is <b style="font-size:12pt"><span style="color:black">MX25L25635F</span></b> <a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.macronix.com%2FLists%2FDatasheet%2FAttachments%2F7414%2FMX25L25635F%2C%25203V%2C%2520256Mb%2C%2520v1.5.pdf&data=04%7C01%7Cspasha%40nvidia.com%7C4cf89d8779c84d638c6f08d8ef7d0919%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637522667609971209%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hYy5Cpi06y4T0DpFb4%2FDeo2nEy5Cn3rf3l%2BEO%2FaPP%2FU%3D&reserved=0" target="_blank" rel="noopener noreferrer" title="" style="font-size:12pt">https://www.macronix.com/Lists/Datasheet/Attachments/7414/MX25L25635F,%203V,%20256Mb,%20v1.5.pdf</a></div><div><br></div><div>Attaching the failed boot log - full_boot.log</div><div><br></div><div>The patch that fixes the problem - workaround.patch<br></div><div><br></div><div>A patch to override read opcode - 001-Debug.patch</div><div>Failing log with post fixup read opcode update - fail_post_fixup.log</div><div><br></div><div>Thanks,</div><div>Shakeeb</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 1, 2021 at 4:52 PM Cédric Le Goater <<a href="mailto:clg@kaod.org">clg@kaod.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
On 4/1/21 12:17 PM, Shakeeb B K wrote:<br>
> Hi All,<br>
> <br>
> We figured that the issue here is with part MX25L25635F not supporting 4B dual mode opcode - 0x3c. It instead uses 0x3b.<br>
<br>
The 4B issue is a long story ... Is is a MX25L25635F or a MX25L25635E ? <br>
<br>
Could you give use more info on the board ? the full dmesg would be helpful.<br>
<br>
I fail to reproduce on the systems I have. <br>
<br>
> aspeed-smc enables dual mode by default with SNOR_HWCAPS_READ_1_1_2 in the setup, <br>
> and hence disabling dual mode from  flash_info table in spi-nor is not helpful.<br>
> <br>
> I see that there is no way to override opcode in spi-nor framework either.<br>
> There are a couple of queries here -<br>
> 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?<br>
> 2. Can there be an extension in spi-nor to support read opcode override?<br>
> <br>
> Any thoughts on what would be the preferred fix? <br>
<br>
I think you should add a mx25l25635_post_bfpt_fixups once you have found <br>
the correct criteria.<br>
<br>
<br>
C. <br>
<br>
> Thanks,<br>
> Shakeeb<br>
> <br>
> On Thu, Mar 18, 2021 at 9:32 PM Shakeeb B K <<a href="mailto:shakeebbk@gmail.com" target="_blank">shakeebbk@gmail.com</a> <mailto:<a href="mailto:shakeebbk@gmail.com" target="_blank">shakeebbk@gmail.com</a>>> wrote:<br>
> <br>
>     Hi All,<br>
> <br>
>     We are working with Macronix MX25L25635F, and are not able to get spi nor access working from linux(develop-5.10).<br>
>     u-boot flash drivers work fine - able to verify the flash contents.<br>
>     But linux aspeed-smc seems to be having issues, with read calibration failing all the time<br>
>     [    1.746960] aspeed-smc 1e620000.spi: Using 50 MHz SPI frequency<br>
>     [    1.753028] aspeed-smc 1e620000.spi: control register: 000b0641<br>
>     [    1.758982] aspeed-smc 1e620000.spi: control register changed to: 00000600<br>
>     [    1.765947] aspeed-smc 1e620000.spi: default control register: 00000600<br>
>     [    1.772810] aspeed-smc 1e620000.spi: mx25l25635e (32768 Kbytes)<br>
>     [    1.778773] aspeed-smc 1e620000.spi: CE0 window [ 0x20000000 - 0x22000000 ] 32MB<br>
>     [    1.786286] aspeed-smc 1e620000.spi: CE1 window [ 0x22000000 - 0x2a000000 ] 128MB<br>
>     [    1.793873] aspeed-smc 1e620000.spi: write control register: 00120602<br>
>     [    1.800341] aspeed-smc 1e620000.spi: read control register: 203c0641<br>
>     [    1.806791] aspeed-smc 1e620000.spi: AHB frequency: 198 MHz<br>
>     [    1.823440] aspeed-smc 1e620000.spi: Trying HCLK/5 [203c0d41] ...<br>
>     [    1.831524] aspeed-smc 1e620000.spi:   * [00080000] 0 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.841333] aspeed-smc 1e620000.spi:   * [00000000] 0 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.851152] aspeed-smc 1e620000.spi:   * [00090000] 1 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.860969] aspeed-smc 1e620000.spi:   * [00010000] 1 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.870746] aspeed-smc 1e620000.spi:   * [000a0000] 2 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.880579] aspeed-smc 1e620000.spi:   * [00020000] 2 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.890435] aspeed-smc 1e620000.spi:   * [000b0000] 3 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.900301] aspeed-smc 1e620000.spi:   * [00030000] 3 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.910182] aspeed-smc 1e620000.spi:   * [000c0000] 4 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.920060] aspeed-smc 1e620000.spi:   * [00040000] 4 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.929964] aspeed-smc 1e620000.spi:   * [000d0000] 5 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.939869] aspeed-smc 1e620000.spi:   * [00050000] 5 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.947796] aspeed-smc 1e620000.spi: Trying HCLK/4 [203c0641] ...<br>
>     [    1.955529] aspeed-smc 1e620000.spi:   * [00008000] 0 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.964998] aspeed-smc 1e620000.spi:   * [00000000] 0 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.974483] aspeed-smc 1e620000.spi:   * [00009000] 1 HCLK delay, 4ns DI delay : FAIL<br>
>     [    1.983967] aspeed-smc 1e620000.spi:   * [00001000] 1 HCLK delay, 0ns DI delay : FAIL<br>
>     [    1.993475] aspeed-smc 1e620000.spi:   * [0000a000] 2 HCLK delay, 4ns DI delay : FAIL<br>
>     [    2.002986] aspeed-smc 1e620000.spi:   * [00002000] 2 HCLK delay, 0ns DI delay : FAIL<br>
>     [    2.012508] aspeed-smc 1e620000.spi:   * [0000b000] 3 HCLK delay, 4ns DI delay : FAIL<br>
>     [    2.022035] aspeed-smc 1e620000.spi:   * [00003000] 3 HCLK delay, 0ns DI delay : FAIL<br>
>     [    2.031581] aspeed-smc 1e620000.spi:   * [0000c000] 4 HCLK delay, 4ns DI delay : FAIL<br>
>     [    2.041131] aspeed-smc 1e620000.spi:   * [00004000] 4 HCLK delay, 0ns DI delay : FAIL<br>
>     [    2.050639] aspeed-smc 1e620000.spi:   * [0000d000] 5 HCLK delay, 4ns DI delay : FAIL<br>
>     [    2.060203] aspeed-smc 1e620000.spi:   * [00005000] 5 HCLK delay, 0ns DI delay : FAIL<br>
>     [    2.068116] aspeed-smc 1e620000.spi: No good frequency, using dumb slow<br>
>     [    2.077460] 5 fixed-partitions partitions found on MTD device bmc<br>
>     [    2.083721] Creating 5 MTD partitions on "bmc":<br>
>     [    2.088289] 0x000000000000-0x000000060000 : "u-boot"<br>
>     [    2.096067] 0x000000060000-0x000000080000 : "u-boot-env"<br>
>     [    2.104054] 0x000000080000-0x0000004c0000 : "kernel"<br>
>     [    2.111699] 0x0000004c0000-0x000001c00000 : "rofs"<br>
>     [    2.119091] 0x000001c00000-0x000002000000 : "rwfs"<br>
>     ...<br>
>     rofs = mtd4 squashfs rwfs = mtd5 jffs2<br>
>     mount: mounting /dev/mtdblock4 on run/initramfs/ro failed: Invalid argument<br>
>     [    3.654132] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x0000000c)<br>
>     [    3.685843] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x00000044)<br>
>     [    3.694229] overlayfs: upper fs does not support tmpfile.<br>
>     [    3.699946] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x0000002c)<br>
>     [    3.708309] jffs2: Node totlen on flash (0xffffffff) != totlen from node ref (0x00000044)<br>
>     [    3.716672] overlayfs: upper fs does not support RENAME_WHITEOUT.<br>
>     [    3.722885] overlayfs: upper fs does not support xattr, falling back to index=off and metacopy=off.<br>
>     chroot: can't execute '/bin/sh': No such file or directory<br>
> <br>
>     Unable to confirm /sbin/init is an executable non-empty file<br>
>     in merged file system mounted at /root.<br>
> <br>
>     Found a related discussion on <a href="https://lists.ozlabs.org/pipermail/openbmc/2019-April/015925.html" rel="noreferrer" target="_blank">https://lists.ozlabs.org/pipermail/openbmc/2019-April/015925.html</a> <<a href="https://lists.ozlabs.org/pipermail/openbmc/2019-April/015925.html" rel="noreferrer" target="_blank">https://lists.ozlabs.org/pipermail/openbmc/2019-April/015925.html</a>>, <br>
>     but the workaround mentioned there - to drop read calibration with /optimize_read=false /didn't help.<br>
>     FYI - Able to boot the same image from tftpboot and qemu.<br>
> <br>
>     Has anyone come across similar issue or any suggestions to try out?<br>
> <br>
>     Thanks,<br>
>     Shakeeb<br>
> <br>
<br>
</blockquote></div>