>1. DMAR tables must be loaded by command line ( -acpitable > sig=DMAR,data=hw/DMAR.dat )
Why? > +void cpu_physical_memory_rw_io(target_phys_addr_t addr, uint8_t *buf, > + int len, int is_write, uint16_t devfn, > + int* err); This appears to be PCI specific, which is wrong. You should be using the qdev infrastructure. >+/* Mapping related structures */ >+struct IommuRootEntry { >+ uint32_t p : 1 ; >+ uint32_t res1 : 11 ; >+ uint64_t ctp : 52 ; >+ uint64_t res2 : 64 ; >+}; This is almost certainly wrong on some hosts. You can not assume anything about bitfield layout. Do not use these if an exact binary representation is required. Paul