I am newbie to the embedded world in general and the PC104+ world in particular, although I have been using Linux in the PC world for some time.
I think I understand how PCI interrupt routing works, and how Linux gets the information about interrupts, but this one has me beat. Lets start with the hardware. The processor is an Em-i412, which is a ZFX86 based board. It has a few peripherals (that I am using) on the board, such as ethernet (x2) and a serial port. This is running Phoenix BIOS. I then plug in an Em104P dual PCMCIA board, which is really a PCM-225 board. It has lots of jumpers on it to decide where in the stack it resides and which interrupts it uses. These resolve into 16 different usable configuraions. When I bring Linux up on this system it comes up quite happily and although there are some configurations where the ethernet chip interrupts get interfered with, I found one that does not interfere with any of the functions I need. That uses interrupt lines A and B as the two PCMCIA interrupts. The BIOS on the i412 has no summary which tells you which IRQs are assigned to what, but it does have a configuration page which allows you to mark some IRQs as being reserved for ISA devices and also allows you to allocate the four (A,B, C & D) pc104+ IRQ lines to PCI interrupts. This allows you to set either a specific IRQ or "auto" (or disabled, but that is not useful here). So I left it to auto, and the book (which is not always entirely accurate) says this will default to IRQ 11 and 13. I am not entirely sure I believe this as 11 is used by the first ethernet port and also the USB controller (which I am not using). Now I know that PCI IRQs are supposed to be sharable, but remember that some of the configurations rendered the ethernet port unusable by the linux driver, so I am not entirely sure that the card is sharing IRQs properly. When I start up the system it finds the PCMCIA card correctly (it uses a TI1420 chip and it finds that), but it says that no IRQ has been assigned. This makes sense because there is no way the BIOS can know that the jumpers on the PCMCIA board are using lines A and B. Even if I did not use auto, but used explicit IRQs, the BIOS would still not know which board in the stack used which lines and therefore which IRQs. So are we back to the ISA world of having to configure everything, or is there some means of doing this automatically? If we are back to the ISA world, now do I specify which IRQs are actually being used to the PCMCIA software in linux. If this is not the right place to ask this question I am sorry for wasting your time, but I would ask that if you know where I might get an answer you could point me in the right direction. Thanks in advance David

