So I did some new testing today!
I created a kernel with serial console, tested it with my factory BIOS and it worked alright.
Then I recompiled filo-0.5 with DEBUG_ALL=1
Did a new mkelfImage with the new kernel and same params as in the first test. ( earlyprintk etc.
When I boot my machine with the latest BIOS this is what happens:
[Initial logging snipped for clarity] Welcome to elfboot, the open sourced starter. January 2002, Eric Biederman. Version 1.3
rom_stream: 0xfffd0000 - 0xfffeffff Found ELF candiate at offset 0 New segment addr 0x100000 size 0x359c0 offset 0xc0 filesize 0x10728 (cleaned up) New segment addr 0x100000 size 0x359c0 offset 0xc0 filesize 0x10728 New segment addr 0x1359c0 size 0x48 offset 0x10800 filesize 0x48 (cleaned up) New segment addr 0x1359c0 size 0x48 offset 0x10800 filesize 0x48 Dropping non PT_LOAD segment Dropping non PT_LOAD segment Loading Segment: addr: 0x0000000000100000 memsz: 0x00000000000359c0 filesz: 0x0000000000010728 Clearing Segment: addr: 0x0000000000110728 memsz: 0x0000000000025298 Loading Segment: addr: 0x00000000001359c0 memsz: 0x0000000000000048 filesz: 0x0000000000000048 Jumping to boot code at 0x10c4b4 FILO version 0.5 (root@mm.int.mmtab.se) Tue Jun 13 14:30:12 CEST 2006 collect_sys_info: boot eax = 0xe1fb007 collect_sys_info: boot ebx = 0x1dff6940 collect_sys_info: boot arg = 0x1dff6940 malloc_diag: alloc: 0 bytes (0 blocks), free: 16376 bytes (1 blocks) malloc_diag: alloc: 24 bytes (1 blocks), free: 16352 bytes (1 blocks) collect_elfboot_info: Bootloader: elfboot collect_elfboot_info: Version: 1.3 malloc_diag: alloc: 40 bytes (2 blocks), free: 16336 bytes (1 blocks) collect_linuxbios_info: Searching for LinuxBIOS tables... find_lb_table: Found canidate at: 00000530 find_lb_table: header checksum o.k. find_lb_table: table checksum o.k. find_lb_table: record count o.k. collect_linuxbios_info: Found LinuxBIOS table at: 00000530 malloc_diag: alloc: 128 bytes (3 blocks), free: 16248 bytes (1 blocks) convert_memmap: 0x00000000000000 0x00000000000bd8 16 convert_memmap: 0x00000000000bd8 0x0000000009f428 1 convert_memmap: 0x000000000c0000 0x00000000030000 1 convert_memmap: 0x000000000f0000 0x00000000000c00 16 convert_memmap: 0x000000000f0c00 0x0000001df0f400 1 collect_sys_info: 0000000000000bd8-00000000000a0000 collect_sys_info: 00000000000c0000-00000000000f0000 collect_sys_info: 00000000000f0c00-000000001e000000 collect_sys_info: RAM 480 MB relocate: Current location: 0x100000-0x135a07 relocate: Relocating to 0x1dfca5f0-0x1dfffff7... ok setup_timers: CPU 1200 MHz pci_init: Scanning PCI: found 14 devices malloc_diag: alloc: 304 bytes (4 blocks), free: 16072 bytes (1 blocks) pci_init: 00:00.0 1106:3123 0600 00 pci_init: 00:01.0 1106:b091 0604 00 pci_init: 00:0a.0 1180:0476 0607 00 pci_init: 00:0a.1 1180:0476 0607 00 pci_init: 00:0d.0 1106:3044 0c00 10 pci_init: 00:10.0 1106:3038 0c03 00 pci_init: 00:10.1 1106:3038 0c03 00 pci_init: 00:10.2 1106:3038 0c03 00 pci_init: 00:10.3 1106:3104 0c03 20 pci_init: 00:11.0 1106:3177 0601 00 pci_init: 00:11.1 1106:0571 0101 8a pci_init: 00:11.5 1106:3059 0401 00 pci_init: 00:12.0 1106:3065 0200 00 pci_init: 01:00.0 1106:3122 0300 00 Press <Enter> for default boot, or <Esc> for boot prompt... boot: hda1:/vmlinuz.elf malloc_diag: alloc: 336 bytes (5 blocks), free: 16040 bytes (1 blocks) malloc_diag: alloc: 352 bytes (6 blocks), free: 16024 bytes (1 blocks) file_open: dev=hda1, path=/vmlinuz.elf find_ide_controller: found PCI IDE controller 1106:0571 prog_if=0x8a find_ide_controller: primary channel: compatibility mode find_ide_controller: cmd_base=0x1f0 ctrl_base=0x3f4 ide_software_reset: Waiting for ide0 to become ready for reset... ok init_drive: Testing for hda init_drive: Probing for hda init_drive: LBA mode, sectors=268435455 init_drive: LBA48 mode, sectors=321672960 init_drive: Init device params... ok hda: LBA48 164GB: HDS722516VLAT80 devopen: Partition 1 start 63 length 76180167 Mounted ext2fs malloc_diag: alloc: 336 bytes (5 blocks), free: 16040 bytes (1 blocks) malloc_diag: alloc: 504 bytes (6 blocks), free: 15872 bytes (1 blocks) malloc_diag: alloc: 664 bytes (7 blocks), free: 15712 bytes (1 blocks) malloc_diag: alloc: 680 bytes (8 blocks), free: 15696 bytes (1 blocks) malloc_diag: alloc: 768 bytes (9 blocks), free: 15608 bytes (1 blocks) process_image_notes: Image checksum: 0x7c4a malloc_diag: alloc: 608 bytes (8 blocks), free: 15768 bytes (2 blocks) Loading Linux version 2.6.16.19-i386-serial (root@mm.int.mmtab.se) #6 Tue Jun 13 11:40:32 CEST 2006... load_segments: segment 1 addr:0x10000 file:0x11bc mem:0x12264 loading... clearing... ok load_segments: segment 2 addr:0x20000 file:0x0 mem:0x1070 loading... clearing... ok load_segments: segment 3 addr:0x100000 file:0x19067e mem:0x700000 loading... clearing... ok load_segments: segment 4 addr:0x800000 file:0xcc4d9 mem:0xcc4d9 loading... clearing... ok load_segments: Loaded 2481427 bytes in 15457ms (160KB/s) malloc_diag: alloc: 872 bytes (9 blocks), free: 15504 bytes (2 blocks) elf_load: current time: 317476 elf_load: entry point is 0x10000 Jumping to entry point... 0
And here it reboots... :(
I tried with:
boot: hda1:/boot/vmlinuz-2.6.16.19-i386-serial earlyprintk=ttyS0,115200,keep
which is my 'plain' kernel, but with same result.
Please anyone!
Still I can't get a LinuxBIOS without the additional video-bios cat'ed at the beginning of my LB to boot at all. That is I can't manufacture a BIOS that won't initialize the VGA. How to do a LinuxBIOS without the VGA-portion in it???
/Per