-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(ipc_interrupt): enable ipc delivery via interrupt in Linux #36
base: master
Are you sure you want to change the base?
Conversation
Thanks @clachan, this is great! But first check my comment on your bao-project/bao-hypervisor#76 PR, as this seems to depend on it. Also I'd like to try this on qemu-riscv64. I think this Linux patch is pretty architecture independent no? So I'll try to add the hypercall on your bao-project/freertos-over-bao#6 PR, test it, and come back to this PR after the two other PRs are closed. |
I've tested this on qemu-aarch64. As I told you in the "interrupts offset" PR, I had to fix the baoipc interrupt ID in the dts to 20. The original value is wrong. As we weren't using the interrupt in the linux side, we didn't caught it. So this PR will have to take that into account! |
I've added the support for riscv in bao-project/freertos-over-bao#6, and seems to be working nice on qemu-riscv64! |
0326756
to
3c177f1
Compare
I've reverted the interrupt_offset and corrected the dts files. Please review it again. |
Hi @josecm, There are a couple of linux.dts files, do you want me to modify the irq number in them all? I don't have other hardware boards to test, but I believe all should be corrected. |
Yes, please do. This should be fixed for all armv8 platforms.. |
- modify the irq number in Linux dts files to reflect the 32 offset - implement and register ipc_message_handler to receive ipc notification in bao-ipcshmem driver - call bao_ipcshmem_notify in uart_rx_handler in Zephyr - modify irq number in all linux guest for ARM On success, a message like below will appear in dmesg: [ 12.881296] ipc message: freertos has received 1 uart interrupts! Tested: - qemu-aarch64-virt - linux+freertos - linux+zephyr - qemu-riscv-virt (by @josecm) - linux+freertos - rpi4 - linux+freertos Signed-off-by: Clay Chang <[email protected]>
Fixed in all Linux guests for ARM. Please review. |
@clachan looks good, but I still need to test this for the aarch32 platforms (i.e. fvp). I'll try to find some time this week to push this through. |
Hi @josecm, do you have update on this? Please let me know if anything I can help. |
hey @clachan sorry for let this PR hanging. But I want to take time, I would need to test most platforms, to make sure your modifications are operational in all of them! Any other platform you are able to test it with would be great help. I'll ask people on our team to do it also. |
@josecm, no worries. I am asking because I have developed a UIO-based interrupt mechanism based on the previous driver I want to share with the community. Thanks. |
bao-ipcshmem driver
On success, a message like below will appear in dmesg:
[ 12.881296] ipc message: freertos has received 1 uart interrupts!
Tested: