On Mon, Jul 14, 2008 at 05:25:24PM +0200, Hannes Hegewald wrote:
Great, the irqpoll option did it!! Can we do something to make it work even without the irqpoll option? Maybe creating a new irq_table.c ?! I will also run getpir once more and compare the two files.
Yep, please do. If you want to hack on this you can also checkout http://www.coreboot.org/Creating_Valid_IRQ_Tables which may be useful for manually figuring out the IRQs in case the table in svn is not correct.
The minicom log is attached.
Hannes.
coreboot-2.0.0.0Normal Fr 11. Jul 18:12:37 CEST 2008 starting... Setting up default parameters for memory Sizing memory Probing for DIMM0 Found DIMM0 Page Size: 00001000 Component Banks: 4 Module Banks: 2 DIMM size: 08000000 Probing for DIMM1 MC_BANK_CFG = 00705520 Copying coreboot to RAM. Jumping to coreboot. coreboot-2.0.0.0Normal Fr 11. Jul 18:20:47 CEST 2008 booting... end 56bd01c6, start 0 32-bit delta 464 calibrate_tsc 32-bit result is 464 clocks_per_usec: 464 Enumerating buses... scan_static_bus for Root Device northbridge.c:enable_dev() DEVICE_PATH_PCI_DOMAIN Finding PCI configuration type. PCI: Using configuration type 1 PCI_DOMAIN: 0000 enabled PCI_DOMAIN: 0000 scanning... PCI: pci_scan_bus for bus 00 northbridge.c:enable_dev() device path type 2 PCI: 00:00.0 [1078/0001] ops PCI: 00:00.0 [1078/0001] enabled PCI: devfn 0x8, bad id 0xffffffff PCI: devfn 0x10, bad id 0xffffffff PCI: devfn 0x18, bad id 0xffffffff PCI: devfn 0x20, bad id 0xffffffff PCI: devfn 0x28, bad id 0xffffffff PCI: devfn 0x30, bad id 0xffffffff PCI: devfn 0x38, bad id 0xffffffff PCI: devfn 0x40, bad id 0xffffffff PCI: devfn 0x48, bad id 0xffffffff PCI: devfn 0x50, bad id 0xffffffff PCI: devfn 0x58, bad id 0xffffffff PCI: devfn 0x60, bad id 0xffffffff PCI: devfn 0x68, bad id 0xffffffff PCI: devfn 0x70, bad id 0xffffffff PCI: 00:0f.0 [10ec/8139] enabled PCI: devfn 0x80, bad id 0xffffffff PCI: devfn 0x88, bad id 0xffffffff PCI: 00:12.0 [1078/0100] bus ops PCI: 00:12.0 [1078/0100] enabled PCI: 00:12.1 [1078/0101] disabled PCI: 00:12.2 [1078/0102] bus ops PCI: 00:12.2 [1078/0102] enabled PCI: 00:12.3 [1078/0103] enabled PCI: 00:12.4 [1078/0104] ops PCI: 00:12.4 [1078/0104] enabled PCI: devfn 0x95, bad id 0xffffffff PCI: devfn 0x96, bad id 0xffffffff PCI: devfn 0x97, bad id 0xffffffff PCI: 00:13.0 [0e11/a0f8] enabled PCI: devfn 0xa0, bad id 0xffffffff PCI: devfn 0xa8, bad id 0xffffffff PCI: devfn 0xb0, bad id 0xffffffff PCI: devfn 0xb8, bad id 0xffffffff PCI: devfn 0xc0, bad id 0xffffffff PCI: devfn 0xc8, bad id 0xffffffff PCI: devfn 0xd0, bad id 0xffffffff PCI: devfn 0xd8, bad id 0xffffffff PCI: devfn 0xe0, bad id 0xffffffff PCI: devfn 0xe8, bad id 0xffffffff PCI: devfn 0xf0, bad id 0xffffffff PCI: devfn 0xf8, bad id 0xffffffff scan_static_bus for PCI: 00:12.0 malloc Enter, size 1100, free_mem_ptr 0001a000 malloc 0x0001a000 PNP: 002e.0 disabled PNP: 002e.1 enabled PNP: 002e.2 enabled PNP: 002e.e enabled PNP: 002e.4 enabled PNP: 002e.5 enabled PNP: 002e.6 enabled PNP: 002e.7 enabled PNP: 002e.8 enabled PNP: 002e.3 enabled scan_static_bus for PCI: 00:12.0 done scan_static_bus for PCI: 00:12.2 scan_static_bus for PCI: 00:12.2 done PCI: pci_scan_bus returning with max=000 scan_static_bus for Root Device done done Allocating resources... Reading resources... Root Device compute_allocate_io: base: 00000400 size: 00000000 align: 0 gran: 0 Root Device read_resources bus 0 link: 0 northbridge.c:pci_domain_read_resources() PCI_DOMAIN: 0000 read_resources bus 0 link: 0 PCI_DOMAIN: 0000 read_resources bus 0 link: 0 done Root Device read_resources bus 0 link: 0 done PCI: 00:0f.0 10 * [0x00000400 - 0x000004ff] io PCI: 00:12.2 20 * [0x00000800 - 0x0000087f] io Root Device compute_allocate_io: base: 00000880 size: 00000480 align: 8 gran: 0 done Root Device compute_allocate_mem: base: 00000000 size: 00000000 align: 0 gran: 0 Root Device read_resources bus 0 link: 0 Root Device read_resources bus 0 link: 0 done PCI: 00:12.4 10 * [0x00000000 - 0x00000fff] mem PCI: 00:13.0 10 * [0x00001000 - 0x00001fff] mem PCI: 00:0f.0 14 * [0x00002000 - 0x000020ff] mem PCI: 00:12.3 10 * [0x00003000 - 0x0000307f] mem Root Device compute_allocate_mem: base: 00003080 size: 00003080 align: 12 gran: 0 done Done reading resources. Setting resources... Root Device compute_allocate_io: base: 00001000 size: 00000480 align: 8 gran: 0 Root Device read_resources bus 0 link: 0 Root Device read_resources bus 0 link: 0 done PCI: 00:0f.0 10 * [0x00001000 - 0x000010ff] io PCI: 00:12.2 20 * [0x00001400 - 0x0000147f] io Root Device compute_allocate_io: base: 00001480 size: 00000480 align: 8 gran: 0 done Root Device compute_allocate_mem: base: febfc000 size: 00003080 align: 12 gran: 0 Root Device read_resources bus 0 link: 0 Root Device read_resources bus 0 link: 0 done PCI: 00:12.4 10 * [0xfebfc000 - 0xfebfcfff] mem PCI: 00:13.0 10 * [0xfebfd000 - 0xfebfdfff] mem PCI: 00:0f.0 14 * [0xfebfe000 - 0xfebfe0ff] mem PCI: 00:12.3 10 * [0xfebff000 - 0xfebff07f] mem Root Device compute_allocate_mem: base: febff080 size: 00003080 align: 12 gran: 0 done Root Device assign_resources, bus 0 link: 0 BC_DRAM_TOP = 0x07dfffff MC_GBASE_ADD = 0x000000fc I would set ram size to 126 Mbytes PCI_DOMAIN: 0000 assign_resources, bus 0 link: 0 PCI: 00:0f.0 10 <- [0x0000001000 - 0x00000010ff] size 0x00000100 gran 0x08 io PCI: 00:0f.0 14 <- [0x00febfe000 - 0x00febfe0ff] size 0x00000100 gran 0x08 mem PCI: 00:12.2 20 <- [0x0000001400 - 0x000000147f] size 0x00000080 gran 0x07 io PCI: 00:12.3 10 <- [0x00febff000 - 0x00febff07f] size 0x00000080 gran 0x07 mem PCI: 00:12.4 10 <- [0x00febfc000 - 0x00febfcfff] size 0x00001000 gran 0x0c mem PCI: 00:13.0 10 <- [0x00febfd000 - 0x00febfdfff] size 0x00001000 gran 0x0c mem PCI_DOMAIN: 0000 assign_resources, bus 0 link: 0 Root Device assign_resources, bus 0 link: 0 Done setting resources. Done allocating resources. Enabling resources... PCI: 00:00.0 cmd <- 07 PCI: 00:0f.0 subsystem <- 00/00 PCI: 00:0f.0 cmd <- 03 PCI: 00:12.0 cmd <- 0f PNP: 002e.e missing enable_resources PCI: 00:12.2 cmd <- 01 PCI: 00:12.3 subsystem <- 00/00 PCI: 00:12.3 cmd <- 02 PCI: 00:12.4 cmd <- 02 PCI: 00:13.0 subsystem <- 00/00 PCI: 00:13.0 cmd <- 02 done. Initializing devices... Root Device init PCI: 00:00.0 init northbridge: northbridge_init() Calling enable_cache() PCI: 00:0f.0 init PCI: 00:12.0 init PNP: 002e.1 init PNP: 002e.2 init PNP: 002e.4 init PNP: 002e.5 init PNP: 002e.6 init Keyboard init... PNP: 002e.7 init PNP: 002e.8 init PCI: 00:12.2 init Primary IDE interface enabled Secondary IDE interface disabled PCI: 00:12.3 init PCI: 00:12.4 init Setting up video mode 640x480 with 31500000 Hz clock PCI: 00:13.0 init PNP: 002e.3 init Devices initialized Copying IRQ routing tables to 0xf0000...done. Verifing copy of IRQ routing tables at 0xf0000...done Checking IRQ routing table consistency... check_pirq_routing_table() - irq_routing_table located at: 0x000f0000 done. PIR Entry 0 Dev/Fn: 7 Slot: 1 INT: A link: 2 bitmap: deb8 IRQ: 3 INT: B link: 3 bitmap: deb8 IRQ: 4 INT: C link: 4 bitmap: deb8 IRQ: 5 INT: D link: 1 bitmap: deb8 IRQ: 7 PIR Entry 1 Dev/Fn: F Slot: 2 INT: A link: 3 bitmap: deb8 IRQ: 4 INT: B link: 4 bitmap: deb8 IRQ: 5 INT: C link: 1 bitmap: deb8 IRQ: 7 INT: D link: 2 bitmap: deb8 IRQ: 3 Assigning IRQ 4 to 0:f.0 Readback = 4 pci_level_irq: current ints are 0x0 pci_level_irq: try to set ints 0x10 PIR Entry 2 Dev/Fn: 13 Slot: 0 INT: A link: 1 bitmap: deb8 IRQ: 7 INT: B link: 0 bitmap: deb8 not routed INT: C link: 0 bitmap: deb8 not routed INT: D link: 0 bitmap: deb8 not routed Assigning IRQ 7 to 0:13.0 Readback = 7 pci_level_irq: current ints are 0x10 pci_level_irq: try to set ints 0x90 PIRQ1: 7 PIRQ2: 3 PIRQ3: 4 PIRQ4: 5 Moving GDT to 0x500...ok Adjust low_table_end from 0x00000530 to 0x00001000 Adjust rom_table_end from 0x000f0400 to 0x00100000 Wrote coreboot table at: 00000530 - 00000748 checksum e10a
Welcome to elfboot, the open sourced starter. January 2002, Eric Biederman. Version 1.3
rom_stream: 0xfffc0000 - 0xfffcffff Found ELF candidate at offset 0 header_offset is 0 Try to load at offset 0x0 malloc Enter, size 32, free_mem_ptr 0001a44c malloc 0x0001a44c New segment addr 0x100000 size 0x33ae0 offset 0xc0 filesize 0xa648 (cleaned up) New segment addr 0x100000 size 0x33ae0 offset 0xc0 filesize 0xa648 lb: [0x0000000000004000, 0x000000000001e000) malloc Enter, size 32, free_mem_ptr 0001a46c malloc 0x0001a46c New segment addr 0x133ae0 size 0x48 offset 0xa720 filesize 0x48 (cleaned up) New segment addr 0x133ae0 size 0x48 offset 0xa720 filesize 0x48 lb: [0x0000000000004000, 0x000000000001e000) Dropping non PT_LOAD segment Dropping non PT_LOAD segment Loading Segment: addr: 0x0000000000100000 memsz: 0x0000000000033ae0 filesz: 0x000000000000a648 [ 0x0000000000100000, 000000000010a648, 0x0000000000133ae0) <- 00000000000000c0 Clearing Segment: addr: 0x000000000010a648 memsz: 0x0000000000029498 Loading Segment: addr: 0x0000000000133ae0 memsz: 0x0000000000000048 filesz: 0x0000000000000048 [ 0x0000000000133ae0, 0000000000133b28, 0x0000000000133b28) <- 000000000000a720 Loaded segments verified segments closed down stream Jumping to boot code at 0x10854c entry = 0x0010854c lb_start = 0x00004000 lb_size = 0x0001a000 adjust = 0x07de2000 buffer = 0x07dcc000 elf_boot_notes = 0x00014140 adjusted_boot_notes = 0x07df6140 FILO version 0.5.5 (root@zendeb) Fri Jul 11 18:19:27 CEST 2008 boot: hda1:/boot/vmlinuz root=/dev/hda1 console=tty0 console=ttyS0,115200 irqpoll hda: LBA 80GB: MAXTOR 6L080J4 Mounted EXT2 filesystem Found Linux version 2.6.24.4 (root@crux) #2 SMP Fri May 23 11:56:57 CEST 2008 bzImage. Loading kernel... ok Jumping to entry point... Linux version 2.6.24.4 (root@crux) (gcc version 4.2.4 (CRUX)) #2 SMP Fri May 23 11:56:57 CEST 2008 BIOS-provided physical RAM map: BIOS-e820: 0000000000001000 - 00000000000a0000 (usable) BIOS-e820: 0000000000100000 - 0000000007e00000 (usable) 126MB LOWMEM available. Zone PFN ranges: DMA 0 -> 4096 Normal 4096 -> 32256 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0 -> 32256 DMI not present or invalid. Allocating PCI resources starting at 10000000 (gap: 07e00000:f8200000) Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32004 Kernel command line: root=/dev/hda1 console=tty0 console=ttyS0,115200 irqpoll Misrouted IRQ fixup and polling support enabled This may significantly impact system performance No local APIC present or hardware disabled Initializing CPU#0 PID hash table entries: 512 (order: 9, 2048 bytes) Detected 300.677 MHz processor. Console: colour dummy device 80x25 console [tty0] enabled console [ttyS0] enabled Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 123264k/129024k available (2644k kernel code, 5260k reserved, 888k data, 208k init, 0k highmem) virtual kernel memory layout: fixmap : 0xfffb5000 - 0xfffff000 ( 296 kB) vmalloc : 0xc8800000 - 0xfffb3000 ( 887 MB) lowmem : 0xc0000000 - 0xc7e00000 ( 126 MB) .init : 0xc047a000 - 0xc04ae000 ( 208 kB) .data : 0xc03950d0 - 0xc04732f4 ( 888 kB) .text : 0xc0100000 - 0xc03950d0 (2644 kB) Checking if this processor honours the WP bit even in supervisor mode... Ok. Calibrating delay using timer specific routine.. 626.79 BogoMIPS (lpj=1253584) Mount-cache hash table entries: 512 Working around Cyrix MediaGX virtual DMA bugs. Enable Memory-Write-back mode on Cyrix/NSC processor. Enable Memory access reorder on Cyrix/NSC processor. Enable Incrementor on Cyrix/NSC processor. Compat vDSO mapped to ffffe000. Checking 'hlt' instruction... OK. SMP alternatives: switching to UP code Freeing SMP alternatives: 14k freed ACPI: Core revision 20070126 ACPI Exception (tbxface-0629): AE_NO_ACPI_TABLES, While loading namespace from ACPI tables [20070126] ACPI: Unable to load the System Description Tables CPU0: NSC Geode(TM) Integrated Processor by National Semi stepping 02 SMP motherboard not detected. Local APIC not detected. Using dummy APIC emulation. Brought up 1 CPUs net_namespace: 64 bytes NET: Registered protocol family 16 EISA bus registered PCI: Using configuration type 1 Setting up standard PCI resources ACPI: Interpreter disabled. Linux Plug and Play Support v0.97 (c) Adam Belay pnp: PnP ACPI: disabled SCSI subsystem initialized PCI: Probing PCI hardware PCI: Using IRQ router NatSemi [1078/0100] at 0000:00:12.0 Time: tsc clocksource has been installed. NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 3, 32768 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered microcode: CPU0 not a capable Intel processor IA-32 Microcode Update Driver: v1.14a tigran@aivazian.fsnet.co.uk JFS: nTxBlock = 964, nTxLock = 7712 SGI XFS with ACLs, security attributes, realtime, large block numbers, no debug enabled SGI XFS Quota Management subsystem io scheduler noop registered io scheduler deadline registered (default) PCI: Fixup for MediaGX/Geode Slave Disconnect Boundary (0x41=0x10) isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: module loaded Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx CS5530: IDE controller (0x1078:0x0102 rev 0x00) at PCI slot 0000:00:12.2 CS5530: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x1400-0x1407, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0x1408-0x140f, BIOS settings: hdc:pio, hdd:pio Clocksource tsc unstable (delta = -161502172 ns) Time: pit clocksource has been installed. hda: MAXTOR 6L080J4, ATA DISK drive hda: UDMA/33 mode selected ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: max request size: 128KiB hda: 156355584 sectors (80054 MB) w/1819KiB Cache, CHS=65535/16/63 hda: cache flushes supported hda: hda1 hda2 hda3 Driver 'sd' needs updating - please use bus_type methods Driver 'sr' needs updating - please use bus_type methods Fusion MPT base driver 3.04.06 Copyright (c) 1999-2007 LSI Corporation Fusion MPT SPI Host driver 3.04.06 PNP: No PS/2 controller found. Probing ports directly. serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX port at 0x60,0x64 irq 12 mice: PS/2 mouse device common for all mice EISA: Probing bus 0 at eisa.0 Cannot allocate resource for EISA slot 1 EISA: Detected 0 cards. TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Using IPI No-Shortcut mode kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 208k freed INIT: version 2.86 booting The system is coming up. Please wait. 8139too Fast Ethernet driver 0.9.28 PCI: Found IRQ 5 for device 0000:00:0f.0 IRQ routing conflict for 0000:00:0f.0, have irq 4, want irq 5 eth0: RealTek RTL8139 at 0xc88a4000, 00:e0:c5:6e:52:16, IRQ 4 usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb 8139cp: 10/100 PCI Ethernet driver v1.3 (Mar 22, 2004) PCI: Found IRQ 3 for device 0000:00:13.0 IRQ routing conflict for 0000:00:13.0, have irq 7, want irq 3 ohci_hcd 0000:00:13.0: OHCI Host Controller ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 1 ohci_hcd 0000:00:13.0: irq 7, io mem 0xfebfd000 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected /dev/hda1 has gone 25809 days without being checked, check forced. /sbin/fsck.xfs: XFS file system. EXT3 FS on hda1, internal journal XFS mounting filesystem hda2 Adding 265064k swap on /dev/hda3. Priority:-1 extents:1 across:265064k hostname: crux font: default keyboard: de-latin1 INIT: Entering runlevel: 2 starting services: sysklogd net fcron sshd samba led
CRUX (crux) (ttyS0)
crux login: root Password:
Uwe.
On Dienstag, 15. Juli 2008, Uwe Hermann wrote:
On Mon, Jul 14, 2008 at 05:25:24PM +0200, Hannes Hegewald wrote:
Great, the irqpoll option did it!! Can we do something to make it work even without the irqpoll option? Maybe creating a new irq_table.c ?! I will also run getpir once more and compare the two files.
Yep, please do. If you want to hack on this you can also checkout http://www.coreboot.org/Creating_Valid_IRQ_Tables which may be useful for manually figuring out the IRQs in case the table in svn is not correct.
If you are playing with the interrupt routing table you shouldn't forget to patch the kernel on Geode GX/CS5530 systems. Without this patch
http://www.pengutronix.de/software/ptxdist/temporary-src/references/geode-55...
you will never be successfull, even if your interrupt routing table is correct.
Juergen