From cb0c40d3503badee7939393360903ebdc904609a Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Thu, 14 Dec 2017 13:53:14 -0700 Subject: soc/intel/common: remove nvm headers and c file There's no sense in having the nvm abstraction in its own files. Put that support directly into mrc_cache.c. BUG=b:69614064 Change-Id: I0f1a801c6e1a8c35f70faf9e4318bdc45955047a Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/22883 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/soc/intel/common/Makefile.inc | 1 - src/soc/intel/common/mrc_cache.c | 44 +++++++++++++++++++++++++- src/soc/intel/common/nvm.c | 65 --------------------------------------- src/soc/intel/common/nvm.h | 27 ---------------- 4 files changed, 43 insertions(+), 94 deletions(-) delete mode 100644 src/soc/intel/common/nvm.c delete mode 100644 src/soc/intel/common/nvm.h (limited to 'src/soc/intel/common') diff --git a/src/soc/intel/common/Makefile.inc b/src/soc/intel/common/Makefile.inc index 50f7e9e555..c913cfd195 100644 --- a/src/soc/intel/common/Makefile.inc +++ b/src/soc/intel/common/Makefile.inc @@ -20,7 +20,6 @@ postcar-$(CONFIG_SOC_INTEL_COMMON_RESET) += reset.c ramstage-y += hda_verb.c ramstage-$(CONFIG_CACHE_MRC_SETTINGS) += mrc_cache.c -ramstage-$(CONFIG_CACHE_MRC_SETTINGS) += nvm.c ramstage-$(CONFIG_SOC_INTEL_COMMON_RESET) += reset.c ramstage-y += util.c ramstage-$(CONFIG_MMA) += mma.c diff --git a/src/soc/intel/common/mrc_cache.c b/src/soc/intel/common/mrc_cache.c index 8720c9df05..3a9689645f 100644 --- a/src/soc/intel/common/mrc_cache.c +++ b/src/soc/intel/common/mrc_cache.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -24,9 +25,9 @@ #include #include #include +#include #include "mrc_cache.h" -#include "nvm.h" #define DEFAULT_MRC_CACHE "RW_MRC_CACHE" #define VARIABLE_MRC_CACHE "RW_VAR_MRC_CACHE" @@ -441,6 +442,47 @@ static void update_mrc_cache_by_type(int type) log_event_cache_update(cr->elog_slot, UPDATE_SUCCESS); } +/* Read flash status register to determine if write protect is active */ +static int nvm_is_write_protected(void) +{ + u8 sr1; + u8 wp_gpio; + u8 wp_spi; + + if (!IS_ENABLED(CONFIG_CHROMEOS)) + return 0; + + if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH)) + return 0; + + /* Read Write Protect GPIO if available */ + wp_gpio = get_write_protect_state(); + + /* Read Status Register 1 */ + if (spi_flash_status(boot_device_spi_flash(), &sr1) < 0) { + printk(BIOS_ERR, "Failed to read SPI status register 1\n"); + return -1; + } + wp_spi = !!(sr1 & 0x80); + + printk(BIOS_DEBUG, "SPI flash protection: WPSW=%d SRP0=%d\n", + wp_gpio, wp_spi); + + return wp_gpio && wp_spi; +} + +/* Apply protection to a range of flash */ +static int nvm_protect(const struct region *r) +{ + if (!IS_ENABLED(CONFIG_MRC_SETTINGS_PROTECT)) + return 0; + + if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH)) + return 0; + + return spi_flash_ctrlr_protect_region(boot_device_spi_flash(), r); +} + /* Protect mrc region with a Protected Range Register */ static int protect_mrc_cache(const char *name) { diff --git a/src/soc/intel/common/nvm.c b/src/soc/intel/common/nvm.c deleted file mode 100644 index 61b7a65991..0000000000 --- a/src/soc/intel/common/nvm.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2014 Google Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "nvm.h" - -/* Read flash status register to determine if write protect is active */ -int nvm_is_write_protected(void) -{ - u8 sr1; - u8 wp_gpio; - u8 wp_spi; - - if (!IS_ENABLED(CONFIG_CHROMEOS)) - return 0; - - if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH)) - return 0; - - /* Read Write Protect GPIO if available */ - wp_gpio = get_write_protect_state(); - - /* Read Status Register 1 */ - if (spi_flash_status(boot_device_spi_flash(), &sr1) < 0) { - printk(BIOS_ERR, "Failed to read SPI status register 1\n"); - return -1; - } - wp_spi = !!(sr1 & 0x80); - - printk(BIOS_DEBUG, "SPI flash protection: WPSW=%d SRP0=%d\n", - wp_gpio, wp_spi); - - return wp_gpio && wp_spi; -} - -/* Apply protection to a range of flash */ -int nvm_protect(const struct region *r) -{ - if (!IS_ENABLED(CONFIG_MRC_SETTINGS_PROTECT)) - return 0; - - if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH)) - return 0; - - return spi_flash_ctrlr_protect_region(boot_device_spi_flash(), r); -} diff --git a/src/soc/intel/common/nvm.h b/src/soc/intel/common/nvm.h deleted file mode 100644 index 1e32ed8637..0000000000 --- a/src/soc/intel/common/nvm.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2014 Google Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _COMMON_NVM_H_ -#define _COMMON_NVM_H_ - -#include - -/* Determine if flash device is write protected */ -int nvm_is_write_protected(void); - -/* Apply protection to a range of flash */ -int nvm_protect(const struct region *region); - -#endif /* _COMMON_NVM_H_ */ -- cgit v1.2.3