167c167
< def makeX86System(mem_mode, mdesc = None, self = None):
---
> def makeX86System(mem_mode, numCPUs = 1, mdesc = None, self = None):
206,211c206,212
< bp = X86IntelMPProcessor(
< local_apic_id = 0,
< local_apic_version = 0x14,
< enable = True,
< bootstrap = True)
< self.intel_mp_table.add_entry(bp)
---
> for i in xrange(numCPUs):
> bp = X86IntelMPProcessor(
> local_apic_id = i,
> local_apic_version = 0x14,
> enable = True,
> bootstrap = (i == 0))
> self.intel_mp_table.add_entry(bp)
213c214
< id = 1,
---
> id = numCPUs,
216a218
> self.pc.south_bridge.io_apic.apic_id = io_apic.id
234,323c236,258
< assign_8259_0_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'ExtInt',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 0,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 0)
< self.intel_mp_table.add_entry(assign_8259_0_to_apic)
< assign_0_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'INT',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 0,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 2)
< self.intel_mp_table.add_entry(assign_0_to_apic)
< assign_8259_1_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'ExtInt',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 1,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 0)
< self.intel_mp_table.add_entry(assign_8259_1_to_apic)
< assign_1_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'INT',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 1,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 1)
< self.intel_mp_table.add_entry(assign_1_to_apic)
< assign_8259_4_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'ExtInt',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 4,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 0)
< self.intel_mp_table.add_entry(assign_8259_4_to_apic)
< assign_4_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'INT',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 4,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 4)
< self.intel_mp_table.add_entry(assign_4_to_apic)
< assign_8259_12_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'ExtInt',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 12,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 0)
< self.intel_mp_table.add_entry(assign_8259_12_to_apic)
< assign_12_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'INT',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 12,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 12)
< self.intel_mp_table.add_entry(assign_12_to_apic)
< assign_8259_14_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'ExtInt',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 14,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 0)
< self.intel_mp_table.add_entry(assign_8259_14_to_apic)
< assign_14_to_apic = X86IntelMPIOIntAssignment(
< interrupt_type = 'INT',
< polarity = 'ConformPolarity',
< trigger = 'ConformTrigger',
< source_bus_id = 0,
< source_bus_irq = 14,
< dest_io_apic_id = io_apic.id,
< dest_io_apic_intin = 14)
< self.intel_mp_table.add_entry(assign_14_to_apic)
---
> def assignISAInt(irq, apicPin):
> assign_8259_to_apic = X86IntelMPIOIntAssignment(
> interrupt_type = 'ExtInt',
> polarity = 'ConformPolarity',
> trigger = 'ConformTrigger',
> source_bus_id = 0,
> source_bus_irq = irq,
> dest_io_apic_id = io_apic.id,
> dest_io_apic_intin = 0)
> self.intel_mp_table.add_entry(assign_8259_to_apic)
> assign_to_apic = X86IntelMPIOIntAssignment(
> interrupt_type = 'INT',
> polarity = 'ConformPolarity',
> trigger = 'ConformTrigger',
> source_bus_id = 0,
> source_bus_irq = irq,
> dest_io_apic_id = io_apic.id,
> dest_io_apic_intin = apicPin)
> self.intel_mp_table.add_entry(assign_to_apic)
> assignISAInt(0, 2)
> assignISAInt(1, 1)
> for i in range(3, 15):
> assignISAInt(i, i)
326c261
< def makeLinuxX86System(mem_mode, mdesc = None):
---
> def makeLinuxX86System(mem_mode, numCPUs = 1, mdesc = None):
330c265
< makeX86System(mem_mode, mdesc, self)
---
> makeX86System(mem_mode, numCPUs, mdesc, self)