This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]