Re: Timer allocates too many ports

From: Randy.Dunlap
Date: Fri Aug 20 2004 - 16:43:40 EST


On Fri, 20 Aug 2004 23:25:49 +0200 Pierre Ossman wrote:

| Randy.Dunlap wrote:
|
| >On Fri, 20 Aug 2004 22:33:19 +0200 Pierre Ossman wrote:
| >
| >| The timer in linux allocates the io ports 0x40 to 0x5F. This is causing
| >| some problems for me since the hardware I'm writing a driver for has its
| >| ports at 0x4E and 0x4F. In Windows the ports 0x40 to 0x43 are used for
| >| the timer. Why does linux allocate so many more ports?
| >
| >Seems reasonable to me for Linux timer driver (resource) to allocate
| >0x40 - 0x43 and 0x50 - 0x53 (on intel x86; only 0x40 - 0x43 for AMD x86-64).
| >At least that's what is in some Intel specs. That would be accurate
| >AFAIK and still leave 0x4e - 0x4f available.
| >
| >
| Unfortunately the driver allocates 0x40-0x5f as can be seen in
| /proc/ioports:
| 0040-005f : timer

Yes, I know, I wasn't questioning that.

| I do not know which file contains this allocation so I haven't been able
| to change it. Any ideas?

Sure, arch/i386/kernel/setup.c, near line 221 (in 2.6.8.1):

.name = "timer",
.start = 0x0040,
.end = 0x005f,
.flags = IORESOURCE_BUSY | IORESOURCE_IO

Just split that into 2 entries in the standard_io_resources[] array
and it's done.


| >What kind of device uses IO addresses 0x4e - 0x4f?
| >Is it a motherboard device? Intel ICH specs think that 0x4e - 0x4f
| >are for LPC SIO and are forwarded to the LPC device.
| >
| >
| The device is a SD/MMC card reader which is indeed an LPC device. The
| ports in question are needed to identify the chip and determine which
| resources it has. Actual usage is done on higher ports.


--
~Randy
-
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/