This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

有关c6455 srio设置SERDES_CFGRXn_CNTL寄存器的问题,



我想把c6455 srio配置为1P4X的模式,是不是这种模式下只使用一个port,那么我在设置寄存器SERDES_CFGRXn_CNTL和SERDES_CFGTXn_CNTL的时候,只使能port0,其余的应该禁止,是这样吗?不过我看别人的例程时候好像四个port口都使能了。

我想应该这么来设置

SRIO_REGS->SERDES_CFGRX_CNTL[0] = 0x00081121; // enable rx, half rate
SRIO_REGS->SERDES_CFGRX_CNTL[1] = 0x00081120; // 禁止port1
SRIO_REGS->SERDES_CFGRX_CNTL[2] = 0x00081120; // 禁止port2
SRIO_REGS->SERDES_CFGRX_CNTL[3] = 0x00081120; // 禁止port3
SRIO_REGS->SERDES_CFGTX_CNTL[0] = 0x00010821; // enable tx, half rate
SRIO_REGS->SERDES_CFGTX_CNTL[1] = 0x00010820; // 禁止port1
SRIO_REGS->SERDES_CFGTX_CNTL[2] = 0x00010820; // 禁止port2
SRIO_REGS->SERDES_CFGTX_CNTL[3] = 0x00010820; // 禁止port3

但是例程中是这么来设置的:

SRIO_REGS->SERDES_CFGRX_CNTL[0] = 0x00081121; // enable rx, half rate
SRIO_REGS->SERDES_CFGRX_CNTL[1] = 0x00081121; // enable rx, half rate
SRIO_REGS->SERDES_CFGRX_CNTL[2] = 0x00081121; // enable rx, half rate
SRIO_REGS->SERDES_CFGRX_CNTL[3] = 0x00081121; // enable rx, half rate
SRIO_REGS->SERDES_CFGTX_CNTL[0] = 0x00010821; // enable tx, half rate
SRIO_REGS->SERDES_CFGTX_CNTL[1] = 0x00010821; // enable tx, half rate
SRIO_REGS->SERDES_CFGTX_CNTL[2] = 0x00010821; // enable tx, half rate
SRIO_REGS->SERDES_CFGTX_CNTL[3] = 0x00010821; // enable tx, half rate

请问为什么这么设置啊?

另外SP_CTL也应该这么设置吗?

SRIO_REGS->PORT[0].SP_CTL = 0x00600000; // enable i/o
SRIO_REGS->PORT[1].SP_CTL = 0x00000000; // 禁止 i/o
SRIO_REGS->PORT[2].SP_CTL = 0x00000000; // 禁止 i/o
SRIO_REGS->PORT[3].SP_CTL = 0x00000000; //禁止 i/o

以上的寄存器都是用来配置port口的,另外那些寄存器用来配置1x或4x模式?