Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6f6cb1c authored by Matt Carlson's avatar Matt Carlson Committed by David S. Miller
Browse files

tg3: Add version reporting for hardware selfboot



This patch adds version reporting for hardware selfboot.

Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
Signed-off-by: default avatarBenjamin Li <benli@broadcom.com>
Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7fd76445
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -11509,6 +11509,22 @@ static void __devinit tg3_read_bc_ver(struct tg3 *tp)
	}
}

static void __devinit tg3_read_hwsb_ver(struct tg3 *tp)
{
	u32 val, major, minor;

	/* Use native endian representation */
	if (tg3_nvram_read(tp, TG3_NVM_HWSB_CFG1, &val))
		return;

	major = (val & TG3_NVM_HWSB_CFG1_MAJMSK) >>
		TG3_NVM_HWSB_CFG1_MAJSFT;
	minor = (val & TG3_NVM_HWSB_CFG1_MINMSK) >>
		TG3_NVM_HWSB_CFG1_MINSFT;

	snprintf(&tp->fw_ver[0], 32, "sb v%d.%02d", major, minor);
}

static void __devinit tg3_read_sb_ver(struct tg3 *tp, u32 val)
{
	u32 offset, major, minor, build;
@@ -11645,6 +11661,8 @@ static void __devinit tg3_read_fw_ver(struct tg3 *tp)
		tg3_read_bc_ver(tp);
	else if ((val & TG3_EEPROM_MAGIC_FW_MSK) == TG3_EEPROM_MAGIC_FW)
		tg3_read_sb_ver(tp, val);
	else if ((val & TG3_EEPROM_MAGIC_HW_MSK) == TG3_EEPROM_MAGIC_HW)
		tg3_read_hwsb_ver(tp);
	else
		return;

+6 −0
Original line number Diff line number Diff line
@@ -1719,6 +1719,12 @@

#define TG3_OTP_DEFAULT			0x286c1640

/* Hardware Selfboot NVRAM layout */
#define TG3_NVM_HWSB_CFG1		0x00000004
#define  TG3_NVM_HWSB_CFG1_MAJMSK	0xf8000000
#define  TG3_NVM_HWSB_CFG1_MAJSFT	27
#define  TG3_NVM_HWSB_CFG1_MINMSK	0x07c00000
#define  TG3_NVM_HWSB_CFG1_MINSFT	22

#define TG3_EEPROM_MAGIC		0x669955aa
#define TG3_EEPROM_MAGIC_FW		0xa5000000