[PATCH] net/e1000: indicate at boot time if flash is in secure mode
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Fri Dec 1 03:10:17 PST 2017
If the flash is in secure mode it is not possible to modify its
contents. So log that useful information at probe time.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
drivers/net/e1000/e1000.h | 1 +
drivers/net/e1000/eeprom.c | 10 +++++++---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h
index 50d49118f5e4..1558b3c7f5c7 100644
--- a/drivers/net/e1000/e1000.h
+++ b/drivers/net/e1000/e1000.h
@@ -2101,6 +2101,7 @@ struct e1000_eeprom_info {
after IMS clear */
#define E1000_FLA 0x1201C
+#define E1000_FLA_LOCKED (1 << 6)
#define E1000_FLA_FL_SIZE_SHIFT 17
#define E1000_FLA_FL_SIZE_MASK (0b111 << E1000_FLA_FL_SIZE_SHIFT) /* EEprom Size */
diff --git a/drivers/net/e1000/eeprom.c b/drivers/net/e1000/eeprom.c
index 6251c6cecc94..51e0f28c7d44 100644
--- a/drivers/net/e1000/eeprom.c
+++ b/drivers/net/e1000/eeprom.c
@@ -1584,10 +1584,14 @@ int e1000_register_eeprom(struct e1000_hw *hw)
if (eecd & E1000_EECD_AUTO_RD) {
if (eecd & E1000_EECD_EE_PRES) {
- if (eecd & E1000_EECD_FLASH_IN_USE)
- dev_info(hw->dev, "Hardware programmed from flash\n");
- else
+ if (eecd & E1000_EECD_FLASH_IN_USE) {
+ uint32_t fla = e1000_read_reg(hw, E1000_FLA);
+ dev_info(hw->dev,
+ "Hardware programmed from flash (%ssecure)\n",
+ fla & E1000_FLA_LOCKED ? "" : "un");
+ } else {
dev_info(hw->dev, "Hardware programmed from iNVM\n");
+ }
} else {
dev_warn(hw->dev, "Shadow RAM invalid\n");
}
--
2.11.0
More information about the barebox
mailing list