Ubuntu kernel 2.6.24 with Fintek F81216 on NOVA 9452 MoBo
jamessteward at optusnet.com.au
Fri Apr 24 03:25:57 UTC 2009
I have a partial answer to my own question(s).
On Fri, 2009-04-24 at 10:05 +1000, James wrote:
> The BIOS reports that the board has 2 standard UARTs at 3f8/irq4 and
> 2f8/irq3, then 4 more UARTs at 3e8, 2e8, 2f0 and 2e0. There is no IRQ
> assignment in the BIOS for these 4 UARTs.
The BIOS is not configuring the interrupts for the Fintek ports for some
reason, but after reading the Fintek data sheet, it wasn't to hard to do
from user space once the system was booted. See below.
> I installed the kernel sources, started with the generic config, and
> made it capable of supporting 8 serial ports (I thought the standard 4
> plus the Fintek 4 = 8).
> Rebuilt and ran the new kernel, 188.8.131.52, with extra serial port
> Now dmesg reports the following.
> [ 0.000000] Initializing cgroup subsys cpuset
> [ 0.000000] Initializing cgroup subsys cpu
> [ 0.000000] Linux version 184.108.40.206 (root at rti8000lin) (gcc version
> 4.2.4 (Ubuntu 4.2.4-1ubuntu3)) #3 SMP Fri Apr 24 08:34:09 EST 2009
> (Ubuntu 2.6.24-23.52-generic)
> [ 423.904057] Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ
> sharing enabled
> [ 423.904269] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
> [ 423.904469] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
> [ 423.904665] serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
> [ 423.904864] serial8250: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A
> [ 423.905457] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
> [ 423.905736] 00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
> [ 423.906022] 00:09: ttyS2 at I/O 0x3e8 (irq = 11) is a 16550A
> [ 423.906291] 00:0a: ttyS3 at I/O 0x2e8 (irq = 0) is a 16550A
> [ 423.906561] 00:0b: ttyS4 at I/O 0x2f0 (irq = 0) is a 16550A
> [ 423.906827] 00:0c: ttyS5 at I/O 0x2e0 (irq = 0) is a 16550A
> This looks very odd to me. IRQ 11 is supposed to be reserved in the
> BIOS, and IRQ 0 ??
> At least now it detects the all available serial ports.
So the Fintek datasheet gives some pseudo code in the form of
So, I wrote a user space callable outb, and scripted the sequence of
I also installed setserial, and told it where to find the serial ports
and what IRQs to use.
I've now got 6 UARTs sharing IRQs 4 and 3. They seem to be working ok.
More information about the ubuntu-users