git: f0275240dc3d - stable/13 - isp(4): Fix reading NVRAM contents for 28xx based devices

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Fri, 19 Jan 2024 16:53:29 UTC
The branch stable/13 has been updated by mav:

URL: https://cgit.FreeBSD.org/src/commit/?id=f0275240dc3dea56c498a8e41e56c00761d3a597

commit f0275240dc3dea56c498a8e41e56c00761d3a597
Author:     Joerg Pulz <Joerg.Pulz@frm2.tum.de>
AuthorDate: 2023-07-07 21:43:34 +0000
Commit:     Alexander Motin <mav@FreeBSD.org>
CommitDate: 2024-01-19 16:51:45 +0000

    isp(4): Fix reading NVRAM contents for 28xx based devices
    
    Use correct NVRAM address for ISP28xx based HBAs to read NVRAM contents.
      WWPN/WWNN and framesize are correctly read from NVRAM now.
    
    PR: 271062
    Reviewed by: imp, mav
    Sponsored by: Technical University of Munich
    Pull Request: https://github.com/freebsd/freebsd-src/pull/726
    
    (cherry picked from commit f76f7fefa1bb5dc2ec0c9e44740faac0b46dac25)
---
 sys/dev/isp/isp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c
index 6940397d10b4..eddf175e669b 100644
--- a/sys/dev/isp/isp.c
+++ b/sys/dev/isp/isp.c
@@ -4379,7 +4379,9 @@ isp_rd_2400_nvram(ispsoftc_t *isp, uint32_t addr, uint32_t *rp)
 	uint32_t base = 0x7ffe0000;
 	uint32_t tmp = 0;
 
-	if (IS_26XX(isp)) {
+	if (IS_28XX(isp)) {
+		base = 0x7fad0000;	/* 0x7f7d0000 + 0x300000 */
+	} else if (IS_26XX(isp)) {
 		base = 0x7fe7c000;	/* XXX: Observation, may be wrong. */
 	} else if (IS_25XX(isp)) {
 		base = 0x7ff00000 | 0x48000;