[Sound-open-firmware] SOF: Where is the purpose of host_msg ?
Daniel Baluta
daniel.baluta at gmail.com
Wed Jan 23 15:41:58 CET 2019
Hi Pierre/Liam,
In src/include/sof/ipc.h there is:
struct ipc {
uint32_t host_msg;» » /* current message from host */
//
}
This keeps the message received from IA core. Anyhow, DSP core
doesn't seem to use it at all.
Except maybe for some logging:
src/drivers/intel/baytrail/ipc.c: _ipc->host_msg = msg;
src/drivers/intel/baytrail/ipc.c: trace_ipc("ipc: msg rx ->
0x%x", ipc->host_msg);
src/drivers/intel/cavs/ipc.c: _ipc->host_msg = msg;
src/drivers/intel/cavs/ipc.c: trace_ipc("ipc: msg rx -> 0x%x", ipc->host_msg);
src/drivers/intel/cavs/sue-ipc.c: trace_ipc("ipc: msg rx ->
0x%x", ipc->host_msg);
src/drivers/intel/haswell/ipc.c: _ipc->host_msg = msg;
src/drivers/intel/haswell/ipc.c: trace_ipc("ipc: msg rx ->
0x%x", ipc->host_msg);
src/include/sof/ipc.h: uint32_t host_msg; /* current
message from host */
I am asking this because initially I thought the communication between
IA core and DSP involves:
- sending cmd using shim layer
- sending actual data using mailbox.
But it seems that all the information is exchanged via the mailbox memory. So,
going back to my question will host_msg be used in the future?
If not, I think it is best to remove it because it is confusing.
The same happens when DSP tries to send something to IA.
For example it writes msg->header. But this is never used on the other side.
ipc_platform_send_msg
» /* now interrupt host to tell it we have message sent */
» shim_write(SHIM_IPCDL, msg->header);
» shim_write(SHIM_IPCDH, SHIM_IPCDH_BUSY);
Also, would be easier for me on the ARM side to only send info via mailbox and
notification via what you call shim layer.
thanks,
Daniel.
More information about the Sound-open-firmware
mailing list