Provide a workaround for setting the correct endianness when doing CFI on
a mips big-endian board. This is (hopefully! ish!) a temporary change until a slightly better way can be found to express this without a config option. Tested: * BUFFALO WZR-HP-G300NH 1stGen (by submitter) Submitted by: Mori Hiroki <yamori813@yahoo.co.jp>
This commit is contained in:
parent
24e61dbfdd
commit
3f84dfc1cd
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=295284
@ -918,6 +918,7 @@ VNET_DEBUG opt_global.h
|
||||
# Common Flash Interface (CFI) options
|
||||
CFI_SUPPORT_STRATAFLASH opt_cfi.h
|
||||
CFI_ARMEDANDDANGEROUS opt_cfi.h
|
||||
CFI_HARDWAREBYTESWAP opt_cfi.h
|
||||
|
||||
# Sound options
|
||||
SND_DEBUG opt_snd.h
|
||||
|
@ -99,11 +99,17 @@ cfi_read(struct cfi_softc *sc, u_int ofs)
|
||||
break;
|
||||
case 2:
|
||||
sval = bus_space_read_2(sc->sc_tag, sc->sc_handle, ofs);
|
||||
#ifdef CFI_HARDWAREBYTESWAP
|
||||
val = sval;
|
||||
#else
|
||||
val = le16toh(sval);
|
||||
#endif
|
||||
break;
|
||||
case 4:
|
||||
val = bus_space_read_4(sc->sc_tag, sc->sc_handle, ofs);
|
||||
#ifndef CFI_HARDWAREBYTESWAP
|
||||
val = le32toh(val);
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
val = ~0;
|
||||
@ -122,10 +128,19 @@ cfi_write(struct cfi_softc *sc, u_int ofs, u_int val)
|
||||
bus_space_write_1(sc->sc_tag, sc->sc_handle, ofs, val);
|
||||
break;
|
||||
case 2:
|
||||
#ifdef CFI_HARDWAREBYTESWAP
|
||||
bus_space_write_2(sc->sc_tag, sc->sc_handle, ofs, val);
|
||||
#else
|
||||
bus_space_write_2(sc->sc_tag, sc->sc_handle, ofs, htole16(val));
|
||||
|
||||
#endif
|
||||
break;
|
||||
case 4:
|
||||
#ifdef CFI_HARDWAREBYTESWAP
|
||||
bus_space_write_4(sc->sc_tag, sc->sc_handle, ofs, val);
|
||||
#else
|
||||
bus_space_write_4(sc->sc_tag, sc->sc_handle, ofs, htole32(val));
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user