Attention is currently required from: Anjaneya "Reddy" Chagam, Jonathan Zhang, Johnny Lin, Morgan Jang, Patrick Rudolph. Kyösti Mälkki has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/55477 )
Change subject: soc/intel/xeon_sp: Use fixed_mem_resource64() ......................................................................
soc/intel/xeon_sp: Use fixed_mem_resource64()
Replace xx_resource() calls with xx_resource64() calls that take the base and size arguments as-is, without dividing by KiB (or >> 10).
With replacement of the allocator/constructor function caller can use log_resource() instead.
Change-Id: I7e4e1e5a779c418f369dd2dab8c811f67ad1399f Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- M src/soc/intel/xeon_sp/uncore.c 1 file changed, 43 insertions(+), 53 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/77/55477/1
diff --git a/src/soc/intel/xeon_sp/uncore.c b/src/soc/intel/xeon_sp/uncore.c index 4f50980..b5ada46 100644 --- a/src/soc/intel/xeon_sp/uncore.c +++ b/src/soc/intel/xeon_sp/uncore.c @@ -166,11 +166,11 @@ static void mc_add_dram_resources(struct device *dev, int *res_count) { struct range_entry fsp_mem; - uint64_t base_kb; - uint64_t size_kb; + uint64_t base; + uint64_t size; uint64_t top_of_ram; + const struct resource *res; uint64_t mc_values[NUM_MAP_ENTRIES]; - struct resource *resource; int index = *res_count;
/* Only add dram resources once. */ @@ -189,21 +189,21 @@ range_entry_end(&fsp_mem), top_of_ram);
/* Conventional Memory (DOS region, 0x0 to 0x9FFFF) */ - base_kb = 0; - size_kb = (0xa0000 >> 10); - LOG_MEM_RESOURCE("legacy_ram", dev, index, base_kb, size_kb); - ram_resource(dev, index++, base_kb, size_kb); + base = 0; + size = 0xa0000; + res = ram_resource64(dev, index++, base, size); + LOG_RESOURCE("legacy_ram", dev, res);
/* 1MB -> top_of_ram i.e., fsp_mem_base+1*/ - base_kb = (0x100000 >> 10); - size_kb = (top_of_ram - 0xfffff) >> 10; - LOG_MEM_RESOURCE("low_ram", dev, index, base_kb, size_kb); - ram_resource(dev, index++, base_kb, size_kb); + base = 0x100000; + size = top_of_ram - 0xfffff; + res = ram_resource64(dev, index++, base, size); + LOG_RESOURCE("low_ram", dev, res);
/* fsp_mem_base -> cbmem_top */ - base_kb = top_of_ram / KiB; - size_kb = ((uintptr_t)cbmem_top() - top_of_ram) / KiB; - reserved_ram_resource(dev, index++, base_kb, size_kb); + base = top_of_ram; + size = (uintptr_t)cbmem_top() - top_of_ram; + res = reserved_ram_resource64(dev, index++, base, size);
/* * FSP meomoy, CBMem regions are already added as reserved @@ -221,55 +221,45 @@ */
/* Mark TSEG/SMM region as reserved */ - base_kb = (mc_values[TSEG_BASE_REG] >> 10); - size_kb = (mc_values[TSEG_LIMIT_REG] - mc_values[TSEG_BASE_REG] + 1) >> 10; - LOG_MEM_RESOURCE("mmio_tseg", dev, index, base_kb, size_kb); - reserved_ram_resource(dev, index++, base_kb, size_kb); + base = mc_values[TSEG_BASE_REG]; + size = mc_values[TSEG_LIMIT_REG] - mc_values[TSEG_BASE_REG] + 1; + res = reserved_ram_resource64(dev, index++, base, size); + LOG_RESOURCE("mmio_tseg", dev, res);
/* Reserve and set up DPR */ configure_dpr(dev); union dpr_register dpr = { .raw = pci_read_config32(dev, VTD_LTDPR) }; if (dpr.size) { - uint64_t dpr_base_k = (dpr.top - dpr.size) << 10; - uint64_t dpr_size_k = dpr.size << 10; - reserved_ram_resource(dev, index++, dpr_base_k, dpr_size_k); - LOG_MEM_RESOURCE("dpr", dev, index, dpr_base_k, dpr_size_k); + base = (dpr.top - dpr.size) << 20; + size = dpr.size << 20; + res = reserved_ram_resource64(dev, index++, base, size); + LOG_RESOURCE("dpr", dev, res); }
/* Mark region between TSEG - TOLM (eg. MESEG) as reserved */ if (mc_values[TSEG_LIMIT_REG] < mc_values[TOLM_REG]) { - base_kb = ((mc_values[TSEG_LIMIT_REG] + 1) >> 10); - size_kb = (mc_values[TOLM_REG] - mc_values[TSEG_LIMIT_REG]) >> 10; - LOG_MEM_RESOURCE("mmio_tolm", dev, index, base_kb, size_kb); - reserved_ram_resource(dev, index++, base_kb, size_kb); + base = mc_values[TSEG_LIMIT_REG] + 1; + size = mc_values[TOLM_REG] - mc_values[TSEG_LIMIT_REG]; + res = reserved_ram_resource64(dev, index++, base, size); + LOG_RESOURCE("mmio_tolm", dev, res); }
/* 4GiB -> TOHM */ if (mc_values[TOHM_REG] > 0x100000000) { - base_kb = (0x100000000 >> 10); - size_kb = (mc_values[TOHM_REG] - 0x100000000 + 1) >> 10; - LOG_MEM_RESOURCE("high_ram", dev, index, base_kb, size_kb); - ram_resource(dev, index++, base_kb, size_kb); + base = 0x100000000; + size = mc_values[TOHM_REG] - 0x100000000 + 1; + res = ram_resource64(dev, index++, base, size); + LOG_RESOURCE("high_ram", dev, res); }
/* add MMIO CFG resource */ - resource = new_resource(dev, index++); - resource->base = (resource_t) mc_values[MMCFG_BASE_REG]; - resource->size = (resource_t) (mc_values[MMCFG_LIMIT_REG] - - mc_values[MMCFG_BASE_REG] + 1); - resource->flags = IORESOURCE_MEM | IORESOURCE_RESERVE | - IORESOURCE_FIXED | IORESOURCE_STORED | IORESOURCE_ASSIGNED; - LOG_MEM_RESOURCE("mmiocfg_res", dev, index-1, (resource->base >> 10), - (resource->size >> 10)); + res = mmio_resource64(dev, index++, (resource_t)mc_values[MMCFG_BASE_REG], + (resource_t)(mc_values[MMCFG_LIMIT_REG] - mc_values[MMCFG_BASE_REG] + 1)); + LOG_RESOURCE("mmiocfg_res", dev, res);
/* add Local APIC resource */ - resource = new_resource(dev, index++); - resource->base = LAPIC_DEFAULT_BASE; - resource->size = 0x00001000; - resource->flags = IORESOURCE_MEM | IORESOURCE_RESERVE | - IORESOURCE_FIXED | IORESOURCE_STORED | IORESOURCE_ASSIGNED; - LOG_MEM_RESOURCE("apic_res", dev, index-1, (resource->base >> 10), - (resource->size >> 10)); + res = mmio_resource64(dev, index++, LAPIC_DEFAULT_BASE, 0x00001000); + LOG_RESOURCE("apic_res", dev, res);
/* * Add legacy region as reserved - 0xa000 - 1MB @@ -278,15 +268,15 @@ * 0xa0000 - 0xbffff: legacy VGA * 0xc0000 - 0xfffff: RAM */ - base_kb = VGA_BASE_ADDRESS >> 10; - size_kb = VGA_BASE_SIZE >> 10; - LOG_MEM_RESOURCE("legacy_mmio", dev, index, base_kb, size_kb); - mmio_resource(dev, index++, base_kb, size_kb); + base = VGA_BASE_ADDRESS; + size = VGA_BASE_SIZE; + res = mmio_resource64(dev, index++, base, size); + LOG_RESOURCE("legacy_mmio", dev, res);
- base_kb = (0xc0000 >> 10); - size_kb = (0x100000 - 0xc0000) >> 10; - LOG_MEM_RESOURCE("legacy_write_protect", dev, index, base_kb, size_kb); - reserved_ram_resource(dev, index++, base_kb, size_kb); + base = 0xc0000; + size = 0x100000 - 0xc0000; + res = reserved_ram_resource64(dev, index++, base, size); + LOG_RESOURCE("legacy_write_protect", dev, res);
*res_count = index; }