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