[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH 07/12] hvmloader: allocate MMCONFIG area in the MMIO hole + minor code refactoring
>>> On 12.03.18 at 19:33, <x1917x@xxxxxxxxx> wrote: > --- a/tools/firmware/hvmloader/config.h > +++ b/tools/firmware/hvmloader/config.h > @@ -53,10 +53,14 @@ extern uint8_t ioapic_version; > #define PCI_ISA_DEVFN 0x08 /* dev 1, fn 0 */ > #define PCI_ISA_IRQ_MASK 0x0c20U /* ISA IRQs 5,10,11 are PCI connected */ > #define PCI_ICH9_LPC_DEVFN 0xf8 /* dev 31, fn 0 */ > +#define PCI_MCH_DEVFN 0 /* bus 0, dev 0, func 0 */ Just MCH is liable to become ambiguous in the future. Perhaps PCI_Q35_MCH_DEVFN? > @@ -172,10 +173,14 @@ void pci_setup(void) > > /* Create a list of device BARs in descending order of size. */ > struct bars { > - uint32_t is_64bar; > uint32_t devfn; > uint32_t bar_reg; > uint64_t bar_sz; > + uint64_t addr_mask; /* which bits of the base address can be written > */ > + uint32_t bar_data; /* initial value - BAR flags here */ Why 32 bits? You only use the low few ones afaics. Also please avoid fixed width types unless you really need them. > @@ -259,13 +264,21 @@ void pci_setup(void) > bar_reg = PCI_ROM_ADDRESS; > > bar_data = pci_readl(devfn, bar_reg); > + > + is_mem = !!(((bar_data & PCI_BASE_ADDRESS_SPACE) == > + PCI_BASE_ADDRESS_SPACE_MEMORY) || > + (bar_reg == PCI_ROM_ADDRESS)); Once you make is_mem properly bool, !! won't be needed anymore. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |