Dasharo / dasharo-issues

The Dasharo issue tracker
https://dasharo.com/
25 stars 0 forks source link

Some flash drives may not be detected after reboot #1051

Closed philipandag closed 1 month ago

philipandag commented 2 months ago

Component

Dasharo firmware

Device

NovaCustom V54 14th Gen

Dasharo version

v0.9.1-rc5

Dasharo Tools Suite version

--

Test case ID

SUD003.001

Brief summary

Flash drives not detected after three subsequent reboots

How reproducible

100%, tried two times with laptop powered from USB-C, and one time on AC and battery respectively

How to reproduce

Run SUD003.001 test case,

Expected behavior

The flash drives should be detected every time

Actual behavior

It looks that they are not detected after exactly three quick reboots. I couldn't reproduce it manually but in automatic tests it's 100% reproducible.

Screenshots

All the logs I have gathered. They look mostly the same, the flash drive is not detected after the third reboot. 7 usb-type-a-devices-detection.robot_log.zip 6 usb-type-a-devices-detection.robot_log.zip 5 usb-type-a-devices-detection.robot_log.zip 4 usb-type-a-devices-detection.robot_log.zip 3 usb-type-a-devices-detection.robot_log.zip 2 usb-type-a-devices-detection.robot_log.zip 1 usb-type-a-devices-detection.robot_log.zip

Additional context

I couldn't reproduce it manually. Only using the test suite, so maybe the time between the reboots is important? I have checked that after those exactly three reboots the flash drive is not detected also in the firmware, checked by entering the boot menu on every reboot.

May be related to https://github.com/Dasharo/dasharo-issues/issues/990

Solutions you've tried

Doing the test manually, repeating when powered by USB-C, from AC and from the battery.

mkopec commented 1 month ago

I have 100% reproduction with Sandisk Ultra Flair but not with Kingston DT 100. Buggy flash drive doesn't handle the reset correctly, perhaps?

SebastianCzapla commented 1 month ago

Some observations from various configurations related to reboots and usb pendrive detection, tested on 6.11 kernel with rc6 FW and EC. First, lsusb -v shows Sandisk as the only pendrive that negotiates 900mA of current draw (USB 3.0 limit), while other pendrives keep it up to 500mA (USB 2.0 limit)

Test fails with Sandisk, but pass with Kingston pendrive and other pendrives too. To test real power draws I connected pendrive via "Charger Doctor" usb power meter.

When connected via this meter, Sandisk negotiates only 224 mA instead of 900 mA. Tests pass with Sandisk connected via meter. Tests also pass when connected to Echo11 docking station frontal usb port, lsusb shows also only 224mA negotiated. Back USB ports of Echo11 straight up don't detect the pendrive at all.

So pretty much test fails on any config that results in negotiated power draw above 500mA.

SebastianCzapla commented 1 month ago

Here's a diff of two cbmem -1 dumps, one after passing the test, and one of the failed test

176a177,178
> UsbEnumeratePort: port 12 state - 00, change - 10 on 683C9C98
> UsbEnumeratePort: device disconnected event on port 12
miczyg1 commented 1 month ago

Tests pass with Sandisk connected via meter.

The meter may downgrade the connection to USB 2.0.

miczyg1 commented 1 month ago

log_usb_test.zip

On first test launch the SanDisk USB needed only 1 reboot to not be detected. I used the port near DC jack.

When I swapped to the port near audio jack, it also needed just 1 reboot to fail.

miczyg1 commented 1 month ago

The FSP doesn't seem to program USB MODPHY at all. Maybe this is something we can explore.

mkopec commented 1 month ago

I have 100% reproduction with Sandisk Ultra Flair but not with Kingston DT 100.

Also does not happen with Goodram 32GB sticks.

filipleple commented 1 month ago

I've got a pass with a SanDisk Ultra Flair attached to a docking station on V540TND rc-7

==============================================================================
Usb-Type-A-Devices-Detection
==============================================================================
SUD002.001 USB devices detection after warm boot (Ubuntu) :: Check... | SKIP |
Skipped with Skip keyword.
------------------------------------------------------------------------------
SUD003.001 USB devices detection after reboot (Ubuntu) :: Check wh... | PASS |
------------------------------------------------------------------------------
SebastianCzapla commented 1 month ago

Also passes with Goodram 32GB sticks on rc-7

==============================================================================
Usb-Type-A-Devices-Detection                                                  
==============================================================================
SUD002.001 USB devices detection after warm boot (Ubuntu) :: Check... ........
Checking if fwts is installed...

Package fwts is installed
SUD002.001 USB devices detection after warm boot (Ubuntu) :: Check... | PASS |
------------------------------------------------------------------------------
SUD003.001 USB devices detection after reboot (Ubuntu) :: Check wh... | PASS |
------------------------------------------------------------------------------
SUD004.001 USB devices detection after suspension (Ubuntu) :: Chec... | PASS |
------------------------------------------------------------------------------
SUD004.002 USB devices detection after suspension (Ubuntu) (S0ix) ... | SKIP |
SUD004.002 not supported
------------------------------------------------------------------------------
SUD004.003 USB devices detection after suspension (Ubuntu) (S3) ::... | SKIP |
SUD004.003 not supported
------------------------------------------------------------------------------
Usb-Type-A-Devices-Detection                                          | PASS |
5 tests, 3 passed, 0 failed, 2 skipped