If we're going to (for 23XX and 24XX cards) DMA firmware from the
request queues rather than shove it down a word at a time, we have to remember to put it into little endian format. Use the macros ISP_IOXPUT_{16,32} for this purpose. Otherwise, on sparc the firmware is loaded garbled and we get a (not surprisingly) firmware checksum failure and the card won't start and we don't attach it. Approved by: re (bruce) MFC after: 3 days
This commit is contained in:
parent
d98db3b7b2
commit
530755ca2d
@ -812,7 +812,7 @@ isp_reset(ispsoftc_t *isp)
|
||||
}
|
||||
cp = isp->isp_rquest;
|
||||
for (i = 0; i < nw; i++) {
|
||||
cp[i] = ptr[wi++];
|
||||
ISP_IOXPUT_32(isp, ptr[wi++], &cp[i]);
|
||||
wl--;
|
||||
}
|
||||
MEMORYBARRIER(isp, SYNC_REQUEST,
|
||||
@ -875,7 +875,7 @@ isp_reset(ispsoftc_t *isp)
|
||||
}
|
||||
cp = isp->isp_rquest;
|
||||
for (i = 0; i < nw; i++) {
|
||||
cp[i] = ptr[wi++];
|
||||
ISP_IOXPUT_16(isp, ptr[wi++], &cp[i]);
|
||||
wl--;
|
||||
}
|
||||
MEMORYBARRIER(isp, SYNC_REQUEST,
|
||||
|
Loading…
Reference in New Issue
Block a user