-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Description
Is this the right place for my bug report?
Yes
Describe the bug
build an arm32 kernel with the default config (arch/arm/configs/bcm2711_defconfig), then booting this kernel on rpi2/3 with 1G physical memory, and plug a usb stick to the usb port, copy a large size file (300M-600M) to usb stick, the usb host driver dwc_otg will print I/O errors.
Please refer to: https://bugs.launchpad.net/ubuntu/+source/linux-raspi2/+bug/1852510
To reproduce
follow the steps as above
Expected behaviour
usb stick can work correctly on rpi2/3 under armv7l kernel with HIGHMEM and VMSPLIT_3G enabled.
Actual behaviour
usb stick can't work on rpi2/3 under the armv7l kernel with HIGHMEM and VMSPLIT_3G.
System
RPI2/3 boards with 1G physical ram
Logs
[ 176.129299] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 176.129326] sd 0:0:0:0: [sda] tag#0 CDB: Write(10) 2a 00 00 2e 24 b0 00 00 f0 00
[ 176.129349] blk_update_request: I/O error, dev sda, sector 3024048 op 0x1:(WRITE) flags 0x4000 phys_seg 15 prio class 0
[ 176.883968] usb 1-1.1.2: reset high-speed USB device number 8 using dwc_otg
[ 177.079960] usb 1-1.1.2: reset high-speed USB device number 8 using dwc_otg
Additional context
I found with the arm32 kernel, if we enable the HIGHMEM and VMSPLIT_3G (like arch/arm/configs/bcm2711_defconfig) in the kernel, some memory will map to highmem region on rpi2/3 with 1G physical memory, and the dwc_otg will not work anymore when copying a large-size file to usb stick.