Attention is currently required from: Lance Zhao, Marc Jones, Anjaneya "Reddy" Chagam, Martin Roth, Johnny Lin, Rocky Phagura, Tim Wawrzynczak, David Hendricks, Angel Pons, Morgan Jang, Patrick Rudolph, Tim Chu.
2 comments:
File src/soc/intel/xeon_sp/include/soc/hest.h:
typedef struct acpi_gen_regaddr1 {
u8 space_id; /* Address space ID */
u8 bit_width; /* Register size in bits */
u8 bit_offset; /* Register bit offset */
u8 access_size; /* Access size since ACPI 2.0c */
u64 addr; /* Register address */
} __packed acpi_addr64_t;
This is in `acpi. […]
Done...fixed.
File src/soc/intel/xeon_sp/uncore.c:
/* Reserve memory for Enhanced error logging */
if (CONFIG(SOC_RAS_ELOG)) {
base_kb = cbmem_top_addr >> 10;
size_kb = CONFIG_ERROR_LOG_BUFFER_SIZE >> 10;
LOG_MEM_RESOURCE("elog_sts_blk", dev, index, base_kb, size_kb);
reserved_ram_resource(dev, index++, base_kb, size_kb);
elog_addr = cbmem_top_addr;
printk(BIOS_DEBUG, "%s elog_addr = %llx size = %x\n",
__func__, elog_addr, CONFIG_ERROR_LOG_BUFFER_SIZE);
}
Looks like the reserved region is placed right above CBMEM top. […]
So previously I started out using cbmem_add() for reserving this memory and for the EINJ patch. The problem was; cbmem_add labels the memory as type 16 in e820 table. Type 16 is Unknown to the OS (cat /proc/iomem). So using the cbmem_add mechanism, the APEI driver fails to load becuase the memory is unknown. If I reserve the memory as a dram resource like above, its marked as "reserved" in E820 table then APEI driver loads properly since it recognizes this memory to be valid (which is reserved).
Regarding the overlap, I'm not sure how to notify cbmem of this memory reservation. I'm not aware of a specific method that allows adding of "reserved" memory. If you know of one, let me know and I can try it out.
To view, visit change 52090. To unsubscribe, or for help writing mail filters, visit settings.