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: Dual Port RAM on MPC8xx


Thanks very much for that. Not sure how I missed it.

In the alloc function instead of

    if ((bd < QUICC_BD_BASE) || (bd > QUICC_BD_END)) {
        // Most likely not set up - make a guess :-(
        bd = *nextBd = QUICC_BD_BASE+0x400;
    }

Why not just check the reset has been called? Seems odd to need that guess?


Gary Thomas wrote:
On Wed, 2005-04-20 at 11:38 +0100, Will Wagner wrote:

I'm trying to understand how the allocation of DPRAM is done in the function _mpc8xx_allocBd in cpm.c.

Can someone explain why nextBD is initialised as:

static short *nextBd = (short *)(CYGHWR_HAL_VSR_TABLE + 0x1F0);

Presumably this is so that redboot and an application can cooperate when using the DPRAM? Why is this address chosen and when is it's contents ever initialised?

Presumably it may not have been initialised as in _mpc8xx_allocBd there is this code:

    if ((bd < QUICC_BD_BASE) || (bd > QUICC_BD_END)) {
        // Most likely not set up - make a guess :-(
        bd = *nextBd = QUICC_BD_BASE+0x400;
    }

I guess this is starting 0x400 into the DPRAM so that an apllication doesn't reuse any DPRAM used by redboot? Is this correct? I can find where redboot ever initialises this memory so I can't see how it works.

Any help in understanding this is much appreciated.


Look about 10 lines below the "static short" line you quoted :-)
This value gets set when the CPM has been reset.

The point is to keep track [minimally] of what DPRAM is in use
and, yes, one wants applications to know and respect the allocations
that RedBoot has already made.

The choice was just an unused place in memory.  This region of
memory already holds similar data that is shared between RedBoot
and applications.



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