[report] Booting delayed on arm64 + linux-next / next-20190724 tag with defconfig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

This is just a report though, I found an issue on the following environment like below:

< Environment >
- linux-next.git / next-20190724 + defconfig
- R-Car H3 / Salvator-X board

< Issue >
Booting delayed for 60 seconds like below:
----
[    2.030466] xhci-hcd ee000000.usb: xHCI Host Controller
[    2.035702] xhci-hcd ee000000.usb: new USB bus registered, assigned bus number 5
[    2.043138] xhci-hcd ee000000.usb: Direct firmware load for r8a779x_usb3_v3.dlmem failed with error -2
[    2.052454] xhci-hcd ee000000.usb: Falling back to sysfs fallback for: r8a779x_usb3_v3.dlmem
[   62.430971] xhci-hcd ee000000.usb: can't setup: -11
[   62.435858] xhci-hcd ee000000.usb: USB bus 5 deregistered
[   62.441289] xhci-hcd: probe of ee000000.usb failed with error -1
[   62.447704] usbcore: registered new interface driver usb-storage
----

< Investigation >
I investigated this issue and I found arch/arm64/config/defconfig enables
CONFIG_FW_LOADER_USER_HELPER_FALLBACK on the following commit.
----
commit 7f4e4afa140cd3bccd0f0b408f7c4a211eaef2ac
Author: Robin Gong <yibin.gong@xxxxxxx>
Date:   Wed Jul 17 14:47:10 2019 +0800

    arm64: defconfig: Enable SDMA on i.mx8mq/8mm

    Enable SDMA support on i.mx8mq/8mm chips, including enabling
    CONFIG_FW_LOADER_USER_HELPER/CONFIG_FW_LOADER_USER_HELPER_FALLBACK
    for firmware loaded by udev.

    Signed-off-by: Robin Gong <yibin.gong@xxxxxxx>
    Signed-off-by: Shawn Guo <shawnguo@xxxxxxxxxx>
----

I have some workarounds for now, but they are not perfect. So, I'll investigate this issue more.

Solution 1:
 - Disable CONFIG_FW_LOADER_USER_HELPER/CONFIG_FW_LOADER_USER_HELPER_FALLBACK again.
  - pros: No need to modify any code.
    cons: Need to change the config after make defconfig.

Solution 2:
 - The xhci-rcar.c uses request_firmware_direct() instead of request_firmware().
  - pros: We can use the defconfig without the long delay.
    cons: This breaks the hotplug (sysfs) based firmware loading of the xhci-rcar.c.

Solution 3:
 - The fw_run_sysfs_fallback() on drivers/base/firmware_loader/fallcack.c checks a condition whether
   system_state < SYSTEM_RUNNING.
  - pros: We can use the defconfig without the long delay.
    cons: This breaks firmware loading of all drivers on initrd.

Best regards,
Yoshihiro Shimoda





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux