Thanks to lots of great help from Eric on the Etherboot list I have my system mostly working, except there appear to be some problems with the PCI IRQ routing stuff.
I ran getpir on the target with its standard bios, and got a good irq_tables.c, and HAVE_PIRQ_TABLE=1 is set in the Config.
But this line is troubling: Verifing priq routing tables copy at 0xf0000...failed
Any idea why this is failing?
When the kernel is loading I get the following complaint: PCI: No IRQ known for interrupt pin A of device 00:0d.0. Please try using pci=biosirq.
I'm also hoping this be why my IDE does not appear to be working.
I don't imagine it is the memcpy call that is bad, so I'm guessing there is a problem with my memory setup.
Any suggestions?
Thanks,
Joey Nelson
LinuxBIOS-1.0.0 Wed Apr 2 15:06:02 PST 2003 starting... Setting up default parameters for memory Sizing memory Probing for DIMM0 Found DIMM0 Page Size: 00000800 Component Banks: 4 Module Banks: 1 DIMM size: 02000000 Probing for DIMM1 Memory sizing done, MC_BANK_CFG = 0x00701310 Copying LinuxBIOS to ram. Jumping to LinuxBIOS. LinuxBIOS-1.0.0 Wed Apr 2 15:06:02 PST 2003 booting... Finding PCI configuration type. PCI: Using configuration type 1 handle_superio start, nsuperio 1 handle_superio Pass 0, check #0, s 0000a920 s->super 0000ab64 handle_superio: Pass 0, Superio SMC fdc37b78x handle_superio port 0x3f0, defaultport 0x3f0 handle_superio Using port 0x3f0 handle_superio Pass 0, done #0 handle_superio done Scanning PCI bus...PCI: pci_scan_bus for bus 0 PCI: 00:00.0 [1078/0001] PCI: 00:0d.0 [10ec/8139] PCI: 00:12.0 [1078/0100] PCI: 00:12.1 [1078/0101] PCI: 00:12.2 [1078/0102] PCI: 00:12.3 [1078/0103] PCI: 00:12.4 [1078/0104] PCI: 00:13.0 [0e11/a0f8] PCI: pci_scan_bus returning with max=00 done Allocating PCI resources... ASSIGN RESOURCES, bus 0 PCI: 00:0d.0 10 <- [0x00001000 - 0x000010ff] io PCI: 00:0d.0 14 <- [0xfebfd000 - 0xfebfd0ff] mem PCI: 00:12.1 10 <- [0xfebfe000 - 0xfebfe0ff] mem PCI: 00:12.2 20 <- [0x00001400 - 0x0000147f] io PCI: 00:12.3 10 <- [0xfebff000 - 0xfebff07f] mem PCI: 00:12.4 10 <- [0xfebfb000 - 0xfebfbfff] mem PCI: 00:13.0 10 <- [0xfebfc000 - 0xfebfcfff] mem ASSIGNED RESOURCES, bus 0 Allocating VGA resource done. Enabling PCI resourcess...PCI: 00:00.0 cmd <- 07 PCI: 00:0d.0 cmd <- 03 PCI: 00:12.0 cmd <- 0f PCI: 00:12.1 cmd <- 02 PCI: 00:12.2 cmd <- 01 PCI: 00:12.3 cmd <- 02 PCI: 00:12.4 cmd <- 03 PCI: 00:13.0 cmd <- 02 done. Initializing PCI devices... PCI devices initialized DIMM0: 32MB (2kB page size, 4 component banks, 1 module banks) DIMM1: empty Reserving 4096kB for video memory BC_DRAM_TOP = 0x01bfffff MC_GBASE_ADD = 0x00000038 totalram: 28M Initializing CPU #0 Enabling cache...done.
Max cpuid index : 2 Vendor ID : Geode by NSC Processor Type : 0x00 Processor Family : 0x05 Processor Model : 0x04 Processor Mask : 0x00 Processor Stepping : 0x00 Feature flags : 0x00808131
Cache/TLB descriptor values: 1 reads required Desc 0x70 : UNKNOWN Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x80 : UNKNOWN Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null
done. CPU #0 Initialized Enable FLASH Set F0/0x52 to 0xee cs5530: Enabling Primary IDE Controller cs5530: Enabling Secondary IDE Controller Set F0/0x5b to |= 1 << 5(0x38) handle_superio start, nsuperio 1 handle_superio Pass 1, check #0, s 0000a920 s->super 0000ab64 handle_superio: Pass 1, Superio SMC fdc37b78x handle_superio port 0x3f0, defaultport 0x3f0 handle_superio Using port 0x3f0 Call init Enabling com device: 04 Com1 configured Disabling com device: 05 handle_superio Pass 1, done #0 handle_superio done Final southbridge fixup F0/5b = 0x38 cs5530: Enabling Primary IDE Controller cs5530: Enabling Secondary IDE Controller F0/5b = 0x38 Final mainboard fixup handle_superio start, nsuperio 1 handle_superio Pass 2, check #0, s 0000a920 s->super 0000ab64 handle_superio: Pass 2, Superio SMC fdc37b78x handle_superio port 0x3f0, defaultport 0x3f0 handle_superio Using port 0x3f0 handle_superio Pass 2, done #0 handle_superio done Checking IRQ routing tables... /home/highfreq/tt/freebios/src/arch/i386/lib/pirq_routing.c: 24:check_pirq_routing_table() - irq_routing_table located at: 0x00008c20 done. Copying IRQ routing tables to 0xf0000...done. Verifing priq routing tables copy at 0xf0000...failed Wrote linuxbios table at: 00000500 - 00000634 checksum f470
Welcome to elfboot, the open sourced starter. January 2002, Eric Biederman. Version 1.2
203:init_bytes() - zkernel_start:0xfffc0000 zkernel_mask:0x0000ffff Searching for 16 byte tags 64:rom_read_bytes() - overflowed source buffer. max_block = 3 init_bytes found 0 tags Found ELF candiate at offset 0 Loading Etherboot version: 5.1.7 Dropping non PT_LOAD segment New segment addr 0x20000 size 0xeaa4 offset 0xb0 filesize 0x5d60 (cleaned up) New segment addr 0x20000 size 0xeaa4 offset 0xb0 filesize 0x5d60 Loading Segment: addr: 0x0000000001b825a8 memsz: 0x000000000000eaa4 filesz: 0x0000000000005d60 Clearing Segment: addr: 0x0000000001b88308 memsz: 0x0000000000008d44 Jumping to boot code at 0x20000 ROM segment 0x0002 length 0x0ce4 reloc 0x00020000 CPU 138 Mhz Etherboot 5.1.7 (GPL) ELF for [IDE] Relocating _text from: [00020000,0002eab0) to [01bf1550,01c00000) Probing pci disk... [IDE]disk-1 7872k cap: 0200 Searching for image... ................................(ELF)... Loading Linux version: Loading image... ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ .......................................done Unknown bootloader class! type=0x00000000 data=0x00000000 Firmware type: LinuxBIOS Uncompressing Linux... Ok, booting the kernel. BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 0000000000000678 (reserved) BIOS-e820: 0000000000000678 - 00000000000a0000 (usable) BIOS-e820: 0000000000100000 - 0000000001c00000 (usable) 28MB LOWMEM available. hm, page 00000000 reserved twice. On node 0 totalpages: 7168 zone(0): 4096 pages. zone(1): 3072 pages. zone(2): 0 pages. Kernel command line: console=ttyS0,38400n8 debug root=/dev/hda2 Initializing CPU#0 Working around Cyrix MediaGX virtual DMA bugs. Detected 133.636 MHz processor. Linux version 2.4.19 (root@bender) (gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)) #21 Wed Apr 9 16:46:42 PDT 2003 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 0000000000000678 (reserved) BIOS-e820: 0000000000000678 - 00000000000a0000 (usable) BIOS-e820: 0000000000100000 - 0000000001c00000 (usable) 28MB LOWMEM available. hm, page 00000000 reserved twice. On node 0 totalpages: 7168 zone(0): 4096 pages. zone(1): 3072 pages. zone(2): 0 pages. Kernel command line: console=ttyS0,38400n8 debug root=/dev/hda2 nitializing CPU#0 Working around Cyrix MediaGX virtual DMA bugs. Detected 133.636 MHz processor. Calibrating delay loop... 266.24 BogoMIPS Memory: 26504k/28672k available (860k kernel code, 1780k reserved, 335k data, 52k init, 0k highmem) Checking if this processor honours the WP bit even in supervisor mode... Ok. Dentry cache hash table entries: 4096 (order: 3, 32768 bytes) Inode cache hash table entries: 2048 (order: 2, 16384 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 8192 (order: 3, 32768 bytes) CPU: Before vendor init, caps: 00808131 01818131 00000000, vendor = 8 Working around Cyrix MediaGX virtual DMA bugs. CPU: After vendor init, caps: 00808131 00818131 00000000 00000001 CPU: After generic, caps: 00808131 00818131 00000000 00000001 CPU: Common caps: 00808131 00818131 00000000 00000001 CPU: NSC Geode(TM) Integrated Processor by National Semi stepping 02 Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX PCI: Using configuration type 1 PCI: Probing PCI hardware Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd Installing knfsd (copyright (C) 1996 okir@monad.swb.de). pty: 256 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A hda: 0MB, CHS=0/0/0 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize 8139too Fast Ethernet driver 0.9.25 PCI: No IRQ known for interrupt pin A of device 00:0d.0. Please try using pci=biosirq. eth0: RealTek RTL8139 Fast Ethernet at 0xc2800000, 00:04:a7:02:0c:af, IRQ 0 eth0: Identified 8139 chip type 'RTL-8139C' NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP, IGMP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 2048 bind 2048) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. end_request: I/O error, dev 03:02 (hard disk), sector 2 EXT2-fs: unable to read superblock end_request: I/O error, dev 03:02 (hard disk), sector 0 FAT: unable to read boot sector Kernel panic: VFS: Unable to mount root fs on 03:02