PA
__raw_writel(MCFSLT_SSR_BE | MCFSLT_SSR_TE, PA(MCFSLT_SSR));
__raw_writel(MCF_BUSCLK / PROFILEHZ - 1, PA(MCFSLT_STCNT));
PA(MCFSLT_SCR));
__raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, PA(MCFTIMER_TER));
__raw_writew(MCFTIMER_TMR_DISABLE, PA(MCFTIMER_TMR));
__raw_writetrr(((MCF_BUSCLK / 16) / PROFILEHZ), PA(MCFTIMER_TRR));
MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR));
#define PA_A(x) PA((x) - 16) /* This is specific to PA only! */
#define PA_A16 PA(0) /* Use A16 as PA(0) */
#define PA_A17 PA(1) /* Use A17 as PA(1) */
#define PA_A18 PA(2) /* Use A18 as PA(2) */
#define PA_A19 PA(3) /* Use A19 as PA(3) */
#define PA_A20 PA(4) /* Use A20 as PA(4) */
#define PA_A21 PA(5) /* Use A21 as PA(5) */
#define PA_A22 PA(6) /* Use A22 as PA(6) */
#define PA_A23 PA(7) /* Use A23 as PA(7) */
PA header file -- do not include this header file for non-PA builds.
PA header file -- do not include this header file for non-PA builds.
PA header file -- do not include this header file for non-PA builds.
PA header file -- do not include this header file for non-PA builds.
PA header file -- do not include this header file for non-PA builds.
PA header file -- do not include this header file for non-PA builds.
PA pa;
XGMAC_SET_BITS(mdio_sca, MAC_MDIOSCAR, PA, port);
XGMAC_SET_BITS(mdio_sca, MAC_MDIOSCAR, PA, port);
smc->y[PA].scrub = 0 ;
smc->y[PA].cem_pst = CEM_PST_DOWN ;
#define THRU_ENABLED(smc) (smc->y[PA].pc_mode != PM_TREE && \
if (np != PA && np != PB) {
smc->y[PA].pc_mode == PM_PEER) ||
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_ISOLATED ;
smc->mib.p[PA].fddiPORTMACPlacement = 0 ;
if (smc->s.sas && (smc->y[PA].cf_join || smc->y[PA].cf_loop ||
if ((smc->y[PA].cem_pst == CEM_PST_UP && smc->y[PA].cf_join &&
!smc->y[PA].wc_flag) || smc->y[PA].cf_loop) {
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_CONCATENATED ;
smc->mib.p[PA].fddiPORTMACPlacement = INDEX_MAC ;
if (smc->y[PA].cf_loop) {
if (smc->y[PA].cf_join) {
if ( (smc->y[PA].wc_flag || !smc->y[PA].cf_join) &&
!smc->y[PA].cf_loop ) {
else if ( (smc->y[PB].cf_loop && smc->y[PA].cf_join &&
smc->y[PA].cem_pst == CEM_PST_UP) ||
(smc->y[PA].pc_mode == PM_TREE ||
smc->y[PA].scrub = TRUE ;
smc->y[PA].cf_join &&
smc->y[PA].cem_pst == CEM_PST_UP &&
smc->y[PA].pc_mode == PM_PEER && smc->y[PB].cf_join &&
smc->y[PA].scrub = TRUE ;
smc->y[PA].cf_join &&
smc->y[PA].cem_pst == CEM_PST_UP &&
smc->y[PA].pc_mode == PM_PEER &&
smc->y[PA].scrub = TRUE ;
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_ISOLATED ;
smc->mib.p[PA].fddiPORTMACPlacement = 0 ;
else if ( smc->y[PA].cf_loop && smc->y[PA].pc_mode == PM_PEER &&
smc->y[PA].cf_join && smc->y[PA].pc_mode == PM_PEER &&
smc->y[PA].scrub = TRUE ;
smc->y[PA].cf_join && smc->y[PA].pc_mode == PM_PEER &&
smc->y[PA].scrub = TRUE ;
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_THRU ;
smc->mib.p[PA].fddiPORTMACPlacement = 0 ;
smc->y[PA].scrub = TRUE ;
else if (!smc->y[PA].cf_join || smc->y[PA].wc_flag) {
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_THRU ;
smc->mib.p[PA].fddiPORTMACPlacement = INDEX_MAC ;
smc->y[PA].scrub = TRUE ;
else if (!smc->y[PA].cf_join || smc->y[PA].wc_flag) {
smc->y[PA].scrub = TRUE ;
if (smc->y[PA].cf_loop || smc->y[PB].cf_loop) {
if (smc->y[PA].cf_join || smc->y[PB].cf_join) {
if ( !smc->y[PA].cf_join && !smc->y[PA].cf_loop &&
smc->mib.fddiSMTCF_State == SC5_THRU_B) ? PB : PA;
smc->mib.fddiSMTCF_State == SC4_THRU_A) ? PB : PA;
0,0, 0,RES_PORT, 0,PA + INDEX_PORT, 0,PATH_ISO,
0,0, 0,RES_PORT, 0,PA + INDEX_PORT, 0,PATH_PRIM,
0,0, 0,RES_PORT, 0,PA + INDEX_PORT, 0,PATH_ISO
0,0, 0,RES_PORT, 0,PA + INDEX_PORT, 0,PATH_PRIM,
u_short st = inpw(PLC(PA,PL_INTR_EVENT)) ;
plc_irq(smc,PA,st) ;
smc->y[PA].pmd_type[PMD_SK_CONN] =
smc->y[PA].pmd_type[PMD_SK_PMD ] =
phy = &smc->y[PA] ;
ls_a = sm_pm_get_ls(smc,PA) ;
DB_ECM("ECM : initiate TRACE on PHY %c", 'A' + port_in - PA);
else if ((smc->e.trace_prop & ENTITY_BIT(ENTITY_PHY(PA))) &&
port_out != PA) {
#define PLC(np,reg) (((np) == PA) ? P2_A(reg) : P1_A(reg))
(p == PA) ? "A" : "B", iev) ;\
if ((np == PB) || ((np == PA) &&
if (smc->y[PA].twisted && (smc->y[PA].mib->fddiPORTPCMState == PC8_ACTIVE))
mib->fddiPORTMy_Type = (np == PA) ? TA :
smc->y[PA].mib->fddiPORTPCMState = PC0_OFF ;
SETMASK(PLC(PA,PL_CNTRL_B),PL_CONFIG_CNTRL,PL_CONFIG_CNTRL) ;
SETMASK(PLC(PA,PL_CNTRL_A),PL_SC_REM_LOOP,PL_SC_REM_LOOP) ;
CLEAR(PLC(PA,PL_CNTRL_B),PL_CONFIG_CNTRL) ;
CLEAR(PLC(PA,PL_CNTRL_A),PL_SC_REM_LOOP) ;
(smc->y[PA].pc_mode == PM_TREE ||
return phy == PA ? 3 : 2;
return phy == PA ? 1 : 3;
return phy == PA ? 3 : 1;
return phy == PA ? 2 : 3;
if (smc->y[PA].pc_mode == PM_PEER) {
queue_event(smc,EVENT_PCM+PA,PC_DISABLE) ;