[PATCH v2] mmc: Remove alignment hole for cmdidx in struct mmc_cmd
Jaehoon Chung
jh80.chung at samsung.com
Wed Apr 3 02:00:39 CEST 2024
Hi,
On 1/28/24 01:29, Jonas Karlman wrote:
> The alignment hole caused by cmdidx in struct mmc_cmd cause strange
> issues together with the peephole2 optimization on Amlogic SoCs.
> Following was observed while working on SPL support for Amlogic SoCs.
>
> sd_get_capabilities() normally issue a CMD55 followed by a CMD51.
> However, on at least Amlogic S905 (Cortex-A53) and S905X3 (Cortex-A55),
> CMD55 was instead followed by CMD8 (and a few reties) in SPL.
I read your RFC "https://patchwork.ozlabs.org/patch/1841495/".
First, I will retry to reproduce your case with other compiler.
After that, I will inform again about this patch.
Best Regards,
Jaehoon Chung
>
> Code from the call site:
>
> cmd.cmdidx = SD_CMD_APP_SEND_SCR; // 51
> ...
> data.blocksize = 8;
> ...
> err = mmc_send_cmd_retry(mmc, &cmd, &data, 3);
>
> Running the code with MMC_TRACE enabled shows:
>
> CMD_SEND:55
> ARG 0x50480000
> MMC_RSP_R1,5,6,7 0x00000920
> CMD_SEND:8
> ARG 0x00000000
> RET -110
>
> Removing the alignment hole by changing cmdidx from ushort to uint or
> building with -fno-peephole2 flag seem to resolve this issue.
>
> CMD_SEND:55
> ARG 0x50480000
> MMC_RSP_R1,5,6,7 0x00000920
> CMD_SEND:51
> ARG 0x00000000
> MMC_RSP_R1,5,6,7 0x00000920
>
> Same issue was observed building U-Boot with gcc 8 - 13.
>
> Remove this alignment hole by changing cmdidx from ushort to uint.
>
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> ---
> Changes in v2:
> - Drop use of -fno-peephole2 flag
>
> Link to RFC: https://patchwork.ozlabs.org/patch/1841495/
> ---
> include/mmc.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/mmc.h b/include/mmc.h
> index 1022db3ffa7c..031ea0fb3545 100644
> --- a/include/mmc.h
> +++ b/include/mmc.h
> @@ -413,7 +413,7 @@ struct mmc_cid {
> };
>
> struct mmc_cmd {
> - ushort cmdidx;
> + uint cmdidx;
> uint resp_type;
> uint cmdarg;
> uint response[4];
More information about the U-Boot
mailing list