In one of the
previous publications [1], we touched upon such a seemingly obvious question: “How to make sure that the flash drive works in USB 3.0?” Voices in the discussion first sarcastically noted that the article lacked the “sadomaso” tag, but then, as if frightened by their own ego, crossed out this thought from our consciousness.
But this thought has already injured the weak minds of experimenters. There was a desire to check the availability of USB 3.0 for any connected device at the start stage (for example, in the UEFI Shell) before launching the operating system.
To begin with, a small
CheckUSB utility was written (which, however, so far is only designed to work with some implementations of the 8th version of Intel chipsets).
Figure 1 .
Experiments with CheckUSB utility on ASUS T300LA laptop')
In the approach to the mobile platform, it turned out that in some cases, when rebooting, the laptop's UEFI firmware initializes the USB subsystem incompletely, leaving some of the work to the operating system.
Figure 2 .
XHCI Pre-Boot Mode option in UEFI firmware settings on ASUS T300LA laptopFor example, if in CMOS Setup the initial state of the xHCI Pre-Boot Mode option is set to Disable, replace with Smart Auto, and without loading the operating system, run the CheckUSB utility, we see that the list of devices connected to the xHCI controller is empty. This means that an EHCI controller is used to service the connected USB devices.
Figure 3 .
Connecting USB devices to the Enhanced Host Controller Interface on an ASUS N750JK laptop before running WindowsSo, if you boot into UEFI right after switching on, without starting Windows, you get:
- USB 2.0 Port Routing = 0, 14 USB2 connections are connected to the EHCI
- USB 3.0 Port SuperSpeed Enable = 0, 4 USB3 connections are disabled
The values of the masks show that the operating system has the right to switch connections to the xHCI service:
- USB 2.0 Port Routing Mask = 00003FFFh
- USB 3.0 Port Routing Mask = 0000000Fh
The device list is empty because we only display the xHCI registers, and the devices are transferred to EHCI service using RMH. Description of the bit fields is available in the article “Diagnostic utility CheckUSB” [2], [3].
If the restart is repeated after the start of the operating system, all devices are correctly connected to the xHCI controller.
Figure 4 .
Connecting USB devices to eXtensible Host Controller Interface on ASUS N750JK laptop when booting after WindowsThe access control logic for ports “remembers” the state that occurred before the reboot:
- USB 2.0 Port Routing = 03FFFh, 14 USB2 connections are connected to the xHCI USB2 subsystem
- USB 3.0 Port SuperSpeed Enable = 0Fh, 4 USB3 connections can use SuperSpeed mode
.
Recall that the number of external USB3 ports on the ASUS N750JK platform under investigation is 4.
Links
- How to make sure that the flash drive works in USB 3.0?
- Diagnostic utility CheckUSB
- How to check USB3 mode?