On 24 December 2015 at 01:00, Programmingkid <[email protected]> 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. thanks -- PMM
