[ECOS] Modifying SDRAM Size in Redboot

Mark Salter msalter@redhat.com
Tue Aug 24 12:14:00 GMT 2004


>>>>> m a writes:

> Hi,

> In our custom board we have SDRAM of size 32 MB. In
> Redboot what are all the files i should change to
> reflect this.
> I made changes in hal_platform_extras.h and ixdp425.h
> file  as below . 

> #if defined(CYG_HAL_STARTUP_ROM) ||
> defined(CYG_HAL_STARTUP_ROMRAM)
> #if defined(CYG_HAL_STARTUP_ROMRAM)
>         .section .text
> 	.ltorg
> 	.p2align 13
> #else
>         .section .mmu_tables, "a"
> #endif

>     mmu_table:
>         //  This page table sets up the preferred
> mapping:
>         //
>         //  Virtual Address   Physical Address  XCB 
> Size (MB)  Description
>         //  ---------------   ----------------  --- 
> ---------  -----------
>         //     0x00000000       0x00000000      010   
>  32     SDRAM (cached)
>         //     0x10000000       0x10000000      010   
>  32     SDRAM (alias)
>         //     0x20000000       0x00000000      000   
>  32    SDRAM (uncached)
>         //     0x48000000       0x48000000      000   
>   64     PCI Data
>         //     0x50000000       0x50000000      010   
>   16     Flash (CS0)
>         //     0x51000000       0x51000000      000   
>  112     CS1 - CS7
> 	//     0x60000000       0x60000000      000      64  
>   Queue Manager
> 	//     0xC0000000       0xC0000000      000       1  
>   PCI Controller
> 	//     0xC4000000       0xC4000000      000       1  
>   Exp. Bus Config
> 	//     0xC8000000       0xC8000000      000       1  
>   Misc IXP425 IO
> 	//     0xCC000000       0xCC000000      000       1  
>   SDRAM Config

> 	// 32MB SDRAM
> 	.set	__base,0x000
> 	.rept	0x20 - 0x000
> 	FL_SECTION_ENTRY __base,0,3,0,0,1,0
> 	.set	__base,__base+1
> 	.endr

Here, you need to fill in the section descriptors for the 224MiB of
address space which does not have SDRAM:

 	.rept	0x100 - 0x020
 	.word 0
 	.set	__base,__base+1
 	.endr


> 	// 32MB SDRAM (alias)
> 	.rept	0x120 - 0x100
> 	FL_SECTION_ENTRY __base,0,3,0,0,1,0
> 	.set	__base,__base+1
> 	.endr

And here:

 	.rept	0x200 - 0x120
 	.word 0
 	.set	__base,__base+1
 	.endr

> 	// 32MB SDRAM (uncached)
> 	.set	__base,0x000
> 	.rept	0x220 - 0x200
> 	FL_SECTION_ENTRY __base,0,3,0,0,0,0
> 	.set	__base,__base+1
> 	.endr

And here:

 	.rept	0x300 - 0x220
 	.word 0
 	.set	__base,__base+1
 	.endr

> 	// 384MB Unused
> 	.set	__base,0x300
> 	.rept	0x480 - 0x300
> 	.word 0
> 	.set	__base,__base+1
> 	.endr


--Mark

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



More information about the Ecos-discuss mailing list