[ECOS] FW: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS

Dave dave@cc0.net
Wed Sep 28 09:22:00 GMT 2005


I just dug into this today...I put a dump in redboot_linux_exec.c after 
filling up the ATAGs and before executing kernel and looked at memory at 
0x100. It looks perfect to me...ATAGs present are ATAG_CORE, ATAG_MEM and 
ATAG_CMDLINE.

Just so I am sure I am not missing anything to modify...my understanding of 
what needs to be changed to accomodate ONLY an SDRAM configuration and size 
change from a 256MB IXDP425 to a 32MB IXDP425 is:


ixdp425/current/include/ixdp425.h

#define SDRAM_SIZE                         0x02000000
#define IXP425_SDRAM_CONFIG_INIT  (SDRAM_CONFIG_CAS_3 | 
SDRAM_CONFIG_2x16Mx16)


ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.ldi

ram : ORIGIN = 0, LENGTH = 0x02000000



ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.h

#define CYGMEM_REGION_ram_SIZE (0x02000000)
#define CYGMEM_SECTION_heap1_SIZE (0x02000000 - (size_t) CYG_LABEL_NAME 
(__heap1))



ixdp425/current/include/pkgconf/mlt_arm_xscale_ixdp425_rom.h

region ram 0 02000000 0 !


And just to be sure...I took previous advise and modified the ram mlt files 
as well.


Is there something I am missing that needs to be modified?



Thanks!

-Dave






----- Original Message ----- 
From: "??????????? ????? ???????????" <kondratenko@tecon.ru>
To: "Dave" <dave@cc0.net>
Cc: <ecos-discuss@sources.redhat.com>
Sent: Friday, September 16, 2005 2:26 AM
Subject: RE: [ECOS] FW: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS


OK. Take a look at:

packages\hal\arm\arch\current\src\redboot_linux_exec.c

There are directly used "CYGMEM_REGION_ram_SIZE" define:

#ifndef CYGHWR_REDBOOT_LINUX_ATAG_MEM
#define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_) 
\
    CYG_MACRO_START 
\
    /* Next ATAG_MEM. */ 
\
    _p_->hdr.size = (sizeof(struct tag_mem32) + sizeof(struct 
tag_header))/sizeof(long);        \
    _p_->hdr.tag = ATAG_MEM; 
\
    /* Round up so there's only one bit set in the memory size. 
\
     * Don't double it if it's already a power of two, though. 
\
     */ 
\
    _p_->u.mem.size  = 1<<hal_msbindex(CYGMEM_REGION_ram_SIZE); 
\
    if (_p_->u.mem.size < CYGMEM_REGION_ram_SIZE) 
\
    _p_->u.mem.size <<= 1; 
\
    _p_->u.mem.start = CYGARC_PHYSICAL_ADDRESS(CYGMEM_REGION_ram); 
\
    CYG_MACRO_END
#endif


And in do exec:

    // Fill in the details of the memory layout
    CYGHWR_REDBOOT_LINUX_ATAG_MEM(params);

So you can diag_printf  "CYGMEM_REGION_ram_SIZE" before call to this macro 
and see
If there are right value. If not  - look for what is wrong.














> -----Original Message-----
> From: Dave [mailto:dave@cc0.net]
> Sent: Friday, September 16, 2005 10:57 AM
> To: ??????????? ????? ???????????
> Cc: ecos-discuss@sources.redhat.com
> Subject: Re: [ECOS] FW: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS
>
>
> Probably so...
>
>
> The only RB differences between the 64MB that does work and
> the 32MB that does not work is the following:
>
>
> ixdp425.h:
>
> #define SDRAM_SIZE                         0x02000000
> #define IXP425_SDRAM_CONFIG_INIT  (SDRAM_CONFIG_CAS_3 |
> SDRAM_CONFIG_2x8Mx16)
>
>
> mlt_arm_xscale_ixdp425_ram.h:
>
> #define CYGMEM_REGION_ram_SIZE (0x02000000)
> #define CYGMEM_SECTION_heap1_SIZE (0x02000000 - (size_t)
> CYG_LABEL_NAME
> (__heap1))
>
>
>
> mlt_arm_xscale_ixdp425_rom.h:
>
> #define CYGMEM_REGION_ram_SIZE (0x02000000)
> #define CYGMEM_SECTION_heap1_SIZE (0x02000000 - (size_t)
> CYG_LABEL_NAME
> (__heap1))
>
>
> mlt_arm_xscale_ixdp425_rom.ldi:
>
> ram : ORIGIN = 0, LENGTH = 0x02000000
>
>
>
>
>
>
>
>
> ----- Original Message ----- 
> From: "??????????? ????? ???????????" <kondratenko@tecon.ru>
> To: "Dave" <dave@cc0.net>
> Cc: <ecos-discuss@sources.redhat.com>
> Sent: Thursday, September 15, 2005 11:34 PM
> Subject: RE: [ECOS] FW: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS
>
>
> You're did something wrong. It works. We have such
> configuration as you.
>
> > -----Original Message-----
> > From: Dave [mailto:dave@cc0.net]
> > Sent: Thursday, September 15, 2005 7:02 PM
> > To: ??????????? ????? ???????????
> > Cc: ecos-discuss@sources.redhat.com
> > Subject: Re: [ECOS] FW: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS
> >
> >
> >
> > It did not resolve the issue. I changed it to reflect 32MB
> > however ATAGs are still not passed to kernel.
> >
> >
> >
> >
> >
> >
> >
> > Thanks!
> >
> > -Dave
> >
> >
> >
> >
> > ----- Original Message ----- 
> > From: "??????????? ????? ???????????" <kondratenko@tecon.ru>
> > To: "Dave" <dave@cc0.net>
> > Cc: <ecos-discuss@sources.redhat.com>
> > Sent: Thursday, September 15, 2005 12:43 AM
> > Subject: RE: [ECOS] FW: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS
> >
> >
> > For all. (since RAM is needed for any configuration)
> >
> > > -----Original Message-----
> > > From: Dave [mailto:dave@cc0.net]
> > > Sent: Wednesday, September 14, 2005 7:24 PM
> > > To: ??????????? ????? ???????????; ecos-discuss@sources.redhat.com
> > > Subject: Re: [ECOS] FW: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS
> > >
> > >
> > >
> > > Isn't that for a RAM or ROMRAM RedBoot and not a ROM RedBoot?
> > >
> > >
> > >
> > > Thanks!
> > >
> > >
> > > -Dave
> > >
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: ??????????? ????? ???????????
> > > Sent: Wednesday, September 14, 2005 4:46 PM
> > > To: 'Dave'
> > > Subject: RE: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS
> > >
> > > packages\hal\arm\xscale\ixdp425\current\include\pkgconf\mlt_ar
> > > m_xscale_ixdp425_ram.h
> > >
> > > #define CYGMEM_REGION_ram (0)
> > > #define CYGMEM_REGION_ram_SIZE (0x10000000)
> > >
> > > > -----Original Message-----
> > > > From: ecos-discuss-owner@ecos.sourceware.org
> > > > [mailto:ecos-discuss-owner@ecos.sourceware.org] On
> Behalf Of Dave
> > > > Sent: Wednesday, September 14, 2005 9:20 AM
> > > > To: ecos-discuss@sources.redhat.com
> > > > Subject: [ECOS] IXDP425 SDRAM CONFIG & Linux ATAGS
> > > >
> > > > Hello all,
> > > >
> > > > I am working on a custom IXP425 board which is wired
> > identical to an
> > > > IXDP425 except using different flash and SDRAM sizes/configs.
> > > >
> > > > I am running into an interesting problem regarding
> passing of ATAG
> > > > values from RedBoot to a Linux kernel (2.4.27) and was
> > > hoping someone
> > > > might have some insight and pointers on where to look. I
> > > have reviewed
> > > > the several similar messages on the ecos-discuss mailing list
> > > > regarding SDRAM config on IXP boards but nothing that
> > > helped with my
> > > > issue. I have also been googling a bit to no avail.
> > > >
> > > > One of our boards is a 64MB SDRAM board and when using
> > RedBoot 2.01
> > > > and setting SDRAM size appropriately and
> > SDRAM_CONFIG_2x16Mx16, etc
> > > > all seems well. ATAGs are passed correctly from RB to the
> > > kernel, in
> > > > particular ATAG_CMDLINE gets passed correctly via exec -c
> > > ""...and the
> > > > kernel picks it up just fine.
> > > >
> > > > A new board is a 32MB SDRAM board and using same RB 2.01 except
> > > > changing SDRAM size and SDRAM_CONFIG_2x8Mx16, etc to
> > > reflect the 32MB
> > > > layout. This board boots fine and most all seems ok however
> > > ATAGs are
> > > > not being passed down to the kernel. Specifically
> > > ATAG_CMDLINE is not
> > > > being recognized and I would presume the others are not as well.
> > > >
> > > > I suspect I am missing something that needs to be modified
> > > in RB with
> > > > regard to the SDRAM changes between boards however I
> cannot locate
> > > > anything that I may be missing. I have read that
> > > hal_platform_extras.
> > > > needs to be fixed up for SDRAM changes however it has
> > > apparently been
> > > > replaced with hal_platform_setup.h and it seems it uses
> all macros
> > > > from ixdp425.h thus leading me to believe no change is needed.
> > > >
> > > > Anyone have any ideas on what I may be missing?
> > > >
> > > >
> > > > Thanks!
> > > >
> > > > -Dave
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Before posting, please read the FAQ:
> > > > http://ecos.sourceware.org/fom/ecos
> > > > and search the list archive:
> > > > http://ecos.sourceware.org/ml/ecos-discuss
> > > >
> > > >
> > >
> > > --
> > > Before posting, please read the FAQ:
> > > http://ecos.sourceware.org/fom/ecos
> > > and search the list archive:
> > > http://ecos.sourceware.org/ml/ecos-discuss
> > >
> > >
> > >
> >
> > -- 
> > Before posting, please read the FAQ:
> > http://ecos.sourceware.org/fom/ecos
> > and search the list archive:
> > http://ecos.sourceware.org/ml/ecos-discuss
> >
> >
> >
>
> -- 
> Before posting, please read the FAQ:
> http://ecos.sourceware.org/fom/ecos
> and search the list archive:
> http://ecos.sourceware.org/ml/ecos-discuss
>
>
>


-- 
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