DMA Access #207
Replies: 1 comment 1 reply
-
@Everaldo-Gomes sorry! This one slipped through the cracks! Please sends us a direct email if we fail to respond in a few days! TBH, I don't know if I fully get your question. Are you trying to use the DMA directly within Bao? If so, you need to map that device's MMIO region in Bao's address space! Take a look at how, for example, Bao maps the GIC during initialization in An important point is also that, raspberry PI does not have an SMMU/IOMMU. Also, Bao is not equipped to add its context to an SMMU even if there was any. To solve this, after you successfully are able to access the DMA within Bao, you need to translate any addresses you pass to it using the Let me know if this helps you |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
I'm trying to configure the DMA using this code, whose the addresses I found in the raspberry pi 4b documentation.
Right after trying to access any register, Bao reports the following error.
Starting application at 0x00100000 ...
x0: 0x00000000fe007000
x1: 0x0000000000000000
x2: 0x0000fd800001cc10
x3: 0x0000000000000000
x4: 0x0000fd8000046000
x5: 0x00000000fe215000
x6: 0x0000fd8000046000
x7: 0x000000000000000d
x8: 0x0000000000000000
x9: 0x0000000000000000
x10: 0x000000000000000f
x11: 0x0000000000000001
x12: 0x0000fd8000016ef0
x13: 0x0000000000000018
x14: 0x0000000000000018
x15: 0x0000000000000001
x16: 0x0000fd8000021078
x17: 0x0000fd8000021078
x18: 0x00000000000c7000
x19: 0x0000000000000000
x20: 0x00000000000000a8
x21: 0x0000000000000002
x22: 0x0000000007b42c00
x23: 0x0000000000000002
x24: 0x0000000007fc4944
x25: 0x0000000000000000
x26: 0x0000000000000000
x27: 0x0000000000000000
x28: 0x0000000007b42c60
x29: 0x0000fe0000001fd0
x30: 0x0000fd800000c2d4
SP: 0x0000fe0000001fd0
ESR: 0x0000000096000004
ELR: 0x0000fd800000c300
FAR: 0x00000000fe007000
BAO ERROR: cpu0 internal hypervisor abort - PANIC
I'd like to know how addresses are organized or mapped in Bao and how can I use DMA, to map specific memory regions/banks for each CPU to use. Is DMA the right component to do this?
Platform: Raspberry Pi 4b
Demo: Dual-guest Linux+FreeRTOS
Beta Was this translation helpful? Give feedback.
All reactions