mptables and missing devices

Stefan Reinauer stepan at suse.de
Mon Sep 29 16:55:00 CEST 2003


* Stefan Reinauer <stepan at suse.de> [030929 22:15]:
> Hi,
> 
> is there a reason why the mptable creation uses dev_find_slot()
> to find the bridges instead of dev_find_device()? Since it does
> not even check whether the device it finds is the one it wants
> this sounds rather dangerous.
> 
> Taking the PCI_CLASS field into regard, it should be possible to
> search for all bridges in the system and generate the necessary
> mptable entries from the information gathered from the devices
> (SUBORDINATE_BUS, SECONDARY_BUS)

        /* define bus and isa numbers */
        for(bus_num = 0; bus_num < bus_isa; bus_num++) {
                smp_write_bus(mc, bus_num, "PCI   ");
        }
        smp_write_bus(mc, bus_isa, "ISA   ");

Is this an internal convention, a hardware rule or just common sense
that the ISA bus is the last bus in the mptable? An ISA bus has no 
bus number in the PCI view of things, does it?

I assume that the ISA compatibility interrupts handling is the same on
all platforms that have ISA, is it?
        /* ISA backward compatibility interrupts  */
        smp_write_intsrc(mc, mp_ExtINT, 
                MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT,
                bus_isa, 0x00, 0x02, 0x00);
        ...

        
Local interrupts are probably one per CPU:
        /* Standard local interrupt assignments */
What's the way to find out the number of CPUs while writing the mptable?

The HDAMA has no AGP slot.. is this a left over, or is it good for
something?
        /* AGP Slot */

The interrupt src entries for the different PCI slots confuse me a bit..
Is there a way to find out in the system how many pci slots a bridge
has, or should the bridge entry in the config file get an entry similar to:
        register "slots" = 2

  Stefan

-- 
Architecture Team
    SuSE Linux AG



More information about the coreboot mailing list