WRT16_IO_REG
WRT16_IO_REG(ha, ctrl_status, data);
WRT16_IO_REG(ha, ctrl_status, data);
WRT16_IO_REG(ha, ctrl_status, bank_select);
WRT16_IO_REG(ha, ctrl_status, bank_select);
WRT16_IO_REG(ha, ctrl_status, bank_select);
WRT16_IO_REG(ha, flash_address, (uint16_t)addr);
WRT16_IO_REG(ha, flash_data, (uint16_t)data);
WRT16_IO_REG(ha, ctrl_status, bank_select);
WRT16_IO_REG(ha, ctrl_status, bank_select);
WRT16_IO_REG(ha, ctrl_status, bank_select);
WRT16_IO_REG(ha, flash_address, addr);
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_PAUSE_RISC);
WRT16_IO_REG(ha, ctrl_status, 0);
WRT16_IO_REG(ha, pcr, 0x2000);
WRT16_IO_REG(ha, pcr, 0x2100);
WRT16_IO_REG(ha, pcr, 0x2200);
WRT16_IO_REG(ha, pcr, 0x2300);
WRT16_IO_REG(ha, pcr, 0x2400);
WRT16_IO_REG(ha, pcr, 0x2500);
WRT16_IO_REG(ha, pcr, 0x2600);
WRT16_IO_REG(ha, pcr, 0x2700);
WRT16_IO_REG(ha, ctrl_status, 0x10);
WRT16_IO_REG(ha, ctrl_status, 0x20);
WRT16_IO_REG(ha, ctrl_status, 0x30);
WRT16_IO_REG(ha, ctrl_status, 0x20);
WRT16_IO_REG(ha, fpm_diag_config, 0x100);
WRT16_IO_REG(ha, ctrl_status, 0x10);
WRT16_IO_REG(ha, fb_cmd, 0xa000);
WRT16_IO_REG(ha, ctrl_status, 0);
WRT16_IO_REG(ha, hccr, HC_RESET_RISC);
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_RELEASE_RISC);
WRT16_IO_REG(ha, hccr, HC_DISABLE_PARITY_PAUSE);
WRT16_IO_REG(ha, hccr, HC_PAUSE_RISC);
WRT16_IO_REG(ha, mctr, 0xf2);
WRT16_IO_REG(ha, hccr, HC_RELEASE_RISC);
WRT16_IO_REG(ha, mailbox_in[0], MBC_READ_RAM_WORD);
WRT16_IO_REG(ha, mailbox_in[1], risc_address++);
WRT16_IO_REG(ha, hccr, HC_SET_HOST_INT);
WRT16_IO_REG(ha, hccr,
WRT16_IO_REG(ha,
WRT16_IO_REG(ha, hccr,
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_PAUSE_RISC);
WRT16_IO_REG(ha, ctrl_status, 0x40);
WRT16_IO_REG(ha, ctrl_status, 0x50);
WRT16_IO_REG(ha, ctrl_status, 0);
WRT16_IO_REG(ha, pcr, 0x2000);
WRT16_IO_REG(ha, pcr, 0x2200);
WRT16_IO_REG(ha, pcr, 0x2400);
WRT16_IO_REG(ha, pcr, 0x2600);
WRT16_IO_REG(ha, pcr, 0x2800);
WRT16_IO_REG(ha, pcr, 0x2A00);
WRT16_IO_REG(ha, pcr, 0x2C00);
WRT16_IO_REG(ha, pcr, 0x2E00);
WRT16_IO_REG(ha, ctrl_status, 0x10);
WRT16_IO_REG(ha, ctrl_status, 0x20);
WRT16_IO_REG(ha, ctrl_status, 0x30);
WRT16_IO_REG(ha, ctrl_status, 0x20);
WRT16_IO_REG(ha, fpm_diag_config, 0x100);
WRT16_IO_REG(ha, ctrl_status, 0x10);
WRT16_IO_REG(ha, fb_cmd, 0xa000);
WRT16_IO_REG(ha, ctrl_status, 0);
WRT16_IO_REG(ha, hccr, HC_RESET_RISC);
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_RELEASE_RISC);
WRT16_IO_REG(ha, hccr, HC_DISABLE_PARITY_PAUSE);
WRT16_IO_REG(ha, mailbox_in[0], MBC_READ_RAM_EXTENDED);
WRT16_IO_REG(ha, mailbox_in[1], LSW(risc_address));
WRT16_IO_REG(ha, mailbox_in[8], MSW(risc_address));
WRT16_IO_REG(ha, hccr, HC_SET_HOST_INT);
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr,
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_CLR_RISC_INT);
WRT16_IO_REG(ha, mailbox_in[0], cmd);
WRT16_IO_REG(ha, mailbox_in[1], LSW(risc_address));
WRT16_IO_REG(ha, mailbox_in[2], MSW(LSD(mem.cookie.dmac_laddress)));
WRT16_IO_REG(ha, mailbox_in[3], LSW(LSD(mem.cookie.dmac_laddress)));
WRT16_IO_REG(ha, mailbox_in[4], MSW(len));
WRT16_IO_REG(ha, mailbox_in[5], LSW(len));
WRT16_IO_REG(ha, mailbox_in[6], MSW(MSD(mem.cookie.dmac_laddress)));
WRT16_IO_REG(ha, mailbox_in[7], LSW(MSD(mem.cookie.dmac_laddress)));
WRT16_IO_REG(ha, mailbox_in[8], MSW(risc_address));
WRT16_IO_REG(ha, mailbox_in[9], BIT_0);
WRT16_IO_REG(ha, mailbox_in[0], MBC_TOGGLE_INTERRUPT);
WRT16_IO_REG(ha, mailbox_in[1], 0);
WRT16_IO_REG(ha, mailbox_in[0], MBC_STOP_FIRMWARE);
WRT16_IO_REG(ha, mailbox_in[1], 0);
WRT16_IO_REG(ha, mailbox_in[0], MBC_STOP_FIRMWARE);
WRT16_IO_REG(ha, mailbox_in[1], 0);
WRT16_IO_REG(ha, mailbox_in[2], 0);
WRT16_IO_REG(ha, mailbox_in[3], 0);
WRT16_IO_REG(ha, mailbox_in[4], 0);
WRT16_IO_REG(ha, mailbox_in[5], 0);
WRT16_IO_REG(ha, mailbox_in[6], 0);
WRT16_IO_REG(ha, mailbox_in[7], 0);
WRT16_IO_REG(ha, mailbox_in[8], 0);
WRT16_IO_REG(ha, ictrl, 0);
WRT16_IO_REG(ha, ctrl_status, 0);
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_RESET_RISC);
WRT16_IO_REG(ha, hccr, HC_RELEASE_RISC);
WRT16_IO_REG(ha, host_to_host_sema, 1);
WRT16_IO_REG(ha, host_to_host_sema, 0);
WRT16_IO_REG(ha, hccr, HC_PAUSE_RISC);
WRT16_IO_REG(ha, ctrl_status, 0x20);
WRT16_IO_REG(ha, ctrl_status, 0x0);
WRT16_IO_REG(ha, hccr, HC_RELEASE_RISC);
WRT16_IO_REG(ha, mailbox_in[cnt], (uint16_t)0);
WRT16_IO_REG(ha, hccr, HC_PAUSE_RISC);
WRT16_IO_REG(ha, ctrl_status, 0x20);
WRT16_IO_REG(ha, fpm_diag_config, 0x100);
WRT16_IO_REG(ha, fpm_diag_config, 0);
WRT16_IO_REG(ha, ctrl_status, 0x10);
WRT16_IO_REG(ha, fb_cmd, 0x00fc);
WRT16_IO_REG(ha, fb_cmd, 0xa000);
WRT16_IO_REG(ha, ctrl_status, 0);
WRT16_IO_REG(ha, hccr, HC_RESET_RISC);
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_RELEASE_RISC);
WRT16_IO_REG(ha, hccr, HC_CLR_RISC_INT);
WRT16_IO_REG(ha, hccr, HC_CLR_HOST_INT);
WRT16_IO_REG(ha, ctrl_status, ISP_RESET);
WRT16_IO_REG(ha, hccr, HC_DISABLE_PARITY_PAUSE);
WRT16_IO_REG(ha, hccr, HC_PAUSE_RISC);
WRT16_IO_REG(ha, ctrl_status, 0x30);
WRT16_IO_REG(ha, mailbox_in[23], 0x204c);
WRT16_IO_REG(ha, ctrl_status, 0);
WRT16_IO_REG(ha, hccr, HC_RELEASE_RISC);
WRT16_IO_REG(ha, mailbox_in[0], MBC_STOP_FIRMWARE);
WRT16_IO_REG(ha, mailbox_in[1], 0);
WRT16_IO_REG(ha, mailbox_in[2], 0);
WRT16_IO_REG(ha, mailbox_in[3], 0);
WRT16_IO_REG(ha, mailbox_in[4], 0);
WRT16_IO_REG(ha, mailbox_in[5], 0);
WRT16_IO_REG(ha, mailbox_in[6], 0);
WRT16_IO_REG(ha, mailbox_in[7], 0);
WRT16_IO_REG(ha, mailbox_in[8], 0);
WRT16_IO_REG(ha, mailbox_in[0], MBC_RESTART_MPI);
WRT16_IO_REG(ha, nvram, NV_SELECT + NV_CLOCK);
WRT16_IO_REG(ha, nvram, NV_SELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, nvram, (uint16_t)(data | NV_SELECT));
WRT16_IO_REG(ha, nvram, (uint16_t)(data | NV_SELECT | NV_CLOCK));
WRT16_IO_REG(ha, nvram, (uint16_t)(data | NV_SELECT));
WRT16_IO_REG(ha, mailbox_in[8], ha->rcvbuf_ring_index);
WRT16_IO_REG(ha, req_in, req_q->req_ring_index);
WRT16_IO_REG(ha, req_in, req_q->req_ring_index);
WRT16_IO_REG(ha, nvram, NV_SELECT | NV_CLOCK);
WRT16_IO_REG(ha, nvram, NV_SELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, nvram, NV_SELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, nvram, NV_SELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, nvram, NV_DESELECT);
WRT16_IO_REG(ha, ictrl, 0);
WRT16_IO_REG(ha, ictrl, ISP_EN_INT + ISP_EN_RISC);
WRT16_IO_REG(ha, resp_out, rsp_q->rsp_ring_index);
WRT16_IO_REG(ha, semaphore, 0);
WRT16_IO_REG(ha, hccr, HC_CLR_RISC_INT);
WRT16_IO_REG(ha, mailbox_in[cnt], mcp->mb[cnt]);
WRT16_IO_REG(ha, hccr, HC_SET_HOST_INT);
WRT16_IO_REG(ha, mailbox_in[cnt], (uint16_t)0);
WRT16_IO_REG(ha, req_in, 0);
WRT16_IO_REG(ha, resp_out, 0);
WRT16_IO_REG(ha, gpioe, gpio_enable);
WRT16_IO_REG(ha, gpiod, gpio_data);