On Sun, Apr 08, 2007 at 09:20:31PM +0400, Sergei Shtylyov wrote: > > static struct plat_serial8250_port pcit_cplus_data[] = { > >- PORT(0x3f8, 4), > >+ PORT(0x3f8, 0), > > PORT(0x2f8, 3), > > PORT(0x3e8, 4), > > PORT(0x2e8, 3), > > Hm, what is that -- UART #1 without IRQ? workaround for not fully working interrupts on UART1. IRQ 0 means polling. Read the source. > > static struct resource sni_io_resource = { > >- .start = 0x00001000UL, > >+ .start = 0x00000000UL, > > .end = 0x03bfffffUL, > >- .name = "PCIT IO MEM", > >+ .name = "PCIT IO", > > .flags = IORESOURCE_IO, > > }; > > Why us this necessary, only beacuse compatible peripherals are behind > PCI? > EISA is behind PCI as well, yet you're setting PCIBIOS_MIN_IO to 0x9000. > Does this all really make sense? :-/ it does, how about reading the PCI code ? EISA IO address space is 0x0000 - 0xffff, so this IO addresses need to be forwarded by the PCI host bridge. PCIBIOS_MIN_IO is for the PCI address assignment code, and tells this code to start allocating IO space starting at 0x9000. This is needed because the pci eisa code will use n + 0x1000 as EISA slot base addresses, which gives 0x8000 for the 8th (last) slot. So it's IMHO a good idea to avoid collisions between EISA and PCI for IO space. > This is certainly *not* a PCI or [E]ISA resource. It's decoded by the > *host* bridge. so ? It's an IO address no device should use, because it won't work. Therefore mark it busy. That's all the code does. > > .start = 0xcfc, > > .end = 0xcff, > > .name = "PCI config data", > > Well, why not just join them into one? what's your point ? This stuff is all about giving some hints and avoiding address assignment collisions. I could just drop the whole table and nothing will change, because the PCI code doesn't assign IO addresses below 0x9000. Fine with me, but I think it doesn't hurt to know, what IO addresses are used for some stuff. Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessary a good idea. [ RFC1925, 2.3 ]