Re: mmc0: Invalid maximum block size, assuming 512 bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2016/1/21 23:00, Mason wrote:
On 20/01/2016 02:17, Shawn Lin wrote:

On 2016/1/19 23:33, Mason wrote:

My SoC provides an Arasan SDIO/eMMC controller supported by the
drivers/mmc/host/sdhci-of-arasan.c driver.

At init, the driver prints a warning to the console:

[    0.887301] sdhci: Secure Digital Host Controller Interface driver
[    0.893537] sdhci: Copyright(c) Pierre Ossman
[    0.897928] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.903903] sdhci-arasan 21000.mmc: No vmmc regulator found
[    0.909537] sdhci-arasan 21000.mmc: No vqmmc regulator found
[    0.915247] mmc0: Invalid maximum block size, assuming 512 bytes
[    0.953797] mmc0: SDHCI controller on 21000.mmc [21000.mmc] using ADMA
[    0.961494] sdhci-arasan 21200.mmc: No vmmc regulator found
[    0.967110] sdhci-arasan 21200.mmc: No vqmmc regulator found

Is "mmc0: Invalid maximum block size, assuming 512 bytes" something
serious which requires investigating, in your experience?

you can look into this commit 0633f654241
  From <SD host controller simplified specfication version 3.00>
sdhci doesn't support blocks of 4096 bytes.

But at least check my arasan-5.1 databook, it supports 4096 from
the capabilities register. So, you don't force arasan to use
SDHCI_QUIRK_FORCE_BLK_SZ_2048, then sdhci core force it to be 512 bytes.
Not serious problem, just a proper warn.

The corresponding DT is:

mmc0: mmc@21000 {
	compatible = "arasan,sdhci-8.9a";
	reg = <0x21000 0x200>;
	clock-names = "clk_xin", "clk_ahb";
	clocks = <&sdio_clk>, <&clkgen 1>;
	interrupts = <60 IRQ_TYPE_LEVEL_HIGH>;
};

Hello Shawn,

Thanks for pointing out SDHCI_QUIRK_FORCE_BLK_SZ_2048.

I don't think there is currently a way to enable this quirk
for the Arasan controller from the device tree, right?

Right, no property available fot this.


$ git grep SDHCI_QUIRK_FORCE_BLK_SZ_2048 drivers/mmc
drivers/mmc/host/sdhci-bcm-kona.c:              SDHCI_QUIRK_FORCE_BLK_SZ_2048 |
drivers/mmc/host/sdhci-esdhc.h:#define ESDHC_DEFAULT_QUIRKS     (SDHCI_QUIRK_FORCE_BLK_SZ_2048 | \
drivers/mmc/host/sdhci.c:       if (host->quirks & SDHCI_QUIRK_FORCE_BLK_SZ_2048) {
drivers/mmc/host/sdhci.h:#define SDHCI_QUIRK_FORCE_BLK_SZ_2048                  (1<<20)

So that means I have to write code in
drivers/mmc/host/sdhci-of-arasan.c correct?

It depends. If you think 512 block size if okay for you, leave it alone.
Otherwise, add it in drivers/mmc/host/sdhci-of-arasan.c :)




Regards.






--
Best Regards
Shawn Lin

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux