[Sound-open-firmware] Commit c80270e7e49 (" ipc: structures should all be aligned on 4 bytes") causes issues on i.MX8
Daniel Baluta
daniel.baluta at gmail.com
Tue May 11 17:31:26 CEST 2021
On Tue, May 11, 2021 at 6:23 PM Girdwood, Liam R
<liam.r.girdwood at intel.com> wrote:
>
> 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).
Sure. Once, I understand what's exactly happening.
More information about the Sound-open-firmware
mailing list