Hello,
I'd like to use a function of ethernet port receive flow control on AM335x. How should I set the registers? I use port1 only as RMII. I have following setting.
CPSW_SL1: MACCONTROL.RX_FLOW_EN = 1;
CPSW_PORT: P1_MAX_BLKS.P1_RX_MAX_BLKS = 6;
CPSW_PORT: P1_MAX_BLKS.P1_TX_MAX_BLKS = 14;
CPSW_SS: FLOW_CONTROL.P1_FLOW_EN = 1; // I think it's no meaning for RX.
PC sends ping request to AM335x through a switching hub every second by feeding "ping -t" on Windows. Then AM335x can response ping reply. But few seconds later, AM335x doesn't response. If I don't set for flow control, it's working fine continuously. I see RX_FLOW_ACT bit of MACSTATUS register is active at that time. But I doesn't observe PAUSE FRAME on WireShark from a switching hub. Good Rx Frames register doesn't increase the counter. I don't know what happened. Please give me advise.
I also searched following source code, but I could not find the control code for rx flow control.
\\AM335X_StarterWare_02_00_01_01\third_party\lwip-1.4.0\ports\cpsw\netif\cpswif.c
\\AM335X_StarterWare_02_00_01_01\drivers\cpsw.c
/ti-sdk-am335x-evm-06.00.00.00/board-support/linux-3.2.0-psp04.06.00.11/drivers/net/ethernet/ti/cpsw.c
/ti-sdk-am335x-evm-06.00.00.00/board-support/linux-3.2.0-psp04.06.00.11/arch/arm/mach-omap2/board-am335xevm.c
/ti-sdk-am335x-evm-06.00.00.00/board-support/linux-3.2.0-psp04.06.00.11/arch/arm/mach-omap2/devices.c
Regards,
Kazu
 
				 
		 
					 
                           
				