fix extended dma.

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@29 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
nakasima 2007-04-18 08:58:46 +00:00
parent fd94dc485b
commit 8868ca7e6b
4 changed files with 216 additions and 135 deletions

View File

@ -20,7 +20,7 @@ static BOOL isArbitrated = FALSE;
static u32 intervalTable[] = static u32 intervalTable[] =
{ {
200, 100, 50, 4, 8, 8, 8, 8,
}; };
//================================================================================ //================================================================================
@ -60,10 +60,13 @@ void MIi_SetExDmaArbiter( MIEDmaArbitration arb, MIEDmaYieldCycles yld )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFill( MIExDmaNo dmaNo, void *dest, u32 data, u32 size ) void MIi_ExDmaFill( u32 dmaNo, void *dest, u32 data, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaFillCore( dmaNo, dest, data, size, size, MIi_ExDmaFillCore( dmaNo, dest, data, size, size,
@ -71,6 +74,7 @@ void MIi_ExDmaFill( MIExDmaNo dmaNo, void *dest, u32 data, u32 size )
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM ); MI_EDMA_TIMING_IMM );
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaCopy Name: MIi_ExDmaCopy
@ -85,10 +89,13 @@ void MIi_ExDmaFill( MIExDmaNo dmaNo, void *dest, u32 data, u32 size )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopy( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ) void MIi_ExDmaCopy( u32 dmaNo, const void *src, void *dest, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaCopyCore( dmaNo, src, dest, size, size, MIi_ExDmaCopyCore( dmaNo, src, dest, size, size,
@ -96,6 +103,7 @@ void MIi_ExDmaCopy( MIExDmaNo dmaNo, const void *src, void *dest, u32 size )
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM ); MI_EDMA_TIMING_IMM );
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaSend Name: MIi_ExDmaSend
@ -110,10 +118,13 @@ void MIi_ExDmaCopy( MIExDmaNo dmaNo, const void *src, void *dest, u32 size )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSend( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ) void MIi_ExDmaSend( u32 dmaNo, const void *src, void *dest, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaSendCore( dmaNo, src, dest, size, size, MIi_ExDmaSendCore( dmaNo, src, dest, size, size,
@ -121,6 +132,7 @@ void MIi_ExDmaSend( MIExDmaNo dmaNo, const void *src, void *dest, u32 size )
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM ); MI_EDMA_TIMING_IMM );
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaRecv Name: MIi_ExDmaRecv
@ -135,10 +147,13 @@ void MIi_ExDmaSend( MIExDmaNo dmaNo, const void *src, void *dest, u32 size )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecv( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ) void MIi_ExDmaRecv( u32 dmaNo, const void *src, void *dest, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaRecvCore( dmaNo, src, dest, size, size, MIi_ExDmaRecvCore( dmaNo, src, dest, size, size,
@ -146,6 +161,7 @@ void MIi_ExDmaRecv( MIExDmaNo dmaNo, const void *src, void *dest, u32 size )
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM ); MI_EDMA_TIMING_IMM );
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaFillAsync Name: MIi_ExDmaFillAsync
@ -160,10 +176,13 @@ void MIi_ExDmaRecv( MIExDmaNo dmaNo, const void *src, void *dest, u32 size )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFillAsync( MIExDmaNo dmaNo, void *dest, u32 data, u32 size ) void MIi_ExDmaFillAsync( u32 dmaNo, void *dest, u32 data, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaFillAsyncCore( dmaNo, dest, data, size, size, MIi_ExDmaFillAsyncCore( dmaNo, dest, data, size, size,
@ -171,6 +190,7 @@ void MIi_ExDmaFillAsync( MIExDmaNo dmaNo, void *dest, u32 data, u32 size )
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM ); MI_EDMA_TIMING_IMM );
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaCopyAsync Name: MIi_ExDmaCopyAsync
@ -185,10 +205,13 @@ void MIi_ExDmaFillAsync( MIExDmaNo dmaNo, void *dest, u32 data, u32 size )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopyAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ) void MIi_ExDmaCopyAsync( u32 dmaNo, const void *src, void *dest, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaCopyAsyncCore( dmaNo, src, dest, size, size, MIi_ExDmaCopyAsyncCore( dmaNo, src, dest, size, size,
@ -196,6 +219,7 @@ void MIi_ExDmaCopyAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM); MI_EDMA_TIMING_IMM);
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaSendAsync Name: MIi_ExDmaSendAsync
@ -210,10 +234,13 @@ void MIi_ExDmaCopyAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSendAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ) void MIi_ExDmaSendAsync( u32 dmaNo, const void *src, void *dest, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaSendAsyncCore( dmaNo, src, dest, size, size, MIi_ExDmaSendAsyncCore( dmaNo, src, dest, size, size,
@ -221,6 +248,7 @@ void MIi_ExDmaSendAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM ); MI_EDMA_TIMING_IMM );
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaRecvAsync Name: MIi_ExDmaRecvAsync
@ -235,10 +263,13 @@ void MIi_ExDmaSendAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecvAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ) void MIi_ExDmaRecvAsync( u32 dmaNo, const void *src, void *dest, u32 size )
{
u32 idx = dmaNo - MI_EDMA_CH_MIN;
{ {
MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B; MIEDmaBlockSize blockSize = MI_EDMA_BLOCK_32B;
u32 interval = intervalTable[dmaNo]; u32 interval = intervalTable[idx];
MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1; MIEDmaPrescaler prescale = MI_EDMA_PRESCALER_1;
MIi_ExDmaRecvAsyncCore( dmaNo, src, dest, size, size, MIi_ExDmaRecvAsyncCore( dmaNo, src, dest, size, size,
@ -246,6 +277,7 @@ void MIi_ExDmaRecvAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF, MI_EDMA_CONTINUOUS_OFF, MI_EDMA_SRC_RLD_OFF, MI_EDMA_DEST_RLD_OFF,
MI_EDMA_TIMING_IMM ); MI_EDMA_TIMING_IMM );
} }
}
//----------------- internel functions ------------------- //----------------- internel functions -------------------
@ -263,7 +295,7 @@ void MIi_ExDmaRecvAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFillCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize, void MIi_ExDmaFillCore( u32 dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
@ -290,7 +322,7 @@ void MIi_ExDmaFillCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 one
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopyCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaCopyCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
@ -317,7 +349,7 @@ void MIi_ExDmaCopyCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size,
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSendCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaSendCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
@ -344,7 +376,7 @@ void MIi_ExDmaSendCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size,
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecvCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaRecvCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
@ -371,7 +403,7 @@ void MIi_ExDmaRecvCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size,
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFillAsyncCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize, void MIi_ExDmaFillAsyncCore( u32 dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
@ -381,11 +413,6 @@ void MIi_ExDmaFillAsyncCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u3
MIi_WaitExDma( dmaNo ); MIi_WaitExDma( dmaNo );
if (!isArbitrated )
{
MIi_SetExDmaArbiter( MI_EDMAGBL_ARB_ROUND_ROBIN, MI_EDMAGBL_YLD_CYCLE_16 );
}
MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize, MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize,
blockSize, interval, prescale, blockSize, interval, prescale,
continuous, srcRld, destRld, continuous, srcRld, destRld,
@ -407,18 +434,13 @@ void MIi_ExDmaFillAsyncCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u3
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopyAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaCopyAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
{ {
MIi_WaitExDma( dmaNo ); MIi_WaitExDma( dmaNo );
if (!isArbitrated )
{
MIi_SetExDmaArbiter( MI_EDMAGBL_ARB_ROUND_ROBIN, MI_EDMAGBL_YLD_CYCLE_16 );
}
MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize, MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize,
blockSize, interval, prescale, blockSize, interval, prescale,
continuous, srcRld, destRld, continuous, srcRld, destRld,
@ -440,18 +462,13 @@ void MIi_ExDmaCopyAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 s
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSendAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaSendAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
{ {
MIi_WaitExDma( dmaNo ); MIi_WaitExDma( dmaNo );
if (!isArbitrated )
{
MIi_SetExDmaArbiter( MI_EDMAGBL_ARB_ROUND_ROBIN, MI_EDMAGBL_YLD_CYCLE_16 );
}
MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize, MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize,
blockSize, interval, prescale, blockSize, interval, prescale,
continuous, srcRld, destRld, continuous, srcRld, destRld,
@ -473,18 +490,13 @@ void MIi_ExDmaSendAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 s
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecvAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaRecvAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
{ {
MIi_WaitExDma( dmaNo ); MIi_WaitExDma( dmaNo );
if (!isArbitrated )
{
MIi_SetExDmaArbiter( MI_EDMAGBL_ARB_ROUND_ROBIN, MI_EDMAGBL_YLD_CYCLE_16 );
}
MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize, MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize,
blockSize, interval, prescale, blockSize, interval, prescale,
continuous, srcRld, destRld, continuous, srcRld, destRld,
@ -506,18 +518,13 @@ void MIi_ExDmaRecvAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 s
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaBypassAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaBypassAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ) MIEDmaTiming timing )
{ {
MIi_WaitExDma( dmaNo ); MIi_WaitExDma( dmaNo );
if (!isArbitrated )
{
MIi_SetExDmaArbiter( MI_EDMAGBL_ARB_ROUND_ROBIN, MI_EDMAGBL_YLD_CYCLE_16 );
}
MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize, MIi_SetExDmaParams( dmaNo, src, dest, size, oneShotSize,
blockSize, interval, prescale, blockSize, interval, prescale,
continuous, srcRld, destRld, continuous, srcRld, destRld,
@ -539,16 +546,19 @@ void MIi_ExDmaBypassAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_SetExDmaParams( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_SetExDmaParams( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing, MIEDmaTiming timing,
u32 fillData, u32 srcDir, u32 destDir ) u32 fillData, u32 srcDir, u32 destDir )
{ {
u32 idx = dmaNo - MI_EDMA_CH_MIN;
if ( idx < MI_EDMA_CH_NUM )
{ {
OSIntrMode enabled = OS_DisableInterrupts(); OSIntrMode enabled = OS_DisableInterrupts();
MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[dmaNo]; MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[idx];
reg->src = src; reg->src = src;
reg->dest = dest; reg->dest = dest;
@ -579,12 +589,16 @@ void MIi_SetExDmaParams( MIExDmaNo dmaNo, const void *src, void *dest, u32 size,
Returns: TRUE if extended DMA is busy, FALSE if not Returns: TRUE if extended DMA is busy, FALSE if not
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
BOOL MIi_IsExDmaBusy( MIExDmaNo dmaNo ) BOOL MIi_IsExDmaBusy( u32 dmaNo )
{ {
MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[dmaNo]; u32 idx = dmaNo - MI_EDMA_CH_MIN;
{
MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[idx];
return (BOOL)((reg->ctrl & REG_MI_DMA4CNT_E_MASK) >> REG_MI_DMA4CNT_E_SHIFT); return (BOOL)((reg->ctrl & REG_MI_DMA4CNT_E_MASK) >> REG_MI_DMA4CNT_E_SHIFT);
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_WaitExDma Name: MIi_WaitExDma
@ -595,14 +609,18 @@ BOOL MIi_IsExDmaBusy( MIExDmaNo dmaNo )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_WaitExDma( MIExDmaNo dmaNo ) void MIi_WaitExDma( u32 dmaNo )
{ {
MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[dmaNo]; u32 idx = dmaNo - MI_EDMA_CH_MIN;
{
MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[idx];
while (reg->ctrl & REG_MI_DMA4CNT_E_MASK) while (reg->ctrl & REG_MI_DMA4CNT_E_MASK)
{ {
} }
} }
}
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_StopDma Name: MIi_StopDma
@ -613,12 +631,18 @@ void MIi_WaitExDma( MIExDmaNo dmaNo )
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_StopExDma( MIExDmaNo dmaNo ) void MIi_StopExDma( u32 dmaNo )
{ {
OSIntrMode enabled = OS_DisableInterrupts(); OSIntrMode enabled = OS_DisableInterrupts();
MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[dmaNo];
u32 idx = dmaNo - MI_EDMA_CH_MIN;
if ( idx < MI_EDMA_CH_NUM )
{
MIEDmaChanRegs *reg = &((MIEDmaChanRegs*)REG_DMA4SAD_ADDR)[idx];
reg->ctrl &= ~MI_EDMA_ENABLE; reg->ctrl &= ~MI_EDMA_ENABLE;
}
(void)OS_RestoreInterrupts(enabled); (void)OS_RestoreInterrupts(enabled);
} }

View File

@ -0,0 +1,51 @@
/*---------------------------------------------------------------------------*
Project: NitroSDK - MI
File: mi_init.c
Copyright 2005 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Log: mi_init.c,v $
Revision 1.3 2005/02/28 05:26:25 yosizaki
do-indent.
Revision 1.2 2005/02/10 07:44:48 yada
fix include
Revision 1.1 2005/02/09 05:10:02 yada
initial release
$NoKeywords: $
*---------------------------------------------------------------------------*/
#include <twl.h>
/*---------------------------------------------------------------------------*
Name: MI_Init
Description: initialize MI functions
Arguments: None
Returns: None
*---------------------------------------------------------------------------*/
void MI_Init(void)
{
#ifdef SDK_ARM9
//---- Init Work RAM (allocate both wram (block0/1) to ARM7)
MI_SetWramBank(MI_WRAM_ARM7_ALL);
#endif
//---- dummy DMA
MI_StopDma(0);
//---- add for TWL
//---- DMA arbitration
MIi_SetExDmaArbiter( MI_EDMAGBL_ARB_ROUND_ROBIN, MI_EDMAGBL_YLD_CYCLE_16 );
}

View File

@ -25,19 +25,6 @@ extern "C" {
#endif #endif
//---------------------------------------------------------------------- //----------------------------------------------------------------------
//---- DMA channel
typedef enum
{
MI_EDMA_NONE = -1,
MI_EDMA_0 = 0,
MI_EDMA_1 = 1,
MI_EDMA_2 = 2,
MI_EDMA_3 = 3,
MI_EDMA_NO_MIN = MI_EDMA_0,
MI_EDMA_NO_MAX = MI_EDMA_3
}
MIExDmaNo;
//---- timing //---- timing
typedef enum typedef enum
{ {
@ -136,8 +123,11 @@ typedef volatile t_MIEDmaChanRegs MIEDmaChanRegs;
//================================================================================ //================================================================================
// DMA control definition // DMA control definition
//================================================================================ //================================================================================
//---- maximum DMA channel No. //---- DMA channel No.
#define MI_EDMA_MAX_NUM 3 #define MI_EDMA_CH_MIN 4
#define MI_EDMA_CH_MAX 7
#define MI_EDMA_CH_NUM 4
//---- enable //---- enable
#define MI_EDMA_ENABLE (1UL << REG_MI_DMA4CNT_E_SHIFT) // DMA enable #define MI_EDMA_ENABLE (1UL << REG_MI_DMA4CNT_E_SHIFT) // DMA enable
@ -202,7 +192,7 @@ typedef volatile t_MIEDmaChanRegs MIEDmaChanRegs;
Returns: TRUE if extended DMA is busy, FALSE if not Returns: TRUE if extended DMA is busy, FALSE if not
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
BOOL MIi_IsExDmaBusy( MIExDmaNo dmaNo ); BOOL MIi_IsExDmaBusy( u32 dmaNo );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_WaitExDma Name: MIi_WaitExDma
@ -213,7 +203,7 @@ BOOL MIi_IsExDmaBusy( MIExDmaNo dmaNo );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_WaitExDma( MIExDmaNo dmaNo ); void MIi_WaitExDma( u32 dmaNo );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_StopExDma Name: MIi_StopExDma
@ -224,7 +214,7 @@ void MIi_WaitExDma( MIExDmaNo dmaNo );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_StopExDma( MIExDmaNo dmaNo ); void MIi_StopExDma( u32 dmaNo );
//================================================================================ //================================================================================
// memory operation using DMA // memory operation using DMA
@ -242,7 +232,7 @@ void MIi_StopExDma( MIExDmaNo dmaNo );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFill( MIExDmaNo dmaNo, void *dest, u32 data, u32 size ); void MIi_ExDmaFill( u32 dmaNo, void *dest, u32 data, u32 size );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaCopy Name: MIi_ExDmaCopy
@ -257,7 +247,7 @@ void MIi_ExDmaFill( MIExDmaNo dmaNo, void *dest, u32 data, u32 size );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopy( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); void MIi_ExDmaCopy( u32 dmaNo, const void *src, void *dest, u32 size );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaSend Name: MIi_ExDmaSend
@ -272,7 +262,7 @@ void MIi_ExDmaCopy( MIExDmaNo dmaNo, const void *src, void *dest, u32 size );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSend( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); void MIi_ExDmaSend( u32 dmaNo, const void *src, void *dest, u32 size );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaRecv Name: MIi_ExDmaRecv
@ -287,7 +277,7 @@ void MIi_ExDmaSend( MIExDmaNo dmaNo, const void *src, void *dest, u32 size );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecv( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); void MIi_ExDmaRecv( u32 dmaNo, const void *src, void *dest, u32 size );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaFillAsync Name: MIi_ExDmaFillAsync
@ -302,7 +292,7 @@ void MIi_ExDmaRecv( MIExDmaNo dmaNo, const void *src, void *dest, u32 size );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFillAsync( MIExDmaNo dmaNo, void *dest, u32 data, u32 size ); void MIi_ExDmaFillAsync( u32 dmaNo, void *dest, u32 data, u32 size );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaCopyAsync Name: MIi_ExDmaCopyAsync
@ -317,7 +307,7 @@ void MIi_ExDmaFillAsync( MIExDmaNo dmaNo, void *dest, u32 data, u32 size );
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopyAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); void MIi_ExDmaCopyAsync( u32 dmaNo, const void *src, void *dest, u32 size );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaSendAsync Name: MIi_ExDmaSendAsync
@ -332,7 +322,7 @@ void MIi_ExDmaCopyAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSendAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); void MIi_ExDmaSendAsync( u32 dmaNo, const void *src, void *dest, u32 size );
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MIi_ExDmaRecvAsync Name: MIi_ExDmaRecvAsync
@ -347,7 +337,7 @@ void MIi_ExDmaSendAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecvAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); void MIi_ExDmaRecvAsync( u32 dmaNo, const void *src, void *dest, u32 size );
//----------------- internel functions ------------------- //----------------- internel functions -------------------
@ -365,7 +355,7 @@ void MIi_ExDmaRecvAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFillCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize, void MIi_ExDmaFillCore( u32 dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -384,7 +374,7 @@ void MIi_ExDmaFillCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 one
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopyCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaCopyCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -403,7 +393,7 @@ void MIi_ExDmaCopyCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size,
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSendCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaSendCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -422,7 +412,7 @@ void MIi_ExDmaSendCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size,
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecvCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaRecvCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -441,7 +431,7 @@ void MIi_ExDmaRecvCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size,
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaFillAsyncCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize, void MIi_ExDmaFillAsyncCore( u32 dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -460,7 +450,7 @@ void MIi_ExDmaFillAsyncCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u3
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaCopyAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaCopyAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -479,7 +469,7 @@ void MIi_ExDmaCopyAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 s
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaSendAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaSendAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -498,7 +488,7 @@ void MIi_ExDmaSendAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 s
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaRecvAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaRecvAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -517,7 +507,7 @@ void MIi_ExDmaRecvAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 s
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_ExDmaBypassAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_ExDmaBypassAsyncCore( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing ); MIEDmaTiming timing );
@ -536,7 +526,7 @@ void MIi_ExDmaBypassAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32
Returns: None Returns: None
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
void MIi_SetExDmaParams( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, void MIi_SetExDmaParams( u32 dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize,
MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale,
u32 continuous, u32 srcRld, u32 destRld, u32 continuous, u32 srcRld, u32 destRld,
MIEDmaTiming timing, MIEDmaTiming timing,

View File

@ -1,3 +1,17 @@
[Breakpoints\1]
Processor=ARM946E_S_0
dwTarget Count=1
dwAction=0
dwState=0
Parent Image=C:\twl\bootrom\build\bootrom\ts\ARM9\bin\ARM9-BB.thumb\Release\brom9_ts.axf
dwSet By Source Pos=0
Image=C:\twl\bootrom\build\bootrom\ts\ARM9\bin\ARM9-BB.thumb\Release\brom9_ts.axf
File=C:\twl\bootrom\build\bootrom\ts\ARM9\bin\ARM9-BB.thumb\Release\main.c
dwLine=20
dwColumn=1
dwAddressLo=-59312
dwAddressHi=0
dwBreakpoint Size=0
[CLI] [CLI]
dwParse=1 dwParse=1
dwEcho=1 dwEcho=1
@ -24,7 +38,7 @@ biBarID_0=AMAAAAAABJAAAAAAAMAAAAAAIEAAAAAAAMAAAAAAHLBAAAAAOPPPPPPPMEAAAAAAAAAAAA
biBarID_4=AMAAAAAABJAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOPPPPPPPJACAAAAAAAAAAAAAAAPIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA biBarID_4=AMAAAAAABJAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOPPPPPPPJACAAAAAAAAAAAAAAAPIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biBarID_65539=LCCAAAAAKJBAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOHCAAAAAPFCAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA biBarID_65539=LCCAAAAAKJBAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOHCAAAAAPFCAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biBarID_1114115=AMAAAAAABJAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOPPPPPPPJACAAAAAAAAAAAAAAAPIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA biBarID_1114115=AMAAAAAABJAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOPPPPPPPJACAAAAAAAAAAAAAAAPIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biBarID_65538=BEBAAAAAIGBAAAAAAMAAAAAAIEAAAAAAAMAAAAAAICAAAAAAJDAAAAAAGKBAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA biBarID_65538=BEBAAAAAIGBAAAAAAMAAAAAAIEAAAAAAAMAAAAAAICAAAAAABCAAAAAACPBAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biBarID_1=AMAAAAAABJAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOPPPPPPPCHBAAAAAAAAAAAAAAAPIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA biBarID_1=AMAAAAAABJAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAAOPPPPPPPCHBAAAAAAAAAAAAAAAPIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biBarID_65540=JCBAAAAAEKBAAAAAAMAAAAAAIEAAAAAAAMAAAAAAMGAAAAAALEDAAAAADHBAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA biBarID_65540=JCBAAAAAEKBAAAAAAMAAAAAAIEAAAAAAAMAAAAAAMGAAAAAALEDAAAAADHBAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
biBarID_7=MFBAAAAAIKAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAADFDAAAAAEGCAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA biBarID_7=MFBAAAAAIKAAAAAAILDAAAAABJAAAAAAMGAAAAAAAIAAAAAADFDAAAAAEGCAAAAACAAAAAAABAPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@ -38,7 +52,7 @@ biBarID_65538=BAAAAAAA
biBarID_65539=BAAAAAAA biBarID_65539=BAAAAAAA
biBarID_65540=BAAAAAAA biBarID_65540=BAAAAAAA
[Images\Image_0] [Images\Image_0]
Filename=C:\twl\twlsdk_bak\build\tests\os\alarm-1\bin\ARM9-TS\Release\alerm.axf Filename=C:\twl\bootrom\build\bootrom\ts\ARM9\bin\ARM9-BB.thumb\Release\brom9_ts.axf
Processor=ARM946E_S_0 Processor=ARM946E_S_0
dwProfileState=0 dwProfileState=0
[Interface\AutoRefresh] [Interface\AutoRefresh]
@ -68,6 +82,8 @@ dwReselect Target=1
dwReload Images=0 dwReload Images=0
dwRun Config Script=0 dwRun Config Script=0
Config Script Name=C:\Iris\geometry\geometry.ses Config Script Name=C:\Iris\geometry\geometry.ses
[Interface\SourcePaths]
Paths=C:\twl\bootrom\build\libraries\init\ARM9\
[Interface\Toolbars] [Interface\Toolbars]
dwTBFile=1 dwTBFile=1
dwTBSearch=1 dwTBSearch=1
@ -100,7 +116,7 @@ dwListSize=4
dwTargetAccessSize=0 dwTargetAccessSize=0
dwAutoRefresh=1 dwAutoRefresh=1
[Memory\Tab_1] [Memory\Tab_1]
dwStartAddress=41940992 dwStartAddress=50329600
Format=hex_noprefix_32 Format=hex_noprefix_32
dwFormatID=-1 dwFormatID=-1
dwListBigEndian=0 dwListBigEndian=0
@ -110,7 +126,7 @@ dwListSize=4
dwTargetAccessSize=0 dwTargetAccessSize=0
dwAutoRefresh=1 dwAutoRefresh=1
[Memory\Tab_2] [Memory\Tab_2]
dwStartAddress=41942016 dwStartAddress=50330624
Format=hex_noprefix_32 Format=hex_noprefix_32
dwFormatID=-1 dwFormatID=-1
dwListBigEndian=0 dwListBigEndian=0
@ -130,7 +146,7 @@ dwListSize=4
dwTargetAccessSize=0 dwTargetAccessSize=0
dwAutoRefresh=1 dwAutoRefresh=1
[Output] [Output]
dwActiveTab=0 dwActiveTab=1
[ProcessorRegisters\ARM946E_S_0] [ProcessorRegisters\ARM946E_S_0]
dwFormatID=-1 dwFormatID=-1
dwRefresh=0 dwRefresh=0
@ -140,10 +156,10 @@ dwRefresh=1
[RecentFileList] [RecentFileList]
dwFileCount=4 dwFileCount=4
[RecentImageList] [RecentImageList]
File_1=C:\twl\twlsdk_bak\build\tests\os\alarm-1\bin\ARM9-TS\Release\alerm.axf File_1=C:\twl\bootrom\build\bootrom\ts\ARM9\bin\ARM9-BB.thumb\Release\brom9_ts.axf
File_2=C:\Iris\IrisMon\IrisMon_Data\ThumbRelease\IrisMon.axf File_2=C:\twl\twlsdk_bak\build\tests\os\alarm-1\bin\ARM9-TS\Release\alerm.axf
File_3=C:\Iris\ipl2_test\ipl2_test_Data\ThumbDebugRel\ipl2_test.axf File_3=C:\Iris\IrisMon\IrisMon_Data\ThumbRelease\IrisMon.axf
File_4=C:\Iris\two_quads\two_quads_Data\ThumbDebugRel\two_quads.axf File_4=C:\Iris\ipl2_test\ipl2_test_Data\ThumbDebugRel\ipl2_test.axf
dwFileCount=4 dwFileCount=4
[RecentSymbolsList] [RecentSymbolsList]
File_1=C:\IrisSubp\IrisSubpMon\IrisSubpMon_Data\ThumbRelease\IrisSubpMon.axf File_1=C:\IrisSubp\IrisSubpMon\IrisSubpMon_Data\ThumbRelease\IrisSubpMon.axf
@ -199,8 +215,8 @@ dwBar#2=0
dwBarID=59423 dwBarID=59423
dwHorz=1 dwHorz=1
dwFloating=1 dwFloating=1
dwXPos=61 dwXPos=37
dwYPos=442 dwYPos=518
dwBars=3 dwBars=3
dwBar#0=0 dwBar#0=0
dwBar#1=2 dwBar#1=2
@ -244,9 +260,9 @@ dwRefresh=1
dwLastView=0 dwLastView=0
[Views\View_0] [Views\View_0]
UnitName=ARM946E_S_0 UnitName=ARM946E_S_0
ImageName=C:\twl\twlsdk_bak\build\tests\os\alarm-1\bin\ARM9-TS\Release\alerm.axf ImageName=C:\twl\bootrom\build\bootrom\ts\ARM9\bin\ARM9-BB.thumb\Release\brom9_ts.axf
dwDisassembly=0 dwDisassembly=0
FileName=C:\twl\twlsdk_bak\build\libraries\init\ARM9\crt0.c FileName=C:\twl\bootrom\build\libraries\init\ARM9\crt0.c
dwMixedView=0 dwMixedView=0
dwShowMargin=1 dwShowMargin=1
dwShowLineNumbers=1 dwShowLineNumbers=1