Re: How to access serial port that is set in BIOS as OS Controlled

From: Bjorn Helgaas
Date: Thu Aug 04 2011 - 13:39:34 EST


On Thu, Aug 4, 2011 at 4:56 AM, Andrey Panin <pazke@xxxxxxxxxxxxxx> wrote:
> On 209, 07 28, 2011 at 01:43:11PM +0800, Jeff Chua wrote:
>> I'm trying to access the serial port ttyS2 that is set in the BIOS as
>> "OS Controlled" without much success. If it's set it to "Always
>> Enabled",  I can access the serial port.
>>
>> This is on the Intermec CV60, and ttyS2 is the touchscreen port.
>>
>> # setserial /dev/ttyS2
>> /dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 6
>>
>>
>> If I set the BIOS to "OS Controlled", I can't access the serial port
>> no matter what parameter I pass to the setserial. The factory default
>> is "OS Controlled", and Window XP can detect and access the port.
>> There will be hundreds of CV60 to get into the BIOS to set it one by
>> one. If there's a way to access the port in linux, it'll be great!
>
> Does lspnp show this port in "OS Controlled" mode ?

It would definitely be interesting to know what lspnp says, but I
suspect there might be even more to it.

Linux can find UARTs via PNP (via PNPACPI on modern boxes). But we
also poke blindly at the legacy I/O port addresses in
SERIAL_PORT_DFNS, which includes 0x3e8, so we should have found it
that way even if we didn't find it via PNP.

My guess is that in "OS Controlled" mode, the port is initially
powered off or disconnected, so we can't find it, and there's some
ACPI method that would turn it on. Windows might be enabling it
automatically.

Can you also collect the DSDT so we can investigate this possibility?
There are instructions here:
http://kernel.org/pub/linux/kernel/people/helgaas/debug . You might
want to open a bug report at http://bugzilla.kernel.org to have a
place to attach the DSDT and some dmesg logs. I would start by filing
it under "ACPI / Config-Other".

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/