Lines Matching refs:state

52 static int tavor_ioctl_flash_read(tavor_state_t *state, dev_t dev,
54 static int tavor_ioctl_flash_write(tavor_state_t *state, dev_t dev,
56 static int tavor_ioctl_flash_erase(tavor_state_t *state, dev_t dev,
58 static int tavor_ioctl_flash_init(tavor_state_t *state, dev_t dev,
60 static int tavor_ioctl_flash_fini(tavor_state_t *state, dev_t dev);
61 static void tavor_ioctl_flash_cleanup(tavor_state_t *state);
62 static void tavor_ioctl_flash_cleanup_nolock(tavor_state_t *state);
64 static int tavor_ioctl_reg_write(tavor_state_t *state, intptr_t arg,
66 static int tavor_ioctl_reg_read(tavor_state_t *state, intptr_t arg,
69 static int tavor_ioctl_info(tavor_state_t *state, dev_t dev,
71 static int tavor_ioctl_ports(tavor_state_t *state, intptr_t arg,
73 static int tavor_ioctl_loopback(tavor_state_t *state, intptr_t arg,
75 static int tavor_ioctl_ddr_read(tavor_state_t *state, intptr_t arg,
79 static void tavor_flash_read_sector(tavor_state_t *state, uint32_t sector_num);
80 static void tavor_flash_read_quadlet(tavor_state_t *state, uint32_t *data,
82 static int tavor_flash_write_sector(tavor_state_t *state, uint32_t sector_num);
83 static int tavor_flash_write_byte(tavor_state_t *state, uint32_t addr,
85 static int tavor_flash_erase_sector(tavor_state_t *state, uint32_t sector_num);
86 static int tavor_flash_erase_chip(tavor_state_t *state);
87 static void tavor_flash_bank(tavor_state_t *state, uint32_t addr);
88 static uint32_t tavor_flash_read(tavor_state_t *state, uint32_t addr);
89 static void tavor_flash_write(tavor_state_t *state, uint32_t addr,
91 static void tavor_flash_init(tavor_state_t *state);
92 static void tavor_flash_cfi_init(tavor_state_t *state, uint32_t *cfi_info,
94 static void tavor_flash_fini(tavor_state_t *state);
95 static void tavor_flash_reset(tavor_state_t *state);
106 static int tavor_loopback_init(tavor_state_t *state,
137 tavor_state_t *state; in tavor_ioctl() local
150 state = ddi_get_soft_state(tavor_statep, instance); in tavor_ioctl()
151 if (state == NULL) { in tavor_ioctl()
159 status = tavor_ioctl_flash_read(state, dev, arg, mode); in tavor_ioctl()
163 status = tavor_ioctl_flash_write(state, dev, arg, mode); in tavor_ioctl()
167 status = tavor_ioctl_flash_erase(state, dev, arg, mode); in tavor_ioctl()
171 status = tavor_ioctl_flash_init(state, dev, arg, mode); in tavor_ioctl()
175 status = tavor_ioctl_flash_fini(state, dev); in tavor_ioctl()
179 status = tavor_ioctl_info(state, dev, arg, mode); in tavor_ioctl()
183 status = tavor_ioctl_ports(state, arg, mode); in tavor_ioctl()
187 status = tavor_ioctl_ddr_read(state, arg, mode); in tavor_ioctl()
191 status = tavor_ioctl_loopback(state, arg, mode); in tavor_ioctl()
196 status = tavor_ioctl_reg_write(state, arg, mode); in tavor_ioctl()
200 status = tavor_ioctl_reg_read(state, arg, mode); in tavor_ioctl()
217 tavor_ioctl_flash_read(tavor_state_t *state, dev_t dev, intptr_t arg, int mode) in tavor_ioctl_flash_read() argument
226 mutex_enter(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
227 if ((state->ts_fw_flashdev != dev) || in tavor_ioctl_flash_read()
228 (state->ts_fw_flashstarted == 0)) { in tavor_ioctl_flash_read()
229 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
240 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
251 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
262 (state->ts_fw_device_sz >> state->ts_fw_log_sector_sz)) { in tavor_ioctl_flash_read()
263 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
268 tavor_flash_reset(state); in tavor_ioctl_flash_read()
269 tavor_flash_read_sector(state, ioctl_info.tf_sector_num); in tavor_ioctl_flash_read()
272 if (ddi_copyout(&state->ts_fw_sector[0], in tavor_ioctl_flash_read()
273 &ioctl_info.tf_sector[0], 1 << state->ts_fw_log_sector_sz, in tavor_ioctl_flash_read()
275 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
282 if (ioctl_info.tf_addr >= state->ts_fw_device_sz) { in tavor_ioctl_flash_read()
283 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
288 tavor_flash_reset(state); in tavor_ioctl_flash_read()
289 tavor_flash_read_quadlet(state, &ioctl_info.tf_quadlet, in tavor_ioctl_flash_read()
311 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
318 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
322 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_read()
330 tavor_ioctl_flash_write(tavor_state_t *state, dev_t dev, intptr_t arg, int mode) in tavor_ioctl_flash_write() argument
339 mutex_enter(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
340 if ((state->ts_fw_flashdev != dev) || in tavor_ioctl_flash_write()
341 (state->ts_fw_flashstarted == 0)) { in tavor_ioctl_flash_write()
342 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
353 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
365 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
376 (state->ts_fw_device_sz >> state->ts_fw_log_sector_sz)) { in tavor_ioctl_flash_write()
377 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
383 &state->ts_fw_sector[0], 1 << state->ts_fw_log_sector_sz, in tavor_ioctl_flash_write()
385 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
390 status = tavor_flash_write_sector(state, in tavor_ioctl_flash_write()
396 if (ioctl_info.tf_addr >= state->ts_fw_device_sz) { in tavor_ioctl_flash_write()
397 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
402 tavor_flash_bank(state, ioctl_info.tf_addr); in tavor_ioctl_flash_write()
403 tavor_flash_reset(state); in tavor_ioctl_flash_write()
404 status = tavor_flash_write_byte(state, ioctl_info.tf_addr, in tavor_ioctl_flash_write()
406 tavor_flash_reset(state); in tavor_ioctl_flash_write()
414 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_write()
422 tavor_ioctl_flash_erase(tavor_state_t *state, dev_t dev, intptr_t arg, int mode) in tavor_ioctl_flash_erase() argument
431 mutex_enter(&state->ts_fw_flashlock); in tavor_ioctl_flash_erase()
432 if ((state->ts_fw_flashdev != dev) || in tavor_ioctl_flash_erase()
433 (state->ts_fw_flashstarted == 0)) { in tavor_ioctl_flash_erase()
434 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_erase()
445 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_erase()
454 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_erase()
465 (state->ts_fw_device_sz >> state->ts_fw_log_sector_sz)) { in tavor_ioctl_flash_erase()
466 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_erase()
471 status = tavor_flash_erase_sector(state, in tavor_ioctl_flash_erase()
477 status = tavor_flash_erase_chip(state); in tavor_ioctl_flash_erase()
485 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_erase()
493 tavor_ioctl_flash_init(tavor_state_t *state, dev_t dev, intptr_t arg, int mode) in tavor_ioctl_flash_init() argument
503 mutex_enter(&state->ts_fw_flashlock); in tavor_ioctl_flash_init()
504 if (state->ts_fw_flashstarted == 1) { in tavor_ioctl_flash_init()
505 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_init()
512 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_init()
517 tavor_flash_init(state); in tavor_ioctl_flash_init()
520 tavor_flash_cfi_init(state, &init_info.tf_cfi_info[0], &intel_xcmd); in tavor_ioctl_flash_init()
525 if (state->ts_fw_cmdset == TAVOR_FLASH_UNKNOWN_CMDSET) { in tavor_ioctl_flash_init()
526 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_init()
531 init_info.tf_hwrev = pci_config_get32(state->ts_pci_cfghdl, in tavor_ioctl_flash_init()
535 init_info.tf_fwrev.tfi_maj = state->ts_fw.fw_rev_major; in tavor_ioctl_flash_init()
536 init_info.tf_fwrev.tfi_min = state->ts_fw.fw_rev_minor; in tavor_ioctl_flash_init()
537 init_info.tf_fwrev.tfi_sub = state->ts_fw.fw_rev_subminor; in tavor_ioctl_flash_init()
540 state->ts_fw_sector = (uint32_t *)kmem_zalloc(1 << in tavor_ioctl_flash_init()
541 state->ts_fw_log_sector_sz, KM_SLEEP); in tavor_ioctl_flash_init()
544 init_info.tf_pn_len = state->ts_hca_pn_len; in tavor_ioctl_flash_init()
545 if (state->ts_hca_pn_len != 0) { in tavor_ioctl_flash_init()
546 (void) memcpy(init_info.tf_hwpn, state->ts_hca_pn, in tavor_ioctl_flash_init()
547 state->ts_hca_pn_len); in tavor_ioctl_flash_init()
554 tavor_ioctl_flash_cleanup_nolock(state); in tavor_ioctl_flash_init()
556 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_init()
561 state->ts_fw_flashstarted = 1; in tavor_ioctl_flash_init()
562 state->ts_fw_flashdev = dev; in tavor_ioctl_flash_init()
564 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_init()
573 (void (*)(void *))tavor_ioctl_flash_cleanup, state); in tavor_ioctl_flash_init()
575 (void) tavor_ioctl_flash_fini(state, dev); in tavor_ioctl_flash_init()
587 tavor_ioctl_flash_fini(tavor_state_t *state, dev_t dev) in tavor_ioctl_flash_fini() argument
595 mutex_enter(&state->ts_fw_flashlock); in tavor_ioctl_flash_fini()
596 if ((state->ts_fw_flashdev != dev) || in tavor_ioctl_flash_fini()
597 (state->ts_fw_flashstarted == 0)) { in tavor_ioctl_flash_fini()
598 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_fini()
602 tavor_ioctl_flash_cleanup_nolock(state); in tavor_ioctl_flash_fini()
604 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_fini()
624 tavor_ioctl_flash_cleanup(tavor_state_t *state) in tavor_ioctl_flash_cleanup() argument
626 mutex_enter(&state->ts_fw_flashlock); in tavor_ioctl_flash_cleanup()
627 tavor_ioctl_flash_cleanup_nolock(state); in tavor_ioctl_flash_cleanup()
628 mutex_exit(&state->ts_fw_flashlock); in tavor_ioctl_flash_cleanup()
636 tavor_ioctl_flash_cleanup_nolock(tavor_state_t *state) in tavor_ioctl_flash_cleanup_nolock() argument
638 ASSERT(MUTEX_HELD(&state->ts_fw_flashlock)); in tavor_ioctl_flash_cleanup_nolock()
641 kmem_free(state->ts_fw_sector, 1 << state->ts_fw_log_sector_sz); in tavor_ioctl_flash_cleanup_nolock()
644 tavor_flash_fini(state); in tavor_ioctl_flash_cleanup_nolock()
647 state->ts_fw_flashstarted = 0; in tavor_ioctl_flash_cleanup_nolock()
648 state->ts_fw_flashdev = 0; in tavor_ioctl_flash_cleanup_nolock()
656 tavor_ioctl_info(tavor_state_t *state, dev_t dev, intptr_t arg, int mode) in tavor_ioctl_info() argument
664 if (state->ts_operational_mode == TAVOR_MAINTENANCE_MODE) { in tavor_ioctl_info()
688 mutex_enter(&state->ts_info_lock); in tavor_ioctl_info()
689 if (state->ts_fw_device_sz == 0) { in tavor_ioctl_info()
690 if (tavor_ioctl_flash_init(state, dev, (intptr_t)&init_info, in tavor_ioctl_info()
692 mutex_exit(&state->ts_info_lock); in tavor_ioctl_info()
695 (void) tavor_ioctl_flash_fini(state, dev); in tavor_ioctl_info()
697 mutex_exit(&state->ts_info_lock); in tavor_ioctl_info()
699 info.ti_hw_rev = state->ts_adapter.rev_id; in tavor_ioctl_info()
700 info.ti_flash_sz = state->ts_fw_device_sz; in tavor_ioctl_info()
701 info.ti_fw_rev.tfi_maj = state->ts_fw.fw_rev_major; in tavor_ioctl_info()
702 info.ti_fw_rev.tfi_min = state->ts_fw.fw_rev_minor; in tavor_ioctl_info()
703 info.ti_fw_rev.tfi_sub = state->ts_fw.fw_rev_subminor; in tavor_ioctl_info()
705 info.ti_mem_end_offset = state->ts_ddr.ddr_endaddr - in tavor_ioctl_info()
706 state->ts_ddr.ddr_baseaddr; in tavor_ioctl_info()
721 tavor_ioctl_ports(tavor_state_t *state, intptr_t arg, int mode) in tavor_ioctl_ports() argument
734 if (state->ts_operational_mode == TAVOR_MAINTENANCE_MODE) { in tavor_ioctl_ports()
767 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_gidtbl); in tavor_ioctl_ports()
770 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_pkeytbl); in tavor_ioctl_ports()
780 info.tp_num_ports = (uint8_t)state->ts_cfg_profile->cp_num_ports; in tavor_ioctl_ports()
790 (void) tavor_port_query(state, i + 1, &pi); in tavor_ioctl_ports()
810 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_gidtbl); in tavor_ioctl_ports()
812 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_pkeytbl); in tavor_ioctl_ports()
842 tavor_ioctl_loopback(tavor_state_t *state, intptr_t arg, int mode) in tavor_ioctl_loopback() argument
857 if (state->ts_operational_mode == TAVOR_MAINTENANCE_MODE) { in tavor_ioctl_loopback()
900 if (!tavor_portnum_is_valid(state, lb.tlb_port_num)) { in tavor_ioctl_loopback()
907 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_gidtbl); in tavor_ioctl_loopback()
910 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_pkeytbl); in tavor_ioctl_loopback()
920 if (tavor_port_query(state, lb.tlb_port_num, &pi) != 0) { in tavor_ioctl_loopback()
922 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_gidtbl); in tavor_ioctl_loopback()
924 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_pkeytbl); in tavor_ioctl_loopback()
936 lstate.tls_state = state; in tavor_ioctl_loopback()
940 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_gidtbl); in tavor_ioctl_loopback()
942 tbl_size = (1 << state->ts_cfg_profile->cp_log_max_pkeytbl); in tavor_ioctl_loopback()
972 if (tavor_loopback_init(state, &lstate) != 0) { in tavor_ioctl_loopback()
1118 tavor_ioctl_ddr_read(tavor_state_t *state, intptr_t arg, int mode) in tavor_ioctl_ddr_read() argument
1128 if (state->ts_operational_mode == TAVOR_MAINTENANCE_MODE) { in tavor_ioctl_ddr_read()
1148 ddr_size = (state->ts_ddr.ddr_endaddr - state->ts_ddr.ddr_baseaddr + 1); in tavor_ioctl_ddr_read()
1154 baseaddr = (uintptr_t)state->ts_reg_ddr_baseaddr; in tavor_ioctl_ddr_read()
1160 rdreg.tdr_data = ddi_get32(state->ts_reg_cmdhdl, addr); in tavor_ioctl_ddr_read()
1177 tavor_ioctl_reg_read(tavor_state_t *state, intptr_t arg, int mode) in tavor_ioctl_reg_read() argument
1188 if (state->ts_operational_mode == TAVOR_MAINTENANCE_MODE) { in tavor_ioctl_reg_read()
1202 baseaddr = (uintptr_t)state->ts_reg_cmd_baseaddr; in tavor_ioctl_reg_read()
1206 baseaddr = (uintptr_t)state->ts_reg_uar_baseaddr; in tavor_ioctl_reg_read()
1210 baseaddr = (uintptr_t)state->ts_reg_ddr_baseaddr; in tavor_ioctl_reg_read()
1221 rdreg.trg_data = ddi_get32(state->ts_reg_cmdhdl, addr); in tavor_ioctl_reg_read()
1238 tavor_ioctl_reg_write(tavor_state_t *state, intptr_t arg, int mode) in tavor_ioctl_reg_write() argument
1249 if (state->ts_operational_mode == TAVOR_MAINTENANCE_MODE) { in tavor_ioctl_reg_write()
1263 baseaddr = (uintptr_t)state->ts_reg_cmd_baseaddr; in tavor_ioctl_reg_write()
1267 baseaddr = (uintptr_t)state->ts_reg_uar_baseaddr; in tavor_ioctl_reg_write()
1271 baseaddr = (uintptr_t)state->ts_reg_ddr_baseaddr; in tavor_ioctl_reg_write()
1282 ddi_put32(state->ts_reg_cmdhdl, addr, wrreg.trg_data); in tavor_ioctl_reg_write()
1292 tavor_flash_reset(tavor_state_t *state) in tavor_flash_reset() argument
1298 switch (state->ts_fw_cmdset) { in tavor_flash_reset()
1300 tavor_flash_write(state, 0x555, TAVOR_HW_FLASH_RESET_AMD); in tavor_flash_reset()
1304 tavor_flash_write(state, 0x555, TAVOR_HW_FLASH_RESET_INTEL); in tavor_flash_reset()
1316 tavor_flash_read_sector(tavor_state_t *state, uint32_t sector_num) in tavor_flash_read_sector() argument
1323 image = (uint32_t *)&state->ts_fw_sector[0]; in tavor_flash_read_sector()
1329 addr = sector_num << state->ts_fw_log_sector_sz; in tavor_flash_read_sector()
1330 end_addr = addr + (1 << state->ts_fw_log_sector_sz); in tavor_flash_read_sector()
1333 tavor_flash_bank(state, addr); in tavor_flash_read_sector()
1337 image[i] = tavor_flash_read(state, addr); in tavor_flash_read_sector()
1345 tavor_flash_read_quadlet(tavor_state_t *state, uint32_t *data, in tavor_flash_read_quadlet() argument
1349 tavor_flash_bank(state, addr); in tavor_flash_read_quadlet()
1352 *data = tavor_flash_read(state, addr); in tavor_flash_read_quadlet()
1359 tavor_flash_write_sector(tavor_state_t *state, uint32_t sector_num) in tavor_flash_write_sector() argument
1367 sector = (uchar_t *)&state->ts_fw_sector[0]; in tavor_flash_write_sector()
1373 addr = sector_num << state->ts_fw_log_sector_sz; in tavor_flash_write_sector()
1374 end_addr = addr + (1 << state->ts_fw_log_sector_sz); in tavor_flash_write_sector()
1377 tavor_flash_bank(state, addr); in tavor_flash_write_sector()
1380 tavor_flash_reset(state); in tavor_flash_write_sector()
1381 status = tavor_flash_erase_sector(state, sector_num); in tavor_flash_write_sector()
1388 status = tavor_flash_write_byte(state, addr, sector[i]); in tavor_flash_write_sector()
1394 tavor_flash_reset(state); in tavor_flash_write_sector()
1402 tavor_flash_write_byte(tavor_state_t *state, uint32_t addr, uchar_t data) in tavor_flash_write_byte() argument
1408 switch (state->ts_fw_cmdset) { in tavor_flash_write_byte()
1411 tavor_flash_write(state, addr, 0xAA); in tavor_flash_write_byte()
1412 tavor_flash_write(state, addr, 0x55); in tavor_flash_write_byte()
1413 tavor_flash_write(state, addr, 0xA0); in tavor_flash_write_byte()
1414 tavor_flash_write(state, addr, data); in tavor_flash_write_byte()
1427 stat = tavor_flash_read(state, addr & ~3); in tavor_flash_write_byte()
1444 tavor_flash_write(state, addr, TAVOR_HW_FLASH_ICS_WRITE); in tavor_flash_write_byte()
1445 tavor_flash_write(state, addr, data); in tavor_flash_write_byte()
1451 stat = tavor_flash_read(state, addr & ~3); in tavor_flash_write_byte()
1477 state->ts_fw_cmdset); in tavor_flash_write_byte()
1489 tavor_flash_erase_sector(tavor_state_t *state, uint32_t sector_num) in tavor_flash_erase_sector() argument
1497 addr = sector_num << state->ts_fw_log_sector_sz; in tavor_flash_erase_sector()
1499 switch (state->ts_fw_cmdset) { in tavor_flash_erase_sector()
1502 tavor_flash_write(state, addr, 0xAA); in tavor_flash_erase_sector()
1503 tavor_flash_write(state, addr, 0x55); in tavor_flash_erase_sector()
1504 tavor_flash_write(state, addr, 0x80); in tavor_flash_erase_sector()
1505 tavor_flash_write(state, addr, 0xAA); in tavor_flash_erase_sector()
1506 tavor_flash_write(state, addr, 0x55); in tavor_flash_erase_sector()
1507 tavor_flash_write(state, addr, 0x30); in tavor_flash_erase_sector()
1522 stat = tavor_flash_read(state, addr); in tavor_flash_erase_sector()
1538 tavor_flash_write(state, addr, TAVOR_HW_FLASH_ICS_ERASE); in tavor_flash_erase_sector()
1539 tavor_flash_write(state, addr, TAVOR_HW_FLASH_ICS_CONFIRM); in tavor_flash_erase_sector()
1545 stat = tavor_flash_read(state, addr & ~3); in tavor_flash_erase_sector()
1569 state->ts_fw_cmdset); in tavor_flash_erase_sector()
1574 tavor_flash_reset(state); in tavor_flash_erase_sector()
1583 tavor_flash_erase_chip(tavor_state_t *state) in tavor_flash_erase_chip() argument
1591 switch (state->ts_fw_cmdset) { in tavor_flash_erase_chip()
1594 tavor_flash_write(state, 0, 0xAA); in tavor_flash_erase_chip()
1595 tavor_flash_write(state, 0, 0x55); in tavor_flash_erase_chip()
1596 tavor_flash_write(state, 0, 0x80); in tavor_flash_erase_chip()
1597 tavor_flash_write(state, 0, 0xAA); in tavor_flash_erase_chip()
1598 tavor_flash_write(state, 0, 0x55); in tavor_flash_erase_chip()
1599 tavor_flash_write(state, 0, 0x10); in tavor_flash_erase_chip()
1614 stat = tavor_flash_read(state, 0); in tavor_flash_erase_chip()
1632 size = (0x1 << state->ts_fw_log_sector_sz); in tavor_flash_erase_chip()
1633 num_sect = state->ts_fw_device_sz / size; in tavor_flash_erase_chip()
1636 status = tavor_flash_erase_sector(state, i); in tavor_flash_erase_chip()
1649 "unknown cmd set: 0x%x\n", state->ts_fw_cmdset); in tavor_flash_erase_chip()
1661 tavor_flash_bank(tavor_state_t *state, uint32_t addr) in tavor_flash_bank() argument
1667 hdl = state->ts_pci_cfghdl; in tavor_flash_bank()
1672 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(state->ts_fw_flashbank)) in tavor_flash_bank()
1680 if (state->ts_fw_flashbank != bank || addr == 0) { in tavor_flash_bank()
1687 state->ts_fw_flashbank = bank; in tavor_flash_bank()
1695 tavor_flash_read(tavor_state_t *state, uint32_t addr) in tavor_flash_read() argument
1702 hdl = state->ts_pci_cfghdl; in tavor_flash_read()
1735 tavor_flash_write(tavor_state_t *state, uint32_t addr, uchar_t data) in tavor_flash_write() argument
1742 hdl = state->ts_pci_cfghdl; in tavor_flash_write()
1771 tavor_flash_init(tavor_state_t *state) in tavor_flash_init() argument
1779 hdl = state->ts_pci_cfghdl; in tavor_flash_init()
1807 state->ts_fw_gpio[0] = tavor_flash_read_cfg(hdl, in tavor_flash_init()
1809 state->ts_fw_gpio[1] = tavor_flash_read_cfg(hdl, in tavor_flash_init()
1811 state->ts_fw_gpio[2] = tavor_flash_read_cfg(hdl, in tavor_flash_init()
1813 state->ts_fw_gpio[3] = tavor_flash_read_cfg(hdl, in tavor_flash_init()
1817 gpio = state->ts_fw_gpio[0] | 0x70; in tavor_flash_init()
1820 gpio = state->ts_fw_gpio[1] & ~0x70; in tavor_flash_init()
1823 gpio = state->ts_fw_gpio[2] & ~0x70; in tavor_flash_init()
1831 tavor_flash_bank(state, 0); in tavor_flash_init()
1839 tavor_flash_cfi_init(tavor_state_t *state, uint32_t *cfi_info, int *intel_xcmd) in tavor_flash_cfi_init() argument
1860 tavor_flash_write(state, 0x55, TAVOR_FLASH_CFI_INIT); in tavor_flash_cfi_init()
1864 data = tavor_flash_read(state, i); in tavor_flash_cfi_init()
1869 state->ts_fw_cmdset = TAVOR_FLASH_UNKNOWN_CMDSET; in tavor_flash_cfi_init()
1881 state->ts_fw_cmdset = cfi_ch_info[0x13]; in tavor_flash_cfi_init()
1882 if (state->ts_fw_cmdset != TAVOR_FLASH_INTEL_CMDSET && in tavor_flash_cfi_init()
1883 state->ts_fw_cmdset != TAVOR_FLASH_AMD_CMDSET) { in tavor_flash_cfi_init()
1886 state->ts_fw_cmdset = TAVOR_FLASH_UNKNOWN_CMDSET; in tavor_flash_cfi_init()
1899 state->ts_fw_log_sector_sz = bit_count; in tavor_flash_cfi_init()
1902 state->ts_fw_device_sz = 0x1 << cfi_ch_info[0x27]; in tavor_flash_cfi_init()
1905 tavor_flash_reset(state); in tavor_flash_cfi_init()
1927 cfi_ch_info[0x13] = state->ts_fw_cmdset; in tavor_flash_cfi_init()
1935 tavor_flash_fini(tavor_state_t *state) in tavor_flash_fini() argument
1940 hdl = state->ts_pci_cfghdl; in tavor_flash_fini()
1944 state->ts_fw_gpio[0]); in tavor_flash_fini()
1946 state->ts_fw_gpio[1]); in tavor_flash_fini()
1948 state->ts_fw_gpio[2]); in tavor_flash_fini()
1950 state->ts_fw_gpio[3]); in tavor_flash_fini()
2084 tavor_loopback_init(tavor_state_t *state, tavor_loopback_state_t *lstate) in tavor_loopback_init() argument
2088 lstate->tls_hca_hdl = (ibc_hca_hdl_t)state; in tavor_loopback_init()