DF-5282 / baseline.sh
#!/bin/sh # DF-5282 — baseline (pre-poison) roothub port register access via the # driver's unmodified EHCI_PORTSC read/write paths. # GET_STATUS(port 1): bmReqType=0xa3 bReq=0 wVal=0 wIdx=1 wLen=4 # CLEAR_FEATURE(PORT_POWER): 0x23 1 8 1 0 (kernel MMIO WRITE to PORTSC) # SET_FEATURE(PORT_POWER): 0x23 3 8 1 0 (kernel MMIO WRITE to PORTSC) set -e echo "== baseline (sc_offs sane) ==" echo "-- GET_STATUS port1 (EOREAD4(PORTSC(1)) @ offs+0x48):" usbconfig -d ugen0.1 do_request 0xa3 0 0 1 4 echo "-- CLEAR_FEATURE(PORT_POWER) port1 (EOWRITE4(PORTSC(1))):" usbconfig -d ugen0.1 do_request 0x23 1 8 1 0 sleep 1 echo "-- GET_STATUS port1 after power-off (expect PP bit gone):" usbconfig -d ugen0.1 do_request 0xa3 0 0 1 4 echo "-- SET_FEATURE(PORT_POWER) port1 (restore):" usbconfig -d ugen0.1 do_request 0x23 3 8 1 0 sleep 1 echo "-- GET_STATUS port1 after power-on (expect PP back):" usbconfig -d ugen0.1 do_request 0xa3 0 0 1 4 |