Download raw body.
move pci mmio defs from vmm to vmd
No need for the kernel headers to contain this information nowadays as
vmd is responsible for telling vmm what memory regions should be treated
as "mmio" regions.
This doesn't change the values used. Yes, in real hardware this isn't
all PCI in this region...that's a future detail to work on.
ok?
diffstat refs/heads/master refs/heads/vmm-mmio-headers
M sys/arch/amd64/include/vmmvar.h | 0+ 3-
M usr.sbin/vmd/pci.c | 2+ 2-
M usr.sbin/vmd/pci.h | 3+ 0-
M usr.sbin/vmd/x86_vm.c | 7+ 7-
4 files changed, 12 insertions(+), 12 deletions(-)
diff refs/heads/master refs/heads/vmm-mmio-headers
commit - c1e5f9e355c15e0953a568e8d696ee94ac23c40f
commit + a28ee5a6fe5626edec1fed2ca1b1c68d79755ca6
blob - 6bc63d5ae3f470c12fecea910e7be247f82ac548
blob + 1e9333b82cef44d380f5f6d6a1d0af3d8ffe1216
--- sys/arch/amd64/include/vmmvar.h
+++ sys/arch/amd64/include/vmmvar.h
@@ -23,9 +23,6 @@
#define VMM_HV_SIGNATURE "OpenBSDVMM58"
-#define VMM_PCI_MMIO_BAR_BASE 0xF0000000ULL
-#define VMM_PCI_MMIO_BAR_END 0xFFDFFFFFULL /* 2 MiB below 4 GiB */
-
/* VMX: Basic Exit Reasons */
#define VMX_EXIT_NMI 0
#define VMX_EXIT_EXTINT 1
blob - b159977f464c48f7e7e1f3c1fc664b2025c794c9
blob + 7c3b4acc0ccc762c189cd1022c4b939c241e40be
--- usr.sbin/vmd/pci.c
+++ usr.sbin/vmd/pci.c
@@ -73,7 +73,7 @@ pci_add_bar(uint8_t id, uint32_t type, void *barfn, vo
/* Compute BAR address and add */
bar_reg_idx = (PCI_MAPREG_START + (bar_ct * 4)) / 4;
if (type == PCI_MAPREG_TYPE_MEM) {
- if (pci.pci_next_mmio_bar >= VMM_PCI_MMIO_BAR_END)
+ if (pci.pci_next_mmio_bar >= PCI_MMIO_BAR_END)
return (1);
pci.pci_devices[id].pd_cfg_space[bar_reg_idx] =
@@ -216,7 +216,7 @@ pci_init(void)
uint8_t id;
memset(&pci, 0, sizeof(pci));
- pci.pci_next_mmio_bar = VMM_PCI_MMIO_BAR_BASE;
+ pci.pci_next_mmio_bar = PCI_MMIO_BAR_BASE;
#ifdef __amd64__
pci.pci_next_io_bar = VM_PCI_IO_BAR_BASE;
blob - 0b05a9298d16296d5a155dc6d7657f8ad21491d2
blob + 48b1a8dbcdd7d1946aef9b1aced4ff3947d7a83a
--- usr.sbin/vmd/pci.h
+++ usr.sbin/vmd/pci.h
@@ -34,6 +34,9 @@
#define PCI_BAR_TYPE_IO 0x0
#define PCI_BAR_TYPE_MMIO 0x1
+#define PCI_MMIO_BAR_BASE 0xF0000000ULL
+#define PCI_MMIO_BAR_END 0xFFDFFFFFULL /* 2 MiB below 4 GiB */
+
#define PCI_MAX_PIC_IRQS 10
typedef int (*pci_cs_fn_t)(int dir, uint8_t reg, uint32_t *data);
blob - 729e0c5f9bd1aa7e99b896834be02b23354902a1
blob + 4481f2bb099307dd0071141de1d9077027be14fb
--- usr.sbin/vmd/x86_vm.c
+++ usr.sbin/vmd/x86_vm.c
@@ -192,7 +192,7 @@ create_memory_map(struct vm_create_params *vcp)
/* If we have less than 2MB remaining, still create a 2nd BIOS area. */
if (mem_bytes <= MB(2)) {
- vcp->vcp_memranges[2].vmr_gpa = VMM_PCI_MMIO_BAR_END;
+ vcp->vcp_memranges[2].vmr_gpa = PCI_MMIO_BAR_END;
vcp->vcp_memranges[2].vmr_size = MB(2);
vcp->vcp_memranges[2].vmr_type = VM_MEM_RESERVED;
vcp->vcp_nmemranges = 3;
@@ -204,8 +204,8 @@ create_memory_map(struct vm_create_params *vcp)
* boundary while making sure we do not place physical memory into
* MMIO ranges.
*/
- if (mem_bytes > VMM_PCI_MMIO_BAR_BASE - MB(1)) {
- above_1m = VMM_PCI_MMIO_BAR_BASE - MB(1);
+ if (mem_bytes > PCI_MMIO_BAR_BASE - MB(1)) {
+ above_1m = PCI_MMIO_BAR_BASE - MB(1);
above_4g = mem_bytes - above_1m;
} else {
above_1m = mem_bytes;
@@ -218,13 +218,13 @@ create_memory_map(struct vm_create_params *vcp)
vcp->vcp_memranges[2].vmr_type = VM_MEM_RAM;
/* Fourth region: PCI MMIO range */
- vcp->vcp_memranges[3].vmr_gpa = VMM_PCI_MMIO_BAR_BASE;
- vcp->vcp_memranges[3].vmr_size = VMM_PCI_MMIO_BAR_END -
- VMM_PCI_MMIO_BAR_BASE + 1;
+ vcp->vcp_memranges[3].vmr_gpa = PCI_MMIO_BAR_BASE;
+ vcp->vcp_memranges[3].vmr_size = PCI_MMIO_BAR_END -
+ PCI_MMIO_BAR_BASE + 1;
vcp->vcp_memranges[3].vmr_type = VM_MEM_MMIO;
/* Fifth region: 2nd copy of BIOS above MMIO ending at 4GB */
- vcp->vcp_memranges[4].vmr_gpa = VMM_PCI_MMIO_BAR_END + 1;
+ vcp->vcp_memranges[4].vmr_gpa = PCI_MMIO_BAR_END + 1;
vcp->vcp_memranges[4].vmr_size = MB(2);
vcp->vcp_memranges[4].vmr_type = VM_MEM_RESERVED;
move pci mmio defs from vmm to vmd