Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#11871 closed defect (fixed)

XO-1.75 Open Firmware reports Data Abort during Linux kernel load if a PL2303 USB serial adapter is present

Reported by: Quozl Owned by: Quozl
Priority: normal Milestone: 12.1.0
Component: ofw - open firmware Version: Development firmware
Keywords: Cc:
Blocked By: Blocking:
Deployments affected: Action Needed: no action
Verified: no

Description


Change History (13)

comment:1 Changed 3 years ago by Quozl

  • Action Needed changed from diagnose to package

Fixed by svn 2983.

On XO-1.75, ?usb-keyboard searches for a USB serial adapter /usb/serial and binds it to the console multiplexor. This results in a Data Abort during boot when the multiplexor is torn down without the device being closed.

XO-1 and XO-1.5 are unaffected. /usb/serial is an inadequate device specification, because the probed device starts with /pci.

ftrace:

$find-next        Called from $find-word                at  fda0a5a8
$find-word        Called from $call-self                at  fda2d88c
   Catch frame - SP: fdbfbea0   my-self: fda07bb8   handler: fdbfb690 
catch             Called from ?close                    at  fda2ddd8
?close            Called from close-parents             at  fda2de74
close-parents     Called from close-dev                 at  fda2dec0
 fd9fff90
close-dev         Called from close                     at  fda899ec
execute           Called from $call-self                at  fda2d898
   Catch frame - SP: fdbfbef4   my-self: fd9fff90   handler: fdbfb690 
catch             Called from ?close                    at  fda2ddd8
?close            Called from close-parents             at  fda2de74
close-parents     Called from close-dev                 at  fda2dec0
        0
close-dev         Called from teardown-mux-io           at  fdac7854
teardown-mux-io   Called from quiesce                   at  fdac7878
quiesce           Called from linux-hook-freeze         at  fdaca298

comment:2 Changed 3 years ago by Quozl

Symptom does not occur with boot of os883.zd4 with 'X' game key held down.

comment:3 Changed 3 years ago by pgf

this weekend i saw a similar symptom with a USB GPS dongle. right now i'm getting "Data Abort", but what i was getting before was continuous "Keyboard Interrupt" indications from OFW. product also identifies as a Prolific USB-Serial controller (067b:2303). the GPS dongle may have been sending data at the time, likely at the wrong baud rate.

(reporting, in case the "Keyboard Interrupt" symptom implies a second issue.)

comment:4 Changed 3 years ago by Quozl

Thanks. 067b:2302 is indeed in the list of recognised devices. It would be bound as a keyboard and be visible in the output of the .mux command. If the "keyboard" transmitted the break key code or reported a serial break condition, then Keyboard interrupt is expected. Unlike XO-1 and XO-1.5, the XO-1.75 build allows multiple keyboard interrupt events.

comment:5 Changed 3 years ago by pgf

i can't tell whether you're agreeing that it is, or isn't, a bug. it seems that this behavior won't be fixed by the commit above, right?

the mismatched baud rate could certainly cause a serial break from the device, and therefore keep the system from booting. should i trac it separately?

comment:6 Changed 3 years ago by Quozl

Before the fix in this ticket, you would see the Data Abort symptom you described. After the fix, you would not. The Keyboard interrupt thing might or might not be fixed, I'm not sure. I can't test. Here's a build you can test with: http://dev.laptop.org/~quozl/q4d14jb.rom

comment:7 follow-up: Changed 3 years ago by pgf

i've reproduced, but it's not the bug i thought it was.

while experiencing what was no doubt the Data Abort symptom over the weekend, i rebooted the machine with serial attached, and hit ESC for an ok prompt. at that point i started getting the Keyboard Interrupt loop. since i had just been having trouble booting, and was now seeing a loop at the OFW commandline, i mistakenly thought i'd found the cause of the boot problem.

this seems like a regression. can you remind me of the use case for the new "USB serial access to OFW" feature?

(the other symptom, Data Abort, is gone with q4d14jb.rom.)

comment:8 in reply to: ↑ 7 Changed 3 years ago by Quozl

Replying to pgf:

i've reproduced, but it's not the bug i thought it was.

while experiencing what was no doubt the Data Abort symptom over the weekend, i rebooted the machine with serial attached, and hit ESC for an ok prompt. at that point i started getting the Keyboard Interrupt loop. since i had just been having trouble booting, and was now seeing a loop at the OFW commandline, i mistakenly thought i'd found the cause of the boot problem.
this seems like a regression.

Agreed. Raised #11887 to investigate, since it is a separate problem.

can you remind me of the use case for the new "USB serial access to OFW" feature?

This is not a new feature, it has been there since the VIA demo board support in the biosload build (svn 1152), and XO-1.5 (svn 1154). It was backported to XO-1 as part of the fixes for #10042 and #10043 in svn 1758. It was since broken on XO-1 and XO-1.5 by device naming changes, where USB is placed under PCI. XO-1.75 exposed it because USB devices are now higher up the device hierarchy.

I'm not aware of a use case, but I could speculate. It allows access to Open Firmware on a unit where the keyboard has failed, and a USB keyboard is not available, but a USB serial device is available. Perhaps it is no longer required, in which case #11887 can be closed by removing the code.

If it is to remain, then either an alias or a fix to the device path is needed.

comment:9 Changed 3 years ago by Quozl

  • Action Needed changed from package to code
  • Status changed from new to assigned

Mitch has agreed we can remove the USB serial keyboard support from all models.

comment:10 Changed 3 years ago by Quozl

  • Action Needed changed from code to package

Fixed in svn 2985.

comment:11 Changed 3 years ago by Quozl

  • Action Needed changed from package to test in build

Released in Q4D15 and is in os12.

comment:12 Changed 3 years ago by Quozl

  • Action Needed changed from test in build to no action
  • Resolution set to fixed
  • Status changed from assigned to closed

Tested Q4D15 is present, automatic upgrade from Q4D14 occurs, closing.

comment:13 Changed 3 years ago by carrott

Confirmed that XO-1.75 12.1.0 os12 does not hang during boot with a pl2303 serial port connected.

Note: See TracTickets for help on using tickets.