diff options
author | Matt Carlson <mcarlson@broadcom.com> | 2010-08-02 07:26:01 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-08-02 18:46:29 -0400 |
commit | ecc796486f0a7f4958f8dc7550267570dcacb608 (patch) | |
tree | 13e7635fcb2bc11b6fd4e5dac63f78409a1a018c /drivers/net | |
parent | 8c69b1e702527e39c0b4fbda79d2738d186a3908 (diff) |
tg3: Detect APE firmware types
This patch adds code to determine the APE firmware type and report this
along with the firmware version.
Reviewed-by: Benjamin Li <benli@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/tg3.c | 9 | ||||
-rw-r--r-- | drivers/net/tg3.h | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 7c2c81ab4838..a52f52fbb477 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -12710,6 +12710,7 @@ static void __devinit tg3_read_dash_ver(struct tg3 *tp) | |||
12710 | { | 12710 | { |
12711 | int vlen; | 12711 | int vlen; |
12712 | u32 apedata; | 12712 | u32 apedata; |
12713 | char *fwtype; | ||
12713 | 12714 | ||
12714 | if (!(tp->tg3_flags3 & TG3_FLG3_ENABLE_APE) || | 12715 | if (!(tp->tg3_flags3 & TG3_FLG3_ENABLE_APE) || |
12715 | !(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) | 12716 | !(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) |
@@ -12725,9 +12726,15 @@ static void __devinit tg3_read_dash_ver(struct tg3 *tp) | |||
12725 | 12726 | ||
12726 | apedata = tg3_ape_read32(tp, TG3_APE_FW_VERSION); | 12727 | apedata = tg3_ape_read32(tp, TG3_APE_FW_VERSION); |
12727 | 12728 | ||
12729 | if (tg3_ape_read32(tp, TG3_APE_FW_FEATURES) & TG3_APE_FW_FEATURE_NCSI) | ||
12730 | fwtype = "NCSI"; | ||
12731 | else | ||
12732 | fwtype = "DASH"; | ||
12733 | |||
12728 | vlen = strlen(tp->fw_ver); | 12734 | vlen = strlen(tp->fw_ver); |
12729 | 12735 | ||
12730 | snprintf(&tp->fw_ver[vlen], TG3_VER_SIZE - vlen, " DASH v%d.%d.%d.%d", | 12736 | snprintf(&tp->fw_ver[vlen], TG3_VER_SIZE - vlen, " %s v%d.%d.%d.%d", |
12737 | fwtype, | ||
12731 | (apedata & APE_FW_VERSION_MAJMSK) >> APE_FW_VERSION_MAJSFT, | 12738 | (apedata & APE_FW_VERSION_MAJMSK) >> APE_FW_VERSION_MAJSFT, |
12732 | (apedata & APE_FW_VERSION_MINMSK) >> APE_FW_VERSION_MINSFT, | 12739 | (apedata & APE_FW_VERSION_MINMSK) >> APE_FW_VERSION_MINSFT, |
12733 | (apedata & APE_FW_VERSION_REVMSK) >> APE_FW_VERSION_REVSFT, | 12740 | (apedata & APE_FW_VERSION_REVMSK) >> APE_FW_VERSION_REVSFT, |
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h index a7b8ec7b46ca..53b6def942bc 100644 --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h | |||
@@ -2161,6 +2161,8 @@ | |||
2161 | /* APE shared memory. Accessible through BAR1 */ | 2161 | /* APE shared memory. Accessible through BAR1 */ |
2162 | #define TG3_APE_FW_STATUS 0x400c | 2162 | #define TG3_APE_FW_STATUS 0x400c |
2163 | #define APE_FW_STATUS_READY 0x00000100 | 2163 | #define APE_FW_STATUS_READY 0x00000100 |
2164 | #define TG3_APE_FW_FEATURES 0x4010 | ||
2165 | #define TG3_APE_FW_FEATURE_NCSI 0x00000002 | ||
2164 | #define TG3_APE_FW_VERSION 0x4018 | 2166 | #define TG3_APE_FW_VERSION 0x4018 |
2165 | #define APE_FW_VERSION_MAJMSK 0xff000000 | 2167 | #define APE_FW_VERSION_MAJMSK 0xff000000 |
2166 | #define APE_FW_VERSION_MAJSFT 24 | 2168 | #define APE_FW_VERSION_MAJSFT 24 |