From b0dbbe884a11771325ac4b8bc74962cb65369d1d Mon Sep 17 00:00:00 2001 From: Benjamin David Lunt <11790532+fysnet@users.noreply.github.com> Date: Sun, 15 Oct 2023 00:26:43 -0700 Subject: [PATCH] Misc uasp (#93) Update the CHANGES file. Syntax changes in uasp as requested a while back. --- bochs/CHANGES | 79 +++++++++++++++++++------------------ bochs/iodev/usb/usb_uasp.cc | 5 +-- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/bochs/CHANGES b/bochs/CHANGES index 4bf71e237..c81819a20 100644 --- a/bochs/CHANGES +++ b/bochs/CHANGES @@ -13,7 +13,7 @@ Brief summary : Enhanced magic breakpoint capabilities. Refer to user documentation for more details. - Updated Bochs instrumentation examples for new disassembler introduced in Bochs 2.7 release - USB: Fixed/added USB 2.0 Compliance to all devices. Hub still needs a few additions - - USB: xHCI: added the ability to have more than one model of xHCI hardware. Currently there are two + - USB: xHCI: added the ability to have more than one model of xHCI hardware. Currently there are two. - USB: Added experimental MSD UASP emulation - Disk images: Allows large VHD image files - Documentation updates and fixes @@ -59,50 +59,51 @@ Detailed change log : - Fixed Voodoo device compilation for big endian architectures - USB - - USB: SCSI: added the Event Status command (0x4a). - - USB: SCSI: added BX_DEBUG checks to the command sent by the Guest. - - USB: SCSI: added the block_size in the Read Capacity command (0x25). - - USB: SCSI: added some 0x9E/xx commands. ReadCapacity(16). - - USB: UHCI: re-wrote the uhci stack to better support control/bulk reclamation. - - USB: UHCI: check that a reset doesn't clear the CSC bit during a reset, but should after the reset is complete. - - USB: added the ability to change interfaces (ex: BBB to UASP). - - USB: added the Toggle bit check to all controllers/devices. (optional with a #define) - - USB: added the ability to trigger an over-current to all controllers. - - USB: added numberous BX_DEBUG checks to the USB_COMMON emulation to help show bugs in a Guest's device driver. - - USB: added BX_DEBUG if the first requested packet after a reset is not 8 bytes. - - USB: added a BX_DEBUG check to make sure the speed indicator is correct within TDs. - - USB: added BX_DEBUG checks to all request lengths, max packet size, and other length checks. - - USB: return default speed of device/controller combination. - - USB: check that the bochsrc file doesn't specify two different devices for the same port. - - USB: check that the bochsrc file has a super-speed device defined on a correct port number. - - USB: re-wrote how the USB_COMMON passed on packets to allow for zero-length packets to be accepted. - - USB: HID: added multiple mouse modes to have different HID Reports, including a physical report, and an irregular report. - - USB: HID: added the Boot Protocol function. - - USB: HUB: fixed/Added a more accurate DeviceRemovable emulation. - - USB: HUB: Allow USB 1.0 or USB 1.1 emulation (there is a difference). - - USB: HUB: Add bit 0 function to the returned report (change status bit). - - USB: HUB: Some Guests think a NAK on the Interrupt EP is an error. (option to ignore this) - - USB: Floppy: Fixed the CBI/CB configuration descriptor. - - USB: Fixed/added USB 2.0 Compliance to all devices. Hub still needs a few additions. + - Added the ability to change interfaces (ex: BBB to UASP). + - Added the Toggle bit check to all controllers/devices. (optional with a #define) + - Added the ability to trigger an over-current to all controllers. + - Added numberous BX_DEBUG checks to the USB_COMMON emulation to help show bugs in a Guest's device driver. + - Added BX_DEBUG if the first requested packet after a reset is not 8 bytes. + - Added a BX_DEBUG check to make sure the speed indicator is correct within TDs. + - Added BX_DEBUG checks to all request lengths, max packet size, and other length checks. + - Return default speed of device/controller combination. + - Check that the bochsrc file doesn't specify two different devices for the same port. + - Check that the bochsrc file has a super-speed device defined on a correct port number. + - Re-wrote how the USB_COMMON passed on packets to allow for zero-length packets to be accepted. + - Fixed the Floppy CBI/CB configuration descriptor. + - Fixed/added USB 2.0 Compliance to all devices. Hub still needs a few additions. - Floppies (using the CB/CBI protocol) can only be full-speed. - Fixed the Endpoint Clear Feature request (halted, etc.). - Added the Endpoint Get Status request to each device. - Hub power switching emulation. - Fixed the return/request error on Device Qualifier requests. - Fixed Device Qualifier and Other Speed requests. - - USB: MSD: fixed USB 2.0 only descriptor emulation. (Device Qualifier, etc.) - - USB: OHCI: fixed the toggle emulation. - - USB: added the ability to catch 0xEE descriptors (Microsoft specific). - - USB: xHCI: added the ability to have more than one model of xHCI hardware. Currently there are two. - - USB: xHCI: added the ability to indicate the port count. - - USB: xHCI: check the USB2 and USB3 port assignments. - - USB: xHCI: added experimental Stream emulation. - - USB: added experimental MSD UASP emulation. - - USB: xHCI: added the (vendor) Dump Controller command (Specific to Bochs). - - USB: xHCI: added checks to the Evaluate Context and Address Device commands. - - USB: xHCI: fixed/updated the Port Status Change Event emulation. - - USB: xHCI: fixed/updated the port bandwidth emulation. - - USB: Many documentation additions. + - Added hints to the xHCI configuration Port Option display. + - Added the ability to catch 0xEE descriptors (Microsoft specific). + - Added experimental MSD UASP emulation. + - HID: added multiple mouse modes to have different HID Reports, including a physical report, and an irregular report. + - HID: added the Boot Protocol function. + - HUB: fixed/Added a more accurate DeviceRemovable emulation. + - HUB: Allow USB 1.0 or USB 1.1 emulation (there is a difference). + - HUB: Add bit 0 function to the returned report (change status bit). + - HUB: Some Guests think a NAK on the Interrupt EP is an error. (option to ignore this) + - MSD: fixed USB 2.0 only descriptor emulation. (Device Qualifier, etc.) + - OHCI: fixed the toggle emulation. + - SCSI: added the Event Status command (0x4a). + - SCSI: added BX_DEBUG checks to the command sent by the Guest. + - SCSI: added the block_size in the Read Capacity command (0x25). + - SCSI: added some 0x9E/xx commands. ReadCapacity(16). + - UHCI: re-wrote the uhci stack to better support control/bulk reclamation. + - UHCI: check that a reset doesn't clear the CSC bit during a reset, but should after the reset is complete. + - xHCI: added the ability to have more than one model of xHCI hardware. Currently there are two. + - xHCI: added the ability to indicate the port count. + - xHCI: check the USB2 and USB3 port assignments. + - xHCI: added experimental Stream emulation. + - xHCI: added the (vendor) Dump Controller command (Specific to Bochs). + - xHCI: added checks to the Evaluate Context and Address Device commands. + - xHCI: fixed/updated the Port Status Change Event emulation. + - xHCI: fixed/updated the port bandwidth emulation. + - Many documentation additions. - HPET - Bugfixes in HPET emulation diff --git a/bochs/iodev/usb/usb_uasp.cc b/bochs/iodev/usb/usb_uasp.cc index 01acdcdea..88316f93b 100644 --- a/bochs/iodev/usb/usb_uasp.cc +++ b/bochs/iodev/usb/usb_uasp.cc @@ -147,7 +147,6 @@ struct S_UASP_INPUT { int usb_msd_device_c::uasp_handle_data(USBPacket *p) { int ret = 0; - Bit8u *data = p->data; int len = p->len; int index = p->strm_pid; // high-speed device will be zero. super-speed device will have the stream id. @@ -497,7 +496,7 @@ int usb_msd_device_c::uasp_process_request(USBPacket *p, int index) } // check to make sure the direction is correct - if (p->pid != UASP_GET_DIR(req->mode)) { + if (p->pid != (int) UASP_GET_DIR(req->mode)) { BX_ERROR(("Found packet with wrong direction.")); uasp_do_stall(req); } @@ -578,7 +577,7 @@ int usb_msd_device_c::uasp_do_status(UASPRequest *req, USBPacket *p) // nothing } else if (req->result == STATUS_CHECK_CONDITION) { status->stat_qual = 0; - if (p->len >= sizeof(struct S_UASP_STATUS)) { + if (p->len >= (int) sizeof(struct S_UASP_STATUS)) { // do a REQUEST SENSE command static Bit8u request_sense[6] = { 0x03, 0, 0, 0, 18, 0 }; UASPRequest *r = &s.uasp_request[UASP_MAX_STREAMS_N];