On 3/1/23 20:45, Philippe Mathieu-Daudé wrote:
On 3/1/23 20:39, Philippe Mathieu-Daudé wrote:
On 3/1/23 18:39, BALATON Zoltan wrote:
On Tue, 3 Jan 2023, Philippe Mathieu-Daudé wrote:
When a BAR is not mapped, the displayed size is shifted by 1 byte:

 (qemu) info pci
   ...
   Bus  0, device  11, function 0:
     Ethernet controller: PCI device 1022:2000
       PCI subsystem 0000:0000
       IRQ 10, pin A
       BAR0: I/O at 0xffffffffffffffff [0x001e].
       BAR1: 32 bit memory at 0xffffffffffffffff [0x0000001e].   <===
       BAR6: 32 bit memory at 0xffffffffffffffff [0x0003fffe].   <===
       id ""
   Bus  0, device  18, function 0:
     VGA controller: PCI device 1013:00b8
       PCI subsystem 1af4:1100
       BAR0: 32 bit prefetchable memory at 0x10000000 [0x11ffffff].
       BAR1: 32 bit memory at 0x12050000 [0x12050fff].
       BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].   <===
       id ""

Only substract this byte when the BAR is mapped to display
the correct size:

 (qemu) info pci
   ...
   Bus  0, device  11, function 0:
     Ethernet controller: PCI device 1022:2000
       PCI subsystem 0000:0000
       IRQ 10, pin A
       BAR0: I/O at 0xffffffffffffffff [0x001f].
       BAR1: 32 bit memory at 0xffffffffffffffff [0x0000001f].   <===
       BAR6: 32 bit memory at 0xffffffffffffffff [0x0003ffff].   <===
       id ""
   Bus  0, device  18, function 0:
     VGA controller: PCI device 1013:00b8
       PCI subsystem 1af4:1100
       BAR0: 32 bit prefetchable memory at 0x10000000 [0x11ffffff].

Hmm actually here 0x11ffffff isn't the size but the higher address,

       BAR1: 32 bit memory at 0x12050000 [0x12050fff].
       BAR6: 32 bit memory at 0xffffffffffffffff [0x0000ffff].   <===

while here this is the size. Confusing. Wouldn't it be simpler to only
display the size?
Or range and size:

  Bus  0, device  18, function 0:
    VGA controller: PCI device 1013:00b8
      PCI subsystem 1af4:1100
BAR0: 32 bit prefetchable memory at 0x10000000-0x12000000 [0x02000000]
      BAR1: 32 bit memory at 0x12050000-0x12051000 [0x00001000]
BAR6: 32 bit memory at 0xffffffffffffffff-0xffffffffffffffff [0x00010000]



Reply via email to