[U-Boot] [PATCH 1/3] Add support for Net Boot Controller (NBC) packet

Mike Frysinger vapier at gentoo.org
Wed Nov 17 11:54:48 CET 2010


On Tuesday, November 16, 2010 13:04:31 tristan.lelong at blunderer.org wrote:
> --- a/common/main.c
> +++ b/common/main.c
> 
> +#ifdef CONFIG_CMD_NBC

why did you pick "CONFIG_CMD_NBC" ?  there is no "nbc" command that is run 
from the u-boot console, so "CONFIG_CMD_xxx" makes no sense.

> +	if (!abort)
> +		abort = NBCWait ();

incorrect style here and in many places -- no space before the paren.  i wont 
bother pointing out this in other places ... find & fix yourself.

> --- a/net/Makefile
> +++ b/net/Makefile
> @@ -35,6 +35,8 @@ COBJS-$(CONFIG_CMD_NFS)  += nfs.o
>  COBJS-$(CONFIG_CMD_RARP) += rarp.o
>  COBJS-$(CONFIG_CMD_SNTP) += sntp.o
>  COBJS-$(CONFIG_CMD_NET)  += tftp.o
> +COBJS-$(CONFIG_CMD_NBC)	 += nbc.o
> +
> 

do not add useless blank lines

> --- /dev/null
> +++ b/net/nbc.c
> @@ -0,0 +1,143 @@
> +/*
> + * NBC support driver
> + * Network Boot Controller
> + *
> + * Copyright (c) 2010 Tristan Lelong <tristan.lelong at blunderer.org>
> + *
> + */

licensing info is missing

> +static void NBCHandler (uchar * pkt, unsigned dest, unsigned src, unsigned
> len) +{

style problems here -- no space after that asterisk

> +	int cnt = 0;
> +	char src_ip[16] = "";
> +	char *nbcsource = NULL;
> +	char ip[16] = "";
> +	char mac[18] = "";
> +	char hostname[255] = "";
> +
> +	struct _nbc_packet *nbc_pkt = (struct _nbc_packet *)pkt;
> +	nbcsource = getenv ("nbcsource");
> +
> +	/* check packet validity */
> +	if (nbc_pkt->id != 0xD3)

magic numbers should be defines in headers, not inlined in source files

> +		goto fail;
> +	if (strncmp (nbc_pkt->head, "NBC", 3))
> +		goto fail;
> +	if (nbc_pkt->size != len)
> +		goto fail;
> +
> +	sprintf (src_ip, "%lu.%lu.%lu.%lu", ((NetSrcIP >> 0) & 0xFF),
> +		 ((NetSrcIP >> 8) & 0xFF), ((NetSrcIP >> 16) & 0xFF),
> +		 ((NetSrcIP >> 24) & 0xFF));

we have printf modifiers to handle ip addresses already.  use that instead.

> +			unsigned char *pkt_mac = (unsigned char *)chk->data;
> +			sprintf (mac, "%02X:%02X:%02X:%02X:%02X:%02X",
> +				 pkt_mac[0], pkt_mac[1], pkt_mac[2], pkt_mac[3],
> +				 pkt_mac[4], pkt_mac[5]);

there are printf modifiers for MAC addresse too.  although i dont think you 
need to go screwing with this in the first place.  there are eth helpers for 
manipulating MAC addresses you should be using instead.  see 
doc/README.enetaddr.

> +	if (NBC_Mode_On) {
> +		return 1;
> +	}

useless braces

> --- /dev/null
> +++ b/net/nbc.h
> @@ -0,0 +1,39 @@
> +#define NBC_SERVICE_PORT 	4446
> +#define NBC_TIMEOUT      	2000
> +
> +#define NBC_CHK_HEADER_SIZE	5
> +#define NBC_HEADER_SIZE		5
> +#define NBC_CHK_IP_SIZE		4
> +#define NBC_CHK_MAC_SIZE	6
> +#define NBC_CHK_HOSTNAME_SIZE	255

indentation here is all screwd up.  it's inconsistent and mixes spaces & tabs.

> --- a/net/net.c
> +++ b/net/net.c
> @@ -1631,6 +1643,7 @@ NetReceive(volatile uchar * inpkt, int len)
>  			ushort *sumptr;
>  			ushort  sumlen;
> 
> +
>  			xsum  = ip->ip_p;
>  			xsum += (ntohs(ip->udp_len));
>  			xsum += (ntohl(ip->ip_src) >> 16) & 0x0000ffff;

please clean your patches of useless whitespace noise before submitting
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20101117/592ab88d/attachment.pgp 


More information about the U-Boot mailing list