Skip to content

Commit

Permalink
i386/pc: factor out cxl range start to helper
Browse files Browse the repository at this point in the history
Factor out the calculation of the base address of the memory region.
It will be used later on for the cxl range end counterpart calculation
and as well in pc_memory_init() CXL memory region initialization, thus
avoiding duplication.

Cc: Jonathan Cameron <jonathan.cameron@huawei.com>
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20220719170014.27028-7-joao.m.martins@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
jpemartins authored and mstsirkin committed Jul 26, 2022
1 parent 55668e4 commit 42bed07
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions hw/i386/pc.c
Expand Up @@ -825,6 +825,22 @@ static hwaddr pc_above_4g_end(PCMachineState *pcms)
return x86ms->above_4g_mem_start + x86ms->above_4g_mem_size;
}

static uint64_t pc_get_cxl_range_start(PCMachineState *pcms)
{
PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
MachineState *machine = MACHINE(pcms);
hwaddr cxl_base;

if (pcmc->has_reserved_memory && machine->device_memory->base) {
cxl_base = machine->device_memory->base
+ memory_region_size(&machine->device_memory->mr);
} else {
cxl_base = pc_above_4g_end(pcms);
}

return cxl_base;
}

static uint64_t pc_get_cxl_range_end(PCMachineState *pcms)
{
uint64_t start = 0;
Expand Down Expand Up @@ -946,13 +962,7 @@ void pc_memory_init(PCMachineState *pcms,
MemoryRegion *mr = &pcms->cxl_devices_state.host_mr;
hwaddr cxl_size = MiB;

if (pcmc->has_reserved_memory && machine->device_memory->base) {
cxl_base = machine->device_memory->base
+ memory_region_size(&machine->device_memory->mr);
} else {
cxl_base = pc_above_4g_end(pcms);
}

cxl_base = pc_get_cxl_range_start(pcms);
e820_add_entry(cxl_base, cxl_size, E820_RESERVED);
memory_region_init(mr, OBJECT(machine), "cxl_host_reg", cxl_size);
memory_region_add_subregion(system_memory, cxl_base, mr);
Expand Down

0 comments on commit 42bed07

Please sign in to comment.