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

Cédric Le Goater clg at kaod.org
Tue Mar 8 00:06:50 AEDT 2022


Hello,

  On 3/7/22 10:41, Lei Yu wrote:
> 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.

I don't see why. Is that the same kernel version and config ?

May be check the allocations in

   /proc/vmallocinfo


> * 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


I could not make Quad work reliably on HW. This is the next step after the
new driver is merged.

Thanks for tests !

C.



More information about the openbmc mailing list