Hi there, I'm trying to record all the disk access in qemu. When I turned on the DEBUG_IDE flag, I get debug message with "ide" and "bmdma" headers. While trying to figure out the details, I record all the ioport access and compared to guest's IO mapping.
Here's my qemu command: qemu-system-x86_64 -vnc :1 -hda ubuntu64.12.04.3.img -m 512 -machine pc,accel=kvm -cpu host -smp 4 Here's my guest VM's IO mapping: root@kvm-ubuntu-1:~# cat /proc/ioports 0000-0cf7 : PCI Bus 0000:00 0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-0060 : keyboard 0064-0064 : keyboard 0070-0071 : rtc0 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : 0000:00:01.1 0170-0177 : ata_piix 01f0-01f7 : 0000:00:01.1 01f0-01f7 : ata_piix 0376-0376 : 0000:00:01.1 0376-0376 : ata_piix 0378-037a : parport0 03f2-03f2 : floppy 03f4-03f5 : floppy 03f6-03f6 : 0000:00:01.1 03f6-03f6 : ata_piix 03f7-03f7 : floppy 03f8-03ff : serial 0cf8-0cff : PCI conf1 0d00-ffff : PCI Bus 0000:00 afe0-afe3 : ACPI GPE0_BLK b000-b03f : 0000:00:01.3 b000-b003 : ACPI PM1a_EVT_BLK b004-b005 : ACPI PM1a_CNT_BLK b008-b00b : ACPI PM_TMR b010-b015 : ACPI CPU throttle b100-b10f : 0000:00:01.3 b100-b107 : piix4_smbus c000-c0ff : 0000:00:03.0 c000-c01f : ne2k-pci c100-c10f : 0000:00:01.1 c100-c10f : ata_piix I found that "ide" related log are printed when accessing port 0x170~0x177, and "bmdma" related log are printed with port 0xc100~0xc10f. Thus I get confused of guest OS accessing IDE device via BMDMA. What is the relationship of IDE and BMDMA? What is the function call routine when guest OS accesses the IDE device? Besides, where can I get a detailed information of ATA/IDE programming guidance? Thanks, Arthur -- Arthur Chunqi Li Department of Computer Science School of EECS Peking University Beijing, China