On ChromiumOS devices, the ecc_size is set to 0 (check dmesg | grep ecc to see `ecc: 0`): this disables ECC for ramoops region, even when ramoops.ecc=1 is given to kernel command line parameter.
This patch introduces ecc_size module parameter to provide an method to turn on ECC for ramoops and set different values of ecc_size per devices. Signed-off-by: Naoya Tezuka <[email protected]> --- v2: - Remove an unnecessary blank line v1: https://lore.kernel.org/lkml/[email protected]/ --- drivers/platform/chrome/chromeos_pstore.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/platform/chrome/chromeos_pstore.c b/drivers/platform/chrome/chromeos_pstore.c index f37c0ef4af1f..28e26aa99cdf 100644 --- a/drivers/platform/chrome/chromeos_pstore.c +++ b/drivers/platform/chrome/chromeos_pstore.c @@ -9,6 +9,10 @@ #include <linux/platform_device.h> #include <linux/pstore_ram.h> +static int ecc_size; +module_param(ecc_size, int, 0444); +MODULE_PARM_DESC(ecc_size, "ECC parity data size in bytes. A positive value enables ECC for the ramoops region."); + static const struct dmi_system_id chromeos_pstore_dmi_table[] __initconst = { { /* @@ -117,6 +121,9 @@ static int __init chromeos_pstore_init(void) { bool acpi_dev_found; + if (ecc_size > 0) + chromeos_ramoops_data.ecc_info.ecc_size = ecc_size; + /* First check ACPI for non-hardcoded values from firmware. */ acpi_dev_found = chromeos_check_acpi(); -- 2.50.0.rc0.604.gd4ff7b7c86-goog
