This is actually 2 questions in one. I've been having some problems getting VGA to work on my epia-m board. I was able to get etherboot to load the kernel, etc, but when I made the recent changes for VGA, elfboot doesn't like what I did. I've included a capture of the serial output and my configuration file. I also was interested in doing something like the cromwell open-source bios for the Xbox, where vga is fully initialized from the start and a nice graphical screen can be set up to enable booting from etherboot, cd-rom or the hard disk via grub. My Xbox mod-chip is also 256kb, so I'm guessing it should work. Here's the serial port capture:
LinuxBIOS-1.0.0 Thu Aug 26 13:21:59 EDT 2004 starting... 80 08 07 0d 0a 01 40 00 04 75 75 00 82 08 00 01 0e 04 0c 01 02 20 c0 a0 75 00 00 50 3c 50 2d 40 a0 a0 50 50 00 00 00 00 00 41 4b 34 32 75 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Copying LinuxBIOS to ram. Jumping to LinuxBIOS. LinuxBIOS-1.0.0 Thu Aug 26 13:21:59 EDT 2004 booting... Finding PCI configuration type. PCI: Using configuration type 1 Scanning PCI bus...PCI: pci_scan_bus for bus 0 PCI: 00:00.0 [1106/3123] PCI: 00:01.0 [1106/b091] PCI: 00:0d.0 [1106/3044] PCI: 00:10.0 [1106/3038] PCI: 00:10.1 [1106/3038] PCI: 00:10.2 [1106/3038] PCI: 00:10.3 [1106/3104] PCI: 00:11.0 [1106/3177] PCI: 00:11.1 [1106/0571] PCI: 00:11.5 [1106/3059] PCI: 00:12.0 [1106/3065] PCI: pci_scan_bus for bus 1 PCI: 01:00.0 [1106/3122] PCI: pci_scan_bus returning with max=01 PCI: pci_scan_bus returning with max=01 done Allocating PCI resources... PCI: 00:00.0 register 10(00000008), read-only ignoring it PCI: 00:00.0 register 10(00000008), read-only ignoring it PCI: 00:00.0 register 10(00000008), read-only ignoring it PCI: 00:00.0 register 10(00000008), read-only ignoring it ASSIGN RESOURCES, bus 0 PCI: 00:01.0 1c <- [0x00001000 - 0x00000fff] bus 1 io PCI: 00:01.0 24 <- [0xf8000000 - 0xfbffffff] bus 1 prefmem PCI: 00:01.0 20 <- [0xfc000000 - 0xfcffffff] bus 1 mem ASSIGN RESOURCES, bus 1 PCI: 01:00.0 10 <- [0xf8000000 - 0xfbffffff] prefmem PCI: 01:00.0 14 <- [0xfc000000 - 0xfcffffff] mem ASSIGNED RESOURCES, bus 1 PCI: 00:0d.0 10 <- [0xfd000000 - 0xfd0007ff] mem PCI: 00:0d.0 14 <- [0x00001800 - 0x0000187f] io PCI: 00:10.0 20 <- [0x00001880 - 0x0000189f] io PCI: 00:10.1 20 <- [0x000018a0 - 0x000018bf] io PCI: 00:10.2 20 <- [0x000018c0 - 0x000018df] io PCI: 00:10.3 10 <- [0xfd001000 - 0xfd0010ff] mem PCI: 00:11.1 20 <- [0x000018e0 - 0x000018ef] io PCI: 00:11.5 10 <- [0x00001000 - 0x000010ff] io PCI: 00:12.0 10 <- [0x00001400 - 0x000014ff] io PCI: 00:12.0 14 <- [0xfd002000 - 0xfd0020ff] mem ASSIGNED RESOURCES, bus 0 Allocating VGA resource done. Enabling PCI resourcess...PCI: 00:00.0 cmd <- 06 PCI: 00:01.0 cmd <- 07 PCI: 00:0d.0 cmd <- 83 PCI: 00:10.0 cmd <- 01 PCI: 00:10.1 cmd <- 01 PCI: 00:10.2 cmd <- 01 PCI: 00:10.3 cmd <- 02 PCI: 00:11.0 cmd <- 07 PCI: 00:11.1 cmd <- 07 PCI: 00:11.5 cmd <- 01 PCI: 00:12.0 cmd <- 83 PCI: 01:00.0 cmd <- 03 done. Initializing PCI devices... PCI devices initialized totalram: 96M Initializing CPU #0 Enabling cache... Setting fixed MTRRs(0-88) type: UC Setting fixed MTRRs(0-16) type: WB DONE fixed MTRRs Setting variable MTRR 0, base: 0MB, range: 64MB, type WB Setting variable MTRR 1, base: 64MB, range: 32MB, type WB DONE variable MTRRs Clear out the extra MTRR's call intel_enable_fixed_mtrr() call intel_enable_var_mtrr() Leave setup_mtrrs done.
Max cpuid index : 1 Vendor ID : CentaurHauls Processor Type : 0x00 Processor Family : 0x06 Processor Model : 0x09 Processor Mask : 0x00 Processor Stepping : 0x01 Feature flags : 0x0380b135
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
Disabling local apic...done. CPU #0 Initialized Mainboard fixup Final mainboard fixup Southbridge fixup setting firewire Assigning IRQ 10 to 0:d.0 Readback = 10 setting usb Assigning IRQ 11 to 0:10.0 Readback = 11 Assigning IRQ 10 to 0:10.1 Readback = 10 Assigning IRQ 12 to 0:10.2 Readback = 12 Assigning IRQ 5 to 0:10.3 Readback = 5 setting vt8235 Assigning IRQ 5 to 0:11.1 Readback = 5 Assigning IRQ 12 to 0:11.5 Readback = 12 setting ethernet Assigning IRQ 11 to 0:12.0 Readback = 11 setting vga Assigning IRQ 11 to 1:0.0 Readback = 11 setting pci slot setting vt8235 slot Assigning IRQ 5 to 0:11.1 Readback = 5 Assigning IRQ 12 to 0:11.5 Readback = 12 Checking IRQ routing tables... /home/dhillman/freebios/src/arch/i386/lib/pirq_routing.c: 30:check_pirq_routing_table() - irq_routing_table located at: 0x00008c60 done. Copying IRQ routing tables to 0xf0000...done. Verifing priq routing tables copy at 0xf0000...failed Wrote linuxbios table at: 00000500 - 00000654 checksum d443
Welcome to elfboot, the open sourced starter. January 2002, Eric Biederman. Version 1.2
37:init_bytes() - zkernel_start:0xfff00000 zkernel_mask:0x0000ffff Cannot Load ELF Image
What should I be looking for if it's successful, besides the output on the monitor? Here's my config file:
# # LinuxBIOS config file for: VIA epia-m mini-itx #
target /home/dhillman/epia
# via epia mainboard via/epia-m
# Enable Serial Console for debugging
option SERIAL_CONSOLE=1 option TTYS0_BAUD=115200 option DEFAULT_CONSOLE_LOGLEVEL=9 option DEBUG=1
# Use 256KB Standard Flash as Normal BIOS
option RAMTEST=1 option USE_GENERIC_ROM=1 option STD_FLASH=1 option ROM_SIZE=262144 option ZKERNEL_START=0xfffd0000
# payload size = 192KB
option PAYLOAD_SIZE=196608
# use ELF Loader to load Etherboot
option USE_ELF_BOOT=1
# Use Etherboot as our payload
#payload /home/dhillman/etherboot-5.0.8/src/bin32/via-rhine.ebi #payload /home/dhillman/epia/payload.adlo #payload /home/dhillman/epia/vga+eb.bin payload /home/dhillman/epia/vgabios.bin
# for VGA support (optional)
option HAVE_FRAMEBUFFER=1 option SMA_SIZE=8 option CONFIG_VGABIOS=1 option CONFIG_REALMODE_IDT=1 option CONFIG_PCIBIOS=1 option VGABIOS_START=0xfffe0000 #option VGABIOS_START=0xfff00000 addaction romimage dd if=vgabios.bin of=romimage bs=65536 seek=2 conv=sync conv=notrunc dir src/bioscall
# end VGA support