[Sound-open-firmware] Commit c80270e7e49 (" ipc: structures should all be aligned on 4 bytes") causes issues on i.MX8

Girdwood, Liam R liam.r.girdwood at intel.com
Tue May 11 17:23:22 CEST 2021


On Tue, 2021-05-11 at 15:20 +0000, Daniel Baluta wrote:
> > It looks like the uint64_t on the sof_ipc_stream_position are not
> > aligned on 8 bytes (with the packing, there are 7 * uint32_t before
> > them) and the ARM compiler is expecting a 8 byte alingment for
> > uint64 ?
> 
> > I'm not sure why this is showing up now as the "packed" attribute
> > would
> > force the uint64_t to be aligned on 4 bytes instead of 8 here.
> 
> > Btw, have you tried setting aligned(8) here ? or tried removing the
> > aligned(4) for stream_posn ?
> 
> I have tried setting aligned(4) on the Linux kernel header:
> 
> --- a/include/sound/sof/stream.h+++ b/include/sound/sof/stream.h
> @@ -143,6 +143,6 @@ struct sof_ipc_stream_posn {
>         uint64_t timestamp;     /**< system time stamp */
>         uint32_t xrun_comp_id;  /**< comp ID of XRUN component */
>         int32_t xrun_size;      /**< XRUN size in bytes */
> -}  __packed;
> +}  __packed __aligned(4);
>  
> It works fine with this. 
> 

Ok, this must be an ARM64 difference and I assume you have a kernel fix
brewing ?. 

Intention on FW side was to use only the L32 and S32 calls and not
cater for any unaligned load/stores (with their extra baggage). 

Liam

> 

---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


More information about the Sound-open-firmware mailing list