diff options
| author | wdenk <wdenk> | 2004-08-02 21:11:11 +0000 | 
|---|---|---|
| committer | wdenk <wdenk> | 2004-08-02 21:11:11 +0000 | 
| commit | 68ceb29e7133a0f972f53d3d61fd61207374baec (patch) | |
| tree | aea2bf247ffeabcab9e908c152b316e269e2e5ee /net/net.c | |
| parent | 9aea95307fdb0ffe0d3a98a17ac73e5040c9756a (diff) | |
| download | olio-uboot-2014.01-68ceb29e7133a0f972f53d3d61fd61207374baec.tar.xz olio-uboot-2014.01-68ceb29e7133a0f972f53d3d61fd61207374baec.zip | |
Add support for console over UDP (compatible to Ingo Molnar's
netconsole patch under Linux)
Diffstat (limited to 'net/net.c')
| -rw-r--r-- | net/net.c | 22 | 
1 files changed, 22 insertions, 0 deletions
| @@ -148,6 +148,11 @@ static void PingStart(void);  static void CDPStart(void);  #endif +#ifdef CONFIG_NETCONSOLE +void NcStart(void); +int nc_input_packet(uchar *pkt, unsigned dest, unsigned src, unsigned len); +#endif +  volatile uchar	PktBuf[(PKTBUFSRX+1) * PKTSIZE_ALIGN + PKTALIGN];  volatile uchar *NetRxPackets[PKTBUFSRX]; /* Receive packets			*/ @@ -308,6 +313,7 @@ restart:  #if (CONFIG_COMMANDS & CFG_CMD_PING)  	case PING:  #endif +	case NETCONS:  	case TFTP:  		NetCopyIP(&NetOurIP, &bd->bi_ip_addr);  		NetOurGatewayIP = getenv_IPaddr ("gatewayip"); @@ -319,6 +325,7 @@ restart:  #if (CONFIG_COMMANDS & CFG_CMD_NFS)  		case NFS:  #endif +		case NETCONS:  		case TFTP:  			NetServerIP = getenv_IPaddr ("serverip");  			break; @@ -404,6 +411,11 @@ restart:  			CDPStart();  			break;  #endif +#ifdef CONFIG_NETCONSOLE +		case NETCONS: +			NcStart(); +			break; +#endif  		default:  			break;  		} @@ -1259,6 +1271,9 @@ NetReceive(volatile uchar * inpkt, int len)  				/* save address for later use */  				memcpy(NetArpWaitPacketMAC, &arp->ar_data[0], 6); +#ifdef CONFIG_NETCONSOLE +				(*packetHandler)(0,0,0,0); +#endif  				/* modify header, and transmit it */  				memcpy(((Ethernet_t *)NetArpWaitTxPacket)->et_dest, NetArpWaitPacketMAC, 6);  				(void) eth_send(NetArpWaitTxPacket, NetArpWaitTxPacketSize); @@ -1377,6 +1392,12 @@ NetReceive(volatile uchar * inpkt, int len)  			return;  		} +#ifdef CONFIG_NETCONSOLE +		nc_input_packet((uchar *)ip +IP_HDR_SIZE, +						ntohs(ip->udp_dst), +						ntohs(ip->udp_src), +						ntohs(ip->udp_len) - 8); +#endif  		/*  		 *	IP header OK.  Pass the packet to the current handler.  		 */ @@ -1406,6 +1427,7 @@ static int net_check_prereq (proto_t protocol)  #if (CONFIG_COMMANDS & CFG_CMD_NFS)  	case NFS:  #endif +	case NETCONS:  	case TFTP:  		if (NetServerIP == 0) {  			puts ("*** ERROR: `serverip' not set\n"); |