Hi Daniel,
On Tue, 2021-05-11 at 15:02 +0000, Daniel Baluta wrote:
Hi Liam,
I noticed this SOF commit:
commit c80270e7e49d26a34fe284d1868e7d9cb80104f1Author: Liam Girdwood liam.r.girdwood@linux.intel.com Date: Sat Apr 3 21:22:21 2021 +0100
ipc: structures should all be aligned on 4 bytes Give the compiler a chance to further optimise IPC data access since it's all on a 4 byte alignment. Signed-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com
It looks like it triggers some issues on i.MX8.
Is there any equivalent for Linux kernel? Some structures are shared with the kernel and on arm64 it assumes default alignment as 8 hence I get a mismatch at least when printing DAI / Host position
- dev_info(sdev->dev, "posn : host 0x%llx dai 0x%llx wall
0x%llx no_per %d\n",
- posn.host_posn, posn.dai_posn, posn.wallclock,
stream->substream->runtime->no_period_wakeup);
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 ?
Liam
thanks, Daniel.
--------------------------------------------------------------------- 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.