I have a workstation using Hygon C86 7280 CPU, /proc/cpuinfo shows it has 43 physical address bits, and 48 virtual address bit.
But when I mmap a BAR of PCI device (via /sys/bus/pci/devices/0000:nn:00.0/resource0), I can only read 0xffffffff from that mapping.
From the output of crash vtop, it shows the mapping is as follows,
PTE: f8bd3B800 => 80008000DDE20237
To my surprise, bit47 in PTE is '1'! I think it should be '0' as the reserved bits.
I am not sure if my understanding is right or not. Why reserved bit of 47 is set in this case?