summaryrefslogtreecommitdiff
path: root/cleopatre/linux-2.6.25.10-spc300/drivers/net/arm/synop3504_hw.c
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/linux-2.6.25.10-spc300/drivers/net/arm/synop3504_hw.c')
-rw-r--r--cleopatre/linux-2.6.25.10-spc300/drivers/net/arm/synop3504_hw.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/cleopatre/linux-2.6.25.10-spc300/drivers/net/arm/synop3504_hw.c b/cleopatre/linux-2.6.25.10-spc300/drivers/net/arm/synop3504_hw.c
index ac165a5291..1d52afcaa5 100644
--- a/cleopatre/linux-2.6.25.10-spc300/drivers/net/arm/synop3504_hw.c
+++ b/cleopatre/linux-2.6.25.10-spc300/drivers/net/arm/synop3504_hw.c
@@ -183,8 +183,10 @@ void SynopsysAttach(Synopsys *synop, uint32_t macbase, uint32_t dmabase, uint32_
*/
void SynopsysInit(Synopsys *synop, uint32_t txaddr, uint32_t rxaddr)
{
- SynopsysWriteDmaReg(synop, DmaBusMode, DmaResetOff);
- SynopsysWriteDmaReg(synop, DmaControl, DmaStoreAndForwardTx | DmaStoreAndForwardRx);
+ SynopsysWriteDmaReg(synop, DmaBusMode, DmaSeparatePBLEnable | DmaRxBurstLength32 |
+ DmaFixedBurstEnable | DmaBurstLength32 | DmaResetOff);
+ SynopsysWriteDmaReg(synop, DmaControl, DmaStoreAndForwardTx | DmaRxThreshCtrl32 |
+ DmaEnHwFlowCtrl | DmaRxFlowCtrlAct3K | DmaRxFlowCtrlDeact1K);
SynopsysWriteDmaReg(synop, DmaInterrupt, 0); //All DMA Interrupts disabled
SynopsysWriteDmaReg(synop, DmaTxBaseAddr, txaddr);
SynopsysWriteDmaReg(synop, DmaRxBaseAddr, rxaddr);
@@ -213,6 +215,8 @@ void SynopsysInit(Synopsys *synop, uint32_t txaddr, uint32_t rxaddr)
GmacSelectMii|GmacLoopbackOff|GmacFESpeed10|GmacFullDuplex|
GmacTxEnable|GmacRxEnable);
}
+ SynopsysWriteMacReg(synop, GmacFlowControl, GmacFlowCtrlTxEn | GmacFlowCtrlRxEn | GmacFlowCtrlThresh144 | GmacFlowCtrlUnicast |
+ ((0x1000 << GmacFlowCtrlTimePauseShift) & GmacFlowCtrlTimePauseMask));
TRACE(" GmacIntMask=%x\n",SynopsysReadMacReg(synop, GmacIntMask));
TRACE(" MmcIntMaskTx=%x\n",SynopsysReadMacReg(synop, MmcIntrMaskTx));
TRACE(" MmcIntMaskRx=%x\n",SynopsysReadMacReg(synop, MmcIntrMaskRx));