Esempio n. 1
0
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;
}
Esempio n. 2
0
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
}