This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Modifying SDRAM Size in Redboot
- From: Mark Salter <msalter at redhat dot com>
- To: aasay2003 at yahoo dot com
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Tue, 24 Aug 2004 08:14:49 -0400 (EDT)
- Subject: Re: [ECOS] Modifying SDRAM Size in Redboot
- References: <20040824091230.19764.qmail@web51804.mail.yahoo.com>
>>>>> 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