mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-11 01:44:55 +00:00
dm: rename some ssram variables and functions
Rename them to unify the coding style or for simplification purpose, also remove redundant function declearations in pci_core.h header file. v4 update: SSRAM* -> VSSRAM* ssram* -> vssram* Tracked-On: #7010 Signed-off-by: Yonghua Huang <yonghua.huang@intel.com> Acked-by: Wang Yu1 <yu1.wang@intel.com>
This commit is contained in:
parent
8c9b9808fa
commit
d9fb8f3141
@ -54,7 +54,7 @@ static char bootargs[BOOT_ARG_LEN];
|
|||||||
* Begin Limit Type Length
|
* Begin Limit Type Length
|
||||||
* 0: 0 - 0xA0000 RAM 0xA0000
|
* 0: 0 - 0xA0000 RAM 0xA0000
|
||||||
* 1: 0x100000 - lowmem part1 RAM 0x0
|
* 1: 0x100000 - lowmem part1 RAM 0x0
|
||||||
* 2: SW SRAM_bot - SW SRAM_top (reserved) SOFTWARE_SRAM_MAX_SIZE
|
* 2: SW SRAM_bot - SW SRAM_top (reserved) VSSRAM_MAX_SIZE
|
||||||
* 3: gpu_rsvd_bot - gpu_rsvd_top (reserved) 0x4004000
|
* 3: gpu_rsvd_bot - gpu_rsvd_top (reserved) 0x4004000
|
||||||
* 4: lowmem part2 - 0x80000000 (reserved) 0x0
|
* 4: lowmem part2 - 0x80000000 (reserved) 0x0
|
||||||
* 5: 0xE0000000 - 0x100000000 MCFG, MMIO 512MB
|
* 5: 0xE0000000 - 0x100000000 MCFG, MMIO 512MB
|
||||||
@ -76,9 +76,9 @@ const struct e820_entry e820_default_entries[NUM_E820_ENTRIES] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Software SRAM area: size: 0x800000
|
* VSSRAM area: size: 0x800000
|
||||||
* In native, the Software SRAM region should be part of DRAM memory.
|
* In native, the VSSRAM region should be part of DRAM memory.
|
||||||
* But one fixed Software SRAM gpa is friendly for virtualization due
|
* But one fixed VSSRAM gpa is friendly for virtualization due
|
||||||
* to decoupled with various guest memory size.
|
* to decoupled with various guest memory size.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
@ -220,11 +220,11 @@ acrn_create_e820_table(struct vmctx *ctx, struct e820_entry *e820)
|
|||||||
{
|
{
|
||||||
uint32_t removed = 0, k;
|
uint32_t removed = 0, k;
|
||||||
uint32_t gpu_rsvmem_base_gpa = 0;
|
uint32_t gpu_rsvmem_base_gpa = 0;
|
||||||
uint64_t software_sram_base_gpa = 0;
|
uint64_t vssram_gpa = 0;
|
||||||
|
|
||||||
memcpy(e820, e820_default_entries, sizeof(e820_default_entries));
|
memcpy(e820, e820_default_entries, sizeof(e820_default_entries));
|
||||||
|
|
||||||
/* FIXME: Here wastes 8MB memory if SSRAM is enabled, and 64MB+16KB if
|
/* FIXME: Here wastes 8MB memory if VSSRAM is enabled, and 64MB+16KB if
|
||||||
* GPU reserved memory is exist.
|
* GPU reserved memory is exist.
|
||||||
*
|
*
|
||||||
* Determines the GPU region due to DSM identical mapping.
|
* Determines the GPU region due to DSM identical mapping.
|
||||||
@ -237,11 +237,11 @@ acrn_create_e820_table(struct vmctx *ctx, struct e820_entry *e820)
|
|||||||
e820[LOWRAM_E820_ENTRY + 2].baseaddr = ctx->lowmem_limit;
|
e820[LOWRAM_E820_ENTRY + 2].baseaddr = ctx->lowmem_limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Always put SW SRAM before GPU region and keep 1MB boundary for protection. */
|
/* Always put VSSRAM before GPU region and keep 1MB boundary for protection. */
|
||||||
software_sram_base_gpa = get_software_sram_base_gpa();
|
vssram_gpa = get_vssram_gpa_base();
|
||||||
if (software_sram_base_gpa) {
|
if (vssram_gpa) {
|
||||||
e820[LOWRAM_E820_ENTRY + 1].baseaddr = software_sram_base_gpa;
|
e820[LOWRAM_E820_ENTRY + 1].baseaddr = vssram_gpa;
|
||||||
e820[LOWRAM_E820_ENTRY + 1].length = get_software_sram_size();
|
e820[LOWRAM_E820_ENTRY + 1].length = get_vssram_size();
|
||||||
} else {
|
} else {
|
||||||
e820[LOWRAM_E820_ENTRY + 1].baseaddr = e820[LOWRAM_E820_ENTRY + 2].baseaddr;
|
e820[LOWRAM_E820_ENTRY + 1].baseaddr = e820[LOWRAM_E820_ENTRY + 2].baseaddr;
|
||||||
}
|
}
|
||||||
|
@ -1161,8 +1161,8 @@ int create_and_inject_vrtct(struct vmctx *ctx)
|
|||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
memmap.service_vm_pa = get_software_sram_base_hpa();
|
memmap.service_vm_pa = get_software_sram_base_hpa();
|
||||||
memmap.user_vm_pa = get_software_sram_base_gpa();
|
memmap.user_vm_pa = get_vssram_gpa_base();
|
||||||
memmap.len = get_software_sram_size();
|
memmap.len = get_vssram_size();
|
||||||
ioctl(ctx->fd, ACRN_IOCTL_UNSET_MEMSEG, &memmap);
|
ioctl(ctx->fd, ACRN_IOCTL_UNSET_MEMSEG, &memmap);
|
||||||
return ioctl(ctx->fd, ACRN_IOCTL_SET_MEMSEG, &memmap);
|
return ioctl(ctx->fd, ACRN_IOCTL_SET_MEMSEG, &memmap);
|
||||||
};
|
};
|
||||||
|
@ -43,8 +43,8 @@ static uint32_t guest_l3_cat_shift;
|
|||||||
static uint32_t guest_lapicid_tbl[ACRN_PLATFORM_LAPIC_IDS_MAX];
|
static uint32_t guest_lapicid_tbl[ACRN_PLATFORM_LAPIC_IDS_MAX];
|
||||||
|
|
||||||
static uint64_t software_sram_base_hpa;
|
static uint64_t software_sram_base_hpa;
|
||||||
static uint64_t software_sram_size;
|
static uint64_t vssram_size;
|
||||||
static uint64_t software_sram_base_gpa;
|
static uint64_t vssram_gpa_base;
|
||||||
|
|
||||||
static uint8_t vrtct_checksum(uint8_t *vrtct, uint32_t length)
|
static uint8_t vrtct_checksum(uint8_t *vrtct, uint32_t length)
|
||||||
{
|
{
|
||||||
@ -213,20 +213,20 @@ static void remap_software_sram_regions(struct acpi_table_hdr *vrtct, int rtct_v
|
|||||||
}
|
}
|
||||||
|
|
||||||
software_sram_base_hpa = hpa_bottom;
|
software_sram_base_hpa = hpa_bottom;
|
||||||
software_sram_size = hpa_top - hpa_bottom;
|
vssram_size = hpa_top - hpa_bottom;
|
||||||
|
|
||||||
if (rtct_ver == RTCT_V1) {
|
if (rtct_ver == RTCT_V1) {
|
||||||
foreach_rtct_entry(vrtct, entry) {
|
foreach_rtct_entry(vrtct, entry) {
|
||||||
if (entry->type == RTCT_ENTRY_TYPE_SSRAM) {
|
if (entry->type == RTCT_ENTRY_TYPE_SSRAM) {
|
||||||
ssram = (struct rtct_entry_data_ssram *)entry->data;
|
ssram = (struct rtct_entry_data_ssram *)entry->data;
|
||||||
ssram->base = software_sram_base_gpa + (ssram->base - hpa_bottom);
|
ssram->base = vssram_gpa_base + (ssram->base - hpa_bottom);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (rtct_ver == RTCT_V2) {
|
} else if (rtct_ver == RTCT_V2) {
|
||||||
foreach_rtct_entry(vrtct, entry) {
|
foreach_rtct_entry(vrtct, entry) {
|
||||||
if (entry->type == RTCT_V2_SSRAM) {
|
if (entry->type == RTCT_V2_SSRAM) {
|
||||||
ssram_v2 = (struct rtct_entry_data_ssram_v2 *)entry->data;
|
ssram_v2 = (struct rtct_entry_data_ssram_v2 *)entry->data;
|
||||||
ssram_v2->base = software_sram_base_gpa + (ssram_v2->base - hpa_bottom);
|
ssram_v2->base = vssram_gpa_base + (ssram_v2->base - hpa_bottom);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -380,7 +380,7 @@ static int passthru_rtct_to_guest(struct acpi_table_hdr *vrtct, struct acpi_tabl
|
|||||||
foreach_rtct_entry(native_rtct, entry) {
|
foreach_rtct_entry(native_rtct, entry) {
|
||||||
if (entry->type == RTCT_V2_COMPATIBILITY) {
|
if (entry->type == RTCT_V2_COMPATIBILITY) {
|
||||||
compat = (struct rtct_entry_data_compatibility *)entry->data;
|
compat = (struct rtct_entry_data_compatibility *)entry->data;
|
||||||
rtct_ver = compat->RTCT_Ver_Major;
|
rtct_ver = compat->rtct_ver_major;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -425,17 +425,17 @@ uint64_t get_software_sram_base_hpa(void)
|
|||||||
/*
|
/*
|
||||||
* @pre buid_vrtct(ctx, cfg) != NULL
|
* @pre buid_vrtct(ctx, cfg) != NULL
|
||||||
*/
|
*/
|
||||||
uint64_t get_software_sram_base_gpa(void)
|
uint64_t get_vssram_gpa_base(void)
|
||||||
{
|
{
|
||||||
return software_sram_base_gpa;
|
return vssram_gpa_base;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @pre buid_vrtct(ctx, cfg) != NULL
|
* @pre buid_vrtct(ctx, cfg) != NULL
|
||||||
*/
|
*/
|
||||||
uint64_t get_software_sram_size(void)
|
uint64_t get_vssram_size(void)
|
||||||
{
|
{
|
||||||
return software_sram_size;
|
return vssram_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -513,12 +513,12 @@ uint8_t *build_vrtct(struct vmctx *ctx, void *cfg)
|
|||||||
guest_vcpu_num, guest_l2_cat_shift, guest_l3_cat_shift);
|
guest_vcpu_num, guest_l2_cat_shift, guest_l3_cat_shift);
|
||||||
|
|
||||||
gpu_rsvmem_base_gpa = get_gpu_rsvmem_base_gpa();
|
gpu_rsvmem_base_gpa = get_gpu_rsvmem_base_gpa();
|
||||||
software_sram_size = SOFTWARE_SRAM_MAX_SIZE;
|
vssram_size = VSSRAM_MAX_SIZE;
|
||||||
/* TODO: It is better to put one boundary between GPU region and SW SRAM
|
/* TODO: It is better to put one boundary between GPU region and SW SRAM
|
||||||
* for protection.
|
* for protection.
|
||||||
*/
|
*/
|
||||||
software_sram_base_gpa = ((gpu_rsvmem_base_gpa ? gpu_rsvmem_base_gpa : 0x80000000UL) -
|
vssram_gpa_base = ((gpu_rsvmem_base_gpa ? gpu_rsvmem_base_gpa : 0x80000000UL) -
|
||||||
software_sram_size) & ~software_sram_size;
|
vssram_size) & ~vssram_size;
|
||||||
|
|
||||||
if (passthru_rtct_to_guest(vrtct, rtct_cfg)) {
|
if (passthru_rtct_to_guest(vrtct, rtct_cfg)) {
|
||||||
pr_err("%s, initialize vRTCT fail.", __func__);
|
pr_err("%s, initialize vRTCT fail.", __func__);
|
||||||
|
@ -48,8 +48,8 @@
|
|||||||
#define PCI_EMUL_MEMBASE64 0x4000000000UL /* 256GB */
|
#define PCI_EMUL_MEMBASE64 0x4000000000UL /* 256GB */
|
||||||
#define PCI_EMUL_MEMLIMIT64 0x8000000000UL /* 512GB */
|
#define PCI_EMUL_MEMLIMIT64 0x8000000000UL /* 512GB */
|
||||||
|
|
||||||
#define SOFTWARE_SRAM_MAX_SIZE 0x00800000UL
|
#define VSSRAM_MAX_SIZE 0x00800000UL
|
||||||
#define SOFTWARE_SRAM_BASE_GPA (PCI_EMUL_MEMBASE32 - SOFTWARE_SRAM_MAX_SIZE)
|
#define VSSRAM_BASE_GPA (PCI_EMUL_MEMBASE32 - VSSRAM_MAX_SIZE)
|
||||||
|
|
||||||
/* GVT BARs + PTDEV IO BARs */
|
/* GVT BARs + PTDEV IO BARs */
|
||||||
#define REGION_NUMS 32
|
#define REGION_NUMS 32
|
||||||
@ -297,8 +297,6 @@ void destory_io_rsvd_rgns(struct pci_vdev *vdev);
|
|||||||
*/
|
*/
|
||||||
uint32_t get_gpu_rsvmem_base_gpa(void);
|
uint32_t get_gpu_rsvmem_base_gpa(void);
|
||||||
uint32_t get_gpu_rsvmem_size(void);
|
uint32_t get_gpu_rsvmem_size(void);
|
||||||
uint64_t get_software_sram_base_gpa(void);
|
|
||||||
uint64_t get_software_sram_size(void);
|
|
||||||
|
|
||||||
typedef void (*pci_lintr_cb)(int b, int s, int pin, int pirq_pin,
|
typedef void (*pci_lintr_cb)(int b, int s, int pin, int pirq_pin,
|
||||||
int ioapic_irq, void *arg);
|
int ioapic_irq, void *arg);
|
||||||
|
@ -37,10 +37,10 @@ struct rtct_entry {
|
|||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
struct rtct_entry_data_compatibility {
|
struct rtct_entry_data_compatibility {
|
||||||
uint32_t RTCT_Ver_Major;
|
uint32_t rtct_ver_major;
|
||||||
uint32_t RTCT_Ver_Minor;
|
uint32_t rtct_ver_minor;
|
||||||
uint32_t RTCD_Ver_Major;
|
uint32_t rtcd_ver_major;
|
||||||
uint32_t RTCD_Ver_Minor;
|
uint32_t rtcd_ver_Minor;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
struct rtct_entry_data_ssram {
|
struct rtct_entry_data_ssram {
|
||||||
@ -65,8 +65,9 @@ struct rtct_entry_data_mem_hi_latency {
|
|||||||
uint32_t apic_id_tbl[64];
|
uint32_t apic_id_tbl[64];
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
|
uint64_t get_vssram_gpa_base(void);
|
||||||
uint64_t get_software_sram_base_hpa(void);
|
uint64_t get_software_sram_base_hpa(void);
|
||||||
uint64_t get_software_sram_size(void);
|
uint64_t get_vssram_size(void);
|
||||||
uint8_t *build_vrtct(struct vmctx *ctx, void *cfg);
|
uint8_t *build_vrtct(struct vmctx *ctx, void *cfg);
|
||||||
|
|
||||||
#endif /* RTCT_H */
|
#endif /* RTCT_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user