[ECOS] Can I assign the offset of code start in redboot.binwhen using startup from ROM

Gary Thomas gary@mlbassoc.com
Thu Jul 7 12:40:00 GMT 2005


On Thu, 2005-07-07 at 20:01 +0800, Steven_cheng wrote:
> Hi Gray,
> 
>     I configure eCos with configtool.
> Step:
>     1) Select Template "Cogent PowerPC 8245" and Package "RedBoot"
>     2) Configure Startup type "ROM"
>     3) Import  packages/hal/powerpc/csb281/current/misc/redboot_ROM.ecm
>     4) Build  code
>     5) burn install/bin/redboot.bin (and check the content of redboot.bin)
> 
> Question:
>     1) Does the rom image be burned with redboot.bin
>     2) Does the code start from the _start in the vector.S  for startup type
> "ROM"  ??
> 

No.  The first 0x1500 bytes of code are the exception vectors, 
which includes the reset vector where execution actually begins.

The code starting at 0xFFF00000 in the listing below is what will
be put into the ROM.

Note: I know that this platform works; I did the port myself.

> Thank you for your help ~~~
> 
> /Steven
> 
> After executing the command "powerpc-eabi-objdump -h
> install/bin/redboot.elf",
> The result is as following table:
> 
> file format elf32-powerpc
> Sections:
> Idx Name          Size      VMA       LMA       File off  Algn
>   0 .vectors      00001500  fff00000  fff00000  00010000  2**8
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>   1 .text         0001489c  fff01500  fff01500  00011500  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>   2 .fini         00000000  fff15d9c  fff15d9c  00033f48  2**0
>                   CONTENTS
>   3 .rodata1      00000000  fff15da0  fff15da0  00033f48  2**0
>                   CONTENTS
>   4 .rodata       00003880  fff15da0  fff15da0  00025da0  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>   5 .fixup        00000000  fff19620  fff19620  00033f48  2**0
>                   CONTENTS
>   6 .gcc_except_table 00000000  fff19620  fff19620  00033f48  2**0
>                   CONTENTS
>   7 .data         00000c48  00003300  fff19620  00033300  2**3
>                   CONTENTS, ALLOC, LOAD, CODE
>   8 .sbss         00000100  00003f48  00003f48  00003f48  2**3
>                   ALLOC
>   9 .bss          00005420  00004050  00004050  00003f50  2**4
>                   ALLOC
>  10 .debug_line   0000d084  00000000  00000000  00033f48  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  11 .debug_info   0002ff4e  00000000  00000000  00040fcc  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  12 .debug_abbrev 00006886  00000000  00000000  00070f1a  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  13 .debug_aranges 000015f0  00000000  00000000  000777a0  2**3
>                   CONTENTS, READONLY, DEBUGGING
>  14 .debug_frame  000032c0  00000000  00000000  00078d90  2**2
>                   CONTENTS, READONLY, DEBUGGING
>  15 .debug_pubnames 00002800  00000000  00000000  0007c050  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  16 .debug_str    00005d6c  00000000  00000000  0007e850  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  17 .debug_ranges 00000710  00000000  00000000  000845bc  2**0
>                   CONTENTS, READONLY, DEBUGGING
> 
> > >
> > > Environment:
> > >     arch: MPC8245
> > >     package: RedBoot
> > >     startup type: ROM
> > >
> > > After building the code, I burn the the redboot.bin into my rom flash,
> but
> > > it
> > > seems not to be executed. Then I found that the code offset starts in
> 0x0,
> > > not
> > > in 0x100,  in the redboot.bin.  The MPC8245 can not start from offset
> 0x100
> > > to execute the rom code. So the rom code is failed.
> > >
> > > Questions:
> > >     1) The MPC8245 rom code should start from 0x100 in redboot.bin for
> > > burning.(???)
> > >     2) Does anybody know how I can move the code offset start from 0x0
> to
> > > 0x100 ??
> > >     3) Does the code start from the _start in the vector.S  for startup
> type
> > > "ROM" ??
> > >
> > > It was as following:
> > >
> > > 0x00000000  rom_code  _start    # map to _start in vectors.S
> > > 0x00000010  rom_code
> > > 0x00000020  rom_code ......
> > > ...
> > > 0x00000100  rom_code ......
> > > ......
> > >
> > >
> > > But I think it should be as following:
> > >
> > > 0x00000000  Vector
> > > 0x00000010  empty
> > > 0x00000020  empty
> > > ...
> > > 0x00000100  rom_code _start ......# map to _start in vectors.S
> > > ......
> > >
> > > 4) Is it  correct ??
> > >
> >
> > How did you configure eCos?  (i.e. what commands/steps did you use?)
> > You can see how the image is laid out in memory using this command:
> >   powerpc-eabi-objdump -h install/bin/redboot.elf
> > What do you see from it?
> >
> > -- 
> > ------------------------------------------------------------
> > Gary Thomas                 |  Consulting for the
> > MLB Associates              |    Embedded world
> > ------------------------------------------------------------
> >
-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list