It may not be safe to run the Omar code from ICU. These cores are similar but different ARM architectures. The code may not be compatible with ICU. I also don't know if this code is truly PIC. Arm code tends to be mostly PIC by default, but this is no guarantee it all is. And, calling shamem_read() from ICU may well give incorrect results - assuming it's intended to be read from Omar, the masking may be the reverse of what you expect.
Some of the EDMAC routines obtain kernel locks before proceeding. Since the Omar core is running an entirely different instance of the OS, I wouldn't expect these to be shared locks with the ICU. This is untested. And, since the kernel locks probably aren't shared between different OS instances, the cam will crash if you contest for resources on different cores.
The Omar 0x8000_6XXX code is populated by a copy from fe6X_YYYY rom region. See the struct created in fe0ad874(). After the copy, the memory is visible at 0xdfXXXXXX on 7D2, or 0x8000_XXXX on Omar - I haven't tested writing the 7D2 side so I don't know if this is a mirror (my guess) or a copy.
Triggering arbitrary code from Omar looks easy, so this may be the safer route. That way we know code is running in the intended context. If you can prove all the code is appropriate and safe to run from ICU context that's fine too. Feels like more work to me. It also seems fairly likely there is an existing RPC mechanism.
The shamem info is useful to me, thanks. I've not worked with this before, it doesn't seem to exist on D7 and above.
Some of the EDMAC routines obtain kernel locks before proceeding. Since the Omar core is running an entirely different instance of the OS, I wouldn't expect these to be shared locks with the ICU. This is untested. And, since the kernel locks probably aren't shared between different OS instances, the cam will crash if you contest for resources on different cores.
The Omar 0x8000_6XXX code is populated by a copy from fe6X_YYYY rom region. See the struct created in fe0ad874(). After the copy, the memory is visible at 0xdfXXXXXX on 7D2, or 0x8000_XXXX on Omar - I haven't tested writing the 7D2 side so I don't know if this is a mirror (my guess) or a copy.
Triggering arbitrary code from Omar looks easy, so this may be the safer route. That way we know code is running in the intended context. If you can prove all the code is appropriate and safe to run from ICU context that's fine too. Feels like more work to me. It also seems fairly likely there is an existing RPC mechanism.
The shamem info is useful to me, thanks. I've not worked with this before, it doesn't seem to exist on D7 and above.