Call for testing: spi-mem driver for Aspeed SMC controllers

Lei Yu yulei.sh at bytedance.com
Mon Mar 7 20:41:59 AEDT 2022


We hit some issues with the new driver, and here is some detailed info.

* Our system (not yet upstreamed) uses `mx66l51235f` as the FMC SPI
flash, and we created a QEMU model.

* When the dts is like "default":
 &fmc {
        pinctrl-names = "default";
        status = "okay";
        flash at 0 {
                status = "okay";
                m25p,fast-read;
                label = "bmc";
                spi-max-frequency = <50000000>;
 #include "openbmc-flash-layout-64.dtsi"
        };
 };
1. Run the image in ast2600-evb QEMU, it boots fine;
2. We have a model (g220b) in QEMU that uses mx66l51235f as the fmc
SPI (`amc->fmc_model = "mx66l51235f";`), it boots with below error:
 [    1.848286] vmap allocation for size 268439552 failed: use
vmalloc=<size> to increase size
 [    1.848774] spi-aspeed-smc 1e620000.spi: ioremap failed for
resource [mem 0x20000000-0x2fffffff]
 [    1.849898] spi-aspeed-smc: probe of 1e620000.spi failed with error -12
3. If I manually add vmalloc to the kernel command line (setenv
bootargs 'console=ttyS4,115200n8 root=/dev/ram rw vmalloc=400M'), the
above QEMU model boots fine.
4. On the real system, it behaves the same as QEMU, that I need to add
`vmalloc=400M` to make it boot OK.


* When the dts set `spi-tx-bus-width/spi-rx-bus-width = <4>`, and uses
pinctrl_fwqspid_default from @Joel Stanley's pinctrl patch:
 &fmc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_fwqspid_default>;
        status = "okay";
        flash at 0 {
                status = "okay";
                m25p,fast-read;
                label = "bmc";
                spi-max-frequency = <50000000>;
                spi-tx-bus-width = <4>;
                spi-rx-bus-width = <4>;
 #include "openbmc-flash-layout-64.dtsi"
        };
 };
1. It fails to boot in ast2600-evb QEMU:
 [    0.586654] spi-nor: probe of spi0.0 failed with error -5
 [    0.587654] spi-nor spi0.1: unrecognized JEDEC id bytes: 00 00 00 00 00 00
2. It fails to boot in the g220b model with the same vmalloc failure issue.
2. With `vmalloc=400M`, the g220b model boots fine in QEMU.
3. On the real system, it still fails to boot with `vmalloc=400M` due
to the below error:
 [    0.970091] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
 [    0.977902] spi-nor: probe of spi0.0 failed with error -2


-- 
BRs,
Lei YU


More information about the openbmc mailing list