xref: /openbmc/qemu/hw/scsi/trace-events (revision 4a09d0bb)
1# See docs/tracing.txt for syntax documentation.
2
3# hw/scsi/scsi-bus.c
4scsi_req_alloc(int target, int lun, int tag) "target %d lun %d tag %d"
5scsi_req_cancel(int target, int lun, int tag) "target %d lun %d tag %d"
6scsi_req_data(int target, int lun, int tag, int len) "target %d lun %d tag %d len %d"
7scsi_req_data_canceled(int target, int lun, int tag, int len) "target %d lun %d tag %d len %d"
8scsi_req_dequeue(int target, int lun, int tag) "target %d lun %d tag %d"
9scsi_req_continue(int target, int lun, int tag) "target %d lun %d tag %d"
10scsi_req_continue_canceled(int target, int lun, int tag) "target %d lun %d tag %d"
11scsi_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"
12scsi_req_parsed_lba(int target, int lun, int tag, int cmd, uint64_t lba) "target %d lun %d tag %d command %d lba %"PRIu64
13scsi_req_parse_bad(int target, int lun, int tag, int cmd) "target %d lun %d tag %d command %d"
14scsi_req_build_sense(int target, int lun, int tag, int key, int asc, int ascq) "target %d lun %d tag %d key %#02x asc %#02x ascq %#02x"
15scsi_device_set_ua(int target, int lun, int key, int asc, int ascq) "target %d lun %d key %#02x asc %#02x ascq %#02x"
16scsi_report_luns(int target, int lun, int tag) "target %d lun %d tag %d"
17scsi_inquiry(int target, int lun, int tag, int cdb1, int cdb2) "target %d lun %d tag %d page %#02x/%#02x"
18scsi_test_unit_ready(int target, int lun, int tag) "target %d lun %d tag %d"
19scsi_request_sense(int target, int lun, int tag) "target %d lun %d tag %d"
20
21# hw/scsi/mptsas.c
22mptsas_command_complete(void *dev, uint32_t ctx, uint32_t status, uint32_t resid) "dev %p context 0x%08x status %x resid %d"
23mptsas_diag_read(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%08x"
24mptsas_diag_write(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%08x"
25mptsas_irq_intx(void *dev, int level) "dev %p level %d"
26mptsas_irq_msi(void *dev) "dev %p "
27mptsas_mmio_read(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%x"
28mptsas_mmio_unhandled_read(void *dev, uint32_t addr) "dev %p addr 0x%08x"
29mptsas_mmio_unhandled_write(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%x"
30mptsas_mmio_write(void *dev, uint32_t addr, uint32_t val) "dev %p addr 0x%08x value 0x%x"
31mptsas_process_message(void *dev, int msg, uint32_t ctx) "dev %p cmd %d context 0x%08x\n"
32mptsas_process_scsi_io_request(void *dev, int bus, int target, int lun, uint64_t len) "dev %p dev %d:%d:%d length %"PRIu64""
33mptsas_reset(void *dev) "dev %p "
34mptsas_scsi_overflow(void *dev, uint32_t ctx, uint64_t req, uint64_t found) "dev %p context 0x%08x: %"PRIu64"/%"PRIu64""
35mptsas_sgl_overflow(void *dev, uint32_t ctx, uint64_t req, uint64_t found) "dev %p context 0x%08x: %"PRIu64"/%"PRIu64""
36mptsas_unhandled_cmd(void *dev, uint32_t ctx, uint8_t msg_cmd) "dev %p context 0x%08x: Unhandled cmd %x"
37mptsas_unhandled_doorbell_cmd(void *dev, int cmd) "dev %p value 0x%08x"
38
39# hw/scsi/mptconfig.c
40mptsas_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"
41mptsas_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"
42
43# hw/scsi/megasas.c
44megasas_init_firmware(uint64_t pa) "pa %" PRIx64 " "
45megasas_init_queue(uint64_t queue_pa, int queue_len, uint64_t head, uint64_t tail, uint32_t flags) "queue at %" PRIx64 " len %d head %" PRIx64 " tail %" PRIx64 " flags %x"
46megasas_initq_map_failed(int frame) "scmd %d: failed to map queue"
47megasas_initq_mapped(uint64_t pa) "queue already mapped at %" PRIx64
48megasas_initq_mismatch(int queue_len, int fw_cmds) "queue size %d max fw cmds %d"
49megasas_qf_mapped(unsigned int index) "skip mapped frame %x"
50megasas_qf_new(unsigned int index, uint64_t frame) "frame %x addr %" PRIx64
51megasas_qf_busy(unsigned long pa) "all frames busy for frame %lx"
52megasas_qf_enqueue(unsigned int index, unsigned int count, uint64_t context, unsigned int head, unsigned int tail, int busy) "frame %x count %d context %" PRIx64 " head %x tail %x busy %d"
53megasas_qf_update(unsigned int head, unsigned int tail, unsigned int busy) "head %x tail %x busy %d"
54megasas_qf_map_failed(int cmd, unsigned long frame) "scmd %d: frame %lu"
55megasas_qf_complete_noirq(uint64_t context) "context %" PRIx64 " "
56megasas_qf_complete(uint64_t context, unsigned int head, unsigned int tail, int busy) "context %" PRIx64 " head %x tail %x busy %d"
57megasas_frame_busy(uint64_t addr) "frame %" PRIx64 " busy"
58megasas_unhandled_frame_cmd(int cmd, uint8_t frame_cmd) "scmd %d: MFI cmd %x"
59megasas_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"
60megasas_scsi_target_not_present(const char *frame, int bus, int dev, int lun) "%s dev %x/%x/%x"
61megasas_scsi_invalid_cdb_len(const char *frame, int bus, int dev, int lun, int len) "%s dev %x/%x/%x invalid cdb len %d"
62megasas_iov_read_overflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
63megasas_iov_write_overflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
64megasas_iov_read_underflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
65megasas_iov_write_underflow(int cmd, int bytes, int len) "scmd %d: %d/%d bytes"
66megasas_scsi_req_alloc_failed(const char *frame, int dev, int lun) "%s dev %x/%x"
67megasas_scsi_read_start(int cmd, int len) "scmd %d: transfer %d bytes of data"
68megasas_scsi_write_start(int cmd, int len) "scmd %d: transfer %d bytes of data"
69megasas_scsi_nodata(int cmd) "scmd %d: no data to be transferred"
70megasas_scsi_complete(int cmd, uint32_t status, int len, int xfer) "scmd %d: status %x, len %u/%u"
71megasas_command_complete(int cmd, uint32_t status, uint32_t resid) "scmd %d: status %x, residual %d"
72megasas_handle_io(int cmd, const char *frame, int dev, int lun, unsigned long lba, unsigned long count) "scmd %d: %s dev %x/%x lba %lx count %lu"
73megasas_io_target_not_present(int cmd, const char *frame, int dev, int lun) "scmd %d: %s dev 1/%x/%x LUN not present"
74megasas_io_read_start(int cmd, unsigned long lba, unsigned long count, unsigned long len) "scmd %d: start LBA %lx %lu blocks (%lu bytes)"
75megasas_io_write_start(int cmd, unsigned long lba, unsigned long count, unsigned long len) "scmd %d: start LBA %lx %lu blocks (%lu bytes)"
76megasas_io_complete(int cmd, uint32_t len) "scmd %d: %d bytes"
77megasas_iovec_sgl_overflow(int cmd, int index, int limit) "scmd %d: iovec count %d limit %d"
78megasas_iovec_sgl_underflow(int cmd, int index) "scmd %d: iovec count %d"
79megasas_iovec_sgl_invalid(int cmd, int index, uint64_t pa, uint32_t len) "scmd %d: element %d pa %" PRIx64 " len %u"
80megasas_iovec_overflow(int cmd, int len, int limit) "scmd %d: len %d limit %d"
81megasas_iovec_underflow(int cmd, int len, int limit) "scmd %d: len %d limit %d"
82megasas_handle_dcmd(int cmd, int opcode) "scmd %d: MFI DCMD opcode %x"
83megasas_finish_dcmd(int cmd, int size) "scmd %d: MFI DCMD wrote %d bytes"
84megasas_dcmd_req_alloc_failed(int cmd, const char *desc) "scmd %d: %s"
85megasas_dcmd_internal_submit(int cmd, const char *desc, int dev) "scmd %d: %s to dev %d"
86megasas_dcmd_internal_finish(int cmd, int opcode, int lun) "scmd %d: cmd %x lun %d"
87megasas_dcmd_internal_invalid(int cmd, int opcode) "scmd %d: DCMD %x"
88megasas_dcmd_unhandled(int cmd, int opcode, int len) "scmd %d: opcode %x, len %d"
89megasas_dcmd_zero_sge(int cmd) "scmd %d: zero DCMD sge count"
90megasas_dcmd_invalid_sge(int cmd, int count) "scmd %d: DCMD sge count %d"
91megasas_dcmd_invalid_xfer_len(int cmd, unsigned long size, unsigned long max) "scmd %d: xfer len %ld, max %ld"
92megasas_dcmd_enter(int cmd, const char *dcmd, int len) "scmd %d: DCMD %s len %d"
93megasas_dcmd_dummy(int cmd, unsigned long size) "scmd %d: xfer len %ld"
94megasas_dcmd_set_fw_time(int cmd, unsigned long time) "scmd %d: Set FW time %lx"
95megasas_dcmd_pd_get_list(int cmd, int num, int max, int offset) "scmd %d: DCMD PD get list: %d / %d PDs, size %d"
96megasas_dcmd_ld_get_list(int cmd, int num, int max) "scmd %d: DCMD LD get list: found %d / %d LDs"
97megasas_dcmd_ld_get_info(int cmd, int ld_id) "scmd %d: dev %d"
98megasas_dcmd_ld_list_query(int cmd, int flags) "scmd %d: query flags %x"
99megasas_dcmd_pd_get_info(int cmd, int pd_id) "scmd %d: dev %d"
100megasas_dcmd_pd_list_query(int cmd, int flags) "scmd %d: query flags %x"
101megasas_dcmd_reset_ld(int cmd, int target_id) "scmd %d: dev %d"
102megasas_dcmd_unsupported(int cmd, unsigned long size) "scmd %d: set properties len %ld"
103megasas_abort_frame(int cmd, int abort_cmd) "scmd %d: frame %x"
104megasas_abort_no_cmd(int cmd, uint64_t context) "scmd %d: no active command for frame context %" PRIx64
105megasas_abort_invalid_context(int cmd, uint64_t context, int abort_cmd) "scmd %d: invalid frame context %" PRIx64 " for abort frame %x"
106megasas_reset(int fw_state) "firmware state %x"
107megasas_init(int sges, int cmds, const char *mode) "Using %d sges, %d cmds, %s mode"
108megasas_msix_raise(int vector) "vector %d"
109megasas_msi_raise(int vector) "vector %d"
110megasas_irq_lower(void) "INTx"
111megasas_irq_raise(void) "INTx"
112megasas_intr_enabled(void) "Interrupts enabled"
113megasas_intr_disabled(void) "Interrupts disabled"
114megasas_msix_enabled(int vector) "vector %d"
115megasas_msi_enabled(int vector) "vector %d"
116megasas_mmio_readl(const char *reg, uint32_t val) "reg %s: 0x%x"
117megasas_mmio_invalid_readl(unsigned long addr) "addr 0x%lx"
118megasas_mmio_writel(const char *reg, uint32_t val) "reg %s: 0x%x"
119megasas_mmio_invalid_writel(uint32_t addr, uint32_t val) "addr 0x%x: 0x%x"
120
121# hw/scsi/vmw_pvscsi.c
122pvscsi_ring_init_data(uint32_t txr_len_log2, uint32_t rxr_len_log2) "TX/RX rings logarithms set to %d/%d"
123pvscsi_ring_init_msg(uint32_t len_log2) "MSG ring logarithm set to %d"
124pvscsi_ring_flush_cmp(uint64_t filled_cmp_ptr) "new production counter of completion ring is 0x%"PRIx64
125pvscsi_ring_flush_msg(uint64_t filled_cmp_ptr) "new production counter of message ring is 0x%"PRIx64
126pvscsi_update_irq_level(bool raise, uint64_t mask, uint64_t status) "interrupt level set to %d (MASK: 0x%"PRIx64", STATUS: 0x%"PRIx64")"
127pvscsi_update_irq_msi(void) "sending MSI notification"
128pvscsi_cmp_ring_put(unsigned long addr) "got completion descriptor 0x%lx"
129pvscsi_msg_ring_put(unsigned long addr) "got message descriptor 0x%lx"
130pvscsi_complete_request(uint64_t context, uint64_t len, uint8_t sense_key) "completion: ctx: 0x%"PRIx64", len: 0x%"PRIx64", sense key: %u"
131pvscsi_get_sg_list(int nsg, size_t size) "get SG list: depth: %u, size: %zu"
132pvscsi_get_next_sg_elem(uint32_t flags) "unknown flags in SG element (val: 0x%x)"
133pvscsi_command_complete_not_found(uint32_t tag) "can't find request for tag 0x%x"
134pvscsi_command_complete_data_run(void) "not all data required for command transferred"
135pvscsi_command_complete_sense_len(int len) "sense information length is %d bytes"
136pvscsi_convert_sglist(uint64_t context, unsigned long addr, uint32_t resid) "element: ctx: 0x%"PRIx64" addr: 0x%lx, len: %ul"
137pvscsi_process_req_descr(uint8_t cmd, uint64_t ctx) "SCSI cmd 0x%x, ctx: 0x%"PRIx64
138pvscsi_process_req_descr_unknown_device(void) "command directed to unknown device rejected"
139pvscsi_process_req_descr_invalid_dir(void) "command with invalid transfer direction rejected"
140pvscsi_process_io(unsigned long addr) "got descriptor 0x%lx"
141pvscsi_on_cmd_noimpl(const char* cmd) "unimplemented command %s ignored"
142pvscsi_on_cmd_reset_dev(uint32_t tgt, int lun, void* dev) "PVSCSI_CMD_RESET_DEVICE[target %u lun %d (dev 0x%p)]"
143pvscsi_on_cmd_arrived(const char* cmd) "command %s arrived"
144pvscsi_on_cmd_abort(uint64_t ctx, uint32_t tgt) "command PVSCSI_CMD_ABORT_CMD for ctx 0x%"PRIx64", target %u"
145pvscsi_on_cmd_unknown(uint64_t cmd_id) "unknown command %"PRIx64
146pvscsi_on_cmd_unknown_data(uint32_t data) "data for unknown command 0x:%x"
147pvscsi_io_write(const char* cmd, uint64_t val) "%s write: %"PRIx64
148pvscsi_io_write_unknown(unsigned long addr, unsigned sz, uint64_t val) "unknown write address: 0x%lx size: %u bytes value: 0x%"PRIx64
149pvscsi_io_read(const char* cmd, uint64_t status) "%s read: 0x%"PRIx64
150pvscsi_io_read_unknown(unsigned long addr, unsigned sz) "unknown read address: 0x%lx size: %u bytes"
151pvscsi_init_msi_fail(int res) "failed to initialize MSI, error %d"
152pvscsi_state(const char* state) "starting %s ..."
153pvscsi_tx_rings_ppn(const char* label, uint64_t ppn) "%s page: %"PRIx64
154pvscsi_tx_rings_num_pages(const char* label, uint32_t num) "Number of %s pages: %u"
155
156# hw/scsi/esp.c
157esp_error_fifo_overrun(void) "FIFO overrun"
158esp_error_unhandled_command(uint32_t val) "unhandled command (%2.2x)"
159esp_error_invalid_write(uint32_t val, uint32_t addr) "invalid write of 0x%02x at [0x%x]"
160esp_raise_irq(void) "Raise IRQ"
161esp_lower_irq(void) "Lower IRQ"
162esp_dma_enable(void) "Raise enable"
163esp_dma_disable(void) "Lower enable"
164esp_get_cmd(uint32_t dmalen, int target) "len %d target %d"
165esp_do_busid_cmd(uint8_t busid) "busid 0x%x"
166esp_handle_satn_stop(uint32_t cmdlen) "cmdlen %d"
167esp_write_response(uint32_t status) "Transfer status (status=%d)"
168esp_do_dma(uint32_t cmdlen, uint32_t len) "command len %d + %d"
169esp_command_complete(void) "SCSI Command complete"
170esp_command_complete_unexpected(void) "SCSI command completed unexpectedly"
171esp_command_complete_fail(void) "Command failed"
172esp_transfer_data(uint32_t dma_left, int32_t ti_size) "transfer %d/%d"
173esp_handle_ti(uint32_t minlen) "Transfer Information len %d"
174esp_handle_ti_cmd(uint32_t cmdlen) "command len %d"
175esp_mem_readb(uint32_t saddr, uint8_t reg) "reg[%d]: 0x%2.2x"
176esp_mem_writeb(uint32_t saddr, uint8_t reg, uint32_t val) "reg[%d]: 0x%2.2x -> 0x%2.2x"
177esp_mem_writeb_cmd_nop(uint32_t val) "NOP (%2.2x)"
178esp_mem_writeb_cmd_flush(uint32_t val) "Flush FIFO (%2.2x)"
179esp_mem_writeb_cmd_reset(uint32_t val) "Chip reset (%2.2x)"
180esp_mem_writeb_cmd_bus_reset(uint32_t val) "Bus reset (%2.2x)"
181esp_mem_writeb_cmd_iccs(uint32_t val) "Initiator Command Complete Sequence (%2.2x)"
182esp_mem_writeb_cmd_msgacc(uint32_t val) "Message Accepted (%2.2x)"
183esp_mem_writeb_cmd_pad(uint32_t val) "Transfer padding (%2.2x)"
184esp_mem_writeb_cmd_satn(uint32_t val) "Set ATN (%2.2x)"
185esp_mem_writeb_cmd_rstatn(uint32_t val) "Reset ATN (%2.2x)"
186esp_mem_writeb_cmd_sel(uint32_t val) "Select without ATN (%2.2x)"
187esp_mem_writeb_cmd_selatn(uint32_t val) "Select with ATN (%2.2x)"
188esp_mem_writeb_cmd_selatns(uint32_t val) "Select with ATN & stop (%2.2x)"
189esp_mem_writeb_cmd_ensel(uint32_t val) "Enable selection (%2.2x)"
190esp_mem_writeb_cmd_dissel(uint32_t val) "Disable selection (%2.2x)"
191
192# hw/scsi/esp-pci.c
193esp_pci_error_invalid_dma_direction(void) "invalid DMA transfer direction"
194esp_pci_error_invalid_read(uint32_t reg) "read access outside bounds (reg 0x%x)"
195esp_pci_error_invalid_write(uint32_t reg) "write access outside bounds (reg 0x%x)"
196esp_pci_error_invalid_write_dma(uint32_t val, uint32_t addr) "invalid write of 0x%02x at [0x%x]"
197esp_pci_dma_read(uint32_t saddr, uint32_t reg) "reg[%d]: 0x%8.8x"
198esp_pci_dma_write(uint32_t saddr, uint32_t reg, uint32_t val) "reg[%d]: 0x%8.8x -> 0x%8.8x"
199esp_pci_dma_idle(uint32_t val) "IDLE (%.8x)"
200esp_pci_dma_blast(uint32_t val) "BLAST (%.8x)"
201esp_pci_dma_abort(uint32_t val) "ABORT (%.8x)"
202esp_pci_dma_start(uint32_t val) "START (%.8x)"
203esp_pci_sbac_read(uint32_t reg) "sbac: 0x%8.8x"
204esp_pci_sbac_write(uint32_t reg, uint32_t val) "sbac: 0x%8.8x -> 0x%8.8x"
205
206# hw/scsi/spapr_vscsi.c
207spapr_vscsi_send_rsp(uint8_t status, int32_t res_in, int32_t res_out) "status: 0x%x, res_in: %"PRId32", res_out: %"PRId32
208spapr_vscsi_fetch_desc_no_data(void) "no data descriptor"
209spapr_vscsi_fetch_desc_direct(void) "direct segment"
210spapr_vscsi_fetch_desc_indirect(uint32_t qtag, unsigned desc, unsigned local_desc) "indirect segment local tag=0x%"PRIx32" desc#%u/%u"
211spapr_vscsi_fetch_desc_out_of_range(unsigned desc, unsigned desc_offset) "#%u is ouf of range (%u bytes)"
212spapr_vscsi_fetch_desc_dma_read_error(int rc) "spapr_vio_dma_read -> %d reading ext_desc"
213spapr_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" }"
214spapr_vscsi_fetch_desc_out_of_desc(void) "Out of descriptors !"
215spapr_vscsi_fetch_desc_out_of_desc_boundary(unsigned offset, unsigned desc, uint32_t len) "   offset=0x%x is out of a descriptor #%u boundary=%"PRIx32
216spapr_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" }"
217spapr_vscsi_srp_indirect_data(uint32_t len) "indirect segment 0x%"PRIx32" bytes"
218spapr_vscsi_srp_indirect_data_rw(int writing, int rc) "spapr_vio_dma_r/w(%d) -> %d"
219spapr_vscsi_srp_indirect_data_buf(unsigned a, unsigned b, unsigned c, unsigned d) "     data: %02x %02x %02x %02x..."
220spapr_vscsi_srp_transfer_data(uint32_t len) "no data desc transfer, skipping 0x%"PRIx32" bytes"
221spapr_vscsi_transfer_data(uint32_t tag, uint32_t len, void *req) "SCSI xfer complete tag=0x%"PRIx32" len=0x%"PRIx32", req=%p"
222spapr_vscsi_command_complete(uint32_t tag, uint32_t status, void *req) "SCSI cmd complete, tag=0x%"PRIx32" status=0x%"PRIx32", req=%p"
223spapr_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"
224spapr_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"
225spapr_vscsi_command_complete_status(uint32_t status) "Command complete err=%"PRIu32
226spapr_vscsi_save_request(uint32_t qtag, unsigned desc, unsigned offset) "saving tag=%"PRIu32", current desc#%u, offset=0x%x"
227spapr_vscsi_load_request(uint32_t qtag, unsigned desc, unsigned offset) "restoring tag=%"PRIu32", current desc#%u, offset=0x%x"
228spapr_vscsi_process_login(void) "Got login, sending response !"
229spapr_vscsi_queue_cmd_no_drive(uint64_t lun) "Command for lun %08" PRIx64 " with no drive"
230spapr_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"
231spapr_vscsi_do_crq(unsigned c0, unsigned c1) "crq: %02x %02x ..."
232