This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
redboot RAM and it's memory address
- From: Holger Schurig <h dot schurig at mn-logistik dot de>
- To: ecos-discuss at sources dot redhat dot com
- Date: Thu, 24 Oct 2002 11:39:26 +0200
- Subject: [ECOS] redboot RAM and it's memory address
Okay, after I followed the textbook and compiled eCos CVS for my XScale PXA
(Accelent IDP) target, I got no more errors and
install/bin/redboot.{elf|bin|img|srec}.
My aim is to let the current bootloader (where I don't have source) let the
system initialize and run my redboot in RAM. The current bootloader can
execute Linux, so there should be a way to let it execute something
different.
So, speaking of Linux: when I arm-elf-objdump vmlinux (that is what the
current bootloader gets, in some WinCE NK.BIN format), then I see
c0008000 <stext>:
c0008000: e1a0c000 mov r12, r0
c0008004: e3a000d3 mov r0, #211 ; 0xd3
c0008008: e121f000 msr CPSR_c, r0
but when I arm-elf-objdump install/bin/redboot.elf, then I see
00020000 <__exception_handlers>:
20000: e59ff018 ldr pc, [pc, #18] ; 20020 <vectors>
20004: e59ff018 ldr pc, [pc, #18] ; 20024
<.undefined_instruction>
...
00020020 <vectors>:
20020: 00020040 andeq r0, r2, r0, asr #32
...
00020040 <reset_vector>:
20040: e3a00000 mov r0, #0 ; 0x0
20044: e59f1388 ldr r1, [pc, #388] ; 203d4
<_eCos_id+0x14>
My question:
I guess I have to simple edit
ecos/packages/hal/arm/xscale/idppxa/current/include/pkgconf/mlt_arm_xscale_idppxa_ram.h
and mlt_arm_xscale_idppxa_ram.ldi so that it uses 0xc0008000, too? Maybe
something like
#include <cyg/infra/cyg_type.inc>
MEMORY
{
ram : ORIGIN = 0xc0000000, LENGTH = 0x02000000
}
SECTIONS
{
SECTIONS_BEGIN
SECTION_fixed_vectors (ram, 0xc0000020, LMA_EQ_VMA)
SECTION_rom_vectors (ram, 0xc0008000, LMA_EQ_VMA)
SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
SECTIONS_END
}
Greetings, Holger
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss