Alan Cox wrote:
On Llu, 2005-02-07 at 09:29, Charles-Edouard Ruault wrote:Linus, Andrew,
- Why is the generic timer using this address ? isn't it reserving a too wide portion of IO ports ? Should it be modified for this board ?
It just reserved the entire chip space since way back when.
- If there's a good reason for the timer to request this address, is there a clean way to share it with the timer ?
Submit a small patch to Linus/Andrew to make the generic code only reserve the ports it should. It's just a historical oversight
As suggested by Alan, here's a small patch against kernel 2.4.29 to split the IO addresses reserved for the PC timer into two regions instead of a large one.
It mimics what has been done in kernel 2.6.
Instead of reserving 0x40 through 0x5f it reserves only what the two timers need, i.e 0x40-0x43 and 0x50-0x53.
It patches both i386 and x86_64 architecture.
Please CC me in replies since i did not subscribe to the list.
-- Charles-Edouard Ruault Idtect SA 115 rue Reaumur - 75002, Paris, France Tel: +33-1-55-34-76-65 Fax: +33-1-55-34-76-75 Web: http://www.idtect.com
--- linux/arch/i386/kernel/setup.c.orig Fri Feb 18 18:46:55 2005 +++ linux/arch/i386/kernel/setup.c Mon Feb 21 11:19:45 2005 @@ -354,7 +354,8 @@ struct resource standard_io_resources[] = { { "dma1", 0x00, 0x1f, IORESOURCE_BUSY }, { "pic1", 0x20, 0x3f, IORESOURCE_BUSY }, - { "timer", 0x40, 0x5f, IORESOURCE_BUSY }, + { "timer0", 0x40, 0x43, IORESOURCE_BUSY }, + { "timer1", 0x50, 0x53, IORESOURCE_BUSY }, { "keyboard", 0x60, 0x6f, IORESOURCE_BUSY }, { "dma page reg", 0x80, 0x8f, IORESOURCE_BUSY }, { "pic2", 0xa0, 0xbf, IORESOURCE_BUSY }, --- linux/arch/x86_64/kernel/setup.c.orig Mon Feb 21 11:56:11 2005 +++ linux/arch/x86_64/kernel/setup.c Mon Feb 21 11:54:41 2005 @@ -93,7 +93,8 @@ struct resource standard_io_resources[] = { { "dma1", 0x00, 0x1f, IORESOURCE_BUSY }, { "pic1", 0x20, 0x3f, IORESOURCE_BUSY }, - { "timer", 0x40, 0x5f, IORESOURCE_BUSY }, + { "timer0", 0x40, 0x43, IORESOURCE_BUSY }, + { "timer1", 0x50, 0x53, IORESOURCE_BUSY }, { "keyboard", 0x60, 0x6f, IORESOURCE_BUSY }, { "dma page reg", 0x80, 0x8f, IORESOURCE_BUSY }, { "pic2", 0xa0, 0xbf, IORESOURCE_BUSY },