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(a)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