mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-21 00:38:28 +00:00
HV: add support for 64-bit bar emulation
Enable 64-bit bar emulation, if pbar is of type PCIBAR_MEM64, vbar will also be of type PCIBAR_MEM64 instead of PCIBAR_MEM32 With 64-bit bar emulation code in place, we can remove enum pci_bar_type type from struct pci_bar as bar type can be derived from struct pci_bar's reg member by using the pci_get_bar_type function Rename functions: pci_base_from_size_mask --> git_size_masked_bar_base Remove unused functions Tracked-On: #3241 Signed-off-by: dongshen <dongsheng.x.zhang@intel.com> Reviewed-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
@@ -183,7 +183,6 @@ struct pci_bar {
|
||||
/* Base Address Register */
|
||||
union pci_bar_reg reg;
|
||||
uint64_t size;
|
||||
enum pci_bar_type type;
|
||||
bool is_64bit_high; /* true if this is the upper 32-bit of a 64-bit bar */
|
||||
};
|
||||
|
||||
@@ -270,7 +269,7 @@ static inline enum pci_bar_type pci_get_bar_type(uint32_t val)
|
||||
* Given bar size and raw bar value, return bar base address by masking off its lower flag bits
|
||||
* size/val: all in 64-bit values to accommodate 64-bit MMIO bar size masking
|
||||
*/
|
||||
static inline uint64_t pci_base_from_size_mask(uint64_t size, uint64_t val)
|
||||
static inline uint64_t git_size_masked_bar_base(uint64_t size, uint64_t val)
|
||||
{
|
||||
uint64_t mask;
|
||||
|
||||
@@ -308,22 +307,6 @@ static inline bool bdf_is_equal(const union pci_bdf *a, const union pci_bdf *b)
|
||||
return (a->value == b->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @pre bar != NULL
|
||||
*/
|
||||
static inline bool is_mmio_bar(const struct pci_bar *bar)
|
||||
{
|
||||
return (bar->type == PCIBAR_MEM32) || (bar->type == PCIBAR_MEM64);
|
||||
}
|
||||
|
||||
/**
|
||||
* @pre bar != NULL
|
||||
*/
|
||||
static inline bool is_valid_bar_size(const struct pci_bar *bar)
|
||||
{
|
||||
return (bar->size > 0UL) && (bar->size <= 0xffffffffU);
|
||||
}
|
||||
|
||||
uint32_t pci_pdev_read_cfg(union pci_bdf bdf, uint32_t offset, uint32_t bytes);
|
||||
void pci_pdev_write_cfg(union pci_bdf bdf, uint32_t offset, uint32_t bytes, uint32_t val);
|
||||
void enable_disable_pci_intx(union pci_bdf bdf, bool enable);
|
||||
|
Reference in New Issue
Block a user