This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
How to setup the memory layout?
- From: Holger Schurig <h dot schurig at mn-logistik dot de>
- To: ecos-discuss at sources dot redhat dot com
- Date: Mon, 4 Feb 2002 14:44:44 +0100
- Subject: [ECOS] How to setup the memory layout?
Hi Everybody !
I have an Accelent IDP development board here. The board is using a
StrongARM SA-1110 CPU.
My goal is to get a booloader on it that is open-source. I looked first
at RedBoot, found it somewhat complex, then looked at "blob" and
managed to get blob running. Having a bootloader that could boot via
TFTP off the net is nice, so I'm turning my attention now back to Red
Boot.
To get a going, I took the anoncvs of ecos/redboot and started using
some files from packages/hal/arm/sa11x0/ipaq and copied them to
packages/hal/arm/sa11x0/accidp. Then I deleted much stuff, e.g. all
references to EGPIO or to boot method "Compaq" and changed "iPAQ" to
"Accelent IDP" and so on. I also manually edited ecos.db to have a
module there.
After this, I was able to select a template in configtool. I now have
reached a state where my code compiles cleanly, without any errors (so
the syntax is now right, but don't ask me for the semantics :-)
Okay, and now to some questions:
I want RedBoot to be started directly after a reset. I can flash any
image into the board using a self-made JTAG cable and ianflash.
However, the documentation talks about gdb stubs, in some directory
named "loaders", e.g. at
http://sources.redhat.com/ecos/docs-latest/tutorials/arm/ecos-tutorial.d.html#pgfId=2813224
after the heading "Overview". Is the documentation outdated?
Should I set CYG_HAL_STARTUP to RAM or ROM? The difference between
those two sounds very fuzzy to me. RedBoot should start directly from
Flash.
The board has Intel StrataFlash at physical address 0x0000 0000 and
SRAM is at physical address 0xC000 0000. The configtool for Linux does
not have a graphical memory setup, I have to edit the files in
include/pkgconf manually, right?. However, for me it is not clear if
something there is a physical addresses and virtual or if even some
stuff is mixed.
Would the following mlt_arm_sa11x0_accidp_rom.mlt file make sense?
version 0
region ram c0000000 1fc0000 0 !
region rom 00000000 2000000 1 !
section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
section data 0 1 1 1 1 1 0 0 8000 bss !
section bss 0 4 0 1 0 1 0 1 heap1 heap1 !
section heap1 0 8 0 0 0 0 0 0 !
section rom_vectors 0 1 0 1 1 1 1 1 00000000 00000000 text text !
section text 0 4 0 1 0 1 0 1 fini fini !
section fini 0 4 0 1 0 1 0 1 rodata rodata !
section rodata 0 4 0 1 0 1 0 1 rodata1 rodata1 !
section rodata1 0 4 0 1 0 1 0 1 fixup fixup !
section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
section gcc_except_table 0 4 0 1 0 0 0 1 data !
What's stands the filename extensions "ldi" and "mdi" for? I don't
know this abbreviations. Do I have to edit both files and the *.h file
or is something auto-generated?
So much for now, :-)
Holger