How to use Filo as a payload ?

Peter Fox peter.fox at aeroflex.com
Mon Nov 10 06:44:00 CET 2003


Thanks ! That's the one. I now get the FILO startup banner,
but then it reboots.

-----------------
...
Welcome to elfboot, the open sourced starter.
January 2002, Eric Biederman.
Version 1.2

Stream pointer is 0x00009020    34:init_bytes() - zkernel_start:0xfffe0000
zker
nel_mask:0x0000ffff
Stream initialised ok
Stream header read ok
Found ELF candiate at offset 0
header_offset is 0
Try to load at offset 0x0
malloc Enter, size 32, free_mem_ptr 00011768
malloc 0x00011768
New segment addr 0x100000 size 0x218b0 offset 0xa0 filesize 0x7920
(cleaned up) New segment addr 0x100000 size 0x218b0 offset 0xa0 filesize
0x7920
lb: [0x0000000000004000, 0x000000000005136c)
malloc Enter, size 32, free_mem_ptr 00011788
malloc 0x00011788
New segment addr 0x1218c0 size 0x60 offset 0x79c0 filesize 0x60
(cleaned up) New segment addr 0x1218c0 size 0x60 offset 0x79c0 filesize 0x60
lb: [0x0000000000004000, 0x000000000005136c)
Dropping non PT_LOAD segment
Loading Segment: addr: 0x0000000000100000 memsz: 0x00000000000218b0 filesz:
0x00
00000000007920
[ 0x0000000000100000, 0000000000107920, 0x00000000001218b0) <-
00000000000000a0
Clearing Segment: addr: 0x0000000000107920 memsz: 0x0000000000019f90
Loading Segment: addr: 0x00000000001218c0 memsz: 0x0000000000000060 filesz:
0x00
00000000000060
[ 0x00000000001218c0, 0000000000121920, 0x0000000000121920) <-
00000000000079c0
Loaded segments
verified segments
closed down stream
Jumping to boot code at 0x1053d0
entry    = 0x001053d0
lb_start = 0x00004000
lb_size  = 0x0004d36c
adjust   = 0x01faec94
buffer   = 0x01f65928
     elf_boot_notes = 0x0000b100
adjusted_boot_notes = 0x01fb9d94
FILO version 0.4 (fox at stpc.ifr.co.uk) Thu Nov  6 14:25:29 GMT 2003


LinuxBIOS-1.0.0 Mon Nov 10 09:52:46 GMT 2003 starting...
Copying LinuxBIOS to ram.
...
---------------------
I'm turning on debugging in Filo to see why. Here's the result..
---------------------
...
FILO version 0.4 (fox at stpc.ifr.co.uk) Mon Nov 10 12:04:52 GMT 2003
collect_sys_info: boot eax = 0xe1fb007
collect_sys_info: boot ebx = 0x1fb9d94
collect_sys_info: boot arg = 0x1fb9d94
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.2
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: 00000500
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: 00000500
malloc_diag: alloc: 96 bytes (3 blocks), free: 16280 bytes (1 blocks)
convert_memmap: 0x00000000000000 0x000000000006d0 16
convert_memmap: 0x000000000006d0 0x0000000009f930 1
convert_memmap: 0x00000000100000 0x00000001f00000 1
collect_sys_info: 00000000000006d0-00000000000a0000
collect_sys_info: 0000000000100000-0000000002000000
collect_sys_info: RAM 32 MB
relocate: Current location: 0x100000-0x123fdf
relocate: Relocating to 0x1fdc020-0x1ffffff... ok


LinuxBIOS-1.0.0 Mon Nov 10 12:08:12 GMT 2003 starting...
Copying LinuxBIOS to ram.
...

--
Peter Fox <peter.fox at aeroflex.com>     Aeroflex Test Solutions
Principal Design Engineer                            Stevenage
Any opinions expressed above are      http://www.aeroflex.com/
not necessarily those of Aeroflex.   Tel: + 44 (0) 1438 742200

  -----Original Message-----
  From: Takeshi Sone [mailto:ts1 at tsn.or.jp]
  Sent: 10 November 2003 09:38
  To: Peter Fox
  Cc: Linuxbios
  Subject: Re: How to use Filo as a payload ?


  On Mon, Nov 10, 2003 at 09:22:58AM -0000, Peter Fox wrote:
  > The sources seem to imply the stream should be set up by the
  > linker script, but there is nothing in my linker script that
  > looks like it will do it.
  >
  > Indeed looking at the linuxbios_c.map I see:
  >
  > ...
  > 00008db8 T pc_keyboard_init
  > 00008ec0 R epci_drivers
  > 00008ec0 R estreams
  > 00008ec0 R pci_drivers
  > 00008ec0 R _rodata
  > 00008ec0 R streams
  > 00008ec0 T _etext
  > 00009420 R intel_irq_routing_table
  > ...
  >
  > Which kind of implies there is no stream.
  >
  > Any idea how the streams are supposed to be set up ?

  option USE_GENERIC_ROM=1
  This will enable the rom_fill_inbuf.c and the rom_stream driver
  will automagically show up in between the streams and estreams.

  --
  Takeshi




More information about the coreboot mailing list