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]

Re: ROMRAM


On Thu, 2004-07-22 at 10:52, jasmine kohli wrote:
> hi gary,
>     thanks for such a quick response.
> 
> the option CYGSEM_HAL_POWERPC_RESET_USES_JUMP is used
> in two places in my code 
> 
> 1)in arch/v2_0/cdl/hal_powerpc.cdl as 
> 
> cdl_option CYGSEM_HAL_POWERPC_RESET_USES_JUMP {
>         display       "RESET vector jumps to startup"
>         default_value 0
>         description   "
>             Some platforms may need this for ROMRAM
> startup."
>     }
> and 
> 2)in vector.S file as
> 
>         .macro  reset_vector name
>         .p2align 8
>         .globl  __exception_\name
> __exception_\name:
> #ifdef CYGSEM_HAL_POWERPC_RESET_USES_JUMP
>         bl      _start
> #else
>         lwi     r3,_start
>         mtlr    r3
>         blr
> #endif
> 
> so should i set the option as 1 for ROMRAM,or ??

On this hardware, it really doesn't matter.  When you reset the 
processor, BR0/OR0 (chip select 0) is reset to map all memory
onto the FLASH, thus 0x3400 is the same as 0xFA003400.  If you
patterned your startup code after what I've done for the Adder
(I'm sure you did), then this is taken care of right away.

> ...
> and there is one one question i wanted to ask u
> was what is the major difference between ROM and
> ROMRAM based STARTup as ROM based STARTUP also copies
> data from ROM to RAM.

ROMRAM relocates all of the program, code + data, into RAM before
execution.  ROM mode executes code from ROM, with data in RAM.

> 
> plz do send in ur valuable suggestions.
> 
> thanks a lot,
> 
> regards,
> jasmine
> reagrds,
> jasmine
> 
> 
> 
> 
>  
> 
> 
> 
> --- Gary Thomas <gary@mlbassoc.com> wrote:
> > On Thu, 2004-07-22 at 10:03, jasmine kohli wrote:
> > > hi all,
> > > i am trying to bring redboot to my board which has
> > > MPC852T as the processor.
> > >  
> > > i have 32 MB Flash with 64 MB SDRAM.
> > > i have Flash mapped 0xFA000000 and SDRAM mapped at
> > > 0x00000000
> > >  
> > > i have the following content in my
> > > mlt_powerpc_myboard_romram.h
> > > #ifndef __ASSEMBLER__
> > > #include <cyg/infra/cyg_type.h>
> > > #include <stddef.h>
> > > #endif
> > > #define CYGMEM_REGION_ram (0)
> > > #define CYGMEM_REGION_ram_SIZE (0x4000000)
> > > #define CYGMEM_REGION_ram_ATTR
> > (CYGMEM_REGION_ATTR_R |
> > > CYGMEM_REGION_ATTR_W)
> > > #ifndef __ASSEMBLER__
> > > extern char CYG_LABEL_NAME (__heap1) [];
> > > #endif
> > > #define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME
> > > (__heap1))
> > > CYG_LABEL_NAME (__heap1))
> > > #define CYGMEM_SECTION_heap1_SIZE (0x4000000 -
> > > (size_t) CYG_LABEL_NAME (__heap1))
> > >  
> > > 
> > > and i have the following in
> > > mlt_powerpc_myboard_romram.ldi file
> > > #include <cyg/infra/cyg_type.inc>
> > > MEMORY
> > > {
> > >     ram : ORIGIN = 0, LENGTH = 0x4000000
> > > }
> > > SECTIONS
> > > {
> > >     SECTIONS_BEGIN
> > >     SECTION_vectors (ram, 0, LMA_EQ_VMA)
> > >     SECTION_text (ram, 0x3400, LMA_EQ_VMA)
> > >     SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
> > >     SECTION_rodata1 (ram, ALIGN (0x8), LMA_EQ_VMA)
> > >     SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
> > >     SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
> > >     SECTION_gcc_except_table (ram, ALIGN (0x1),
> > > LMA_EQ_VMA)
> > >     SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
> > >     SECTION_sbss (ram, ALIGN (0x4), LMA_EQ_VMA)
> > >     SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
> > >     CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
> > >     SECTIONS_END
> > > }
> > > 
> > >  
> > > and the following in
> > mlt_powerpc_myboard_romram.mlt
> > > file
> > > version 0
> > > region ram 0 4000000 0 !
> > > section vectors 0 1 0 1 1 0 1 0 0 0 !
> > > section text 0 1 0 1 1 1 1 1 3400 3400 fini fini !
> > > section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
> > > section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
> > > section rodata 0 8 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 1 0 1 0 1 0 1 data data
> > !
> > > section data 0 8 0 1 0 1 0 1 sbss sbss !
> > > section sbss 0 4 0 1 0 1 0 1 bss bss !
> > > section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
> > > section heap1 0 8 0 0 0 0 0 0 !
> > > 
> > > now to the problem--- :( when i start redboot and
> > step
> > > trace through the code, it starts at
> > > 0xfa000100 and then straight jumps to 0x00003400
> > and
> > > hangs.
> > > does anyone have a clue on why this happens.
> > 
> > Because you told it to :-)  
> > 
> > Check out your use of
> > CYGSEM_HAL_POWERPC_RESET_USES_JUMP
> > >  
> > > another question that i wanted to ask was do we
> > have
> > > to edit only the mlt_.h and mlt_.ldi file or do we
> > > need to edit the .mlt file as well ,because its
> > > difficult to editr the .mlt file on a linux
> > system.
> > 
> > Why?  There is no need to keep Windows line endings
> > in this file,
> > so there is no problem editing it.
> > 
> > >  
> > > and what are the major differences between all
> > types
> > > of startup -ROM,RAM,ROMRAM
> > > 
> > > a thank u to all ....
> > > regards,
> > > jasmine
> > > 
> > >  
> > > 
> > > 
> > > 		
> > > __________________________________
> > > Do you Yahoo!?
> > > Yahoo! Mail - You care about security. So do we.
> > > http://promotions.yahoo.com/new_mail
> > -- 
> > Gary Thomas <gary@mlbassoc.com>
> > MLB Associates
> > 
> > 
> 
> 
> 
> 	
> 		
> __________________________________
> Do you Yahoo!?
> Vote for the stars of Yahoo!'s next ad campaign!
> http://advision.webevents.yahoo.com/yahoo/votelifeengine/
-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates


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


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