Subject: prom expectations of executable format
To: None <port-mips@netbsd.org>
From: Steve Rumble <steve@paintballresource.org>
List: port-mips
Date: 12/30/2002 18:31:12
I have a SGI Indigo R3000A-based machine that I want to make go.
Unfortunately, the prom does not appear to begin executing the
kernel (or boot loader-tried for simplicity) before issuing an
exception or hard locking. After digging through usenet archives, it
appears that the probable cause is the prom expecting a specific format.

Would I be incorrect in assuming that mimmicing the header configuration
of an IRIX 5.3 kernel is an acceptable strategy? If I appear to be on
the right track here, are certain attributes more important than others?
What should be attempted first? Binary flags, section flags, ordering,
or the simple existance of certain sections? elf2ecoff appears to strip
all but the a.out-compatible sections, however the IRIX binary includes
ecoff rdata, sdata, and sbss. I'm looking for any suggestions,
past experience, pointers to prior discussions, etc.

objdump -x snipets below.

Thanks in advance,
-Steve Rumble

IRIX 5.3 kernel:

unix:     file format ecoff-bigmips
unix
architecture: mips:3000, flags 0x00000032:
EXEC_P, HAS_SYMS, HAS_LOCALS
start address 0x800026f0

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00128d20  80002000  80002000  00000170  2**4
                  CONTENTS, ALLOC, LOAD, CODE
  1 .rdata        0000a490  8012ad20  8012ad20  00128e90  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .data         0000e960  801351b0  801351b0  00133320  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  3 .sdata        00003140  80143b10  80143b10  00141c80  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  4 .sbss         00000d40  80146c50  80146c50  00000000  2**4
                  ALLOC
  5 .bss          000219c0  80147990  80147990  00000000  2**4
                  ALLOC
  6 .comment      00000024  00000000  00000000  00144e20  2**4
                  CONTENTS, NEVER_LOAD

NetBSD 1.6K ecoff

netbsd.ecoff:     file format ecoff-bigmips
netbsd.ecoff
architecture: mips:3000, flags 0x00000012:
EXEC_P, HAS_SYMS
start address 0x80002000

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         002e8750  80002000  80002000  00000140  2**4
                  CONTENTS, ALLOC, LOAD
  1 .data         00000000  802ea750  802ea750  002e8890  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .bss          0003bbcc  802ea750  802ea750  00000000  2**4
                  ALLOC, LOAD
  3               00000000  00000000  00000000  00000000  2**4
                  ALLOC, LOAD, DATA
  4               00000000  00000000  00000000  00000000  2**4
                  ALLOC
  5               00000000  00000000  00000000  00000000  2**4
                  ALLOC, LOAD