LS1043ARDB high usb interrupts at idle

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LS1043ARDB high usb interrupts at idle

Jump to solution
2,304 Views
jimbrooke-l3
Contributor II

Hi,

I've just started looking at the LS1043ARDB board to evalute performance.  I'm using LSDK20.04 and booting from SD Card using the image spit out by `flex-installer -i mksdcard -m ls1043ardb`. This combines the default 5.4 kernel w/ the ubuntu_main rootfs image.

This seems to boot ok, but I've noticed that the USB generates errors at boot even when no devices are attached and the system generates around 59000 interrupts/s from two of the USB interrupts.

root@lsarm43:~# grep usb /proc/interrupts
46: 1 0 0 0 GICv2 92 Level xhci-hcd:usb1
47: 3057969 0 0 0 GICv2 93 Level xhci-hcd:usb3
48: 2024969 0 0 0 GICv2 95 Level xhci-hcd:usb5
root@lsarm43:~# uptime
15:38:49 up 1 min, 1 user, load average: 0.38, 0.20, 0.08

(5Million USB interrupts in the first minute of system boot from an idle system with nothing attached to USB)

I swapped the "bootpartition" for the 4.19 version (also built by NXP - just no longer the default in the mksdcard operation) and I see the same behaviour.

I see the following errors the the `dmesg` log, but I'm not sure if they're related:

[ 3.067550] dwc3 2f00000.usb3: Failed to get clk 'ref': -2
[ 3.073918] dwc3 3000000.usb3: Failed to get clk 'ref': -2
[ 3.079875] dwc3 3100000.usb3: Failed to get clk 'ref': -2
...more messages about USB buses being registered
[ 3.632556] usb usb5-port1: over-current condition
[ 3.648546] usb usb6-port1: over-current condition

It doesn't seem to matter if a USB device is attached or not. The behaviour is the same.

If I boot from the TinyDistro install in NOR flash (4.9.35 kernel) I don't see the same USB interrupt issues. (but this distro doesn't have the tools I need to evaluate the board easily).

Any ideas?

0 Kudos
1 Solution
2,267 Views
jimbrooke-l3
Contributor II

Hi,

 

I tried the provided recipe for generating the images.  I encountered the same results.

I then realized that I was only booting the OS from SD. The RCW and
U-boot were both coming from the SPI flash. I flipped the SW4/5
jumpers to bootstrap the board from SD and that resolved my problem.
The firmware I'm running now was assembled from binaries downloaded
from NXP with:

flex-installer -i auto:lsdk2012 -m ls1043ardb -d /dev/sdb

This all seemed to work correctly:

 

root@localhost:~# dmesg | grep 'Linux version'
[ 0.000000] Linux version 5.4.47 (jenkins@saturn) (gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)) #3 SMP PREEMPT Fri Dec 11 04:27:52 CST 2020
root@localhost:~# uptime
16:50:35 up 5 min, 1 user, load average: 0.00, 0.06, 0.03
root@localhost:~# grep usb /proc/interrupts
46: 1 0 0 0 GICv2 92 Level xhci-hcd:usb1
47: 1 0 0 0 GICv2 93 Level xhci-hcd:usb3

 

View solution in original post

0 Kudos
3 Replies
1,878 Views
6ang
Contributor I

this patch can fix LS1043 LSDK18 old uboot + linux 5.4 kernel USB high interrupts BUG

http://patchwork.ozlabs.org/project/uboot/patch/20190920093429.40435-1-ran.wang_1@nxp.com/

0 Kudos
2,268 Views
jimbrooke-l3
Contributor II

Hi,

 

I tried the provided recipe for generating the images.  I encountered the same results.

I then realized that I was only booting the OS from SD. The RCW and
U-boot were both coming from the SPI flash. I flipped the SW4/5
jumpers to bootstrap the board from SD and that resolved my problem.
The firmware I'm running now was assembled from binaries downloaded
from NXP with:

flex-installer -i auto:lsdk2012 -m ls1043ardb -d /dev/sdb

This all seemed to work correctly:

 

root@localhost:~# dmesg | grep 'Linux version'
[ 0.000000] Linux version 5.4.47 (jenkins@saturn) (gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)) #3 SMP PREEMPT Fri Dec 11 04:27:52 CST 2020
root@localhost:~# uptime
16:50:35 up 5 min, 1 user, load average: 0.00, 0.06, 0.03
root@localhost:~# grep usb /proc/interrupts
46: 1 0 0 0 GICv2 92 Level xhci-hcd:usb1
47: 1 0 0 0 GICv2 93 Level xhci-hcd:usb3

 

0 Kudos
2,279 Views
Pavel
NXP Employee
NXP Employee

There is the following message dump for this copmmand on our LS1043ARDB board:

NXP LSDK 2004 main

localhost login: root

Password:

Last login: Wed Jan 20 10:39:24 UTC 2021 on tty7

Welcome to NXP LSDK 2004 main (GNU/Linux 5.4.3 aarch64)

 

 * Support:        https://www.nxp.com/lsdk

 * Documentation:  https://lsdk.github.io/document

 * Licensing:      https://lsdk.github.io/eula

 

The programs included with the NXP LSDK are free software, the exact distribution

terms of some programs are described in the individual files in /usr/share/doc.

NXP LSDK comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

By using this LSDK, you indicate that you accept the terms of the Agreement in

the link above and you acknowledge that you have the authority, for yourself

or on behalf of your company, to bind your company to these terms.

root@localhost:~# grep usb /proc/interrupts

 45:          1          0     GICv2  92 Level     xhci-hcd:usb1

 46:          1          0     GICv2  93 Level     xhci-hcd:usb3

 47:          1          0     GICv2  95 Level     xhci-hcd:usb5

 

This image was prepared using the following commands:

  1. flex-builder -i mkrfs -r ubuntu:main -a arm64 //            # generate ubuntu userland, '-r ubuntu:main -a arm64' by default
  2. flex-builder -i mkbootpartition -a arm64   # genrate bootpartition_LS_arm64_lts_5.4.tgz
  3. flex-builder -c apps -a arm64 ubuntu:main -a arm64    # build all apps components
  4. flex-builder -i merge-component ubuntu:main -a arm64  # merge app components into target userland
  5. flex-builder -i packrfs ubuntu:main -a arm64          # pack and compress target userland as .tgz
  6. flex-builder -i mkfw -m ls1046ardb -b sd # generate composite firmware_ls1046ardb_uboot_sdboot.img

 

  1. // create new terminal
  2. sudo mc // start mc as root
  3. // go to LSDK folder
  4. Ctrl-O // hide pannels of the MC
  5. source setup.env
  6. cd build/images
  7. flex-installer -p 4P=100M:1G:500M:-1 -b bootpartition_LS_arm64_lts_5.4.tgz -r rootfs_lsdk2004_ubuntu_main_arm64.tgz -f firmware_ls1043ardb_uboot_sdboot.img -d /dev/sdb

 

Test your board using similar command sequence.

0 Kudos