public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* RE: [ECOS]  Redboot :: __startup_stack
@ 2005-07-01 12:37 Harsha D
  0 siblings, 0 replies; 5+ messages in thread
From: Harsha D @ 2005-07-01 12:37 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: ecos-discuss


Hi 

I was able to get the redboot working by disabling the gdb stubs. (which
effectively makes initialize_stub not be called).
Now redboot prompt appears.. although some junk characters are taken as
input and the program seems to be in infinite loop.

But i am unable to understand what is that in the gdb stubs which is
making the redboot to crash.  If you can throw some light on some of the
possibilities it would be great !!

Thanking you
harsha



-----Original Message-----
From: Andrew Lunn [mailto:andrew@lunn.ch]
Sent: 01 July 2005 13:16
To: Harsha D
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] Redboot :: __startup_stack


On Fri, Jul 01, 2005 at 10:09:49AM +0530, Harsha D wrote:
> Hi
>  
>  ===============================================================
>  Porting 		:	Redboot	
>  Platform	:	ARM922T based board
>  source base	:	based on Excalibur package
>  
>  ===============================================================
>  Memory layout is 
>  --------------------------
>  SRAM(32KB)	 0x00000000 - 0x00008000	
>  RAM(32MB)	 0x20000000 - 0x02000000
>  
>  ===============================================================
>  My ram ldi file
>  ---------------------
>  MEMORY
>  {
>      ram : ORIGIN = 0x20000000, LENGTH = 0x02000000
>  }
>  
>  SECTIONS
>  {
>      SECTIONS_BEGIN
>      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)
>      SECTION_rom_vectors (ram, 0x20300000, 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
>  }

....
  
>  [ I am loading redboot at 0x20300000]
> Googling told me that 
>  fixed_vectors should be at 0x20(???) which is not the case for me.  
>  Will it cause any problems ?  If yes then how should i have my memory
layout.

      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)

Add an sram memory region and change this to 0x20 and the fixed
vectors will move.

        Andrew

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [ECOS]  Redboot :: __startup_stack
@ 2005-07-05  4:20 Harsha D
  0 siblings, 0 replies; 5+ messages in thread
From: Harsha D @ 2005-07-05  4:20 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: ecos-discuss

Hi

As i said earlier i was able to run redboot (RAM) with gdb stubs
disabled.

When i enable the gdb stubs, the objdump of redboot gives me...


------------------------------------------------------------------------
-----------------
#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
        bl      initialize_stub
203000f0:	eb0008d3 	bl	20302444 <initialize_stub>

        // Now that stub is initialized, change vector. It is possible
        // to single-step through most of the init code, except the
below.
        // Put a breakpoint at the call to cyg_hal_invoke_constructors
to
        // pass over this bit (s-s depends on internal state in the
stub).
#endif

#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) || \
    defined(CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS)
        mov     r0,#0           // move vectors
203000f4:	e3a00000 	mov	r0, #0	; 0x0
        ldr     r1,=__exception_handlers
203000f8:	e59f12c8 	ldr	r1, [pc, #712]	; 203003c8
<_eCos_id+0x14>
        ldr     r2,[r1,#0x04]   // undefined instruction


....
------------------------------------------------------------------------
------------------

I find that redboot never returns (to 0x203000f4) after initialize_stub
is called.

The '+' sign which is the last function (putdebugchar) called in
initialize_stub is coming on 
serial port, but tracing after this seems to lead to
software_interrupt->exception_handler.
and the $T050f.. (which points to startup_stack)


I would like to know what are the things that happen after
initalize_stub is called.
Do i have to change anything in the implementation for my board.  Please
throw some light on
the same

Thanking u
harsha





































	

-----Original Message-----
From: Harsha D 
Sent: 01 July 2005 18:11
To: 'Andrew Lunn'
Cc: ecos-discuss@sources.redhat.com
Subject: RE: [ECOS] Redboot :: __startup_stack



Hi 

I was able to get the redboot working by disabling the gdb stubs. (which
effectively makes initialize_stub not be called).
Now redboot prompt appears.. although some junk characters are taken as
input and the program seems to be in infinite loop.

But i am unable to understand what is that in the gdb stubs which is
making the redboot to crash.  If you can throw some light on some of the
possibilities it would be great !!

Thanking you
harsha



-----Original Message-----
From: Andrew Lunn [mailto:andrew@lunn.ch]
Sent: 01 July 2005 13:16
To: Harsha D
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] Redboot :: __startup_stack


On Fri, Jul 01, 2005 at 10:09:49AM +0530, Harsha D wrote:
> Hi
>  
>  ===============================================================
>  Porting 		:	Redboot	
>  Platform	:	ARM922T based board
>  source base	:	based on Excalibur package
>  
>  ===============================================================
>  Memory layout is 
>  --------------------------
>  SRAM(32KB)	 0x00000000 - 0x00008000	
>  RAM(32MB)	 0x20000000 - 0x02000000
>  
>  ===============================================================
>  My ram ldi file
>  ---------------------
>  MEMORY
>  {
>      ram : ORIGIN = 0x20000000, LENGTH = 0x02000000
>  }
>  
>  SECTIONS
>  {
>      SECTIONS_BEGIN
>      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)
>      SECTION_rom_vectors (ram, 0x20300000, 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
>  }

....
  
>  [ I am loading redboot at 0x20300000]
> Googling told me that 
>  fixed_vectors should be at 0x20(???) which is not the case for me.  
>  Will it cause any problems ?  If yes then how should i have my memory
layout.

      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)

Add an sram memory region and change this to 0x20 and the fixed
vectors will move.

        Andrew

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [ECOS]  Redboot :: __startup_stack
@ 2005-07-01  8:34 Harsha D
  0 siblings, 0 replies; 5+ messages in thread
From: Harsha D @ 2005-07-01  8:34 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: ecos-discuss


Well i did that but then i get only "++++++++ ..." output on the hyper
terminal.

update ldi file


MEMORY
{
    sram : ORIGIN = 0x00000000, LENGTH = 0x00008000
    ram : ORIGIN = 0x20000000, LENGTH = 0x02000000
}

SECTIONS
{
    SECTIONS_BEGIN
    SECTION_fixed_vectors (sram, 0x20, LMA_EQ_VMA)
    SECTION_rom_vectors (ram, 0x20300000, 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
}	

thanking u 
harsha


-----Original Message-----
From: Andrew Lunn [mailto:andrew@lunn.ch]
Sent: 01 July 2005 13:16
To: Harsha D
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] Redboot :: __startup_stack


On Fri, Jul 01, 2005 at 10:09:49AM +0530, Harsha D wrote:
> Hi
>  
>  ===============================================================
>  Porting 		:	Redboot	
>  Platform	:	ARM922T based board
>  source base	:	based on Excalibur package
>  
>  ===============================================================
>  Memory layout is 
>  --------------------------
>  SRAM(32KB)	 0x00000000 - 0x00008000	
>  RAM(32MB)	 0x20000000 - 0x02000000
>  
>  ===============================================================
>  My ram ldi file
>  ---------------------
>  MEMORY
>  {
>      ram : ORIGIN = 0x20000000, LENGTH = 0x02000000
>  }
>  
>  SECTIONS
>  {
>      SECTIONS_BEGIN
>      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)
>      SECTION_rom_vectors (ram, 0x20300000, 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
>  }

....
  
>  [ I am loading redboot at 0x20300000]
> Googling told me that 
>  fixed_vectors should be at 0x20(???) which is not the case for me.  
>  Will it cause any problems ?  If yes then how should i have my memory
layout.

      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)

Add an sram memory region and change this to 0x20 and the fixed
vectors will move.

        Andrew

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ECOS]  Redboot :: __startup_stack
  2005-07-01  4:36 Harsha D
@ 2005-07-01  7:46 ` Andrew Lunn
  0 siblings, 0 replies; 5+ messages in thread
From: Andrew Lunn @ 2005-07-01  7:46 UTC (permalink / raw)
  To: Harsha D; +Cc: ecos-discuss

On Fri, Jul 01, 2005 at 10:09:49AM +0530, Harsha D wrote:
> Hi
>  
>  ===============================================================
>  Porting 		:	Redboot	
>  Platform	:	ARM922T based board
>  source base	:	based on Excalibur package
>  
>  ===============================================================
>  Memory layout is 
>  --------------------------
>  SRAM(32KB)	 0x00000000 - 0x00008000	
>  RAM(32MB)	 0x20000000 - 0x02000000
>  
>  ===============================================================
>  My ram ldi file
>  ---------------------
>  MEMORY
>  {
>      ram : ORIGIN = 0x20000000, LENGTH = 0x02000000
>  }
>  
>  SECTIONS
>  {
>      SECTIONS_BEGIN
>      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)
>      SECTION_rom_vectors (ram, 0x20300000, 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
>  }

....
  
>  [ I am loading redboot at 0x20300000]
> Googling told me that 
>  fixed_vectors should be at 0x20(???) which is not the case for me.  
>  Will it cause any problems ?  If yes then how should i have my memory layout.

      SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)

Add an sram memory region and change this to 0x20 and the fixed
vectors will move.

        Andrew

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ECOS]  Redboot :: __startup_stack
@ 2005-07-01  4:36 Harsha D
  2005-07-01  7:46 ` Andrew Lunn
  0 siblings, 1 reply; 5+ messages in thread
From: Harsha D @ 2005-07-01  4:36 UTC (permalink / raw)
  To: ecos-discuss

Hi
 
 ===============================================================
 Porting 		:	Redboot	
 Platform	:	ARM922T based board
 source base	:	based on Excalibur package
 
 ===============================================================
 Memory layout is 
 --------------------------
 SRAM(32KB)	 0x00000000 - 0x00008000	
 RAM(32MB)	 0x20000000 - 0x02000000
 
 ===============================================================
 My ram ldi file
 ---------------------
 MEMORY
 {
     ram : ORIGIN = 0x20000000, LENGTH = 0x02000000
 }
 
 SECTIONS
 {
     SECTIONS_BEGIN
     SECTION_fixed_vectors (ram, 0x20000020, LMA_EQ_VMA)
     SECTION_rom_vectors (ram, 0x20300000, 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
 }
 
 [ I am loading redboot at 0x20300000]
 
 =================================================================
 What i am trying to do...
 -----------------------------------
 Trying to execute the redboot (ram version).  I am using another small bootstrap program to 
 initialize/setup the platform.  This at present i am not doing in Redboot, and plan to transfer
 in the ROM version of Redboot.
 
 I want to run Redboot => get messages on hyperterminal, able to connect from gdb and flash
 writing
 
 ==================================================================
 Problem
 ------------
 
 The redboot.bin is executing but "+T050f....." message appears on 
 hypterterminal.  When i traced i found that it is pointing to the 
 __startup_stack.  When i disassemble ...
 
 
 20300378 <.__GDB_stack>:
 20300378:	2030ca70 	eorcss	ip, r0, r0, ror sl
 
 2030037c <.__startup_stack>:
 2030037c:	2030da70 	eorcss	sp, r0, r0, ror sl
 
 20300380 <.__exception_stack>:
 20300380:	2030b9f0 	ldrcssh	fp, [r0], -r0
 
 20300384 <.__undef_exception_stack>:
 20300384:	2030ba70 	eorcss	fp, r0, r0, ror sl

 I am not able to find what is the error here.  Googling told me that 
 fixed_vectors should be at 0x20(???) which is not the case for me.  
 Will it cause any problems ?  If yes then how should i have my memory layout.

 =====================================================================
 
 Warm regards
 harsha
 
 
 
 
 

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-07-05  4:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-07-01 12:37 [ECOS] Redboot :: __startup_stack Harsha D
  -- strict thread matches above, loose matches on Subject: below --
2005-07-05  4:20 Harsha D
2005-07-01  8:34 Harsha D
2005-07-01  4:36 Harsha D
2005-07-01  7:46 ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).