9876359990
HP-UX 10.20 seems to make the lsi53c895a spinning on a memory location under certain circumstances. As the SCSI controller and CPU are not running at the same time this loop will never finish. After some time, the check loop interrupts with a unexpected device disconnect. This works, but is slow because the kernel resets the scsi controller. Instead of signaling UDC, start a timer and exit the loop. Until the timer fires, the CPU can process instructions which might changes the memory location. The limit of instructions is also reduced because scripts running on the SCSI processor are usually very short. This keeps the time until the loop is exit short. Suggested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Sven Schnelle <svens@stackframe.org> Message-ID: <20240229204407.1699260-1-svens@stackframe.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
363 lines
28 KiB
Plaintext
363 lines
28 KiB
Plaintext
# See docs/devel/tracing.rst for syntax documentation.
|
|
|
|
# scsi-bus.c
|
|
scsi_req_alloc(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
scsi_req_cancel(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
scsi_req_data(int target, int lun, int tag, int len) "target %d lun %d tag %d len %d"
|
|
scsi_req_data_canceled(int target, int lun, int tag, int len) "target %d lun %d tag %d len %d"
|
|
scsi_req_dequeue(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
scsi_bus_drained_begin(void *bus, void *sdev) "bus %p sdev %p"
|
|
scsi_bus_drained_end(void *bus, void *sdev) "bus %p sdev %p"
|
|
scsi_req_continue(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
scsi_req_continue_canceled(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
scsi_req_parsed(int target, int lun, int tag, int cmd, int mode, int xfer) "target %d lun %d tag %d command %d dir %d length %d"
|
|
scsi_req_parsed_lba(int target, int lun, int tag, int cmd, uint64_t lba) "target %d lun %d tag %d command %d lba %"PRIu64
|
|
scsi_req_parse_bad(int target, int lun, int tag, int cmd) "target %d lun %d tag %d command %d"
|
|
scsi_req_build_sense(int target, int lun, int tag, int key, int asc, int ascq) "target %d lun %d tag %d key 0x%02x asc 0x%02x ascq 0x%02x"
|
|
scsi_device_set_ua(int target, int lun, int key, int asc, int ascq) "target %d lun %d key 0x%02x asc 0x%02x ascq 0x%02x"
|
|
scsi_report_luns(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
scsi_inquiry(int target, int lun, int tag, int cdb1, int cdb2) "target %d lun %d tag %d page 0x%02x/0x%02x"
|
|
scsi_test_unit_ready(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
scsi_request_sense(int target, int lun, int tag) "target %d lun %d tag %d"
|
|
|
|
# mptsas.c
|
|
mptsas_command_complete(void *dev, uint32_t ctx, uint32_t status, uint32_t resid) "dev %p context 0x%08x status 0x%x resid %d"
|
|
mptsas_diag_read(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%08x"
|
|
mptsas_diag_write(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%08x"
|
|
mptsas_irq_intx(void *dev, int level) "dev %p level %d"
|
|
mptsas_irq_msi(void *dev) "dev %p "
|
|
mptsas_mmio_read(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%x"
|
|
mptsas_mmio_unhandled_read(void *dev, uint32_t addr) "dev %p addr 0x%08x"
|
|
mptsas_mmio_unhandled_write(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%x"
|
|
mptsas_mmio_write(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%x"
|
|
mptsas_process_message(void *dev, int msg, uint32_t ctx) "dev %p cmd %d context 0x%08x"
|
|
mptsas_process_scsi_io_request(void *dev, int bus, int target, int lun, uint64_t len) "dev %p dev %d:%d:%d length %"PRIu64""
|
|
mptsas_reset(void *dev) "dev %p "
|
|
mptsas_scsi_overflow(void *dev, uint32_t ctx, uint64_t req, uint64_t found) "dev %p context 0x%08x: %"PRIu64"/%"PRIu64""
|
|
mptsas_sgl_overflow(void *dev, uint32_t ctx, uint64_t req, uint64_t found) "dev %p context 0x%08x: %"PRIu64"/%"PRIu64""
|
|
mptsas_unhandled_cmd(void *dev, uint32_t ctx, uint8_t msg_cmd) "dev %p context 0x%08x: Unhandled cmd 0x%x"
|
|
mptsas_unhandled_doorbell_cmd(void *dev, int cmd) "dev %p value 0x%08x"
|
|
|
|
# mptconfig.c
|
|
mptsas_config_sas_device(void *dev, int address, int port, int phy_handle, int dev_handle, int page) "dev %p address %d (port %d, handles: phy %d dev %d) page %d"
|
|
mptsas_config_sas_phy(void *dev, int address, int port, int phy_handle, int dev_handle, int page) "dev %p address %d (port %d, handles: phy %d dev %d) page %d"
|
|
|
|
# megasas.c
|
|
megasas_init_firmware(uint64_t pa) "pa 0x%" PRIx64 " "
|
|
megasas_init_queue(uint64_t queue_pa, int queue_len, uint32_t head, uint32_t tail, uint32_t flags) "queue at 0x%" PRIx64 " len %d head 0x%" PRIx32 " tail 0x%" PRIx32 " flags 0x%x"
|
|
megasas_initq_map_failed(int frame) "scmd %d: failed to map queue"
|
|
megasas_initq_mapped(uint64_t pa) "queue already mapped at 0x%" PRIx64
|
|
megasas_initq_mismatch(int queue_len, int fw_cmds) "queue size %d max fw cmds %d"
|
|
megasas_qf_mapped(unsigned int index) "skip mapped frame 0x%x"
|
|
megasas_qf_new(unsigned int index, uint64_t frame) "frame 0x%x addr 0x%" PRIx64
|
|
megasas_qf_busy(unsigned long pa) "all frames busy for frame 0x%lx"
|
|
megasas_qf_enqueue(unsigned int index, unsigned int count, uint64_t context, uint32_t head, uint32_t tail, unsigned int busy) "frame 0x%x count %d context 0x%" PRIx64 " head 0x%" PRIx32 " tail 0x%" PRIx32 " busy %u"
|
|
megasas_qf_update(uint32_t head, uint32_t tail, unsigned int busy) "head 0x%" PRIx32 " tail 0x%" PRIx32 " busy %u"
|
|
megasas_qf_map_failed(int cmd, unsigned long frame) "scmd %d: frame %lu"
|
|
megasas_qf_complete_noirq(uint64_t context) "context 0x%" PRIx64 " "
|
|
megasas_qf_complete(uint64_t context, uint32_t head, uint32_t tail, int busy) "context 0x%" PRIx64 " head 0x%" PRIx32 " tail 0x%" PRIx32 " busy %u"
|
|
megasas_frame_busy(uint64_t addr) "frame 0x%" PRIx64 " busy"
|
|
megasas_unhandled_frame_cmd(int cmd, uint8_t frame_cmd) "scmd %d: MFI cmd 0x%x"
|
|
megasas_handle_scsi(const char *frame, int bus, int dev, int lun, void *sdev, unsigned long size) "%s dev %x/%x/%x sdev %p xfer %lu"
|
|
megasas_scsi_target_not_present(const char *frame, int bus, int dev, int lun) "%s dev %x/%x/%x"
|
|
megasas_scsi_invalid_cdb_len(const char *frame, int bus, int dev, int lun, int len) "%s dev %x/%x/%x invalid cdb len %d"
|
|
megasas_iov_read_overflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
|
|
megasas_iov_write_overflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
|
|
megasas_iov_read_underflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
|
|
megasas_iov_write_underflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
|
|
megasas_scsi_req_alloc_failed(const char *frame, int dev, int lun) "%s dev %x/%x"
|
|
megasas_scsi_read_start(int cmd, int len) "scmd %d: transfer %d bytes of data"
|
|
megasas_scsi_write_start(int cmd, int len) "scmd %d: transfer %d bytes of data"
|
|
megasas_scsi_nodata(int cmd) "scmd %d: no data to be transferred"
|
|
megasas_scsi_complete(int cmd, uint32_t status, int len, int xfer) "scmd %d: status 0x%x, len %u/%u"
|
|
megasas_command_complete(int cmd, uint32_t status, uint32_t resid) "scmd %d: status 0x%x, residual %d"
|
|
megasas_handle_io(int cmd, const char *frame, int dev, int lun, unsigned long lba, unsigned long count) "scmd %d: %s dev %x/%x lba 0x%lx count %lu"
|
|
megasas_io_target_not_present(int cmd, const char *frame, int dev, int lun) "scmd %d: %s dev 1/%x/%x LUN not present"
|
|
megasas_io_read_start(int cmd, unsigned long lba, unsigned long count, unsigned long len) "scmd %d: start LBA 0x%lx %lu blocks (%lu bytes)"
|
|
megasas_io_write_start(int cmd, unsigned long lba, unsigned long count, unsigned long len) "scmd %d: start LBA 0x%lx %lu blocks (%lu bytes)"
|
|
megasas_io_complete(int cmd, uint32_t len) "scmd %d: %d bytes"
|
|
megasas_iovec_sgl_overflow(int cmd, int index, int limit) "scmd %d: iovec count %d limit %d"
|
|
megasas_iovec_sgl_underflow(int cmd, int index) "scmd %d: iovec count %d"
|
|
megasas_iovec_sgl_invalid(int cmd, int index, uint64_t pa, uint32_t len) "scmd %d: element %d pa 0x%" PRIx64 " len %u"
|
|
megasas_iovec_overflow(int cmd, int len, int limit) "scmd %d: len %d limit %d"
|
|
megasas_iovec_underflow(int cmd, int len, int limit) "scmd %d: len %d limit %d"
|
|
megasas_handle_dcmd(int cmd, int opcode) "scmd %d: MFI DCMD opcode 0x%x"
|
|
megasas_finish_dcmd(int cmd, int size) "scmd %d: MFI DCMD wrote %d bytes"
|
|
megasas_dcmd_req_alloc_failed(int cmd, const char *desc) "scmd %d: %s"
|
|
megasas_dcmd_internal_submit(int cmd, const char *desc, int dev) "scmd %d: %s to dev %d"
|
|
megasas_dcmd_internal_finish(int cmd, int opcode, int lun) "scmd %d: cmd 0x%x lun %d"
|
|
megasas_dcmd_internal_invalid(int cmd, int opcode) "scmd %d: DCMD 0x%x"
|
|
megasas_dcmd_unhandled(int cmd, int opcode, int len) "scmd %d: opcode 0x%x, len %d"
|
|
megasas_dcmd_zero_sge(int cmd) "scmd %d: zero DCMD sge count"
|
|
megasas_dcmd_invalid_sge(int cmd, int count) "scmd %d: DCMD sge count %d"
|
|
megasas_dcmd_invalid_xfer_len(int cmd, unsigned long size, unsigned long max) "scmd %d: xfer len %ld, max %ld"
|
|
megasas_dcmd_enter(int cmd, const char *dcmd, int len) "scmd %d: DCMD %s len %d"
|
|
megasas_dcmd_dummy(int cmd, unsigned long size) "scmd %d: xfer len %ld"
|
|
megasas_dcmd_set_fw_time(int cmd, unsigned long time) "scmd %d: Set FW time 0x%lx"
|
|
megasas_dcmd_pd_get_list(int cmd, int num, int max, int offset) "scmd %d: DCMD PD get list: %d / %d PDs, size %d"
|
|
megasas_dcmd_ld_get_list(int cmd, int num, int max) "scmd %d: DCMD LD get list: found %d / %d LDs"
|
|
megasas_dcmd_ld_get_info(int cmd, int ld_id) "scmd %d: dev %d"
|
|
megasas_dcmd_ld_list_query(int cmd, int flags) "scmd %d: query flags 0x%x"
|
|
megasas_dcmd_pd_get_info(int cmd, int pd_id) "scmd %d: dev %d"
|
|
megasas_dcmd_pd_list_query(int cmd, int flags) "scmd %d: query flags 0x%x"
|
|
megasas_dcmd_reset_ld(int cmd, int target_id) "scmd %d: dev %d"
|
|
megasas_dcmd_unsupported(int cmd, unsigned long size) "scmd %d: set properties len %ld"
|
|
megasas_abort_frame(int cmd, int abort_cmd) "scmd %d: frame 0x%x"
|
|
megasas_abort_no_cmd(int cmd, uint64_t context) "scmd %d: no active command for frame context 0x%" PRIx64
|
|
megasas_abort_invalid_context(int cmd, uint64_t context, int abort_cmd) "scmd %d: invalid frame context 0x%" PRIx64 " for abort frame 0x%x"
|
|
megasas_reset(int fw_state) "firmware state 0x%x"
|
|
megasas_init(int sges, int cmds, const char *mode) "Using %d sges, %d cmds, %s mode"
|
|
megasas_msix_raise(int vector) "vector %d"
|
|
megasas_msi_raise(int vector) "vector %d"
|
|
megasas_irq_lower(void) "INTx"
|
|
megasas_irq_raise(void) "INTx"
|
|
megasas_intr_enabled(void) "Interrupts enabled"
|
|
megasas_intr_disabled(void) "Interrupts disabled"
|
|
megasas_msix_enabled(int vector) "vector %d"
|
|
megasas_msi_enabled(int vector) "vector %d"
|
|
megasas_mmio_readl(const char *reg, uint32_t val) "reg %s: 0x%x"
|
|
megasas_mmio_invalid_readl(unsigned long addr) "addr 0x%lx"
|
|
megasas_mmio_writel(const char *reg, uint32_t val) "reg %s: 0x%x"
|
|
megasas_mmio_invalid_writel(uint32_t addr, uint32_t val) "addr 0x%x: 0x%x"
|
|
|
|
# vmw_pvscsi.c
|
|
pvscsi_ring_init_data(uint32_t txr_len_log2, uint32_t rxr_len_log2) "TX/RX rings logarithms set to %d/%d"
|
|
pvscsi_ring_init_msg(uint32_t len_log2) "MSG ring logarithm set to %d"
|
|
pvscsi_ring_flush_cmp(uint64_t filled_cmp_ptr) "new production counter of completion ring is 0x%"PRIx64
|
|
pvscsi_ring_flush_msg(uint64_t filled_cmp_ptr) "new production counter of message ring is 0x%"PRIx64
|
|
pvscsi_update_irq_level(bool raise, uint64_t mask, uint64_t status) "interrupt level set to %d (MASK: 0x%"PRIx64", STATUS: 0x%"PRIx64")"
|
|
pvscsi_update_irq_msi(void) "sending MSI notification"
|
|
pvscsi_cmp_ring_put(unsigned long addr) "got completion descriptor 0x%lx"
|
|
pvscsi_msg_ring_put(unsigned long addr) "got message descriptor 0x%lx"
|
|
pvscsi_complete_request(uint64_t context, uint64_t len, uint8_t sense_key) "completion: ctx: 0x%"PRIx64", len: 0x%"PRIx64", sense key: %u"
|
|
pvscsi_get_sg_list(int nsg, size_t size) "get SG list: depth: %u, size: %zu"
|
|
pvscsi_get_next_sg_elem(uint32_t flags) "unknown flags in SG element (val: 0x%x)"
|
|
pvscsi_command_complete_not_found(uint32_t tag) "can't find request for tag 0x%x"
|
|
pvscsi_command_complete_data_run(void) "not all data required for command transferred"
|
|
pvscsi_command_complete_sense_len(int len) "sense information length is %d bytes"
|
|
pvscsi_convert_sglist(uint64_t context, unsigned long addr, uint32_t resid) "element: ctx: 0x%"PRIx64" addr: 0x%lx, len: %ul"
|
|
pvscsi_process_req_descr(uint8_t cmd, uint64_t ctx) "SCSI cmd 0x%x, ctx: 0x%"PRIx64
|
|
pvscsi_process_req_descr_unknown_device(void) "command directed to unknown device rejected"
|
|
pvscsi_process_req_descr_invalid_dir(void) "command with invalid transfer direction rejected"
|
|
pvscsi_process_io(unsigned long addr) "got descriptor 0x%lx"
|
|
pvscsi_on_cmd_noimpl(const char* cmd) "unimplemented command %s ignored"
|
|
pvscsi_on_cmd_reset_dev(uint32_t tgt, int lun, void* dev) "PVSCSI_CMD_RESET_DEVICE[target %u lun %d (dev 0x%p)]"
|
|
pvscsi_on_cmd_arrived(const char* cmd) "command %s arrived"
|
|
pvscsi_on_cmd_abort(uint64_t ctx, uint32_t tgt) "command PVSCSI_CMD_ABORT_CMD for ctx 0x%"PRIx64", target %u"
|
|
pvscsi_on_cmd_unknown(uint64_t cmd_id) "unknown command 0x%"PRIx64
|
|
pvscsi_on_cmd_unknown_data(uint32_t data) "data for unknown command 0x:0x%x"
|
|
pvscsi_io_write(const char* cmd, uint64_t val) "%s write: 0x%"PRIx64
|
|
pvscsi_io_write_unknown(unsigned long addr, unsigned sz, uint64_t val) "unknown write address: 0x%lx size: %u bytes value: 0x%"PRIx64
|
|
pvscsi_io_read(const char* cmd, uint64_t status) "%s read: 0x%"PRIx64
|
|
pvscsi_io_read_unknown(unsigned long addr, unsigned sz) "unknown read address: 0x%lx size: %u bytes"
|
|
pvscsi_init_msi_fail(int res) "failed to initialize MSI, error %d"
|
|
pvscsi_state(const char* state) "starting %s ..."
|
|
pvscsi_tx_rings_ppn(const char* label, uint64_t ppn) "%s page: 0x%"PRIx64
|
|
pvscsi_tx_rings_num_pages(const char* label, uint32_t num) "Number of %s pages: %u"
|
|
|
|
# esp.c
|
|
esp_error_fifo_overrun(void) "FIFO overrun"
|
|
esp_error_unhandled_command(uint32_t val) "unhandled command (0x%2.2x)"
|
|
esp_error_invalid_write(uint32_t val, uint32_t addr) "invalid write of 0x%02x at [0x%x]"
|
|
esp_raise_irq(void) "Raise IRQ"
|
|
esp_lower_irq(void) "Lower IRQ"
|
|
esp_raise_drq(void) "Raise DREQ"
|
|
esp_lower_drq(void) "Lower DREQ"
|
|
esp_dma_enable(void) "Raise enable"
|
|
esp_dma_disable(void) "Lower enable"
|
|
esp_pdma_read(int size) "pDMA read %u bytes"
|
|
esp_pdma_write(int size) "pDMA write %u bytes"
|
|
esp_get_cmd(uint32_t dmalen, int target) "len %d target %d"
|
|
esp_do_command_phase(uint8_t busid) "busid 0x%x"
|
|
esp_do_identify(uint8_t byte) "0x%x"
|
|
esp_handle_satn_stop(uint32_t cmdlen) "cmdlen %d"
|
|
esp_write_response(uint32_t status) "Transfer status (status=%d)"
|
|
esp_do_dma(uint32_t cmdlen, uint32_t len) "command len %d + %d"
|
|
esp_command_complete(void) "SCSI Command complete"
|
|
esp_command_complete_deferred(void) "SCSI Command complete deferred"
|
|
esp_command_complete_unexpected(void) "SCSI command completed unexpectedly"
|
|
esp_command_complete_fail(void) "Command failed"
|
|
esp_transfer_data(uint32_t dma_left, int32_t ti_size) "transfer %d/%d"
|
|
esp_handle_ti(uint32_t minlen) "Transfer Information len %d"
|
|
esp_handle_ti_cmd(uint32_t cmdlen) "command len %d"
|
|
esp_mem_readb(uint32_t saddr, uint8_t reg) "reg[%d]: 0x%2.2x"
|
|
esp_mem_writeb(uint32_t saddr, uint8_t reg, uint32_t val) "reg[%d]: 0x%2.2x -> 0x%2.2x"
|
|
esp_mem_writeb_cmd_nop(uint32_t val) "NOP (0x%2.2x)"
|
|
esp_mem_writeb_cmd_flush(uint32_t val) "Flush FIFO (0x%2.2x)"
|
|
esp_mem_writeb_cmd_reset(uint32_t val) "Chip reset (0x%2.2x)"
|
|
esp_mem_writeb_cmd_bus_reset(uint32_t val) "Bus reset (0x%2.2x)"
|
|
esp_mem_writeb_cmd_iccs(uint32_t val) "Initiator Command Complete Sequence (0x%2.2x)"
|
|
esp_mem_writeb_cmd_msgacc(uint32_t val) "Message Accepted (0x%2.2x)"
|
|
esp_mem_writeb_cmd_pad(uint32_t val) "Transfer padding (0x%2.2x)"
|
|
esp_mem_writeb_cmd_satn(uint32_t val) "Set ATN (0x%2.2x)"
|
|
esp_mem_writeb_cmd_rstatn(uint32_t val) "Reset ATN (0x%2.2x)"
|
|
esp_mem_writeb_cmd_sel(uint32_t val) "Select without ATN (0x%2.2x)"
|
|
esp_mem_writeb_cmd_selatn(uint32_t val) "Select with ATN (0x%2.2x)"
|
|
esp_mem_writeb_cmd_selatns(uint32_t val) "Select with ATN & stop (0x%2.2x)"
|
|
esp_mem_writeb_cmd_ensel(uint32_t val) "Enable selection (0x%2.2x)"
|
|
esp_mem_writeb_cmd_dissel(uint32_t val) "Disable selection (0x%2.2x)"
|
|
esp_mem_writeb_cmd_ti(uint32_t val) "Transfer Information (0x%2.2x)"
|
|
esp_set_phase(const char *phase) "setting bus phase to %s"
|
|
|
|
# esp-pci.c
|
|
esp_pci_error_invalid_dma_direction(void) "invalid DMA transfer direction"
|
|
esp_pci_error_invalid_read(uint32_t reg) "read access outside bounds (reg 0x%x)"
|
|
esp_pci_error_invalid_write(uint32_t reg) "write access outside bounds (reg 0x%x)"
|
|
esp_pci_error_invalid_write_dma(uint32_t val, uint32_t addr) "invalid write of 0x%02x at [0x%x]"
|
|
esp_pci_dma_read(uint32_t saddr, uint32_t reg) "reg[%d]: 0x%8.8x"
|
|
esp_pci_dma_write(uint32_t saddr, uint32_t reg, uint32_t val) "reg[%d]: 0x%8.8x -> 0x%8.8x"
|
|
esp_pci_dma_idle(uint32_t val) "IDLE (0x%.8x)"
|
|
esp_pci_dma_blast(uint32_t val) "BLAST (0x%.8x)"
|
|
esp_pci_dma_abort(uint32_t val) "ABORT (0x%.8x)"
|
|
esp_pci_dma_start(uint32_t val) "START (0x%.8x)"
|
|
esp_pci_sbac_read(uint32_t reg) "sbac: 0x%8.8x"
|
|
esp_pci_sbac_write(uint32_t reg, uint32_t val) "sbac: 0x%8.8x -> 0x%8.8x"
|
|
|
|
# spapr_vscsi.c
|
|
spapr_vscsi_send_rsp(uint8_t status, int32_t res_in, int32_t res_out) "status: 0x%x, res_in: %"PRId32", res_out: %"PRId32
|
|
spapr_vscsi_fetch_desc_no_data(void) "no data descriptor"
|
|
spapr_vscsi_fetch_desc_direct(void) "direct segment"
|
|
spapr_vscsi_fetch_desc_indirect(uint32_t qtag, unsigned desc, unsigned local_desc) "indirect segment local tag=0x%"PRIx32" desc#%u/%u"
|
|
spapr_vscsi_fetch_desc_out_of_range(unsigned desc, unsigned desc_offset) "#%u is ouf of range (%u bytes)"
|
|
spapr_vscsi_fetch_desc_dma_read_error(int rc) "spapr_vio_dma_read -> %d reading ext_desc"
|
|
spapr_vscsi_fetch_desc_indirect_seg_ext(uint32_t qtag, unsigned n, unsigned desc, uint64_t va, uint32_t len) "indirect segment ext. tag=0x%"PRIx32" desc#%u/%u { va=0x%"PRIx64" len=0x%"PRIx32" }"
|
|
spapr_vscsi_fetch_desc_out_of_desc(void) "Out of descriptors !"
|
|
spapr_vscsi_fetch_desc_out_of_desc_boundary(unsigned offset, unsigned desc, uint32_t len) " offset=0x%x is out of a descriptor #%u boundary=0x%"PRIx32
|
|
spapr_vscsi_fetch_desc_done(unsigned desc_num, unsigned desc_offset, uint64_t va, uint32_t len) " cur=%u offs=0x%x ret { va=0x%"PRIx64" len=0x%"PRIx32" }"
|
|
spapr_vscsi_srp_indirect_data(uint32_t len) "indirect segment 0x%"PRIx32" bytes"
|
|
spapr_vscsi_srp_indirect_data_rw(int writing, int rc) "spapr_vio_dma_r/w(%d) -> %d"
|
|
spapr_vscsi_srp_indirect_data_buf(unsigned a, unsigned b, unsigned c, unsigned d) " data: %02x %02x %02x %02x..."
|
|
spapr_vscsi_srp_transfer_data(uint32_t len) "no data desc transfer, skipping 0x%"PRIx32" bytes"
|
|
spapr_vscsi_transfer_data(uint32_t tag, uint32_t len, void *req) "SCSI xfer complete tag=0x%"PRIx32" len=0x%"PRIx32", req=%p"
|
|
spapr_vscsi_command_complete(uint32_t tag, uint32_t status, void *req) "SCSI cmd complete, tag=0x%"PRIx32" status=0x%"PRIx32", req=%p"
|
|
spapr_vscsi_command_complete_sense_data1(uint32_t len, unsigned s0, unsigned s1, unsigned s2, unsigned s3, unsigned s4, unsigned s5, unsigned s6, unsigned s7) "Sense data, %d bytes: %02x %02x %02x %02x %02x %02x %02x %02x"
|
|
spapr_vscsi_command_complete_sense_data2(unsigned s8, unsigned s9, unsigned s10, unsigned s11, unsigned s12, unsigned s13, unsigned s14, unsigned s15) " %02x %02x %02x %02x %02x %02x %02x %02x"
|
|
spapr_vscsi_command_complete_status(uint32_t status) "Command complete err=%"PRIu32
|
|
spapr_vscsi_save_request(uint32_t qtag, unsigned desc, unsigned offset) "saving tag=%"PRIu32", current desc#%u, offset=0x%x"
|
|
spapr_vscsi_load_request(uint32_t qtag, unsigned desc, unsigned offset) "restoring tag=%"PRIu32", current desc#%u, offset=0x%x"
|
|
spapr_vscsi_process_login(void) "Got login, sending response !"
|
|
spapr_vscsi_process_tsk_mgmt(uint8_t func) "tsk_mgmt_func 0x%02x"
|
|
spapr_vscsi_queue_cmd_no_drive(uint64_t lun) "Command for lun 0x%08" PRIx64 " with no drive"
|
|
spapr_vscsi_queue_cmd(uint32_t qtag, unsigned cdb, const char *cmd, int lun, int ret) "Queued command tag 0x%"PRIx32" CMD 0x%x=%s LUN %d ret: %d"
|
|
spapr_vscsi_do_crq(unsigned c0, unsigned c1) "crq: %02x %02x ..."
|
|
|
|
# lsi53c895a.c
|
|
lsi_reset(void) "Reset"
|
|
lsi_update_irq(int level, uint8_t dstat, uint8_t sist1, uint8_t sist0) "Update IRQ level %d dstat 0x%02x sist 0x%02x0x%02x"
|
|
lsi_update_irq_disconnected(void) "Handled IRQs & disconnected, looking for pending processes"
|
|
lsi_script_scsi_interrupt(uint8_t stat1, uint8_t stat0, uint8_t sist1, uint8_t sist0) "SCSI Interrupt 0x%02x0x%02x prev 0x%02x0x%02x"
|
|
lsi_script_dma_interrupt(uint8_t stat, uint8_t dstat) "DMA Interrupt 0x%x prev 0x%x"
|
|
lsi_bad_phase_jump(uint32_t dsp) "Data phase mismatch jump to 0x%"PRIX32
|
|
lsi_bad_phase_interrupt(void) "Phase mismatch interrupt"
|
|
lsi_bad_selection(uint32_t id) "Selected absent target %"PRIu32
|
|
lsi_do_dma_unavailable(void) "DMA no data available"
|
|
lsi_do_dma(uint64_t addr, int len) "DMA addr=0x%"PRIx64" len=%d"
|
|
lsi_queue_command(uint32_t tag) "Queueing tag=0x%"PRIx32
|
|
lsi_add_msg_byte_error(void) "MSG IN data too long"
|
|
lsi_add_msg_byte(uint8_t data) "MSG IN 0x%02x"
|
|
lsi_reselect(int id) "Reselected target %d"
|
|
lsi_queue_req_error(void *p) "Multiple IO pending for request %p"
|
|
lsi_queue_req(uint32_t tag) "Queueing IO tag=0x%"PRIx32
|
|
lsi_command_complete(uint32_t status) "Command complete status=%"PRId32
|
|
lsi_transfer_data(uint32_t tag, uint32_t len) "Data ready tag=0x%"PRIx32" len=%"PRId32
|
|
lsi_do_command(uint32_t dbc) "Send command len=%"PRId32
|
|
lsi_do_status(uint32_t dbc, uint8_t status) "Get status len=%"PRId32" status=%d"
|
|
lsi_do_status_error(void) "Bad Status move"
|
|
lsi_do_msgin(uint32_t dbc, int len) "Message in len=%"PRId32" %d"
|
|
lsi_do_msgout(uint32_t dbc) "MSG out len=%"PRId32
|
|
lsi_do_msgout_disconnect(void) "MSG: Disconnect"
|
|
lsi_do_msgout_noop(void) "MSG: No Operation"
|
|
lsi_do_msgout_extended(uint8_t msg, uint8_t len) "Extended message 0x%x (len %d)"
|
|
lsi_do_msgout_ignored(const char *msg) "%s (ignored)"
|
|
lsi_do_msgout_simplequeue(uint8_t select_tag) "SIMPLE queue tag=0x%x"
|
|
lsi_do_msgout_abort(uint32_t tag) "MSG: ABORT TAG tag=0x%"PRIx32
|
|
lsi_do_msgout_clearqueue(uint32_t tag) "MSG: CLEAR QUEUE tag=0x%"PRIx32
|
|
lsi_do_msgout_busdevicereset(uint32_t tag) "MSG: BUS DEVICE RESET tag=0x%"PRIx32
|
|
lsi_do_msgout_select(int id) "Select LUN %d"
|
|
lsi_memcpy(uint32_t dest, uint32_t src, int count) "memcpy dest 0x%"PRIx32" src 0x%"PRIx32" count %d"
|
|
lsi_wait_reselect(void) "Wait Reselect"
|
|
lsi_execute_script(uint32_t dsp, uint32_t insn, uint32_t addr) "SCRIPTS dsp=0x%"PRIx32" opcode 0x%"PRIx32" arg 0x%"PRIx32
|
|
lsi_execute_script_blockmove_delayed(void) "Delayed select timeout"
|
|
lsi_execute_script_blockmove_badphase(const char *phase, const char *expected) "Wrong phase got %s expected %s"
|
|
lsi_execute_script_io_alreadyreselected(void) "Already reselected, jumping to alternative address"
|
|
lsi_execute_script_io_selected(uint8_t id, const char *atn) "Selected target %d%s"
|
|
lsi_execute_script_io_disconnect(void) "Wait Disconnect"
|
|
lsi_execute_script_io_set(const char *atn, const char *ack, const char *tm, const char *cc) "Set%s%s%s%s"
|
|
lsi_execute_script_io_clear(const char *atn, const char *ack, const char *tm, const char *cc) "Clear%s%s%s%s"
|
|
lsi_execute_script_io_opcode(const char *opcode, int reg, const char *opname, uint8_t data8, uint32_t sfbr, const char *ssfbr) "%s reg 0x%x %s data8=0x%02x sfbr=0x%02x%s"
|
|
lsi_execute_script_tc_nop(void) "NOP"
|
|
lsi_execute_script_tc_delayedselect_timeout(void) "Delayed select timeout"
|
|
lsi_execute_script_tc_compc(int result) "Compare carry %d"
|
|
lsi_execute_script_tc_compp(const char *phase, char op, const char *insn_phase) "Compare phase %s %c= %s"
|
|
lsi_execute_script_tc_compd(uint32_t sfbr, uint8_t mask, char op, int result) "Compare data 0x%"PRIx32" & 0x%x %c= 0x%x"
|
|
lsi_execute_script_tc_jump(uint32_t addr) "Jump to 0x%"PRIx32
|
|
lsi_execute_script_tc_call(uint32_t addr) "Call 0x%"PRIx32
|
|
lsi_execute_script_tc_return(uint32_t addr) "Return to 0x%"PRIx32
|
|
lsi_execute_script_tc_interrupt(uint32_t addr) "Interrupt 0x%"PRIx32
|
|
lsi_execute_script_tc_illegal(void) "Illegal transfer control"
|
|
lsi_execute_script_tc_cc_failed(void) "Control condition failed"
|
|
lsi_execute_script_mm_load(int reg, int n, uint32_t addr, int data) "Load reg 0x%x size %d addr 0x%"PRIx32" = 0x%08x"
|
|
lsi_execute_script_mm_store(int reg, int n, uint32_t addr) "Store reg 0x%x size %d addr 0x%"PRIx32
|
|
lsi_execute_script_stop(void) "SCRIPTS execution stopped"
|
|
lsi_awoken(void) "Woken by SIGP"
|
|
lsi_reg_read(const char *name, int offset, uint8_t ret) "Read reg %s 0x%x = 0x%02x"
|
|
lsi_reg_write(const char *name, int offset, uint8_t val) "Write reg %s 0x%x = 0x%02x"
|
|
lsi_scripts_timer_triggered(void) "SCRIPTS timer triggered"
|
|
lsi_scripts_timer_start(void) "SCRIPTS timer started"
|
|
|
|
# virtio-scsi.c
|
|
virtio_scsi_cmd_req(int lun, uint32_t tag, uint8_t cmd) "virtio_scsi_cmd_req lun=%u tag=0x%x cmd=0x%x"
|
|
virtio_scsi_cmd_resp(int lun, uint32_t tag, int response, uint8_t status) "virtio_scsi_cmd_resp lun=%u tag=0x%x response=%d status=0x%x"
|
|
virtio_scsi_tmf_req(int lun, uint32_t tag, int subtype) "virtio_scsi_tmf_req lun=%u tag=0x%x subtype=%d"
|
|
virtio_scsi_tmf_resp(int lun, uint32_t tag, int response) "virtio_scsi_tmf_resp lun=%u tag=0x%x response=%d"
|
|
virtio_scsi_an_req(int lun, uint32_t event_requested) "virtio_scsi_an_req lun=%u event_requested=0x%x"
|
|
virtio_scsi_an_resp(int lun, int response) "virtio_scsi_an_resp lun=%u response=%d"
|
|
virtio_scsi_event(int lun, int event, int reason) "virtio_scsi_event lun=%u event=%d reason=%d"
|
|
|
|
# scsi-disk.c
|
|
scsi_disk_check_condition(uint32_t tag, uint8_t key, uint8_t asc, uint8_t ascq) "Command complete tag=0x%x sense=%d/%d/%d"
|
|
scsi_disk_read_complete(uint32_t tag, size_t size) "Data ready tag=0x%x len=%zd"
|
|
scsi_disk_read_data_count(uint32_t sector_count) "Read sector_count=%d"
|
|
scsi_disk_read_data_invalid(void) "Data transfer direction invalid"
|
|
scsi_disk_write_complete_noio(uint32_t tag, size_t size) "Write complete tag=0x%x more=%zd"
|
|
scsi_disk_write_data_invalid(void) "Data transfer direction invalid"
|
|
scsi_disk_emulate_vpd_page_00(size_t xfer) "Inquiry EVPD[Supported pages] buffer size %zd"
|
|
scsi_disk_emulate_vpd_page_80_not_supported(void) "Inquiry (EVPD[Serial number] not supported"
|
|
scsi_disk_emulate_vpd_page_80(size_t xfer) "Inquiry EVPD[Serial number] buffer size %zd"
|
|
scsi_disk_emulate_vpd_page_83(size_t xfer) "Inquiry EVPD[Device identification] buffer size %zd"
|
|
scsi_disk_emulate_vpd_page_b0_not_supported(void) "Inquiry (EVPD[Block limits] not supported for CDROM"
|
|
scsi_disk_emulate_mode_sense(int cmd, int page, size_t xfer, int control) "Mode Sense(%d) (page %d, xfer %zd, page_control %d)"
|
|
scsi_disk_emulate_read_toc(int start_track, int format, int msf) "Read TOC (track %d format %d msf %d)"
|
|
scsi_disk_emulate_read_data(int buflen) "Read buf_len=%d"
|
|
scsi_disk_emulate_write_data(int buflen) "Write buf_len=%d"
|
|
scsi_disk_emulate_command_SAI_16(void) "SAI READ CAPACITY(16)"
|
|
scsi_disk_emulate_command_SAI_unsupported(void) "Unsupported Service Action In"
|
|
scsi_disk_emulate_command_SEEK_10(uint64_t lba) "Seek(10) (sector %" PRId64 ")"
|
|
scsi_disk_emulate_command_MODE_SELECT(size_t xfer) "Mode Select(6) (len %zd)"
|
|
scsi_disk_emulate_command_MODE_SELECT_10(size_t xfer) "Mode Select(10) (len %zd)"
|
|
scsi_disk_emulate_command_UNMAP(size_t xfer) "Unmap (len %zd)"
|
|
scsi_disk_emulate_command_VERIFY(int bytchk) "Verify (bytchk %d)"
|
|
scsi_disk_emulate_command_WRITE_SAME(int cmd, size_t xfer) "WRITE SAME %d (len %zd)"
|
|
scsi_disk_emulate_command_UNKNOWN(int cmd, const char *name) "Unknown SCSI command (0x%2.2x=%s)"
|
|
scsi_disk_emulate_command_FORMAT_UNIT(size_t xfer) "Format Unit (len %zu)"
|
|
scsi_disk_dma_command_READ(uint64_t lba, uint32_t len) "Read (sector %" PRId64 ", count %u)"
|
|
scsi_disk_dma_command_WRITE(const char *cmd, uint64_t lba, int len) "Write %s(sector %" PRId64 ", count %u)"
|
|
scsi_disk_new_request(uint32_t lun, uint32_t tag, const char *line) "Command: lun=%d tag=0x%x data=%s"
|
|
scsi_disk_aio_sgio_command(uint32_t tag, uint8_t cmd, uint64_t lba, int len, uint32_t timeout) "disk aio sgio: tag=0x%x cmd=0x%x (sector %" PRId64 ", count %d) timeout=%u"
|
|
scsi_disk_mode_select_page_truncated(int page, int len, int page_len) "page %d expected length %d but received length %d"
|
|
scsi_disk_mode_select_set_blocksize(int blocksize) "set block size to %d"
|
|
|
|
# scsi-generic.c
|
|
scsi_generic_command_complete_noio(void *req, uint32_t tag, int statuc) "Command complete %p tag=0x%x status=%d"
|
|
scsi_generic_read_complete(uint32_t tag, int len) "Data ready tag=0x%x len=%d"
|
|
scsi_generic_read_data(uint32_t tag) "scsi_read_data tag=0x%x"
|
|
scsi_generic_write_complete(int ret) "scsi_write_complete() ret = %d"
|
|
scsi_generic_write_complete_blocksize(int blocksize) "block size %d"
|
|
scsi_generic_write_data(uint32_t tag) "scsi_write_data tag=0x%x"
|
|
scsi_generic_send_command(const char *line) "Command: data=%s"
|
|
scsi_generic_realize_type(int type) "device type %d"
|
|
scsi_generic_realize_blocksize(int blocksize) "block size %d"
|
|
scsi_generic_aio_sgio_command(uint32_t tag, uint8_t cmd, uint32_t timeout) "generic aio sgio: tag=0x%x cmd=0x%x timeout=%u"
|
|
scsi_generic_ioctl_sgio_command(uint8_t cmd, uint32_t timeout) "generic ioctl sgio: cmd=0x%x timeout=%u"
|
|
scsi_generic_ioctl_sgio_done(uint8_t cmd, int ret, uint8_t status, uint8_t host_status) "generic ioctl sgio: cmd=0x%x ret=%d status=0x%x host_status=0x%x"
|