13 Sep 06:18
[PATCH 0/2]: Allow 8250 to work on sparc.
From: David Miller <davem <at> davemloft.net>
Subject: [PATCH 0/2]: Allow 8250 to work on sparc.
Newsgroups: gmane.linux.serial, gmane.linux.kernel, gmane.linux.ports.sparc
Date: 2008-09-13 04:18:54 GMT
Subject: [PATCH 0/2]: Allow 8250 to work on sparc.
Newsgroups: gmane.linux.serial, gmane.linux.kernel, gmane.linux.ports.sparc
Date: 2008-09-13 04:18:54 GMT
Currently there is a "BROKEN || SPARC" dependency for CONFIG_SERIAL_8250 in drivers/serial/Kconfig. These changes try to eliminate that restriction so that Sparc users can use add-on PCI cards with 8250 serial controllers. The core issue that prevents this from working is that all of the onboard Sun specific serial drivers use the major=TTY_MAJOR, minor=64,65,66,... driver major/minor namespace, just like 8250. They coordinate amongst themselves using an internal allocator for the minor number space. This is contained in drivers/serial/suncore.c This presents two problems: 1) We have to make sure the Sun drivers register first, so that their device indexes don't change and thus people get broken serial consoles and stuff like that. 2) Also, it is necessary for 8250 to partake in this minor number allocation scheme, otherwise it cannot register because it'll try to use '64' as it's base minor number and one of the Sun serial drivers will have taken over that minor already. Working on this and testing it also uncovered another portability bug. The uart_port structure uses an "unsigned int" for the "ioport" member, but even I/O ports in PCI devices are 64-bit on sparc64, so the high bits were being chopped off when 8250 PCI cards were tested. The fix is to use "unsigned long" for this type and that's what the first patch does.(Continue reading)
RSS Feed