@ -143,6 +143,7 @@ do { \
/* Descriptor Manager Top Registers */
# define MVPP2_RXQ_NUM_REG 0x2040
# define MVPP2_RXQ_DESC_ADDR_REG 0x2044
# define MVPP22_DESC_ADDR_OFFS 8
# define MVPP2_RXQ_DESC_SIZE_REG 0x2048
# define MVPP2_RXQ_DESC_SIZE_MASK 0x3ff0
# define MVPP2_RXQ_STATUS_UPDATE_REG(rxq) (0x3000 + 4 * (rxq))
@ -184,6 +185,7 @@ do { \
# define MVPP2_TXQ_RSVD_CLR_REG 0x20b8
# define MVPP2_TXQ_RSVD_CLR_OFFSET 16
# define MVPP2_AGGR_TXQ_DESC_ADDR_REG(cpu) (0x2100 + 4 * (cpu))
# define MVPP22_AGGR_TXQ_DESC_ADDR_OFFS 8
# define MVPP2_AGGR_TXQ_DESC_SIZE_REG(cpu) (0x2140 + 4 * (cpu))
# define MVPP2_AGGR_TXQ_DESC_SIZE_MASK 0x3ff0
# define MVPP2_AGGR_TXQ_STATUS_REG(cpu) (0x2180 + 4 * (cpu))
@ -3107,6 +3109,8 @@ static int mvpp2_aggr_txq_init(struct udevice *dev,
int desc_num , int cpu ,
struct mvpp2 * priv )
{
u32 txq_dma ;
/* Allocate memory for TX descriptors */
aggr_txq - > descs = buffer_loc . aggr_tx_descs ;
aggr_txq - > descs_dma = ( dma_addr_t ) buffer_loc . aggr_tx_descs ;
@ -3123,10 +3127,16 @@ static int mvpp2_aggr_txq_init(struct udevice *dev,
aggr_txq - > next_desc_to_proc = mvpp2_read ( priv ,
MVPP2_AGGR_TXQ_INDEX_REG ( cpu ) ) ;
/* Set Tx descriptors queue starting address */
/* indirect access */
mvpp2_write ( priv , MVPP2_AGGR_TXQ_DESC_ADDR_REG ( cpu ) ,
aggr_txq - > descs_dma ) ;
/* Set Tx descriptors queue starting address indirect
* access
*/
if ( priv - > hw_version = = MVPP21 )
txq_dma = aggr_txq - > descs_dma ;
else
txq_dma = aggr_txq - > descs_dma > >
MVPP22_AGGR_TXQ_DESC_ADDR_OFFS ;
mvpp2_write ( priv , MVPP2_AGGR_TXQ_DESC_ADDR_REG ( cpu ) , txq_dma ) ;
mvpp2_write ( priv , MVPP2_AGGR_TXQ_DESC_SIZE_REG ( cpu ) , desc_num ) ;
return 0 ;
@ -3137,6 +3147,8 @@ static int mvpp2_rxq_init(struct mvpp2_port *port,
struct mvpp2_rx_queue * rxq )
{
u32 rxq_dma ;
rxq - > size = port - > rx_ring_size ;
/* Allocate memory for RX descriptors */
@ -3155,7 +3167,11 @@ static int mvpp2_rxq_init(struct mvpp2_port *port,
/* Set Rx descriptors queue starting address - indirect access */
mvpp2_write ( port - > priv , MVPP2_RXQ_NUM_REG , rxq - > id ) ;
mvpp2_write ( port - > priv , MVPP2_RXQ_DESC_ADDR_REG , rxq - > descs_dma ) ;
if ( port - > priv - > hw_version = = MVPP21 )
rxq_dma = rxq - > descs_dma ;
else
rxq_dma = rxq - > descs_dma > > MVPP22_DESC_ADDR_OFFS ;
mvpp2_write ( port - > priv , MVPP2_RXQ_DESC_ADDR_REG , rxq_dma ) ;
mvpp2_write ( port - > priv , MVPP2_RXQ_DESC_SIZE_REG , rxq - > size ) ;
mvpp2_write ( port - > priv , MVPP2_RXQ_INDEX_REG , 0 ) ;