int rtl8367_switch_init_post(void) { rtk_api_ret_t retVal; rtk_portmask_t portmask; rtk_port_mac_ability_t mac_cfg; printf(" Reset and init RTL8367 external switch..."); /* soft reset switch */ rtl8367b_setAsicReg(RTL8367B_REG_CHIP_RESET, 1); /* wait 1s for switch ready */ mdelay(1000); /* main switch init */ retVal = rtk_switch_init(); if (retVal != RT_ERR_OK) { printf("FAILED! (code: %d)\n", retVal); return retVal; } /* create default ports isolation */ partition_bridge_default(); /* configure ExtIf to RGMII, fixed gigabit mode w/o autoneg */ mac_cfg.forcemode = MAC_FORCE; mac_cfg.speed = SPD_1000M; mac_cfg.duplex = FULL_DUPLEX; mac_cfg.link = PORT_LINKUP; mac_cfg.nway = DISABLED; mac_cfg.rxpause = ENABLED; mac_cfg.txpause = ENABLED; rtk_port_macForceLinkExt_set(EXT_PORT_1, MODE_EXT_RGMII, &mac_cfg); /* disable iNIC_mii port link */ mac_cfg.link = PORT_LINKDOWN; rtk_port_macForceLinkExt_set(EXT_PORT_2, MODE_EXT_RGMII, &mac_cfg); /* configure ExtIf RGMII delays */ rtk_port_rgmiiDelayExt_set(EXT_PORT_1, RTL8367_RGMII_DELAY_TX, RTL8367_RGMII_DELAY_RX); rtk_port_rgmiiDelayExt_set(EXT_PORT_2, RTL8367_RGMII_DELAY_TX, RTL8367_RGMII_DELAY_RX); /* configure PHY leds */ portmask.bits[0] = 0x1F; rtk_led_enable_set(LED_GROUP_0, portmask); rtk_led_enable_set(LED_GROUP_1, portmask); rtk_led_operation_set(LED_OP_PARALLEL); rtk_led_groupConfig_set(LED_GROUP_0, LED_CONFIG_SPD10010ACT); // group 0 - green LED rtk_led_groupConfig_set(LED_GROUP_1, LED_CONFIG_SPD1000ACT); // group 1 - yellow LED printf("SUCCESS!\n"); return RT_ERR_OK; }
void LANWANPartition_8367r(void) { // connect CPU port to all LAN port rtk_portmask_t portmask; portmask.bits[0]=0x1e; rtk_led_enable_set(LED_GROUP_0, portmask); rtk_led_groupConfig_set(LED_GROUP_0, LED_CONFIG_LINK_ACT); rtk_led_operation_set(LED_OP_PARALLEL); /* { unsigned short RegIdx; for (RegIdx = 0x1b00; RegIdx <= 0x1b30; RegIdx++) { rtk_api_ret_t retVal; rtk_uint32 data; if((retVal = rtl8367b_getAsicReg(RegIdx, &data)) != RT_ERR_OK) { printf("error = %d\n", retVal); } printf("RegIdx = %x , data = %x\n", RegIdx, data); } } */ rtk_cpu_enable_set(ENABLE); rtk_cpu_tagPort_set(RTK_EXT_1_MAC,CPU_INSERT_TO_NONE); // it should not call rtk_vlan_init() since this router uses SVLAN }