From 7a9a5cec0b855b0e7c5b22210239c55b772a4c86 Mon Sep 17 00:00:00 2001 From: Dino Li Date: Wed, 2 Mar 2022 10:21:22 +0800 Subject: [PATCH] it8xxx2: espi: reduce h2ram pool size This saves 1280 bytes memory space by default eSPI configurations. Signed-off-by: Dino Li --- drivers/espi/espi_it8xxx2.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/espi/espi_it8xxx2.c b/drivers/espi/espi_it8xxx2.c index f878b184a96..58fcae32371 100644 --- a/drivers/espi/espi_it8xxx2.c +++ b/drivers/espi/espi_it8xxx2.c @@ -188,14 +188,12 @@ static const struct ec2i_t pmc2_settings[] = { * Eg. the I/O cycle 800h~8ffh from host can be mapped to x800h~x8ffh. * Linker script of h2ram.ld will make the pool 4K aligned. */ -#define IT8XXX2_ESPI_H2RAM_POOL_SIZE 0x1000 -static uint8_t h2ram_pool[IT8XXX2_ESPI_H2RAM_POOL_SIZE] - __attribute__((section(".h2ram_pool"))); +#define IT8XXX2_ESPI_H2RAM_POOL_SIZE_MAX 0x1000 #if defined(CONFIG_ESPI_PERIPHERAL_ACPI_SHM_REGION) #define H2RAM_ACPI_SHM_MAX ((CONFIG_ESPI_IT8XXX2_ACPI_SHM_H2RAM_SIZE) + \ (CONFIG_ESPI_PERIPHERAL_ACPI_SHM_REGION_PORT_NUM)) -#if (H2RAM_ACPI_SHM_MAX > IT8XXX2_ESPI_H2RAM_POOL_SIZE) +#if (H2RAM_ACPI_SHM_MAX > IT8XXX2_ESPI_H2RAM_POOL_SIZE_MAX) #error "ACPI shared memory region out of h2ram" #endif #endif /* CONFIG_ESPI_PERIPHERAL_ACPI_SHM_REGION */ @@ -203,7 +201,7 @@ static uint8_t h2ram_pool[IT8XXX2_ESPI_H2RAM_POOL_SIZE] #if defined(CONFIG_ESPI_PERIPHERAL_EC_HOST_CMD) #define H2RAM_EC_HOST_CMD_MAX ((CONFIG_ESPI_IT8XXX2_HC_H2RAM_SIZE) + \ (CONFIG_ESPI_PERIPHERAL_HOST_CMD_PARAM_PORT_NUM)) -#if (H2RAM_EC_HOST_CMD_MAX > IT8XXX2_ESPI_H2RAM_POOL_SIZE) +#if (H2RAM_EC_HOST_CMD_MAX > IT8XXX2_ESPI_H2RAM_POOL_SIZE_MAX) #error "EC host command parameters out of h2ram" #endif #endif /* CONFIG_ESPI_PERIPHERAL_EC_HOST_CMD */ @@ -217,6 +215,9 @@ static uint8_t h2ram_pool[IT8XXX2_ESPI_H2RAM_POOL_SIZE] #endif #endif +static uint8_t h2ram_pool[MAX(H2RAM_ACPI_SHM_MAX, H2RAM_EC_HOST_CMD_MAX)] + __attribute__((section(".h2ram_pool"))); + #define H2RAM_WINDOW_SIZE(ram_size) ((find_msb_set((ram_size) / 16) - 1) & 0x7) static const struct ec2i_t smfi_settings[] = { @@ -240,7 +241,7 @@ static void smfi_it8xxx2_init(const struct device *dev) /* Set the host to RAM cycle address offset */ h2ram_offset = ((uint32_t)h2ram_pool & 0xffff) / - IT8XXX2_ESPI_H2RAM_POOL_SIZE; + IT8XXX2_ESPI_H2RAM_POOL_SIZE_MAX; gctrl->GCTRL_H2ROFSR |= h2ram_offset; #ifdef CONFIG_ESPI_PERIPHERAL_EC_HOST_CMD