summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2017-12-01 12:10:17 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2017-12-06 15:56:09 +0100
commitef79d1498fd95b1a88ed1260d4eedfc25796cb8b (patch)
tree106c51ec51ae0908cd0d13758ef42ee90229487c /drivers
parenta8b64b8745ce415ae0abb4f2bcb1cc66d4894a3c (diff)
downloadbarebox-ef79d1498fd95b1a88ed1260d4eedfc25796cb8b.tar.gz
barebox-ef79d1498fd95b1a88ed1260d4eedfc25796cb8b.tar.xz
net/e1000: indicate at boot time if flash is in secure mode
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@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/e1000/e1000.h1
-rw-r--r--drivers/net/e1000/eeprom.c10
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h
index 50d49118f5..1558b3c7f5 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 e4c5b9c27a..23fb05ec72 100644
--- a/drivers/net/e1000/eeprom.c
+++ b/drivers/net/e1000/eeprom.c
@@ -1568,10 +1568,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");
}