Hi all, I am writing a custom, non-uefi bootloader for the raspberry pi4.
It all works fine except for the following. dma_constraint is set to 0x0-0x3bffffff as in uefi bootloader. One driver using bus_dma_alloc gets physical page 0 as dma memory. I map that memory into userspace for some custom usage. That causes a segfault in userspace when writing to that memory and an uvm panic when I reboot. The weird thing is that if I set dma_constraint to 0x1000-0x3bffffff, excluding page 0, everything works perfectly as if I was using the usual uefi bootloader. What could cause this? Is the first page of physical memory special? If so, why is it not excluded from dma_constraint in the uefi bootloader? Thank you all in advance for your help, Alessandro Sent from my iPhone
