Hi,
My target board is similar to Tyan s2882, I base on s2882's code to fit my target board.
My target board also got an onboard Intel 10/100 NIC, and I assign the irq like s2882 done. printk_debug("setting Onboard Intel NIC\n"); static const unsigned char slotIrqs_8111_1_8[4] = { 9, 0, 0, 0 }; pci_assign_irqs(bus_8111_1, 4, slotIrqs_8111_1_8); write_pirq_info(pirq_info, bus_8111_1,(4<<3)|0, 0x1, 0xdef8, 0, 0, 0, 0, 0, 0, 0, 0); pirq_info++; slot_num++;
It can works fine on unique processor platform, but when I boot into smp kernel it's interrupts is not going.
[root@iSCSI h412]# cat /proc/interrupts CPU0 CPU1 0: 1235644 1223971 IO-APIC-edge timer 1: 0 8 IO-APIC-edge i8042 2: 0 0 XT-PIC cascade 3: 5 3 IO-APIC-edge serial 4: 1209 1984 IO-APIC-edge serial 8: 0 1 IO-APIC-edge rtc 12: 0 66 IO-APIC-edge i8042 14: 3144 759 IO-APIC-edge ide0 137: 0 0 IO-APIC-level eth0 <-- It not works. 145: 0 0 IO-APIC-level ohci_hcd, ohci_hcd 193: 10622 1 IO-APIC-level eth2 NMI: 0 0 LOC: 2459674 2459668 ERR: 0 MIS: 0
Is it possible cause by IO-APIC ??
The other question, my VGA still has snow screen when linuxbios booting, even I moved the CPU init before other pci device init call. But after I login the system, it will become clear. following is part of my log....
--- part of linuxbios boot message --
Initializing devices... Root Device init APIC_CLUSTER: 0 init Initializing CPU #0 CPU: vendor AMD device f5a Enabling cache
Setting fixed MTRRs(0-88) type: UC Setting fixed MTRRs(0-16) Type: WB, RdMEM, WrMEM Setting fixed MTRRs(24-88) Type: WB, RdMEM, WrMEM DONE fixed MTRRs Setting variable MTRR 0, base: 0MB, range: 512MB, type WB DONE variable MTRRs Clear out the extra MTRR's
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
microcode: equivalent processor rev id = 0x004a, patch id = 0x00000000 microcode: patch id that want to apply= 0x00000047 microcode: updated to patch id = 0x00000047 success
Setting up local apic... apic_id: 0 done. Clearing memory 2048K - 262144K: --- done CPU #0 Initialized Initializing CPU #1 Waiting for 1 CPUS to stop CPU: vendor AMD device f5a Enabling cache
Setting fixed MTRRs(0-88) type: UC Setting fixed MTRRs(0-16) Type: WB, RdMEM, WrMEM Setting fixed MTRRs(24-88) Type: WB, RdMEM, WrMEM DONE fixed MTRRs Setting variable MTRR 0, base: 0MB, range: 512MB, type WB DONE variable MTRRs Clear out the extra MTRR's
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
microcode: equivalent processor rev id = 0x004a, patch id = 0x00000000 microcode: patch id that want to apply= 0x00000047 microcode: updated to patch id = 0x00000047 success
Setting up local apic... apic_id: 1 done. Clearing memory 262144K - 524288K: ---- done CPU #1 Initialized All AP CPUs stopped PCI: 00:18.0 init PCI: 01:02.0 init PCI: 03:04.0 init PCI: 03:04.1 init PCI: 01:03.0 init PCI: 04:04.0 init PCI: 04:02.0 init rom address for PCI: 04:02.0 = fff80000 copying VGA ROM Image from 0xfff80000 to 0xc0000, 0x9000 bytes entering emulator halt_sys: file /home/vincente/LinuxBIOSv2/src/devices/emulator/x86emu/ops.c, line 4387
--- end of linuxbios boot message ---