Lines Matching +full:rom +full:- +full:val

3 /*-
6 * Copyright (c) 2015-2016 Andriy Voskoboinyk <avos@FreeBSD.org>
82 rtwn_efuse_read_next(struct rtwn_softc *sc, uint8_t *val) in rtwn_efuse_read_next() argument
87 if (sc->next_rom_addr >= sc->efuse_maxlen) in rtwn_efuse_read_next()
91 reg = RW(reg, R92C_EFUSE_CTRL_ADDR, sc->next_rom_addr); in rtwn_efuse_read_next()
105 device_printf(sc->sc_dev, in rtwn_efuse_read_next()
107 sc->next_rom_addr); in rtwn_efuse_read_next()
111 *val = MS(reg, R92C_EFUSE_CTRL_DATA); in rtwn_efuse_read_next()
112 sc->next_rom_addr++; in rtwn_efuse_read_next()
118 rtwn_efuse_read_data(struct rtwn_softc *sc, uint8_t *rom, uint8_t off, in rtwn_efuse_read_data() argument
129 if (addr + 1 >= sc->efuse_maplen) in rtwn_efuse_read_data()
135 RTWN_DPRINTF(sc, RTWN_DEBUG_ROM, "rom[0x%03X] == 0x%02X\n", in rtwn_efuse_read_data()
137 rom[addr] = reg; in rtwn_efuse_read_data()
142 RTWN_DPRINTF(sc, RTWN_DEBUG_ROM, "rom[0x%03X] == 0x%02X\n", in rtwn_efuse_read_data()
144 rom[addr + 1] = reg; in rtwn_efuse_read_data()
152 rtwn_dump_rom_contents(struct rtwn_softc *sc, uint8_t *rom, uint16_t size) in rtwn_dump_rom_contents() argument
156 /* Dump ROM contents. */ in rtwn_dump_rom_contents()
157 device_printf(sc->sc_dev, "%s:", __func__); in rtwn_dump_rom_contents()
164 printf("%02X", rom[i]); in rtwn_dump_rom_contents()
171 rtwn_efuse_read(struct rtwn_softc *sc, uint8_t *rom, uint16_t size) in rtwn_efuse_read() argument
180 /* Read full ROM image. */ in rtwn_efuse_read()
181 sc->next_rom_addr = 0; in rtwn_efuse_read()
182 memset(rom, 0xff, size); in rtwn_efuse_read()
187 if ((sc->sc_flags & RTWN_FLAG_EXT_HDR) && in rtwn_efuse_read()
200 RTWN_CHK(rtwn_efuse_read_data(sc, rom, off, msk)); in rtwn_efuse_read()
207 if (sc->sc_debug & RTWN_DEBUG_ROM) in rtwn_efuse_read()
208 rtwn_dump_rom_contents(sc, rom, size); in rtwn_efuse_read()
211 /* Device-specific. */ in rtwn_efuse_read()
215 device_printf(sc->sc_dev, "%s: error while reading ROM\n", in rtwn_efuse_read()
224 rtwn_efuse_read_prepare(struct rtwn_softc *sc, uint8_t *rom, uint16_t size) in rtwn_efuse_read_prepare() argument
232 error = rtwn_efuse_read(sc, rom, size); in rtwn_efuse_read_prepare()
243 uint8_t *rom; in rtwn_read_rom() local
246 rom = malloc(sc->efuse_maplen, M_TEMP, M_WAITOK); in rtwn_read_rom()
248 /* Read full ROM image. */ in rtwn_read_rom()
250 error = rtwn_efuse_read_prepare(sc, rom, sc->efuse_maplen); in rtwn_read_rom()
256 rtwn_parse_rom(sc, rom); in rtwn_read_rom()
259 free(rom, M_TEMP); in rtwn_read_rom()