[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-discuss] phys_page_find() returning §ions[PHYS_SECTION_UNA
Re: [Qemu-discuss] phys_page_find() returning §ions[PHYS_SECTION_UNASSIGNED]
Thu, 24 Dec 2015 15:34:21 +0000
On 24 December 2015 at 01:00, Programmingkid <address@hidden> wrote:
> I'm having problems with the pci_dma_read() function. When using
> a Mac OS X guest, the data that this function returns is all zeros.
> After doing a lot of instruction tracing, I tracked the problem to a
> function called phys_page_find(). It always returns
> §ions[PHYS_SECTION_UNASSIGNED]. What I would like to know is
> what is an unassigned section? How is memory suppose to be assigned?
Unassigned here is an area of the physical address space which has
nothing in it (no RAM, no device, just nothing). Depending on the
guest CPU architecture, accessing this might cause a bus fault
or might just return a dummy value. (It looks like it's the latter
for your case.)
One way to get this is if the guest mis-programs the PCI DMA
so that it tries to do DMA from a wrong address. Or maybe the
PCI host controller emulation isn't right and we're not
using the right DMA address. Or there's some RAM or something
that the guest expects to be present in the machine but which
is not implemented by us.
You need to find out why we're trying to DMA to/from this
bogus address, I think.