Maybe this will help: http://sourceforge.net/mailarchive/forum.php?thread_id=10216054&forum_id=48022
Roman On 09/04/2006 13:22, Ed Swierk wrote: > Hello, > > I'm trying to boot Linux on qemu (0.8.2) with LinuxBIOSv2 (svn 2394) > and FILO (0.5). I built filo.elf, ran buildtarget emulation/qemu-i386, > changed Config.lb to use filo.elf as the payload, and built LinuxBIOS. > I then copied the resulting qemu-bios.rom to bios.bin, and started > qemu with the -L option to use this bios.bin, and -nographic to use > the serial console. > > When I try to boot a 2.6 bzImage kernel (using diskboot.img from > Fedora), FILO gets as far as "Jumping to entry point..." and then > hangs: > > ----- >> qemu -L ~ -hda diskboot.img -m 256 -nographic -no-kqemu -d in_asm,exec > (qemu) > > LinuxBIOS-1.1.8-FILO Mon Sep 4 10:07:27 PDT 2006 starting... > Copying LinuxBIOS to ram. > Jumping to LinuxBIOS. > LinuxBIOS-1.1.8-FILO Mon Sep 4 11:01:19 PDT 2006 booting... > Enumerating buses... > Finding PCI configuration type. > PCI: Using configuration type 1 > PCI_DOMAIN: 0000 enabled > PCI: pci_scan_bus for bus 0 > PCI: 00:00.0 [8086/1237] enabled > PCI: 00:01.0 [8086/7000] enabled > PCI: 00:01.1 [8086/7010] enabled > PCI: 00:01.3 [8086/7113] enabled > PCI: 00:02.0 [1013/00b8] enabled > PCI: 00:03.0 [10ec/8029] enabled > PCI: pci_scan_bus returning with max=00 > done > Allocating resources... > Reading resources... > Done reading resources. > Setting resources... > PCI: 00:01.1 20 <- [0x0000001400 - 0x000000140f] io > PCI: 00:02.0 10 <- [0x00fc000000 - 0x00fdffffff] prefmem > PCI: 00:02.0 14 <- [0x00fe000000 - 0x00fe000fff] mem > PCI: 00:03.0 10 <- [0x0000001000 - 0x00000010ff] io > Done setting resources. > Done allocating resources. > Enabling resources... > PCI: 00:00.0 subsystem <- 00/00 > PCI: 00:00.0 cmd <- 140 > PCI: 00:01.0 subsystem <- 00/00 > PCI: 00:01.0 cmd <- 147 > PCI: 00:01.1 cmd <- 141 > PCI: 00:01.3 cmd <- 140 > PCI: 00:02.0 cmd <- 143 > PCI: 00:03.0 cmd <- 141 > done. > Initializing devices... > Root Device init > PCI: 00:00.0 init > PCI: 00:01.0 init > PCI: 00:01.1 init > PCI: 00:01.3 init > PCI: 00:02.0 init > PCI: 00:03.0 init > Devices initialized > Moving GDT to 0x500...ok > Wrote linuxbios table at: 00000530 - 00000b74 checksum 841b > > Welcome to elfboot, the open sourced starter. > January 2002, Eric Biederman. > Version 1.3 > > rom_stream: 0xfffe0000 - 0xfffeffff > Found ELF candiate at offset 0 > New segment addr 0x100000 size 0x236e0 offset 0xc0 filesize 0x9748 > (cleaned up) New segment addr 0x100000 size 0x236e0 offset 0xc0 filesize > 0x9748 > New segment addr 0x1236e0 size 0x48 offset 0x9820 filesize 0x48 > (cleaned up) New segment addr 0x1236e0 size 0x48 offset 0x9820 filesize 0x48 > Dropping non PT_LOAD segment > Dropping non PT_LOAD segment > Loading Segment: addr: 0x0000000000100000 memsz: 0x00000000000236e0 > filesz: 0x0000000000009748 > Clearing Segment: addr: 0x0000000000109748 memsz: 0x0000000000019f98 > Loading Segment: addr: 0x00000000001236e0 memsz: 0x0000000000000048 > filesz: 0x0000000000000048 > Jumping to boot code at 0x106924 > FILO version 0.5 ([EMAIL PROTECTED]) Mon Sep 4 11:00:39 PDT 2006 > collect_sys_info: boot eax = 0xe1fb007 > collect_sys_info: boot ebx = 0x3ff77a0 > collect_sys_info: boot arg = 0x3ff77a0 > 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 0x00000000000bdc 16 > convert_memmap: 0x00000000000bdc 0x0000000009f424 1 > convert_memmap: 0x000000000c0000 0x00000000030000 1 > convert_memmap: 0x000000000f0000 0x00000003f10000 1 > convert_memmap: 0x000000000f0000 0x00000000000000 16 > collect_sys_info: 0000000000000bdc-00000000000a0000 > collect_sys_info: 00000000000c0000-00000000000f0000 > collect_sys_info: 00000000000f0000-0000000004000000 > collect_sys_info: RAM 64 MB > relocate: Current location: 0x100000-0x123727 > relocate: Relocating to 0x3fdc8d0-0x3fffff7... ok > setup_timers: CPU 797 MHz > pci_init: Scanning PCI: found 6 devices > malloc_diag: alloc: 208 bytes (4 blocks), free: 16168 bytes (1 blocks) > pci_init: 00:00.0 8086:1237 0600 00 > pci_init: 00:01.0 8086:7000 0601 00 > pci_init: 00:01.1 8086:7010 0101 80 > pci_init: 00:01.3 8086:7113 0680 00 > pci_init: 00:02.0 1013:00b8 0300 00 > pci_init: 00:03.0 10ec:8029 0200 00 > Press <Enter> for default boot, or <Esc> for boot prompt... timed out > boot: hda1:/vmlinuz root=/dev/hda1 console=tty0 console=ttyS0,115200 > malloc_diag: alloc: 280 bytes (5 blocks), free: 16096 bytes (1 blocks) > malloc_diag: alloc: 296 bytes (6 blocks), free: 16080 bytes (1 blocks) > file_open: dev=hda1, path=/vmlinuz > find_ide_controller: found PCI IDE controller 8086:7010 prog_if=0x80 > 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=16384 > init_drive: LBA48 mode, sectors=16384 > init_drive: Init device params... ok > hda: LBA48 8192KB: QEMU HARDDISK > devopen: Partition 1 start 3020518592 length 506638 > Disk read error dev=1 drive=0 sector=3020518592 > devread: read sector failed > Disk read error dev=1 drive=0 sector=3020518594 > devread: read sector failed > Disk read error dev=1 drive=0 sector=3020518720 > devread: read sector failed > Disk read error dev=1 drive=0 sector=3020518608 > devread: read sector failed > Disk read error dev=1 drive=0 sector=3020518656 > devread: read sector failed > Unknown filesystem type > malloc_diag: alloc: 280 bytes (5 blocks), free: 16096 bytes (1 blocks) > malloc_diag: alloc: 208 bytes (4 blocks), free: 16168 bytes (1 blocks) > boot: hda:/vmlinuz console=ttyS0 > malloc_diag: alloc: 248 bytes (5 blocks), free: 16128 bytes (1 blocks) > malloc_diag: alloc: 264 bytes (6 blocks), free: 16112 bytes (1 blocks) > file_open: dev=hda, path=/vmlinuz > Mounted fat > malloc_diag: alloc: 248 bytes (5 blocks), free: 16128 bytes (1 blocks) > elf_load: Not a bootable ELF image > malloc_diag: alloc: 264 bytes (6 blocks), free: 16112 bytes (1 blocks) > file_open: dev=hda, path=/vmlinuz > devopen: already open > malloc_diag: alloc: 248 bytes (5 blocks), free: 16128 bytes (1 blocks) > Found Linux version 2.6.15-1.2054_FC5 > ([EMAIL PROTECTED]) #1 Tue Mar 14 15:48:03 EST > 2006 (protocol 0x204) (loadflags 0x1) bzImage. > init_linux_params: Setting up paramters at 0x90000 > set_memory_size: 0000000000000bdc - 00000000000a0000 > set_memory_size: 00000000000c0000 - 00000000000f0000 > set_memory_size: 00000000000f0000 - 0000000004000000 > set_memory_size: ramtop=0x4000000 > set_memory_size: ext_mem_k=64512, alt_mem_k=64512 > parse_command_line: original command line: "console=ttyS0" > parse_command_line: kernel command line at 0x91000 > parse_command_line: kernel command line (13 bytes): "console=ttyS0" > load_linux_kernel: offset=0x2000 addr=0x100000 size=0x16d7f5 > Loading kernel... ok > start_linux: eip=0x100000 > Jumping to entry point... > ----- > > At this point, even qemu becomes unresponsive, so it's hard to figure > out exactly what it's doing while running in a tight loop. The last > entry in the qemu debug log file is the "Load new stack segment with > new GDT" movl instruction in __switch_context: > > ----- > 0x03fe3213: pop %ebx > 0x03fe3214: sub $0x106943,%ebx > 0x03fe321a: cli > 0x03fe321b: mov %esp,%esi > 0x03fe321d: sub %ebx,%esi > 0x03fe321f: xchg %esi,0x109700(%ebx) > 0x03fe3225: add %ebx,%esi > 0x03fe3227: movzwl (%esi),%edx > 0x03fe322a: mov 0x14(%esi),%eax > 0x03fe322d: lgdtl 0x2(%esi) > 0x03fe3231: mov %edx,%ss > ----- > > I've also tried an older qemu (0.7.2), an older LinuxBIOS (svn 2302) > and an older kernel (2.4.something from Fedora Core 1), all with the > same result. > > Any suggestions would be appreciated. > > --Ed > -- linuxbios mailing list [email protected] http://www.openbios.org/mailman/listinfo/linuxbios
