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

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

tg3: Add DASH firmware version reporting



This patch adds code to report the DASH firmware version.

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 ff3a7cb2
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -11606,6 +11606,34 @@ static void __devinit tg3_read_mgmtfw_ver(struct tg3 *tp)
	}
}

static void __devinit tg3_read_dash_ver(struct tg3 *tp)
{
	int vlen;
	u32 apedata;

	if (!(tp->tg3_flags3 & TG3_FLG3_ENABLE_APE) ||
	    !(tp->tg3_flags  & TG3_FLAG_ENABLE_ASF))
		return;

	apedata = tg3_ape_read32(tp, TG3_APE_SEG_SIG);
	if (apedata != APE_SEG_SIG_MAGIC)
		return;

	apedata = tg3_ape_read32(tp, TG3_APE_FW_STATUS);
	if (!(apedata & APE_FW_STATUS_READY))
		return;

	apedata = tg3_ape_read32(tp, TG3_APE_FW_VERSION);

	vlen = strlen(tp->fw_ver);

	snprintf(&tp->fw_ver[vlen], TG3_VER_SIZE - vlen, " DASH v%d.%d.%d.%d",
		 (apedata & APE_FW_VERSION_MAJMSK) >> APE_FW_VERSION_MAJSFT,
		 (apedata & APE_FW_VERSION_MINMSK) >> APE_FW_VERSION_MINSFT,
		 (apedata & APE_FW_VERSION_REVMSK) >> APE_FW_VERSION_REVSFT,
		 (apedata & APE_FW_VERSION_BLDMSK));
}

static void __devinit tg3_read_fw_ver(struct tg3 *tp)
{
	u32 val;
@@ -13279,6 +13307,9 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
		}

		tg3_ape_lock_init(tp);

		if (tp->tg3_flags & TG3_FLAG_ENABLE_ASF)
			tg3_read_dash_ver(tp);
	}

	/*
+8 −0
Original line number Diff line number Diff line
@@ -1971,6 +1971,14 @@
/* APE shared memory.  Accessible through BAR1 */
#define TG3_APE_FW_STATUS		0x400c
#define  APE_FW_STATUS_READY		 0x00000100
#define TG3_APE_FW_VERSION		0x4018
#define  APE_FW_VERSION_MAJMSK		 0xff000000
#define  APE_FW_VERSION_MAJSFT		 24
#define  APE_FW_VERSION_MINMSK		 0x00ff0000
#define  APE_FW_VERSION_MINSFT		 16
#define  APE_FW_VERSION_REVMSK		 0x0000ff00
#define  APE_FW_VERSION_REVSFT		 8
#define  APE_FW_VERSION_BLDMSK		 0x000000ff
#define TG3_APE_HOST_SEG_SIG		0x4200
#define  APE_HOST_SEG_SIG_MAGIC		 0x484f5354
#define TG3_APE_HOST_SEG_LEN		0x4204