Lines Matching refs:fw
6685 struct iwn_fw_info *fw = &sc->fw; in iwn4965_load_firmware() local
6693 memcpy(dma->vaddr, fw->init.data, fw->init.datasz); in iwn4965_load_firmware()
6695 fw->init.text, fw->init.textsz); in iwn4965_load_firmware()
6702 iwn_prph_write(sc, IWN_BSM_DRAM_DATA_SIZE, fw->init.datasz); in iwn4965_load_firmware()
6705 iwn_prph_write(sc, IWN_BSM_DRAM_TEXT_SIZE, fw->init.textsz); in iwn4965_load_firmware()
6709 error = iwn4965_load_bootcode(sc, fw->boot.text, fw->boot.textsz); in iwn4965_load_firmware()
6734 memcpy(dma->vaddr, fw->main.data, fw->main.datasz); in iwn4965_load_firmware()
6736 fw->main.text, fw->main.textsz); in iwn4965_load_firmware()
6743 iwn_prph_write(sc, IWN_BSM_DRAM_DATA_SIZE, fw->main.datasz); in iwn4965_load_firmware()
6747 IWN_FW_UPDATED | fw->main.textsz); in iwn4965_load_firmware()
6803 struct iwn_fw_part *fw; in iwn5000_load_firmware() local
6807 fw = (sc->sc_flags & IWN_FLAG_CALIB_DONE) ? in iwn5000_load_firmware()
6808 &sc->fw.main : &sc->fw.init; in iwn5000_load_firmware()
6811 fw->text, fw->textsz); in iwn5000_load_firmware()
6818 fw->data, fw->datasz); in iwn5000_load_firmware()
6834 iwn_read_firmware_leg(struct iwn_softc *sc, struct iwn_fw_info *fw) in iwn_read_firmware_leg() argument
6842 ptr = (const uint32_t *)fw->data; in iwn_read_firmware_leg()
6856 if (fw->size < hdrlen) { in iwn_read_firmware_leg()
6858 "!firmware too short: %lld bytes", (longlong_t)fw->size); in iwn_read_firmware_leg()
6861 fw->main.textsz = le32toh(*ptr++); in iwn_read_firmware_leg()
6862 fw->main.datasz = le32toh(*ptr++); in iwn_read_firmware_leg()
6863 fw->init.textsz = le32toh(*ptr++); in iwn_read_firmware_leg()
6864 fw->init.datasz = le32toh(*ptr++); in iwn_read_firmware_leg()
6865 fw->boot.textsz = le32toh(*ptr++); in iwn_read_firmware_leg()
6868 if (fw->size < hdrlen + fw->main.textsz + fw->main.datasz + in iwn_read_firmware_leg()
6869 fw->init.textsz + fw->init.datasz + fw->boot.textsz) { in iwn_read_firmware_leg()
6871 "!firmware too short: %lld bytes", (longlong_t)fw->size); in iwn_read_firmware_leg()
6876 fw->main.text = (const uint8_t *)ptr; in iwn_read_firmware_leg()
6877 fw->main.data = fw->main.text + fw->main.textsz; in iwn_read_firmware_leg()
6878 fw->init.text = fw->main.data + fw->main.datasz; in iwn_read_firmware_leg()
6879 fw->init.data = fw->init.text + fw->init.textsz; in iwn_read_firmware_leg()
6880 fw->boot.text = fw->init.data + fw->init.datasz; in iwn_read_firmware_leg()
6888 iwn_read_firmware_tlv(struct iwn_softc *sc, struct iwn_fw_info *fw, in iwn_read_firmware_tlv() argument
6898 if (fw->size < sizeof (*hdr)) { in iwn_read_firmware_tlv()
6900 "!firmware too short: %lld bytes", (longlong_t)fw->size); in iwn_read_firmware_tlv()
6903 hdr = (const struct iwn_fw_tlv_hdr *)fw->data; in iwn_read_firmware_tlv()
6920 end = (const uint8_t *)(fw->data + fw->size); in iwn_read_firmware_tlv()
6931 (longlong_t)fw->size); in iwn_read_firmware_tlv()
6942 fw->main.text = ptr; in iwn_read_firmware_tlv()
6943 fw->main.textsz = len; in iwn_read_firmware_tlv()
6946 fw->main.data = ptr; in iwn_read_firmware_tlv()
6947 fw->main.datasz = len; in iwn_read_firmware_tlv()
6950 fw->init.text = ptr; in iwn_read_firmware_tlv()
6951 fw->init.textsz = len; in iwn_read_firmware_tlv()
6954 fw->init.data = ptr; in iwn_read_firmware_tlv()
6955 fw->init.datasz = len; in iwn_read_firmware_tlv()
6958 fw->boot.text = ptr; in iwn_read_firmware_tlv()
6959 fw->boot.textsz = len; in iwn_read_firmware_tlv()
7003 struct iwn_fw_info *fw = &sc->fw; in iwn_read_firmware() local
7016 fw->data = NULL; in iwn_read_firmware()
7017 fw->size = 0; in iwn_read_firmware()
7025 fw->size = firmware_get_size(fwh); in iwn_read_firmware()
7026 if (fw->size < sizeof (uint32_t)) { in iwn_read_firmware()
7028 "!firmware too short: %lld bytes", (longlong_t)fw->size); in iwn_read_firmware()
7034 fw->data = kmem_alloc(fw->size, KM_SLEEP); in iwn_read_firmware()
7035 error = firmware_read(fwh, 0, fw->data, fw->size); in iwn_read_firmware()
7045 if (*(const uint32_t *)fw->data != 0) /* Legacy image. */ in iwn_read_firmware()
7046 error = iwn_read_firmware_leg(sc, fw); in iwn_read_firmware()
7048 error = iwn_read_firmware_tlv(sc, fw, 1); in iwn_read_firmware()
7056 if (fw->main.textsz > sc->fw_text_maxsz || in iwn_read_firmware()
7057 fw->main.datasz > sc->fw_data_maxsz || in iwn_read_firmware()
7058 fw->init.textsz > sc->fw_text_maxsz || in iwn_read_firmware()
7059 fw->init.datasz > sc->fw_data_maxsz || in iwn_read_firmware()
7060 fw->boot.textsz > IWN_FW_BOOT_TEXT_MAXSZ || in iwn_read_firmware()
7061 (fw->boot.textsz & 3) != 0) { in iwn_read_firmware()
7070 kmem_free(fw->data, fw->size); in iwn_read_firmware()
7071 fw->data = NULL; in iwn_read_firmware()
7072 fw->size = 0; in iwn_read_firmware()
7494 ASSERT(sc->fw.data != NULL && sc->fw.size > 0); in iwn_init()