diff options
48 files changed, 647 insertions, 785 deletions
| diff --git a/arch/arm/include/asm/u-boot.h b/arch/arm/include/asm/u-boot.h index 20e165393..eac380072 100644 --- a/arch/arm/include/asm/u-boot.h +++ b/arch/arm/include/asm/u-boot.h @@ -38,7 +38,6 @@  typedef struct bd_info {      int			bi_baudrate;	/* serial console baudrate */ -    unsigned long	bi_ip_addr;	/* IP Address */      ulong	        bi_arch_number;	/* unique id for this board */      ulong	        bi_boot_params;	/* where this board expects params */  	unsigned long	bi_arm_freq; /* arm frequency */ diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c index 5270c1126..024646cae 100644 --- a/arch/arm/lib/board.c +++ b/arch/arm/lib/board.c @@ -555,9 +555,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	arm_pci_init();  #endif -	/* IP Address */ -	gd->bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -  	stdio_init();	/* get the devices list going. */  	jumptable_init(); @@ -595,14 +592,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	/* Initialize from environment */  	load_addr = getenv_ulong("loadaddr", 16, load_addr); -#if defined(CONFIG_CMD_NET) -	{ -		char *s = getenv("bootfile"); - -		if (s != NULL) -			copy_filename(BootFile, s, sizeof(BootFile)); -	} -#endif  #ifdef CONFIG_BOARD_LATE_INIT  	board_late_init(); diff --git a/arch/avr32/include/asm/u-boot.h b/arch/avr32/include/asm/u-boot.h index ff1ed23db..1d2959a2a 100644 --- a/arch/avr32/include/asm/u-boot.h +++ b/arch/avr32/include/asm/u-boot.h @@ -24,7 +24,6 @@  typedef struct bd_info {  	unsigned long		bi_baudrate; -	unsigned long		bi_ip_addr;  	unsigned char		bi_phy_id[4];  	unsigned long		bi_board_number;  	void			*bi_boot_params; diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c index d626c29c0..b390a6c8f 100644 --- a/arch/avr32/lib/board.c +++ b/arch/avr32/lib/board.c @@ -316,8 +316,6 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)  	/* initialize environment */  	env_relocate(); -	bd->bi_ip_addr = getenv_IPaddr ("ipaddr"); -  	stdio_init();  	jumptable_init();  	console_init_r(); @@ -329,9 +327,6 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)  	bb_miiphy_init();  #endif  #if defined(CONFIG_CMD_NET) -	s = getenv("bootfile"); -	if (s) -		copy_filename(BootFile, s, sizeof(BootFile));  	puts("Net:   ");  	eth_initialize(gd->bd);  #endif diff --git a/arch/blackfin/include/asm/u-boot.h b/arch/blackfin/include/asm/u-boot.h index 9712fc00e..df81183e8 100644 --- a/arch/blackfin/include/asm/u-boot.h +++ b/arch/blackfin/include/asm/u-boot.h @@ -30,7 +30,6 @@  typedef struct bd_info {  	int bi_baudrate;		/* serial console baudrate */ -	unsigned long bi_ip_addr;	/* IP Address */  	unsigned long bi_boot_params;	/* where this board expects params */  	unsigned long bi_memstart;	/* start of DRAM memory */  	phys_size_t bi_memsize;		/* size  of DRAM memory in bytes */ diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c index 2d424a2da..c380d271e 100644 --- a/arch/blackfin/lib/board.c +++ b/arch/blackfin/lib/board.c @@ -86,7 +86,6 @@ static void display_global_data(void)  	printf(" |-jt(%p): %p\n", gd->jt, *(gd->jt));  	printf(" \\-bd: %p\n", gd->bd);  	printf("   |-bi_baudrate: %x\n", bd->bi_baudrate); -	printf("   |-bi_ip_addr: %lx\n", bd->bi_ip_addr);  	printf("   |-bi_boot_params: %lx\n", bd->bi_boot_params);  	printf("   |-bi_memstart: %lx\n", bd->bi_memstart);  	printf("   |-bi_memsize: %lx\n", bd->bi_memsize); @@ -320,15 +319,8 @@ static void board_net_init_r(bd_t *bd)  	bb_miiphy_init();  #endif  #ifdef CONFIG_CMD_NET -	char *s; - -	if ((s = getenv("bootfile")) != NULL) -		copy_filename(BootFile, s, sizeof(BootFile)); - -	bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -  	printf("Net:   "); -	eth_initialize(gd->bd); +	eth_initialize(bd);  #endif  } diff --git a/arch/m68k/include/asm/u-boot.h b/arch/m68k/include/asm/u-boot.h index 0a48bbdbe..973c9ee09 100644 --- a/arch/m68k/include/asm/u-boot.h +++ b/arch/m68k/include/asm/u-boot.h @@ -47,7 +47,6 @@ typedef struct bd_info {  	unsigned long bi_mbar_base;	/* base of internal registers */  	unsigned long bi_bootflags;	/* boot / reboot flag (for LynxOS) */  	unsigned long bi_boot_params;	/* where this board expects params */ -	unsigned long bi_ip_addr;	/* IP Address */  	unsigned short bi_ethspeed;	/* Ethernet speed in Mbps */  	unsigned long bi_intfreq;	/* Internal Freq, in MHz */  	unsigned long bi_busfreq;	/* Bus Freq, in MHz */ diff --git a/arch/m68k/lib/board.c b/arch/m68k/lib/board.c index 1526967fe..65a8595c2 100644 --- a/arch/m68k/lib/board.c +++ b/arch/m68k/lib/board.c @@ -507,15 +507,6 @@ void board_init_r (gd_t *id, ulong dest_addr)  	/* relocate environment function pointers etc. */  	env_relocate (); -	/* -	 * Fill in missing fields of bd_info. -	 * We do this here, where we have "normal" access to the -	 * environment; we used to do this still running from ROM, -	 * where had to use getenv_f(), which can be pretty slow when -	 * the environment is in EEPROM. -	 */ -	bd->bi_ip_addr = getenv_IPaddr ("ipaddr"); -  	WATCHDOG_RESET ();  #if defined(CONFIG_PCI) @@ -568,11 +559,6 @@ void board_init_r (gd_t *id, ulong dest_addr)  	/* Initialize from environment */  	load_addr = getenv_ulong("loadaddr", 16, load_addr); -#if defined(CONFIG_CMD_NET) -	if ((s = getenv ("bootfile")) != NULL) { -		copy_filename (BootFile, s, sizeof (BootFile)); -	} -#endif  	WATCHDOG_RESET (); diff --git a/arch/microblaze/include/asm/u-boot.h b/arch/microblaze/include/asm/u-boot.h index 21c72d594..a0b1dbf9e 100644 --- a/arch/microblaze/include/asm/u-boot.h +++ b/arch/microblaze/include/asm/u-boot.h @@ -40,7 +40,6 @@ typedef struct bd_info {  	unsigned long	bi_flashoffset; /* reserved area for startup monitor */  	unsigned long	bi_sramstart;	/* start of SRAM memory */  	unsigned long	bi_sramsize;	/* size	 of SRAM memory */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned long	bi_baudrate;	/* Console Baudrate */  } bd_t; diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c index 9828b7630..f3679d536 100644 --- a/arch/microblaze/lib/board.c +++ b/arch/microblaze/lib/board.c @@ -176,19 +176,12 @@ void board_init (void)  	load_addr = getenv_ulong("loadaddr", 16, load_addr);  #if defined(CONFIG_CMD_NET) -	/* IP Address */ -	bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -  	printf("Net:   ");  	eth_initialize(gd->bd);  	uchar enetaddr[6];  	eth_getenv_enetaddr("ethaddr", enetaddr);  	printf("MAC:   %pM\n", enetaddr); - -	s = getenv("bootfile"); -	if (s != NULL) -		copy_filename(BootFile, s, sizeof(BootFile));  #endif  	/* main_loop */ diff --git a/arch/mips/include/asm/u-boot.h b/arch/mips/include/asm/u-boot.h index edb87bb06..590649aa3 100644 --- a/arch/mips/include/asm/u-boot.h +++ b/arch/mips/include/asm/u-boot.h @@ -33,7 +33,6 @@  typedef struct bd_info {  	int		bi_baudrate;	/* serial console baudrate */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned long	bi_arch_number;	/* unique id for this board */  	unsigned long	bi_boot_params;	/* where this board expects params */  	unsigned long	bi_memstart;	/* start of DRAM memory */ diff --git a/arch/mips/lib/board.c b/arch/mips/lib/board.c index 38e6e77a3..59a80011d 100644 --- a/arch/mips/lib/board.c +++ b/arch/mips/lib/board.c @@ -320,9 +320,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	/* relocate environment function pointers etc. */  	env_relocate(); -	/* IP Address */ -	bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -  #if defined(CONFIG_PCI)  	/*  	 * Do pci configuration @@ -342,14 +339,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	/* Initialize from environment */  	load_addr = getenv_ulong("loadaddr", 16, load_addr); -#if defined(CONFIG_CMD_NET) -	{ -		char *s = getenv("bootfile"); - -		if (s != NULL) -			copy_filename(BootFile, s, sizeof(BootFile)); -	} -#endif  #ifdef CONFIG_CMD_SPI  	puts("SPI:   "); diff --git a/arch/nds32/include/asm/u-boot.h b/arch/nds32/include/asm/u-boot.h index 9a697501d..eabbf38fb 100644 --- a/arch/nds32/include/asm/u-boot.h +++ b/arch/nds32/include/asm/u-boot.h @@ -40,7 +40,6 @@  typedef struct bd_info {  	int		bi_baudrate;	/* serial console baudrate */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned char	bi_enetaddr[6]; /* Ethernet adress */  	unsigned long	bi_arch_number;	/* unique id for this board */  	unsigned long	bi_boot_params;	/* where this board expects params */ diff --git a/arch/nds32/lib/board.c b/arch/nds32/lib/board.c index 074aabf1e..7121313a8 100644 --- a/arch/nds32/lib/board.c +++ b/arch/nds32/lib/board.c @@ -369,9 +369,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	nds32_pci_init();  #endif -	/* IP Address */ -	gd->bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -  	stdio_init();	/* get the devices list going. */  	jumptable_init(); @@ -402,12 +399,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	/* Initialize from environment */  	load_addr = getenv_ulong("loadaddr", 16, load_addr); -#if defined(CONFIG_CMD_NET) -	s = getenv("bootfile"); -	if (s != NULL) -		copy_filename(BootFile, s, sizeof(BootFile)); -#endif -  #ifdef BOARD_LATE_INIT  	board_late_init();  #endif diff --git a/arch/nios2/include/asm/u-boot.h b/arch/nios2/include/asm/u-boot.h index f7c70ff0c..315ef8bed 100644 --- a/arch/nios2/include/asm/u-boot.h +++ b/arch/nios2/include/asm/u-boot.h @@ -39,7 +39,6 @@ typedef struct bd_info {  	unsigned long	bi_flashoffset; /* reserved area for startup monitor */  	unsigned long	bi_sramstart;	/* start of SRAM memory */  	unsigned long	bi_sramsize;	/* size	 of SRAM memory */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned long	bi_baudrate;	/* Console Baudrate */  } bd_t; diff --git a/arch/nios2/lib/board.c b/arch/nios2/lib/board.c index 65de26e5c..ca8a3e524 100644 --- a/arch/nios2/lib/board.c +++ b/arch/nios2/lib/board.c @@ -143,8 +143,6 @@ void board_init (void)  	WATCHDOG_RESET ();  	env_relocate(); -	bd->bi_ip_addr = getenv_IPaddr ("ipaddr"); -  	WATCHDOG_RESET ();  	stdio_init();  	jumptable_init(); diff --git a/arch/openrisc/include/asm/u-boot.h b/arch/openrisc/include/asm/u-boot.h index 291399493..76b813273 100644 --- a/arch/openrisc/include/asm/u-boot.h +++ b/arch/openrisc/include/asm/u-boot.h @@ -33,7 +33,6 @@  typedef struct bd_info {  	unsigned long	bi_baudrate;	/* serial console baudrate */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned long	bi_arch_number;	/* unique id for this board */  	unsigned long	bi_boot_params;	/* where this board expects params */  	unsigned long	bi_memstart;	/* start of DRAM memory */ diff --git a/arch/powerpc/include/asm/u-boot.h b/arch/powerpc/include/asm/u-boot.h index b2fa2b574..155205411 100644 --- a/arch/powerpc/include/asm/u-boot.h +++ b/arch/powerpc/include/asm/u-boot.h @@ -63,7 +63,6 @@ typedef struct bd_info {  	unsigned long   bi_vcofreq;     /* VCO Freq, in MHz */  #endif  	unsigned long	bi_bootflags;	/* boot / reboot flag (Unused) */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned char	bi_enetaddr[6];	/* OLD: see README.enetaddr */  	unsigned short	bi_ethspeed;	/* Ethernet speed in Mbps */  	unsigned long	bi_intfreq;	/* Internal Freq, in MHz */ diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c index d5b75e5fb..fea310eed 100644 --- a/arch/powerpc/lib/board.c +++ b/arch/powerpc/lib/board.c @@ -877,9 +877,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  #endif  #endif /* CONFIG_CMD_NET */ -	/* IP Address */ -	bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -  	WATCHDOG_RESET();  #if defined(CONFIG_PCI) && !defined(CONFIG_SYS_EARLY_PCI_INIT) @@ -935,14 +932,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	/* Initialize from environment */  	load_addr = getenv_ulong("loadaddr", 16, load_addr); -#if defined(CONFIG_CMD_NET) -	{ -		char *s = getenv("bootfile"); - -		if (s != NULL) -			copy_filename(BootFile, s, sizeof(BootFile)); -	} -#endif  	WATCHDOG_RESET(); diff --git a/arch/sandbox/include/asm/u-boot.h b/arch/sandbox/include/asm/u-boot.h index 166ef1434..de8120a72 100644 --- a/arch/sandbox/include/asm/u-boot.h +++ b/arch/sandbox/include/asm/u-boot.h @@ -45,7 +45,6 @@ typedef struct bd_info {  	unsigned long	bi_sramstart;	/* start of SRAM memory */  	unsigned long	bi_sramsize;	/* size	 of SRAM memory */  	unsigned long	bi_bootflags;	/* boot / reboot flag (for LynxOS) */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned short	bi_ethspeed;	/* Ethernet speed in Mbps */  	unsigned long	bi_intfreq;	/* Internal Freq, in MHz */  	unsigned long	bi_busfreq;	/* Bus Freq, in MHz */ diff --git a/arch/sandbox/lib/board.c b/arch/sandbox/lib/board.c index 306d1ec33..c173bf96f 100644 --- a/arch/sandbox/lib/board.c +++ b/arch/sandbox/lib/board.c @@ -235,9 +235,6 @@ void board_init_r(gd_t *id, ulong dest_addr)  	/* initialize environment */  	env_relocate(); -	/* IP Address */ -	gd->bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -  	stdio_init();	/* get the devices list going. */  	jumptable_init(); diff --git a/arch/sh/include/asm/u-boot.h b/arch/sh/include/asm/u-boot.h index 45745129a..6c04daf3b 100644 --- a/arch/sh/include/asm/u-boot.h +++ b/arch/sh/include/asm/u-boot.h @@ -33,7 +33,6 @@ typedef struct bd_info {  	unsigned long   bi_flashoffset; /* reserved area for startup monitor */  	unsigned long   bi_sramstart;   /* start of SRAM memory */  	unsigned long   bi_sramsize;    /* size  of SRAM memory */ -	unsigned long   bi_ip_addr;     /* IP Address */  	unsigned long   bi_baudrate;    /* Console Baudrate */  	unsigned long	bi_boot_params; /* where this board expects params */  } bd_t; diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c index eb021e806..34d7881f4 100644 --- a/arch/sh/lib/board.c +++ b/arch/sh/lib/board.c @@ -100,14 +100,6 @@ static int sh_mem_env_init(void)  	return 0;  } -#if defined(CONFIG_CMD_NET) -static int sh_net_init(void) -{ -	gd->bd->bi_ip_addr = getenv_IPaddr("ipaddr"); -	return 0; -} -#endif -  #if defined(CONFIG_CMD_MMC)  static int sh_mmc_init(void)  { @@ -145,9 +137,6 @@ init_fnc_t *init_sequence[] =  #ifdef CONFIG_BOARD_LATE_INIT  	board_late_init,  #endif -#if defined(CONFIG_CMD_NET) -	sh_net_init,		/* SH specific eth init */ -#endif  #if defined(CONFIG_CMD_MMC)  	sh_mmc_init,  #endif @@ -201,15 +190,8 @@ void sh_generic_init(void)  	bb_miiphy_init();  #endif  #if defined(CONFIG_CMD_NET) -	{ -		char *s; -		puts("Net:   "); -		eth_initialize(gd->bd); - -		s = getenv("bootfile"); -		if (s != NULL) -			copy_filename(BootFile, s, sizeof(BootFile)); -	} +	puts("Net:   "); +	eth_initialize(gd->bd);  #endif /* CONFIG_CMD_NET */  	while (1) { diff --git a/arch/sparc/include/asm/u-boot.h b/arch/sparc/include/asm/u-boot.h index 1d94087aa..8d011185a 100644 --- a/arch/sparc/include/asm/u-boot.h +++ b/arch/sparc/include/asm/u-boot.h @@ -51,7 +51,6 @@ typedef struct bd_info {  	unsigned long bi_sramstart;	/* start of SRAM memory */  	unsigned long bi_sramsize;	/* size  of SRAM memory */  	unsigned long bi_bootflags;	/* boot / reboot flag (for LynxOS) */ -	unsigned long bi_ip_addr;	/* IP Address */  	unsigned short bi_ethspeed;	/* Ethernet speed in Mbps */  	unsigned long bi_intfreq;	/* Internal Freq, in MHz */  	unsigned long bi_busfreq;	/* Bus Freq, in MHz */ diff --git a/arch/sparc/lib/board.c b/arch/sparc/lib/board.c index c0d260840..7e48775df 100644 --- a/arch/sparc/lib/board.c +++ b/arch/sparc/lib/board.c @@ -333,8 +333,6 @@ void board_init_f(ulong bootflag)  	mac_read_from_eeprom();  #endif -	/* IP Address */ -	bd->bi_ip_addr = getenv_IPaddr("ipaddr");  #if defined(CONFIG_PCI)  	/*  	 * Do pci configuration @@ -359,11 +357,6 @@ void board_init_f(ulong bootflag)  	/* Initialize from environment */  	load_addr = getenv_ulong("loadaddr", 16, load_addr); -#if defined(CONFIG_CMD_NET) -	if ((s = getenv("bootfile")) != NULL) { -		copy_filename(BootFile, s, sizeof(BootFile)); -	} -#endif /* CONFIG_CMD_NET */  	WATCHDOG_RESET(); diff --git a/arch/x86/include/asm/init_helpers.h b/arch/x86/include/asm/init_helpers.h index 192f18e1d..8afb44329 100644 --- a/arch/x86/include/asm/init_helpers.h +++ b/arch/x86/include/asm/init_helpers.h @@ -36,9 +36,7 @@ int set_reloc_flag_r(void);  int mem_malloc_init_r(void);  int init_bd_struct_r(void);  int flash_init_r(void); -int init_ip_address_r(void);  int status_led_set_r(void); -int set_bootfile_r(void);  int set_load_addr_r(void);  #endif	/* !_INIT_HELPERS_H_ */ diff --git a/arch/x86/include/asm/u-boot.h b/arch/x86/include/asm/u-boot.h index 26450ebc4..da667c50a 100644 --- a/arch/x86/include/asm/u-boot.h +++ b/arch/x86/include/asm/u-boot.h @@ -45,7 +45,6 @@ typedef struct bd_info {  	unsigned long	bi_sramstart;	/* start of SRAM memory */  	unsigned long	bi_sramsize;	/* size	 of SRAM memory */  	unsigned long	bi_bootflags;	/* boot / reboot flag (for LynxOS) */ -	unsigned long	bi_ip_addr;	/* IP Address */  	unsigned short	bi_ethspeed;	/* Ethernet speed in Mbps */  	unsigned long	bi_intfreq;	/* Internal Freq, in MHz */  	unsigned long	bi_busfreq;	/* Bus Freq, in MHz */ diff --git a/arch/x86/lib/board.c b/arch/x86/lib/board.c index 5f0b62cea..90cf7fc88 100644 --- a/arch/x86/lib/board.c +++ b/arch/x86/lib/board.c @@ -157,9 +157,6 @@ init_fnc_t *init_sequence_r[] = {  	flash_init_r,  #endif  	env_relocate_r, -#ifdef CONFIG_CMD_NET -	init_ip_address_r, -#endif  #ifdef CONFIG_PCI  	pci_init_r,  #endif @@ -180,9 +177,6 @@ init_fnc_t *init_sequence_r[] = {  	status_led_set_r,  #endif  	set_load_addr_r, -#if defined(CONFIG_CMD_NET) -	set_bootfile_r, -#endif  #if defined(CONFIG_CMD_IDE)  	ide_init_r,  #endif diff --git a/arch/x86/lib/init_helpers.c b/arch/x86/lib/init_helpers.c index 9f4dee034..9ec34ff99 100644 --- a/arch/x86/lib/init_helpers.c +++ b/arch/x86/lib/init_helpers.c @@ -179,14 +179,6 @@ int flash_init_r(void)  }  #endif -int init_ip_address_r(void) -{ -	/* IP Address */ -	bd_data.bi_ip_addr = getenv_IPaddr("ipaddr"); - -	return 0; -} -  #ifdef CONFIG_STATUS_LED  int status_led_set_r(void)  { @@ -196,18 +188,6 @@ int status_led_set_r(void)  }  #endif -int set_bootfile_r(void) -{ -	char *s; - -	s = getenv("bootfile"); - -	if (s != NULL) -		copy_filename(BootFile, s, sizeof(BootFile)); - -	return 0; -} -  int set_load_addr_r(void)  {  	/* Initialize from environment */ diff --git a/board/esd/cpci405/cpci405.c b/board/esd/cpci405/cpci405.c index 41b5ba049..1441b10a9 100644 --- a/board/esd/cpci405/cpci405.c +++ b/board/esd/cpci405/cpci405.c @@ -730,12 +730,11 @@ int do_get_bpip(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  		/*  		 * Update whole ip-addr  		 */ -		bd->bi_ip_addr = ipaddr;  		sprintf(str, "%ld.%ld.%ld.%ld", -			(bd->bi_ip_addr & 0xff000000) >> 24, -			(bd->bi_ip_addr & 0x00ff0000) >> 16, -			(bd->bi_ip_addr & 0x0000ff00) >> 8, -			(bd->bi_ip_addr & 0x000000ff)); +			(ipaddr & 0xff000000) >> 24, +			(ipaddr & 0x00ff0000) >> 16, +			(ipaddr & 0x0000ff00) >> 8, +			(ipaddr & 0x000000ff));  		setenv("ipaddr", str);  		printf("Updated ip_addr from bp_eeprom to %s!\n", str);  	} diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c index 3ab285bc7..42f08fdd0 100644 --- a/common/cmd_bdinfo.c +++ b/common/cmd_bdinfo.c @@ -147,7 +147,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #ifdef CONFIG_HERMES  	print_mhz("ethspeed",		bd->bi_ethspeed);  #endif -	printf("IP addr     = %pI4\n", &bd->bi_ip_addr); +	printf("IP addr     = %s\n", getenv("ipaddr"));  	printf("baudrate    = %6ld bps\n", bd->bi_baudrate);  	print_num("relocaddr", gd->relocaddr);  	return 0; @@ -172,7 +172,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate    = %ld bps\n", bd->bi_baudrate); @@ -196,7 +196,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #endif  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate    = %ld bps\n", (ulong)bd->bi_baudrate);  	return 0; @@ -229,7 +229,7 @@ int do_bdinfo(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate               = %6ld bps\n", bd->bi_baudrate);  	return 0; @@ -275,7 +275,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	print_eth(3);  #endif -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate    = %ld bps\n", bd->bi_baudrate); @@ -303,7 +303,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	print_num("flashoffset",	(ulong)bd->bi_flashoffset);  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  	printf("baudrate    = %d bps\n", bd->bi_baudrate);  	return 0; @@ -323,7 +323,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	print_num("flashoffset",	(ulong)bd->bi_flashoffset);  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  	printf("baudrate    = %d bps\n", bd->bi_baudrate);  	return 0; @@ -343,7 +343,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	print_num("flashoffset",	(ulong)bd->bi_flashoffset);  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  	printf("baudrate    = %lu bps\n", bd->bi_baudrate);  	return 0; @@ -367,7 +367,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate    = %d bps\n", bd->bi_baudrate);  #if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF)) @@ -403,7 +403,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate    = %ld bps\n", (ulong)bd->bi_baudrate);  	return 0; @@ -436,7 +436,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  	print_mhz("ethspeed",	    bd->bi_ethspeed);  #endif  	printf("baudrate    = %d bps\n", bd->bi_baudrate); @@ -461,7 +461,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	print_num("FB base  ", gd->fb_base);  	return 0; @@ -485,7 +485,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate    = %d bps\n", bd->bi_baudrate); @@ -506,7 +506,7 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  #if defined(CONFIG_CMD_NET)  	print_eth(0); -	printf("ip_addr     = %pI4\n", &bd->bi_ip_addr); +	printf("ip_addr     = %s\n", getenv("ipaddr"));  #endif  	printf("baudrate    = %ld bps\n", bd->bi_baudrate); diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index e1ccdd8f7..5999cb80e 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -343,21 +343,7 @@ int _do_env_set(int flag, int argc, char * const argv[])  	 * Some variables should be updated when the corresponding  	 * entry in the environment is changed  	 */ -	if (strcmp(name, "ipaddr") == 0) { -		char *s = argv[2];	/* always use only one arg */ -		char *e; -		unsigned long addr; -		bd->bi_ip_addr = 0; -		for (addr = 0, i = 0; i < 4; ++i) { -			ulong val = s ? simple_strtoul(s, &e, 10) : 0; -			addr <<= 8; -			addr  |= val & 0xFF; -			if (s) -				s = *e ? e + 1 : e; -		} -		bd->bi_ip_addr = htonl(addr); -		return 0; -	} else if (strcmp(argv[1], "loadaddr") == 0) { +	if (strcmp(argv[1], "loadaddr") == 0) {  		load_addr = simple_strtoul(argv[2], NULL, 16);  		return 0;  	} diff --git a/common/main.c b/common/main.c index 3b9e39a98..a93335798 100644 --- a/common/main.c +++ b/common/main.c @@ -973,7 +973,6 @@ int readline_into_buffer(const char *const prompt, char *buffer, int timeout)  #ifdef CONFIG_SHOW_ACTIVITY  		while (!tstc()) { -			extern void show_activity(int arg);  			show_activity(0);  			WATCHDOG_RESET();  		} diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 56ba64fbb..7acd5b005 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -29,81 +29,82 @@  DECLARE_GLOBAL_DATA_PTR;  static char input_buffer[512]; -static int input_size = 0;		/* char count in input buffer */ -static int input_offset = 0;		/* offset to valid chars in input buffer */ -static int input_recursion = 0; -static int output_recursion = 0; +static int input_size; /* char count in input buffer */ +static int input_offset; /* offset to valid chars in input buffer */ +static int input_recursion; +static int output_recursion;  static int net_timeout; -static uchar nc_ether[6];		/* server enet address */ -static IPaddr_t nc_ip;			/* server ip */ -static short nc_port;			/* source/target port */ -static const char *output_packet;	/* used by first send udp */ -static int output_packet_len = 0; +static uchar nc_ether[6]; /* server enet address */ +static IPaddr_t nc_ip; /* server ip */ +static short nc_port; /* source/target port */ +static const char *output_packet; /* used by first send udp */ +static int output_packet_len;  static void nc_wait_arp_handler(uchar *pkt, unsigned dest,  				 IPaddr_t sip, unsigned src,  				 unsigned len)  { -	NetState = NETLOOP_SUCCESS;	/* got arp reply - quit net loop */ +	NetState = NETLOOP_SUCCESS; /* got arp reply - quit net loop */  }  static void nc_handler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  			unsigned len)  {  	if (input_size) -		NetState = NETLOOP_SUCCESS;	/* got input - quit net loop */ +		NetState = NETLOOP_SUCCESS; /* got input - quit net loop */  } -static void nc_timeout (void) +static void nc_timeout(void)  {  	NetState = NETLOOP_SUCCESS;  } -void NcStart (void) +void NcStart(void)  { -	if (!output_packet_len || memcmp (nc_ether, NetEtherNullAddr, 6)) { +	if (!output_packet_len || memcmp(nc_ether, NetEtherNullAddr, 6)) {  		/* going to check for input packet */ -		NetSetHandler (nc_handler); -		NetSetTimeout (net_timeout, nc_timeout); +		NetSetHandler(nc_handler); +		NetSetTimeout(net_timeout, nc_timeout);  	} else {  		/* send arp request */  		uchar *pkt; -		NetSetHandler (nc_wait_arp_handler); -		pkt = (uchar *) NetTxPacket + NetEthHdrSize () + IP_HDR_SIZE; -		memcpy (pkt, output_packet, output_packet_len); -		NetSendUDPPacket (nc_ether, nc_ip, nc_port, nc_port, output_packet_len); +		NetSetHandler(nc_wait_arp_handler); +		pkt = (uchar *)NetTxPacket + NetEthHdrSize() + IP_HDR_SIZE; +		memcpy(pkt, output_packet, output_packet_len); +		NetSendUDPPacket(nc_ether, nc_ip, nc_port, nc_port, +			output_packet_len);  	}  } -int nc_input_packet (uchar * pkt, unsigned dest, unsigned src, unsigned len) +int nc_input_packet(uchar *pkt, unsigned dest, unsigned src, unsigned len)  {  	int end, chunk;  	if (dest != nc_port || !len) -		return 0;		/* not for us */ +		return 0; /* not for us */ -	if (input_size == sizeof input_buffer) -		return 1;		/* no space */ -	if (len > sizeof input_buffer - input_size) -		len = sizeof input_buffer - input_size; +	if (input_size == sizeof(input_buffer)) +		return 1; /* no space */ +	if (len > sizeof(input_buffer) - input_size) +		len = sizeof(input_buffer) - input_size;  	end = input_offset + input_size; -	if (end > sizeof input_buffer) -		end -= sizeof input_buffer; +	if (end > sizeof(input_buffer)) +		end -= sizeof(input_buffer);  	chunk = len; -	if (end + len > sizeof input_buffer) { -		chunk = sizeof input_buffer - end; +	if (end + len > sizeof(input_buffer)) { +		chunk = sizeof(input_buffer) - end;  		memcpy(input_buffer, pkt + chunk, len - chunk);  	} -	memcpy (input_buffer + end, pkt, chunk); +	memcpy(input_buffer + end, pkt, chunk);  	input_size += len;  	return 1;  } -static void nc_send_packet (const char *buf, int len) +static void nc_send_packet(const char *buf, int len)  {  	struct eth_device *eth;  	int inited = 0; @@ -111,33 +112,33 @@ static void nc_send_packet (const char *buf, int len)  	uchar *ether;  	IPaddr_t ip; -	if ((eth = eth_get_dev ()) == NULL) { +	eth = eth_get_dev(); +	if (eth == NULL)  		return; -	} -	if (!memcmp (nc_ether, NetEtherNullAddr, 6)) { +	if (!memcmp(nc_ether, NetEtherNullAddr, 6)) {  		if (eth->state == ETH_STATE_ACTIVE)  			return;	/* inside net loop */  		output_packet = buf;  		output_packet_len = len; -		NetLoop (NETCONS);	/* wait for arp reply and send packet */ +		NetLoop(NETCONS); /* wait for arp reply and send packet */  		output_packet_len = 0;  		return;  	}  	if (eth->state != ETH_STATE_ACTIVE) { -		if (eth_init (gd->bd) < 0) +		if (eth_init(gd->bd) < 0)  			return;  		inited = 1;  	} -	pkt = (uchar *) NetTxPacket + NetEthHdrSize () + IP_HDR_SIZE; -	memcpy (pkt, buf, len); +	pkt = (uchar *)NetTxPacket + NetEthHdrSize() + IP_HDR_SIZE; +	memcpy(pkt, buf, len);  	ether = nc_ether;  	ip = nc_ip; -	NetSendUDPPacket (ether, ip, nc_port, nc_port, len); +	NetSendUDPPacket(ether, ip, nc_port, nc_port, len);  	if (inited) -		eth_halt (); +		eth_halt();  }  static int nc_start(void) @@ -146,26 +147,27 @@ static int nc_start(void)  	nc_port = 6666;		/* default port */ -	if (getenv ("ncip")) { +	if (getenv("ncip")) {  		char *p; -		nc_ip = getenv_IPaddr ("ncip"); +		nc_ip = getenv_IPaddr("ncip");  		if (!nc_ip)  			return -1;	/* ncip is 0.0.0.0 */ -		if ((p = strchr (getenv ("ncip"), ':')) != NULL) -			nc_port = simple_strtoul (p + 1, NULL, 10); +		p = strchr(getenv("ncip"), ':'); +		if (p != NULL) +			nc_port = simple_strtoul(p + 1, NULL, 10);  	} else  		nc_ip = ~0;		/* ncip is not set */ -	our_ip = getenv_IPaddr ("ipaddr"); -	netmask = getenv_IPaddr ("netmask"); +	our_ip = getenv_IPaddr("ipaddr"); +	netmask = getenv_IPaddr("netmask");  	if (nc_ip == ~0 ||				/* 255.255.255.255 */  	    ((netmask & our_ip) == (netmask & nc_ip) &&	/* on the same net */ -	    (netmask | nc_ip) == ~0))			/* broadcast to our net */ -		memset (nc_ether, 0xff, sizeof nc_ether); +	    (netmask | nc_ip) == ~0))		/* broadcast to our net */ +		memset(nc_ether, 0xff, sizeof(nc_ether));  	else -		memset (nc_ether, 0, sizeof nc_ether);	/* force arp request */ +		memset(nc_ether, 0, sizeof(nc_ether));	/* force arp request */  	return 0;  } @@ -176,7 +178,7 @@ static void nc_putc(char c)  		return;  	output_recursion = 1; -	nc_send_packet (&c, 1); +	nc_send_packet(&c, 1);  	output_recursion = 0;  } @@ -208,14 +210,14 @@ static int nc_getc(void)  	net_timeout = 0;	/* no timeout */  	while (!input_size) -		NetLoop (NETCONS); +		NetLoop(NETCONS);  	input_recursion = 0;  	c = input_buffer[input_offset++]; -	if (input_offset >= sizeof input_buffer) -		input_offset -= sizeof input_buffer; +	if (input_offset >= sizeof(input_buffer)) +		input_offset -= sizeof(input_buffer);  	input_size--;  	return c; @@ -231,28 +233,28 @@ static int nc_tstc(void)  	if (input_size)  		return 1; -	eth = eth_get_dev (); +	eth = eth_get_dev();  	if (eth && eth->state == ETH_STATE_ACTIVE)  		return 0;	/* inside net loop */  	input_recursion = 1;  	net_timeout = 1; -	NetLoop (NETCONS);	/* kind of poll */ +	NetLoop(NETCONS);	/* kind of poll */  	input_recursion = 0;  	return input_size != 0;  } -int drv_nc_init (void) +int drv_nc_init(void)  {  	struct stdio_dev dev;  	int rc; -	memset (&dev, 0, sizeof (dev)); +	memset(&dev, 0, sizeof(dev)); -	strcpy (dev.name, "nc"); +	strcpy(dev.name, "nc");  	dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM;  	dev.start = nc_start;  	dev.putc = nc_putc; @@ -260,7 +262,7 @@ int drv_nc_init (void)  	dev.getc = nc_getc;  	dev.tstc = nc_tstc; -	rc = stdio_register (&dev); +	rc = stdio_register(&dev);  	return (rc == 0) ? 1 : rc;  } diff --git a/include/common.h b/include/common.h index ff7126d35..eb9de1870 100644 --- a/include/common.h +++ b/include/common.h @@ -819,6 +819,10 @@ int	pcmcia_init (void);  #include <bootstage.h> +#ifdef CONFIG_SHOW_ACTIVITY +void show_activity(int arg); +#endif +  /* Multicore arch functions */  #ifdef CONFIG_MP  int cpu_status(int nr); diff --git a/include/net.h b/include/net.h index ee11f82cc..92afc1903 100644 --- a/include/net.h +++ b/include/net.h @@ -80,14 +80,14 @@ struct eth_device {  	int iobase;  	int state; -	int  (*init) (struct eth_device*, bd_t*); -	int  (*send) (struct eth_device*, volatile void* packet, int length); -	int  (*recv) (struct eth_device*); -	void (*halt) (struct eth_device*); +	int  (*init) (struct eth_device *, bd_t *); +	int  (*send) (struct eth_device *, void *packet, int length); +	int  (*recv) (struct eth_device *); +	void (*halt) (struct eth_device *);  #ifdef CONFIG_MCAST_TFTP -	int (*mcast) (struct eth_device*, u32 ip, u8 set); +	int (*mcast) (struct eth_device *, u32 ip, u8 set);  #endif -	int  (*write_hwaddr) (struct eth_device*); +	int  (*write_hwaddr) (struct eth_device *);  	struct eth_device *next;  	int index;  	void *priv; @@ -101,7 +101,7 @@ extern void eth_set_current(void);		/* set nterface to ethcur var */  extern struct eth_device *eth_get_dev(void);	/* get the current device MAC */  extern struct eth_device *eth_get_dev_by_name(const char *devname);  extern struct eth_device *eth_get_dev_by_index(int index); /* get dev @ index */ -extern int eth_get_dev_index (void);		/* get the device index */ +extern int eth_get_dev_index(void);		/* get the device index */  extern void eth_parse_enetaddr(const char *addr, uchar *enetaddr);  extern int eth_getenv_enetaddr(char *name, uchar *enetaddr);  extern int eth_setenv_enetaddr(char *name, const uchar *enetaddr); @@ -120,10 +120,11 @@ extern int eth_getenv_enetaddr_by_index(const char *base_name, int index,  extern int usb_eth_initialize(bd_t *bi);  extern int eth_init(bd_t *bis);			/* Initialize the device */ -extern int eth_send(volatile void *packet, int length);	   /* Send a packet */ +extern int eth_send(void *packet, int length);	   /* Send a packet */  #ifdef CONFIG_API -extern int eth_receive(volatile void *packet, int length); /* Receive a packet*/ +extern int eth_receive(void *packet, int length); /* Receive a packet*/ +extern void (*push_packet)(void *packet, int length);  #endif  extern int eth_rx(void);			/* Check for received packets */  extern void eth_halt(void);			/* stop SCC */ @@ -142,8 +143,8 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,  		     int eth_number);  #ifdef CONFIG_MCAST_TFTP -int eth_mcast_join( IPaddr_t mcast_addr, u8 join); -u32 ether_crc (size_t len, unsigned char const *p); +int eth_mcast_join(IPaddr_t mcast_addr, u8 join); +u32 ether_crc(size_t len, unsigned char const *p);  #endif @@ -218,8 +219,8 @@ typedef struct {  #define IP_FLAGS_DFRAG	0x4000 /* don't fragments */  #define IP_FLAGS_MFRAG	0x2000 /* more fragments */ -#define IP_HDR_SIZE_NO_UDP	(sizeof (IP_t) - 8) -#define IP_HDR_SIZE		(sizeof (IP_t)) +#define IP_HDR_SIZE_NO_UDP	(sizeof(IP_t) - 8) +#define IP_HDR_SIZE		(sizeof(IP_t))  /* @@ -326,46 +327,46 @@ typedef struct icmphdr {  /* net.c */  /** BOOTP EXTENTIONS **/ -extern IPaddr_t		NetOurGatewayIP;	/* Our gateway IP addresse	*/ -extern IPaddr_t		NetOurSubnetMask;	/* Our subnet mask (0 = unknown)*/ -extern IPaddr_t		NetOurDNSIP;	 /* Our Domain Name Server (0 = unknown)*/ +extern IPaddr_t NetOurGatewayIP;	/* Our gateway IP address */ +extern IPaddr_t NetOurSubnetMask;	/* Our subnet mask (0 = unknown) */ +extern IPaddr_t NetOurDNSIP;	/* Our Domain Name Server (0 = unknown) */  #if defined(CONFIG_BOOTP_DNS2) -extern IPaddr_t		NetOurDNS2IP;	 /* Our 2nd Domain Name Server (0 = unknown)*/ +extern IPaddr_t NetOurDNS2IP;	/* Our 2nd Domain Name Server (0 = unknown) */  #endif -extern char		NetOurNISDomain[32];	/* Our NIS domain		*/ -extern char		NetOurHostName[32];	/* Our hostname			*/ -extern char		NetOurRootPath[64];	/* Our root path		*/ -extern ushort		NetBootFileSize;	/* Our boot file size in blocks	*/ +extern char	NetOurNISDomain[32];	/* Our NIS domain */ +extern char	NetOurHostName[32];	/* Our hostname */ +extern char	NetOurRootPath[64];	/* Our root path */ +extern ushort	NetBootFileSize;	/* Our boot file size in blocks */  /** END OF BOOTP EXTENTIONS **/ -extern ulong		NetBootFileXferSize;	/* size of bootfile in bytes	*/ -extern uchar		NetOurEther[6];		/* Our ethernet address		*/ -extern uchar		NetServerEther[6];	/* Boot server enet address	*/ -extern IPaddr_t		NetOurIP;		/* Our    IP addr (0 = unknown)	*/ -extern IPaddr_t		NetServerIP;		/* Server IP addr (0 = unknown)	*/ -extern volatile uchar * NetTxPacket;		/* THE transmit packet		*/ -extern volatile uchar * NetRxPackets[PKTBUFSRX];/* Receive packets		*/ -extern volatile uchar * NetRxPacket;		/* Current receive packet	*/ -extern int		NetRxPacketLen;		/* Current rx packet length	*/ -extern unsigned		NetIPID;		/* IP ID (counting)		*/ -extern uchar		NetBcastAddr[6];	/* Ethernet boardcast address	*/ +extern ulong		NetBootFileXferSize;	/* size of bootfile in bytes */ +extern uchar		NetOurEther[6];		/* Our ethernet address */ +extern uchar		NetServerEther[6];	/* Boot server enet address */ +extern IPaddr_t		NetOurIP;	/* Our    IP addr (0 = unknown) */ +extern IPaddr_t		NetServerIP;	/* Server IP addr (0 = unknown) */ +extern uchar		*NetTxPacket;		/* THE transmit packet */ +extern uchar		*NetRxPackets[PKTBUFSRX]; /* Receive packets */ +extern uchar		*NetRxPacket;		/* Current receive packet */ +extern int		NetRxPacketLen;		/* Current rx packet length */ +extern unsigned		NetIPID;		/* IP ID (counting) */ +extern uchar		NetBcastAddr[6];	/* Ethernet boardcast address */  extern uchar		NetEtherNullAddr[6]; -#define VLAN_NONE	4095			/* untagged			*/ -#define VLAN_IDMASK	0x0fff			/* mask of valid vlan id	*/ -extern ushort		NetOurVLAN;		/* Our VLAN			*/ -extern ushort		NetOurNativeVLAN;	/* Our Native VLAN		*/ +#define VLAN_NONE	4095			/* untagged */ +#define VLAN_IDMASK	0x0fff			/* mask of valid vlan id */ +extern ushort		NetOurVLAN;		/* Our VLAN */ +extern ushort		NetOurNativeVLAN;	/* Our Native VLAN */ -extern uchar		NetCDPAddr[6];		/* Ethernet CDP address		*/ -extern ushort		CDPNativeVLAN;		/* CDP returned native VLAN	*/ -extern ushort		CDPApplianceVLAN;	/* CDP returned appliance VLAN	*/ +extern uchar	NetCDPAddr[6];		/* Ethernet CDP address */ +extern ushort	CDPNativeVLAN;		/* CDP returned native VLAN */ +extern ushort	CDPApplianceVLAN;	/* CDP returned appliance VLAN */ -extern int		NetState;		/* Network loop state		*/ +extern int		NetState;		/* Network loop state */  #define NETLOOP_CONTINUE	1  #define NETLOOP_RESTART		2  #define NETLOOP_SUCCESS		3  #define NETLOOP_FAIL		4 -extern int		NetRestartWrap;		/* Tried all network devices	*/ +extern int		NetRestartWrap;		/* Tried all network devices */  enum proto_t {  	BOOTP, RARP, ARP, TFTPGET, DHCP, PING, DNS, NFS, CDP, NETCONS, SNTP, @@ -373,7 +374,7 @@ enum proto_t {  };  /* from net/net.c */ -extern char	BootFile[128];			/* Boot File name		*/ +extern char	BootFile[128];			/* Boot File name */  #if defined(CONFIG_CMD_DNS)  extern char *NetDNSResolve;		/* The host to resolve  */ @@ -381,7 +382,7 @@ extern char *NetDNSenvvar;		/* the env var to put the ip into */  #endif  #if defined(CONFIG_CMD_PING) -extern IPaddr_t	NetPingIP;			/* the ip address to ping		*/ +extern IPaddr_t	NetPingIP;			/* the ip address to ping */  #endif  #if defined(CONFIG_CMD_CDP) @@ -391,8 +392,12 @@ extern ushort CDPApplianceVLAN;  #endif  #if defined(CONFIG_CMD_SNTP) -extern IPaddr_t	NetNtpServerIP;			/* the ip address to NTP	*/ -extern int NetTimeOffset;			/* offset time from UTC		*/ +extern IPaddr_t	NetNtpServerIP;			/* the ip address to NTP */ +extern int NetTimeOffset;			/* offset time from UTC */ +#endif + +#if defined(CONFIG_MCAST_TFTP) +extern IPaddr_t Mcast_addr;  #endif  /* Initialize the network adapter */ @@ -408,28 +413,34 @@ extern void	NetStartAgain(void);  extern int	NetEthHdrSize(void);  /* Set ethernet header; returns the size of the header */ -extern int	NetSetEther(volatile uchar *, uchar *, uint); +extern int NetSetEther(uchar *, uchar *, uint);  /* Set IP header */ -extern void	NetSetIP(volatile uchar *, IPaddr_t, int, int, int); +extern void NetSetIP(uchar *, IPaddr_t, int, int, int);  /* Checksum */ -extern int	NetCksumOk(uchar *, int);	/* Return true if cksum OK	*/ -extern uint	NetCksum(uchar *, int);		/* Calculate the checksum	*/ +extern int	NetCksumOk(uchar *, int);	/* Return true if cksum OK */ +extern uint	NetCksum(uchar *, int);		/* Calculate the checksum */  /* Set callbacks */ -extern void	NetSetHandler(rxhand_f *);	/* Set RX packet handler	*/ +extern void	NetSetHandler(rxhand_f *);	/* Set RX packet handler */  extern void net_set_icmp_handler(rxhand_icmp_f *f); /* Set ICMP RX handler */ -extern void	NetSetTimeout(ulong, thand_f *);/* Set timeout handler		*/ +extern void	NetSetTimeout(ulong, thand_f *);/* Set timeout handler */  /* Transmit "NetTxPacket" */ -extern void	NetSendPacket(volatile uchar *, int); +extern void NetSendPacket(uchar *, int);  /* Transmit UDP packet, performing ARP request if needed */ -extern int	NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, int len); +extern int	NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, +			int sport, int len);  /* Processes a received packet */ -extern void	NetReceive(volatile uchar *, int); +extern void NetReceive(uchar *, int); + +#ifdef CONFIG_NETCONSOLE +void NcStart(void); +int nc_input_packet(uchar *pkt, unsigned dest, unsigned src, unsigned len); +#endif  /*   * Check if autoload is enabled. If so, use either NFS or TFTP to download @@ -445,10 +456,11 @@ void net_auto_load(void);   * footprint in our tests.   */  /* return IP *in network byteorder* */ -static inline IPaddr_t NetReadIP(volatile void *from) +static inline IPaddr_t NetReadIP(void *from)  {  	IPaddr_t ip; -	memcpy((void*)&ip, (void*)from, sizeof(ip)); + +	memcpy((void *)&ip, (void *)from, sizeof(ip));  	return ip;  } @@ -456,26 +468,27 @@ static inline IPaddr_t NetReadIP(volatile void *from)  static inline ulong NetReadLong(ulong *from)  {  	ulong l; -	memcpy((void*)&l, (void*)from, sizeof(l)); + +	memcpy((void *)&l, (void *)from, sizeof(l));  	return l;  }  /* write IP *in network byteorder* */  static inline void NetWriteIP(void *to, IPaddr_t ip)  { -	memcpy(to, (void*)&ip, sizeof(ip)); +	memcpy(to, (void *)&ip, sizeof(ip));  }  /* copy IP */ -static inline void NetCopyIP(volatile void *to, void *from) +static inline void NetCopyIP(void *to, void *from)  { -	memcpy((void*)to, from, sizeof(IPaddr_t)); +	memcpy((void *)to, from, sizeof(IPaddr_t));  }  /* copy ulong */  static inline void NetCopyLong(ulong *to, ulong *from)  { -	memcpy((void*)to, (void*)from, sizeof(ulong)); +	memcpy((void *)to, (void *)from, sizeof(ulong));  }  /** @@ -498,7 +511,7 @@ static inline int is_zero_ether_addr(const u8 *addr)   */  static inline int is_multicast_ether_addr(const u8 *addr)  { -	return (0x01 & addr[0]); +	return 0x01 & addr[0];  }  /* @@ -509,7 +522,8 @@ static inline int is_multicast_ether_addr(const u8 *addr)   */  static inline int is_broadcast_ether_addr(const u8 *addr)  { -	return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == 0xff; +	return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == +		0xff;  }  /* @@ -529,13 +543,13 @@ static inline int is_valid_ether_addr(const u8 *addr)  }  /* Convert an IP address to a string */ -extern void	ip_to_string (IPaddr_t x, char *s); +extern void ip_to_string(IPaddr_t x, char *s);  /* Convert a string to ip address */  extern IPaddr_t string_to_ip(const char *s);  /* Convert a VLAN id to a string */ -extern void	VLAN_to_string (ushort x, char *s); +extern void VLAN_to_string(ushort x, char *s);  /* Convert a string to a vlan id */  extern ushort string_to_VLAN(const char *s); @@ -544,7 +558,7 @@ extern ushort string_to_VLAN(const char *s);  extern ushort getenv_VLAN(char *);  /* copy a filename (allow for "..." notation, limit length) */ -extern void	copy_filename (char *dst, const char *src, int size); +extern void copy_filename(char *dst, const char *src, int size);  /* get a random source port */  extern unsigned int random_port(void); diff --git a/net/bootp.c b/net/bootp.c index 9e324769d..d0a7da248 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -19,19 +19,19 @@  #endif  #include <linux/compiler.h> -#define BOOTP_VENDOR_MAGIC	0x63825363	/* RFC1048 Magic Cookie		*/ +#define BOOTP_VENDOR_MAGIC	0x63825363	/* RFC1048 Magic Cookie */  #define TIMEOUT		5000UL	/* Milliseconds before trying BOOTP again */  #ifndef CONFIG_NET_RETRY_COUNT -# define TIMEOUT_COUNT	5		/* # of timeouts before giving up  */ +# define TIMEOUT_COUNT	5		/* # of timeouts before giving up */  #else  # define TIMEOUT_COUNT	(CONFIG_NET_RETRY_COUNT)  #endif -#define PORT_BOOTPS	67		/* BOOTP server UDP port		*/ -#define PORT_BOOTPC	68		/* BOOTP client UDP port		*/ +#define PORT_BOOTPS	67		/* BOOTP server UDP port */ +#define PORT_BOOTPC	68		/* BOOTP client UDP port */ -#ifndef CONFIG_DHCP_MIN_EXT_LEN		/* minimal length of extension list	*/ +#ifndef CONFIG_DHCP_MIN_EXT_LEN		/* minimal length of extension list */  #define CONFIG_DHCP_MIN_EXT_LEN 64  #endif @@ -43,8 +43,8 @@ ulong		seed1, seed2;  #if defined(CONFIG_CMD_DHCP)  dhcp_state_t dhcp_state = INIT; -unsigned long dhcp_leasetime = 0; -IPaddr_t NetDHCPServerIP = 0; +unsigned long dhcp_leasetime; +IPaddr_t NetDHCPServerIP;  static void DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  			unsigned len); @@ -64,37 +64,29 @@ static char *dhcpmsg2str(int type)  	}  }  #endif - -#if defined(CONFIG_BOOTP_VENDOREX) -extern u8 *dhcp_vendorex_prep (u8 *e); /*rtn new e after add own opts. */ -extern u8 *dhcp_vendorex_proc (u8 *e); /*rtn next e if mine,else NULL  */ -#endif -  #endif  static int BootpCheckPkt(uchar *pkt, unsigned dest, unsigned src, unsigned len)  { -	Bootp_t *bp = (Bootp_t *) pkt; +	struct Bootp_t *bp = (struct Bootp_t *) pkt;  	int retval = 0;  	if (dest != PORT_BOOTPC || src != PORT_BOOTPS)  		retval = -1; -	else if (len < sizeof (Bootp_t) - OPT_SIZE) +	else if (len < sizeof(struct Bootp_t) - OPT_SIZE)  		retval = -2;  	else if (bp->bp_op != OP_BOOTREQUEST && -	    bp->bp_op != OP_BOOTREPLY && -	    bp->bp_op != DHCP_OFFER && -	    bp->bp_op != DHCP_ACK && -	    bp->bp_op != DHCP_NAK ) { +			bp->bp_op != OP_BOOTREPLY && +			bp->bp_op != DHCP_OFFER && +			bp->bp_op != DHCP_ACK && +			bp->bp_op != DHCP_NAK)  		retval = -3; -	}  	else if (bp->bp_htype != HWT_ETHER)  		retval = -4;  	else if (bp->bp_hlen != HWL_ETHER)  		retval = -5; -	else if (NetReadLong((ulong*)&bp->bp_id) != BootpID) { +	else if (NetReadLong((ulong *)&bp->bp_id) != BootpID)  		retval = -6; -	}  	debug("Filtering pkt = %d\n", retval); @@ -104,7 +96,7 @@ static int BootpCheckPkt(uchar *pkt, unsigned dest, unsigned src, unsigned len)  /*   * Copy parameters of interest from BOOTP_REPLY/DHCP_OFFER packet   */ -static void BootpCopyNetParams(Bootp_t *bp) +static void BootpCopyNetParams(struct Bootp_t *bp)  {  	__maybe_unused IPaddr_t tmp_ip; @@ -113,10 +105,10 @@ static void BootpCopyNetParams(Bootp_t *bp)  	NetCopyIP(&tmp_ip, &bp->bp_siaddr);  	if (tmp_ip != 0)  		NetCopyIP(&NetServerIP, &bp->bp_siaddr); -	memcpy (NetServerEther, ((Ethernet_t *)NetRxPacket)->et_src, 6); +	memcpy(NetServerEther, ((Ethernet_t *)NetRxPacket)->et_src, 6);  #endif  	if (strlen(bp->bp_file) > 0) -		copy_filename (BootFile, bp->bp_file, sizeof(BootFile)); +		copy_filename(BootFile, bp->bp_file, sizeof(BootFile));  	debug("Bootfile: %s\n", BootFile); @@ -124,97 +116,95 @@ static void BootpCopyNetParams(Bootp_t *bp)  	 * don't delete exising entry when BOOTP / DHCP reply does  	 * not contain a new value  	 */ -	if (*BootFile) { -		setenv ("bootfile", BootFile); -	} +	if (*BootFile) +		setenv("bootfile", BootFile);  } -static int truncate_sz (const char *name, int maxlen, int curlen) +static int truncate_sz(const char *name, int maxlen, int curlen)  {  	if (curlen >= maxlen) { -		printf("*** WARNING: %s is too long (%d - max: %d) - truncated\n", -			name, curlen, maxlen); +		printf("*** WARNING: %s is too long (%d - max: %d)" +			" - truncated\n", name, curlen, maxlen);  		curlen = maxlen - 1;  	} -	return (curlen); +	return curlen;  }  #if !defined(CONFIG_CMD_DHCP) -static void BootpVendorFieldProcess (u8 * ext) +static void BootpVendorFieldProcess(u8 *ext)  {  	int size = *(ext + 1);  	debug("[BOOTP] Processing extension %d... (%d bytes)\n", *ext, -		   *(ext + 1)); +		*(ext + 1));  	NetBootFileSize = 0;  	switch (*ext) {  		/* Fixed length fields */ -	case 1:			/* Subnet mask					*/ +	case 1:			/* Subnet mask */  		if (NetOurSubnetMask == 0) -			NetCopyIP (&NetOurSubnetMask, (IPaddr_t *) (ext + 2)); +			NetCopyIP(&NetOurSubnetMask, (IPaddr_t *) (ext + 2));  		break; -	case 2:			/* Time offset - Not yet supported		*/ +	case 2:			/* Time offset - Not yet supported */  		break;  		/* Variable length fields */ -	case 3:			/* Gateways list				*/ -		if (NetOurGatewayIP == 0) { -			NetCopyIP (&NetOurGatewayIP, (IPaddr_t *) (ext + 2)); -		} +	case 3:			/* Gateways list */ +		if (NetOurGatewayIP == 0) +			NetCopyIP(&NetOurGatewayIP, (IPaddr_t *) (ext + 2));  		break; -	case 4:			/* Time server - Not yet supported		*/ +	case 4:			/* Time server - Not yet supported */  		break; -	case 5:			/* IEN-116 name server - Not yet supported	*/ +	case 5:			/* IEN-116 name server - Not yet supported */  		break;  	case 6: -		if (NetOurDNSIP == 0) { -			NetCopyIP (&NetOurDNSIP, (IPaddr_t *) (ext + 2)); -		} +		if (NetOurDNSIP == 0) +			NetCopyIP(&NetOurDNSIP, (IPaddr_t *) (ext + 2));  #if defined(CONFIG_BOOTP_DNS2) -		if ((NetOurDNS2IP == 0) && (size > 4)) { -			NetCopyIP (&NetOurDNS2IP, (IPaddr_t *) (ext + 2 + 4)); -		} +		if ((NetOurDNS2IP == 0) && (size > 4)) +			NetCopyIP(&NetOurDNS2IP, (IPaddr_t *) (ext + 2 + 4));  #endif  		break; -	case 7:			/* Log server - Not yet supported		*/ +	case 7:			/* Log server - Not yet supported */  		break; -	case 8:			/* Cookie/Quote server - Not yet supported	*/ +	case 8:			/* Cookie/Quote server - Not yet supported */  		break; -	case 9:			/* LPR server - Not yet supported		*/ +	case 9:			/* LPR server - Not yet supported */  		break; -	case 10:		/* Impress server - Not yet supported		*/ +	case 10:		/* Impress server - Not yet supported */  		break; -	case 11:		/* RPL server - Not yet supported		*/ +	case 11:		/* RPL server - Not yet supported */  		break; -	case 12:		/* Host name					*/ +	case 12:		/* Host name */  		if (NetOurHostName[0] == 0) { -			size = truncate_sz ("Host Name", sizeof (NetOurHostName), size); -			memcpy (&NetOurHostName, ext + 2, size); +			size = truncate_sz("Host Name", +				sizeof(NetOurHostName), size); +			memcpy(&NetOurHostName, ext + 2, size);  			NetOurHostName[size] = 0;  		}  		break; -	case 13:		/* Boot file size				*/ +	case 13:		/* Boot file size */  		if (size == 2) -			NetBootFileSize = ntohs (*(ushort *) (ext + 2)); +			NetBootFileSize = ntohs(*(ushort *) (ext + 2));  		else if (size == 4) -			NetBootFileSize = ntohl (*(ulong *) (ext + 2)); +			NetBootFileSize = ntohl(*(ulong *) (ext + 2));  		break; -	case 14:		/* Merit dump file - Not yet supported		*/ +	case 14:		/* Merit dump file - Not yet supported */  		break; -	case 15:		/* Domain name - Not yet supported		*/ +	case 15:		/* Domain name - Not yet supported */  		break; -	case 16:		/* Swap server - Not yet supported		*/ +	case 16:		/* Swap server - Not yet supported */  		break; -	case 17:		/* Root path					*/ +	case 17:		/* Root path */  		if (NetOurRootPath[0] == 0) { -			size = truncate_sz ("Root Path", sizeof (NetOurRootPath), size); -			memcpy (&NetOurRootPath, ext + 2, size); +			size = truncate_sz("Root Path", +				sizeof(NetOurRootPath), size); +			memcpy(&NetOurRootPath, ext + 2, size);  			NetOurRootPath[size] = 0;  		}  		break; -	case 18:		/* Extension path - Not yet supported		*/ +	case 18:		/* Extension path - Not yet supported */  		/*  		 * This can be used to send the information of the  		 * vendor area in another file that the client can @@ -222,10 +212,11 @@ static void BootpVendorFieldProcess (u8 * ext)  		 */  		break;  		/* IP host layer fields */ -	case 40:		/* NIS Domain name				*/ +	case 40:		/* NIS Domain name */  		if (NetOurNISDomain[0] == 0) { -			size = truncate_sz ("NIS Domain Name", sizeof (NetOurNISDomain), size); -			memcpy (&NetOurNISDomain, ext + 2, size); +			size = truncate_sz("NIS Domain Name", +				sizeof(NetOurNISDomain), size); +			memcpy(&NetOurNISDomain, ext + 2, size);  			NetOurNISDomain[size] = 0;  		}  		break; @@ -235,7 +226,7 @@ static void BootpVendorFieldProcess (u8 * ext)  		break;  #endif  		/* Application layer fields */ -	case 43:		/* Vendor specific info - Not yet supported	*/ +	case 43:		/* Vendor specific info - Not yet supported */  		/*  		 * Binary information to exchange specific  		 * product information. @@ -245,7 +236,7 @@ static void BootpVendorFieldProcess (u8 * ext)  	}  } -static void BootpVendorProcess (u8 * ext, int size) +static void BootpVendorProcess(u8 *ext, int size)  {  	u8 *end = ext + size; @@ -259,11 +250,11 @@ static void BootpVendorProcess (u8 * ext, int size)  			ext += ext[1] + 2;  			if (ext <= end) -				BootpVendorFieldProcess (opt); +				BootpVendorFieldProcess(opt);  		}  	} -	debug("[BOOTP] Received fields: \n"); +	debug("[BOOTP] Received fields:\n");  	if (NetOurSubnetMask)  		debug("NetOurSubnetMask : %pI4\n", &NetOurSubnetMask); @@ -298,27 +289,28 @@ static void  BootpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  	     unsigned len)  { -	Bootp_t *bp; +	struct Bootp_t *bp;  	debug("got BOOTP packet (src=%d, dst=%d, len=%d want_len=%zu)\n", -		src, dest, len, sizeof (Bootp_t)); +		src, dest, len, sizeof(struct Bootp_t)); -	bp = (Bootp_t *)pkt; +	bp = (struct Bootp_t *)pkt; -	if (BootpCheckPkt(pkt, dest, src, len)) /* Filter out pkts we don't want */ +	/* Filter out pkts we don't want */ +	if (BootpCheckPkt(pkt, dest, src, len))  		return;  	/*  	 *	Got a good BOOTP reply.	 Copy the data into our variables.  	 */  #ifdef CONFIG_STATUS_LED -	status_led_set (STATUS_LED_BOOT, STATUS_LED_OFF); +	status_led_set(STATUS_LED_BOOT, STATUS_LED_OFF);  #endif  	BootpCopyNetParams(bp);		/* Store net parameters from reply */  	/* Retrieve extended information (we must parse the vendor area) */ -	if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC)) +	if (NetReadLong((ulong *)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))  		BootpVendorProcess((uchar *)&bp->bp_vend[4], len);  	NetSetTimeout(0, (thand_f *)0); @@ -337,11 +329,11 @@ static void  BootpTimeout(void)  {  	if (BootpTry >= TIMEOUT_COUNT) { -		puts ("\nRetry count exceeded; starting again\n"); -		NetStartAgain (); +		puts("\nRetry count exceeded; starting again\n"); +		NetStartAgain();  	} else { -		NetSetTimeout (TIMEOUT, BootpTimeout); -		BootpRequest (); +		NetSetTimeout(TIMEOUT, BootpTimeout); +		BootpRequest();  	}  } @@ -349,7 +341,8 @@ BootpTimeout(void)   *	Initialize BOOTP extension fields in the request.   */  #if defined(CONFIG_CMD_DHCP) -static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t RequestedIP) +static int DhcpExtended(u8 *e, int message_type, IPaddr_t ServerID, +			IPaddr_t RequestedIP)  {  	u8 *start = e;  	u8 *cnt; @@ -381,7 +374,7 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  	*e++ = (576 - 312 + OPT_SIZE) & 0xff;  	if (ServerID) { -		int tmp = ntohl (ServerID); +		int tmp = ntohl(ServerID);  		*e++ = 54;	/* ServerID */  		*e++ = 4; @@ -392,7 +385,7 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  	}  	if (RequestedIP) { -		int tmp = ntohl (RequestedIP); +		int tmp = ntohl(RequestedIP);  		*e++ = 50;	/* Requested IP */  		*e++ = 4; @@ -402,12 +395,13 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  		*e++ = tmp & 0xff;  	}  #if defined(CONFIG_BOOTP_SEND_HOSTNAME) -	if ((hostname = getenv ("hostname"))) { -		int hostnamelen = strlen (hostname); +	hostname = getenv("hostname"); +	if (hostname) { +		int hostnamelen = strlen(hostname);  		*e++ = 12;	/* Hostname */  		*e++ = hostnamelen; -		memcpy (e, hostname, hostnamelen); +		memcpy(e, hostname, hostnamelen);  		e += hostnamelen;  	}  #endif @@ -448,7 +442,8 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  #endif  #if defined(CONFIG_BOOTP_VENDOREX) -	if ((x = dhcp_vendorex_prep (e))) +	x = dhcp_vendorex_prep(e); +	if (x)  		return x - start;  #endif @@ -508,9 +503,9 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  #else  /* - *	Warning: no field size check - change CONFIG_BOOTP_* at your own risk! + * Warning: no field size check - change CONFIG_BOOTP_* at your own risk!   */ -static int BootpExtended (u8 * e) +static int BootpExtended(u8 *e)  {  	u8 *start = e; @@ -584,10 +579,10 @@ static int BootpExtended (u8 * e)  #endif  void -BootpRequest (void) +BootpRequest(void)  { -	volatile uchar *pkt, *iphdr; -	Bootp_t *bp; +	uchar *pkt, *iphdr; +	struct Bootp_t *bp;  	int ext_len, pktlen, iplen;  	bootstage_mark_name(BOOTSTAGE_ID_BOOTP_START, "bootp_start"); @@ -600,22 +595,22 @@ BootpRequest (void)  	int   reg;  	ulong tst1, tst2, sum, m_mask, m_value = 0; -	if (BootpTry ==0) { +	if (BootpTry == 0) {  		/* get our mac */  		eth_getenv_enetaddr("ethaddr", bi_enetaddr);  		debug("BootpRequest => Our Mac: "); -		for (reg=0; reg<6; reg++) -			debug("%x%c", bi_enetaddr[reg], reg==5 ? '\n' : ':'); +		for (reg = 0; reg < 6; reg++) +			debug("%x%c", bi_enetaddr[reg], reg == 5 ? '\n' : ':');  		/* Mac-Manipulation 2 get seed1 */ -		tst1=0; -		tst2=0; -		for (reg=2; reg<6; reg++) { +		tst1 = 0; +		tst2 = 0; +		for (reg = 2; reg < 6; reg++) {  			tst1 = tst1 << 8;  			tst1 = tst1 | bi_enetaddr[reg];  		} -		for (reg=0; reg<2; reg++) { +		for (reg = 0; reg < 2; reg++) {  			tst2 = tst2 | bi_enetaddr[reg];  			tst2 = tst2 << 8;  		} @@ -623,8 +618,8 @@ BootpRequest (void)  		seed1 = tst1^tst2;  		/* Mirror seed1*/ -		m_mask=0x1; -		for (reg=1;reg<=32;reg++) { +		m_mask = 0x1; +		for (reg = 1; reg <= 32; reg++) {  			m_value |= (m_mask & seed1);  			seed1 = seed1 >> 1;  			m_value = m_value << 1; @@ -634,44 +629,45 @@ BootpRequest (void)  	}  	/* Random Number Generator */ - -	for (reg=0;reg<=0;reg++) { +	for (reg = 0; reg <= 0; reg++) {  		sum = seed1 + seed2;  		if (sum < seed1 || sum < seed2)  			sum++;  		seed2 = seed1;  		seed1 = sum; -		if (BootpTry<=2) {	/* Start with max 1024 * 1ms */ +		if (BootpTry <= 2) {	/* Start with max 1024 * 1ms */  			sum = sum >> (22-BootpTry); -		} else {		/*After 3rd BOOTP request max 8192 * 1ms */ +		} else {	/*After 3rd BOOTP request max 8192 * 1ms */  			sum = sum >> 19;  		}  	} -	printf ("Random delay: %ld ms...\n", sum); -	for (reg=0; reg <sum; reg++) { +	printf("Random delay: %ld ms...\n", sum); +	for (reg = 0; reg < sum; reg++)  		udelay(1000); /*Wait 1ms*/ -	} +  #endif	/* CONFIG_BOOTP_RANDOM_DELAY */  	printf("BOOTP broadcast %d\n", ++BootpTry);  	pkt = NetTxPacket; -	memset ((void*)pkt, 0, PKTSIZE); +	memset((void *)pkt, 0, PKTSIZE);  	pkt += NetSetEther(pkt, NetBcastAddr, PROT_IP);  	/* -	 * Next line results in incorrect packet size being transmitted, resulting -	 * in errors in some DHCP servers, reporting missing bytes.  Size must be -	 * set in packet header after extension length has been determined. +	 * Next line results in incorrect packet size being transmitted, +	 * resulting in errors in some DHCP servers, reporting missing bytes. +	 * Size must be set in packet header after extension length has been +	 * determined.  	 * C. Hallinan, DS4.COM, Inc.  	 */ -	/* NetSetIP(pkt, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, sizeof (Bootp_t)); */ +	/* NetSetIP(pkt, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, +		sizeof (struct Bootp_t)); */  	iphdr = pkt;	/* We need this later for NetSetIP() */  	pkt += IP_HDR_SIZE; -	bp = (Bootp_t *)pkt; +	bp = (struct Bootp_t *)pkt;  	bp->bp_op = OP_BOOTREQUEST;  	bp->bp_htype = HWT_ETHER;  	bp->bp_hlen = HWL_ETHER; @@ -681,8 +677,8 @@ BootpRequest (void)  	NetWriteIP(&bp->bp_yiaddr, 0);  	NetWriteIP(&bp->bp_siaddr, 0);  	NetWriteIP(&bp->bp_giaddr, 0); -	memcpy (bp->bp_chaddr, NetOurEther, 6); -	copy_filename (bp->bp_file, BootFile, sizeof(bp->bp_file)); +	memcpy(bp->bp_chaddr, NetOurEther, 6); +	copy_filename(bp->bp_file, BootFile, sizeof(bp->bp_file));  	/* Request additional information from the BOOTP/DHCP server */  #if defined(CONFIG_CMD_DHCP) @@ -707,7 +703,8 @@ BootpRequest (void)  	 * Calculate proper packet lengths taking into account the  	 * variable size of the options field  	 */ -	pktlen = ((int)(pkt-NetTxPacket)) + BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + ext_len; +	pktlen = ((int)(pkt-NetTxPacket)) + BOOTP_HDR_SIZE - +		sizeof(bp->bp_vend) + ext_len;  	iplen = BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + ext_len;  	NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);  	NetSetTimeout(SELECT_TIMEOUT, BootpTimeout); @@ -722,7 +719,7 @@ BootpRequest (void)  }  #if defined(CONFIG_CMD_DHCP) -static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp) +static void DhcpOptionsProcess(uchar *popt, struct Bootp_t *bp)  {  	uchar *end = popt + BOOTP_HDR_SIZE;  	int oplen, size; @@ -734,50 +731,51 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  		oplen = *(popt + 1);  		switch (*popt) {  		case 1: -			NetCopyIP (&NetOurSubnetMask, (popt + 2)); +			NetCopyIP(&NetOurSubnetMask, (popt + 2));  			break;  #if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_TIMEOFFSET)  		case 2:		/* Time offset	*/  			to_ptr = &NetTimeOffset; -			NetCopyLong ((ulong *)to_ptr, (ulong *)(popt + 2)); -			NetTimeOffset = ntohl (NetTimeOffset); +			NetCopyLong((ulong *)to_ptr, (ulong *)(popt + 2)); +			NetTimeOffset = ntohl(NetTimeOffset);  			break;  #endif  		case 3: -			NetCopyIP (&NetOurGatewayIP, (popt + 2)); +			NetCopyIP(&NetOurGatewayIP, (popt + 2));  			break;  		case 6: -			NetCopyIP (&NetOurDNSIP, (popt + 2)); +			NetCopyIP(&NetOurDNSIP, (popt + 2));  #if defined(CONFIG_BOOTP_DNS2) -			if (*(popt + 1) > 4) { -				NetCopyIP (&NetOurDNS2IP, (popt + 2 + 4)); -			} +			if (*(popt + 1) > 4) +				NetCopyIP(&NetOurDNS2IP, (popt + 2 + 4));  #endif  			break;  		case 12: -			size = truncate_sz ("Host Name", sizeof (NetOurHostName), oplen); -			memcpy (&NetOurHostName, popt + 2, size); +			size = truncate_sz("Host Name", +				sizeof(NetOurHostName), oplen); +			memcpy(&NetOurHostName, popt + 2, size);  			NetOurHostName[size] = 0;  			break;  		case 15:	/* Ignore Domain Name Option */  			break;  		case 17: -			size = truncate_sz ("Root Path", sizeof (NetOurRootPath), oplen); -			memcpy (&NetOurRootPath, popt + 2, size); +			size = truncate_sz("Root Path", +				sizeof(NetOurRootPath), oplen); +			memcpy(&NetOurRootPath, popt + 2, size);  			NetOurRootPath[size] = 0;  			break;  #if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)  		case 42:	/* NTP server IP */ -			NetCopyIP (&NetNtpServerIP, (popt + 2)); +			NetCopyIP(&NetNtpServerIP, (popt + 2));  			break;  #endif  		case 51: -			NetCopyLong (&dhcp_leasetime, (ulong *) (popt + 2)); +			NetCopyLong(&dhcp_leasetime, (ulong *) (popt + 2));  			break;  		case 53:	/* Ignore Message Type Option */  			break;  		case 54: -			NetCopyIP (&NetDHCPServerIP, (popt + 2)); +			NetCopyIP(&NetDHCPServerIP, (popt + 2));  			break;  		case 58:	/* Ignore Renewal Time Option */  			break; @@ -792,7 +790,7 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  			 * pass the bootp packet pointer into here as the  			 * second arg  			 */ -			size = truncate_sz ("Opt Boot File", +			size = truncate_sz("Opt Boot File",  					    sizeof(bp->bp_file),  					    oplen);  			if (bp->bp_file[0] == '\0' && size > 0) { @@ -813,10 +811,11 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  			break;  		default:  #if defined(CONFIG_BOOTP_VENDOREX) -			if (dhcp_vendorex_proc (popt)) +			if (dhcp_vendorex_proc(popt))  				break;  #endif -			printf ("*** Unhandled DHCP Option in OFFER/ACK: %d\n", *popt); +			printf("*** Unhandled DHCP Option in OFFER/ACK:" +				" %d\n", *popt);  			break;  		}  		popt += oplen + 2;	/* Process next option */ @@ -825,42 +824,42 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  static int DhcpMessageType(unsigned char *popt)  { -	if (NetReadLong((ulong*)popt) != htonl(BOOTP_VENDOR_MAGIC)) +	if (NetReadLong((ulong *)popt) != htonl(BOOTP_VENDOR_MAGIC))  		return -1;  	popt += 4; -	while ( *popt != 0xff ) { -		if ( *popt == 53 )	/* DHCP Message Type */ +	while (*popt != 0xff) { +		if (*popt == 53)	/* DHCP Message Type */  			return *(popt + 2);  		popt += *(popt + 1) + 2;	/* Scan through all options */  	}  	return -1;  } -static void DhcpSendRequestPkt(Bootp_t *bp_offer) +static void DhcpSendRequestPkt(struct Bootp_t *bp_offer)  { -	volatile uchar *pkt, *iphdr; -	Bootp_t *bp; +	uchar *pkt, *iphdr; +	struct Bootp_t *bp;  	int pktlen, iplen, extlen;  	IPaddr_t OfferedIP;  	debug("DhcpSendRequestPkt: Sending DHCPREQUEST\n");  	pkt = NetTxPacket; -	memset ((void*)pkt, 0, PKTSIZE); +	memset((void *)pkt, 0, PKTSIZE);  	pkt += NetSetEther(pkt, NetBcastAddr, PROT_IP); -	iphdr = pkt;		/* We'll need this later to set proper pkt size */ +	iphdr = pkt;	/* We'll need this later to set proper pkt size */  	pkt += IP_HDR_SIZE; -	bp = (Bootp_t *)pkt; +	bp = (struct Bootp_t *)pkt;  	bp->bp_op = OP_BOOTREQUEST;  	bp->bp_htype = HWT_ETHER;  	bp->bp_hlen = HWL_ETHER;  	bp->bp_hops = 0;  	bp->bp_secs = htons(get_timer(0) / 1000); -	/* Do not set the client IP, your IP, or server IP yet, since it hasn't been ACK'ed by -	 * the server yet */ +	/* Do not set the client IP, your IP, or server IP yet, since it +	 * hasn't been ACK'ed by the server yet */  	/*  	 * RFC3046 requires Relay Agents to discard packets with @@ -868,7 +867,7 @@ static void DhcpSendRequestPkt(Bootp_t *bp_offer)  	 */  	NetWriteIP(&bp->bp_giaddr, 0); -	memcpy (bp->bp_chaddr, NetOurEther, 6); +	memcpy(bp->bp_chaddr, NetOurEther, 6);  	/*  	 * ID is the id of the OFFER packet @@ -882,9 +881,11 @@ static void DhcpSendRequestPkt(Bootp_t *bp_offer)  	/* Copy offered IP into the parameters request list */  	NetCopyIP(&OfferedIP, &bp_offer->bp_yiaddr); -	extlen = DhcpExtended((u8 *)bp->bp_vend, DHCP_REQUEST, NetDHCPServerIP, OfferedIP); +	extlen = DhcpExtended((u8 *)bp->bp_vend, DHCP_REQUEST, +		NetDHCPServerIP, OfferedIP); -	pktlen = ((int)(pkt-NetTxPacket)) + BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + extlen; +	pktlen = ((int)(pkt-NetTxPacket)) + BOOTP_HDR_SIZE - +		sizeof(bp->bp_vend) + extlen;  	iplen = BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + extlen;  	NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen); @@ -902,36 +903,38 @@ static void  DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  	    unsigned len)  { -	Bootp_t *bp = (Bootp_t *)pkt; +	struct Bootp_t *bp = (struct Bootp_t *)pkt;  	debug("DHCPHandler: got packet: (src=%d, dst=%d, len=%d) state: %d\n",  		src, dest, len, dhcp_state); -	if (BootpCheckPkt(pkt, dest, src, len)) /* Filter out pkts we don't want */ +	/* Filter out pkts we don't want */ +	if (BootpCheckPkt(pkt, dest, src, len))  		return; -	debug("DHCPHandler: got DHCP packet: (src=%d, dst=%d, len=%d) state: %d\n", -		src, dest, len, dhcp_state); +	debug("DHCPHandler: got DHCP packet: (src=%d, dst=%d, len=%d) state:" +		" %d\n", src, dest, len, dhcp_state);  	switch (dhcp_state) {  	case SELECTING:  		/*  		 * Wait an appropriate time for any potential DHCPOFFER packets -		 * to arrive.  Then select one, and generate DHCPREQUEST response. -		 * If filename is in format we recognize, assume it is a valid -		 * OFFER from a server we want. +		 * to arrive.  Then select one, and generate DHCPREQUEST +		 * response.  If filename is in format we recognize, assume it +		 * is a valid OFFER from a server we want.  		 */  		debug("DHCP: state=SELECTING bp_file: \"%s\"\n", bp->bp_file);  #ifdef CONFIG_SYS_BOOTFILE_PREFIX  		if (strncmp(bp->bp_file,  			    CONFIG_SYS_BOOTFILE_PREFIX, -			    strlen(CONFIG_SYS_BOOTFILE_PREFIX)) == 0 ) { +			    strlen(CONFIG_SYS_BOOTFILE_PREFIX)) == 0) {  #endif	/* CONFIG_SYS_BOOTFILE_PREFIX */  			debug("TRANSITIONING TO REQUESTING STATE\n");  			dhcp_state = REQUESTING; -			if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC)) +			if (NetReadLong((ulong *)&bp->bp_vend[0]) == +						htonl(BOOTP_VENDOR_MAGIC))  				DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);  			NetSetTimeout(TIMEOUT, BootpTimeout); @@ -945,14 +948,17 @@ DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  	case REQUESTING:  		debug("DHCP State: REQUESTING\n"); -		if ( DhcpMessageType((u8 *)bp->bp_vend) == DHCP_ACK ) { -			if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC)) +		if (DhcpMessageType((u8 *)bp->bp_vend) == DHCP_ACK) { +			if (NetReadLong((ulong *)&bp->bp_vend[0]) == +						htonl(BOOTP_VENDOR_MAGIC))  				DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp); -			BootpCopyNetParams(bp); /* Store net params from reply */ +			/* Store net params from reply */ +			BootpCopyNetParams(bp);  			dhcp_state = BOUND; -			printf ("DHCP client bound to address %pI4\n", &NetOurIP); +			printf("DHCP client bound to address %pI4\n", +				&NetOurIP);  			bootstage_mark_name(BOOTSTAGE_ID_BOOTP_STOP, -					    "bootp_stop"); +				"bootp_stop");  			net_auto_load();  			return; @@ -962,7 +968,7 @@ DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  		/* DHCP client bound to address */  		break;  	default: -		puts ("DHCP: INVALID STATE\n"); +		puts("DHCP: INVALID STATE\n");  		break;  	} diff --git a/net/bootp.h b/net/bootp.h index 50625abea..ce7373454 100644 --- a/net/bootp.h +++ b/net/bootp.h @@ -10,7 +10,7 @@  #define __BOOTP_H__  #ifndef __NET_H__ -#include	<net.h> +#include <net.h>  #endif /* __NET_H__ */  /**********************************************************************/ @@ -19,35 +19,39 @@   *	BOOTP header.   */  #if defined(CONFIG_CMD_DHCP) -#define OPT_SIZE 312	/* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */ +/* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */ +#define OPT_SIZE 312 +#if defined(CONFIG_BOOTP_VENDOREX) +extern u8 *dhcp_vendorex_prep(u8 *e); /*rtn new e after add own opts. */ +extern u8 *dhcp_vendorex_proc(u8 *e); /*rtn next e if mine,else NULL  */ +#endif  #else  #define OPT_SIZE 64  #endif -typedef struct -{ -	uchar		bp_op;		/* Operation				*/ +struct Bootp_t { +	uchar		bp_op;		/* Operation			*/  # define OP_BOOTREQUEST	1  # define OP_BOOTREPLY	2 -	uchar		bp_htype;	/* Hardware type			*/ +	uchar		bp_htype;	/* Hardware type		*/  # define HWT_ETHER	1 -	uchar		bp_hlen;	/* Hardware address length		*/ +	uchar		bp_hlen;	/* Hardware address length	*/  # define HWL_ETHER	6 -	uchar		bp_hops;	/* Hop count (gateway thing)		*/ -	ulong		bp_id;		/* Transaction ID			*/ -	ushort		bp_secs;	/* Seconds since boot			*/ -	ushort		bp_spare1;	/* Alignment				*/ -	IPaddr_t	bp_ciaddr;	/* Client IP address			*/ -	IPaddr_t	bp_yiaddr;	/* Your (client) IP address		*/ -	IPaddr_t	bp_siaddr;	/* Server IP address			*/ -	IPaddr_t	bp_giaddr;	/* Gateway IP address			*/ -	uchar		bp_chaddr[16];	/* Client hardware address		*/ -	char		bp_sname[64];	/* Server host name			*/ -	char		bp_file[128];	/* Boot file name			*/ -	char		bp_vend[OPT_SIZE];	/* Vendor information			*/ -}	Bootp_t; +	uchar		bp_hops;	/* Hop count (gateway thing)	*/ +	ulong		bp_id;		/* Transaction ID		*/ +	ushort		bp_secs;	/* Seconds since boot		*/ +	ushort		bp_spare1;	/* Alignment			*/ +	IPaddr_t	bp_ciaddr;	/* Client IP address		*/ +	IPaddr_t	bp_yiaddr;	/* Your (client) IP address	*/ +	IPaddr_t	bp_siaddr;	/* Server IP address		*/ +	IPaddr_t	bp_giaddr;	/* Gateway IP address		*/ +	uchar		bp_chaddr[16];	/* Client hardware address	*/ +	char		bp_sname[64];	/* Server host name		*/ +	char		bp_file[128];	/* Boot file name		*/ +	char		bp_vend[OPT_SIZE];	/* Vendor information	*/ +}; -#define BOOTP_HDR_SIZE	sizeof (Bootp_t) +#define BOOTP_HDR_SIZE	sizeof(struct Bootp_t)  #define BOOTP_SIZE	(ETHER_HDR_SIZE + IP_HDR_SIZE + BOOTP_HDR_SIZE)  /**********************************************************************/ @@ -56,16 +60,16 @@ typedef struct   */  /* bootp.c */ -extern ulong	BootpID;		/* ID of cur BOOTP request		*/ -extern char	BootFile[128];		/* Boot file name			*/ +extern ulong	BootpID;		/* ID of cur BOOTP request	*/ +extern char	BootFile[128];		/* Boot file name		*/  extern int	BootpTry;  #ifdef CONFIG_BOOTP_RANDOM_DELAY -extern ulong	seed1, seed2;		/* seed for random BOOTP delay		*/ +extern ulong	seed1, seed2;		/* seed for random BOOTP delay	*/  #endif  /* Send a BOOTP request */ -extern void	BootpRequest (void); +extern void BootpRequest(void);  /****************** DHCP Support *********************/  extern void DhcpRequest(void); @@ -82,14 +82,12 @@ int cpu_eth_init(bd_t *bis) __attribute__((weak, alias("__def_eth_init")));  int board_eth_init(bd_t *bis) __attribute__((weak, alias("__def_eth_init")));  #ifdef CONFIG_API -extern void (*push_packet)(volatile void *, int); -  static struct {  	uchar data[PKTSIZE];  	int length;  } eth_rcv_bufs[PKTBUFSRX]; -static unsigned int eth_rcv_current = 0, eth_rcv_last = 0; +static unsigned int eth_rcv_current, eth_rcv_last;  #endif  static struct eth_device *eth_devices, *eth_current; @@ -141,11 +139,10 @@ struct eth_device *eth_get_dev_by_index(int index)  	return target_dev;  } -int eth_get_dev_index (void) +int eth_get_dev_index(void)  { -	if (!eth_current) { +	if (!eth_current)  		return -1; -	}  	return eth_current->index;  } @@ -176,7 +173,7 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,  	if (memcmp(env_enetaddr, "\0\0\0\0\0\0", 6)) {  		if (memcmp(dev->enetaddr, "\0\0\0\0\0\0", 6) && -			memcmp(dev->enetaddr, env_enetaddr, 6)) { +				memcmp(dev->enetaddr, env_enetaddr, 6)) {  			printf("\nWarning: %s MAC addresses don't match:\n",  				dev->name);  			printf("Address in SROM is         %pM\n", @@ -189,10 +186,9 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,  	}  	if (dev->write_hwaddr && -		!eth_mac_skip(eth_number) && -		is_valid_ether_addr(dev->enetaddr)) { +			!eth_mac_skip(eth_number) && +			is_valid_ether_addr(dev->enetaddr))  		ret = dev->write_hwaddr(dev); -	}  	return ret;  } @@ -200,7 +196,7 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,  int eth_register(struct eth_device *dev)  {  	struct eth_device *d; -	static int index = 0; +	static int index;  	assert(strlen(dev->name) < sizeof(dev->name)); @@ -208,7 +204,7 @@ int eth_register(struct eth_device *dev)  		eth_current = eth_devices = dev;  		eth_current_changed();  	} else { -		for (d=eth_devices; d->next!=eth_devices; d=d->next) +		for (d = eth_devices; d->next != eth_devices; d = d->next)  			;  		d->next = dev;  	} @@ -249,6 +245,14 @@ int eth_unregister(struct eth_device *dev)  	return 0;  } +static void eth_env_init(bd_t *bis) +{ +	const char *s; + +	if ((s = getenv("bootfile")) != NULL) +		copy_filename(BootFile, s, sizeof(BootFile)); +} +  int eth_initialize(bd_t *bis)  {  	int num_devices = 0; @@ -264,6 +268,8 @@ int eth_initialize(bd_t *bis)  	phy_init();  #endif +	eth_env_init(bis); +  	/*  	 * If board-specific initialization exists, call it.  	 * If not, call a CPU-specific one @@ -278,36 +284,37 @@ int eth_initialize(bd_t *bis)  		printf("Net Initialization Skipped\n");  	if (!eth_devices) { -		puts ("No ethernet found.\n"); +		puts("No ethernet found.\n");  		bootstage_error(BOOTSTAGE_ID_NET_ETH_START);  	} else {  		struct eth_device *dev = eth_devices; -		char *ethprime = getenv ("ethprime"); +		char *ethprime = getenv("ethprime");  		bootstage_mark(BOOTSTAGE_ID_NET_ETH_INIT);  		do {  			if (dev->index) -				puts (", "); +				puts(", ");  			printf("%s", dev->name); -			if (ethprime && strcmp (dev->name, ethprime) == 0) { +			if (ethprime && strcmp(dev->name, ethprime) == 0) {  				eth_current = dev; -				puts (" [PRIME]"); +				puts(" [PRIME]");  			}  			if (strchr(dev->name, ' ')) -				puts("\nWarning: eth device name has a space!\n"); +				puts("\nWarning: eth device name has a space!" +					"\n");  			if (eth_write_hwaddr(dev, "eth", dev->index))  				puts("\nWarning: failed to set MAC address\n");  			dev = dev->next;  			num_devices++; -		} while(dev != eth_devices); +		} while (dev != eth_devices);  		eth_current_changed(); -		putc ('\n'); +		putc('\n');  	}  	return num_devices; @@ -318,9 +325,9 @@ int eth_initialize(bd_t *bis)   * mcast_addr: multicast ipaddr from which multicast Mac is made   * join: 1=join, 0=leave.   */ -int eth_mcast_join( IPaddr_t mcast_ip, u8 join) +int eth_mcast_join(IPaddr_t mcast_ip, u8 join)  { - u8 mcast_mac[6]; +	u8 mcast_mac[6];  	if (!eth_current || !eth_current->mcast)  		return -1;  	mcast_mac[5] = htonl(mcast_ip) & 0xff; @@ -337,7 +344,7 @@ int eth_mcast_join( IPaddr_t mcast_ip, u8 join)   * some other adapter -- hash tables   */  #define CRCPOLY_LE 0xedb88320 -u32 ether_crc (size_t len, unsigned char const *p) +u32 ether_crc(size_t len, unsigned char const *p)  {  	int i;  	u32 crc; @@ -364,7 +371,7 @@ int eth_init(bd_t *bis)  	struct eth_device *old_current, *dev;  	if (!eth_current) { -		puts ("No ethernet found.\n"); +		puts("No ethernet found.\n");  		return -1;  	} @@ -384,7 +391,7 @@ int eth_init(bd_t *bis)  	do {  		debug("Trying %s\n", eth_current->name); -		if (eth_current->init(eth_current,bis) >= 0) { +		if (eth_current->init(eth_current, bis) >= 0) {  			eth_current->state = ETH_STATE_ACTIVE;  			return 0; @@ -407,7 +414,7 @@ void eth_halt(void)  	eth_current->state = ETH_STATE_PASSIVE;  } -int eth_send(volatile void *packet, int length) +int eth_send(void *packet, int length)  {  	if (!eth_current)  		return -1; @@ -424,9 +431,9 @@ int eth_rx(void)  }  #ifdef CONFIG_API -static void eth_save_packet(volatile void *packet, int length) +static void eth_save_packet(void *packet, int length)  { -	volatile char *p = packet; +	char *p = packet;  	int i;  	if ((eth_rcv_last+1) % PKTBUFSRX == eth_rcv_current) @@ -442,9 +449,9 @@ static void eth_save_packet(volatile void *packet, int length)  	eth_rcv_last = (eth_rcv_last + 1) % PKTBUFSRX;  } -int eth_receive(volatile void *packet, int length) +int eth_receive(void *packet, int length)  { -	volatile char *p = packet; +	char *p = packet;  	void *pp = push_packet;  	int i; @@ -472,38 +479,36 @@ int eth_receive(volatile void *packet, int length)  void eth_try_another(int first_restart)  { -	static struct eth_device *first_failed = NULL; +	static struct eth_device *first_failed;  	char *ethrotate;  	/*  	 * Do not rotate between network interfaces when  	 * 'ethrotate' variable is set to 'no'.  	 */ -	if (((ethrotate = getenv ("ethrotate")) != NULL) && -	    (strcmp(ethrotate, "no") == 0)) +	ethrotate = getenv("ethrotate"); +	if ((ethrotate != NULL) && (strcmp(ethrotate, "no") == 0))  		return;  	if (!eth_current)  		return; -	if (first_restart) { +	if (first_restart)  		first_failed = eth_current; -	}  	eth_current = eth_current->next;  	eth_current_changed(); -	if (first_failed == eth_current) { +	if (first_failed == eth_current)  		NetRestartWrap = 1; -	}  }  void eth_set_current(void)  { -	static char *act = NULL; -	static int  env_changed_id = 0; -	struct eth_device* old_current; +	static char *act; +	static int  env_changed_id; +	struct eth_device *old_current;  	int	env_id;  	if (!eth_current)	/* XXX no current */ @@ -526,7 +531,7 @@ void eth_set_current(void)  	eth_current_changed();  } -char *eth_get_name (void) +char *eth_get_name(void)  { -	return (eth_current ? eth_current->name : "unknown"); +	return eth_current ? eth_current->name : "unknown";  } @@ -77,6 +77,7 @@  #include <common.h>  #include <watchdog.h>  #include <command.h> +#include <linux/compiler.h>  #include <net.h>  #include "bootp.h"  #include "tftp.h" @@ -152,7 +153,7 @@ IPaddr_t	NetOurIP;  /* Server IP addr (0 = unknown) */  IPaddr_t	NetServerIP;  /* Current receive packet */ -volatile uchar *NetRxPacket; +uchar *NetRxPacket;  /* Current rx packet length */  int		NetRxPacketLen;  /* IP packet ID */ @@ -161,7 +162,7 @@ unsigned	NetIPID;  uchar		NetBcastAddr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };  uchar		NetEtherNullAddr[6];  #ifdef CONFIG_API -void		(*push_packet)(volatile void *, int len) = 0; +void		(*push_packet)(void *, int len) = 0;  #endif  #if defined(CONFIG_CMD_CDP)  /* Ethernet bcast address */ @@ -203,15 +204,10 @@ IPaddr_t	NetNtpServerIP;  int		NetTimeOffset;  #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]; +uchar PktBuf[(PKTBUFSRX+1) * PKTSIZE_ALIGN + PKTALIGN];  /* Receive packet */ -volatile uchar *NetRxPackets[PKTBUFSRX]; +uchar *NetRxPackets[PKTBUFSRX];  /* Current RX packet handler */  static rxhand_f *packetHandler; @@ -225,7 +221,7 @@ static ulong	timeStart;  /* Current timeout value */  static ulong	timeDelta;  /* THE transmit packet */ -volatile uchar *NetTxPacket; +uchar *NetTxPacket;  static int net_check_prereq(enum proto_t protocol); @@ -246,7 +242,7 @@ int		NetArpWaitTry;  void ArpRequest(void)  { -	volatile uchar *pkt; +	uchar *pkt;  	ARP_t *arp;  	debug("ARP broadcast %d\n", NetArpWaitTry); @@ -342,13 +338,11 @@ void net_auto_load(void)  static void NetInitLoop(enum proto_t protocol)  {  	static int env_changed_id; -	bd_t *bd = gd->bd;  	int env_id = get_env_id();  	/* update only when the environment has changed */  	if (env_changed_id != env_id) {  		NetOurIP = getenv_IPaddr("ipaddr"); -		NetCopyIP(&bd->bi_ip_addr, &NetOurIP);  		NetOurGatewayIP = getenv_IPaddr("gatewayip");  		NetOurSubnetMask = getenv_IPaddr("netmask");  		NetServerIP = getenv_IPaddr("serverip"); @@ -527,10 +521,7 @@ restart:  	for (;;) {  		WATCHDOG_RESET();  #ifdef CONFIG_SHOW_ACTIVITY -		{ -			extern void show_activity(int arg); -			show_activity(1); -		} +		show_activity(1);  #endif  		/*  		 *	Check the ethernet for a new packet.  The ethernet @@ -705,7 +696,7 @@ NetSetTimeout(ulong iv, thand_f *f)  void -NetSendPacket(volatile uchar *pkt, int len) +NetSendPacket(uchar *pkt, int len)  {  	(void) eth_send(pkt, len);  } @@ -768,8 +759,8 @@ static ushort PingSeqNo;  int PingSend(void)  {  	static uchar mac[6]; -	volatile IP_t *ip; -	volatile ushort *s; +	IP_t *ip; +	ushort *s;  	uchar *pkt;  	/* XXX always send arp request */ @@ -784,7 +775,7 @@ int PingSend(void)  	pkt = NetArpWaitTxPacket;  	pkt += NetSetEther(pkt, mac, PROT_IP); -	ip = (volatile IP_t *)pkt; +	ip = (IP_t *)pkt;  	/*  	 * Construct an IP and ICMP header. @@ -936,9 +927,9 @@ static ushort CDP_compute_csum(const uchar *buff, ushort len)  int CDPSendTrigger(void)  { -	volatile uchar *pkt; -	volatile ushort *s; -	volatile ushort *cp; +	uchar *pkt; +	ushort *s; +	ushort *cp;  	Ethernet_t *et;  	int len;  	ushort chksum; @@ -965,7 +956,7 @@ int CDPSendTrigger(void)  	/* CDP header */  	*pkt++ = 0x02;				/* CDP version 2 */  	*pkt++ = 180;				/* TTL */ -	s = (volatile ushort *)pkt; +	s = (ushort *)pkt;  	cp = s;  	/* checksum (0 for later calculation) */  	*s++ = htons(0); @@ -1103,8 +1094,8 @@ CDPHandler(const uchar *pkt, unsigned len)  	 * output a warning  	 */  	if (pkt[0] != 0x02) -		printf("** WARNING: CDP packet received with a protocol version %d > 2\n", -				pkt[0] & 0xff); +		printf("**WARNING: CDP packet received with a protocol version " +				"%d > 2\n", pkt[0] & 0xff);  	if (CDP_compute_csum(pkt, len) != 0)  		return; @@ -1239,7 +1230,7 @@ struct hole {  static IP_t *__NetDefragment(IP_t *ip, int *lenp)  { -	static uchar pkt_buff[IP_PKTSIZE] __attribute__((aligned(PKTALIGN))); +	static uchar pkt_buff[IP_PKTSIZE] __aligned(PKTALIGN);  	static u16 first_hole, total_len;  	struct hole *payload, *thisfrag, *h, *newh;  	IP_t *localip = (IP_t *)pkt_buff; @@ -1439,7 +1430,7 @@ static void receive_icmp(IP_t *ip, int len, IPaddr_t src_ip, Ethernet_t *et)  }  void -NetReceive(volatile uchar *inpkt, int len) +NetReceive(uchar *inpkt, int len)  {  	Ethernet_t *et;  	IP_t	*ip; @@ -1611,6 +1602,7 @@ NetReceive(volatile uchar *inpkt, int len)  			/* matched waiting packet's address */  			if (tmp == NetArpWaitReplyIP) {  				debug("Got it\n"); +  				/* save address for later use */  				memcpy(NetArpWaitPacketMAC,  				       &arp->ar_data[0], 6); @@ -1619,7 +1611,8 @@ NetReceive(volatile uchar *inpkt, int len)  				(*packetHandler)(0, 0, 0, 0, 0);  #endif  				/* modify header, and transmit it */ -				memcpy(((Ethernet_t *)NetArpWaitTxPacket)->et_dest, NetArpWaitPacketMAC, 6); +				memcpy(((Ethernet_t *)NetArpWaitTxPacket)-> +					et_dest, NetArpWaitPacketMAC, 6);  				(void) eth_send(NetArpWaitTxPacket,  						NetArpWaitTxPacketSize); @@ -1856,7 +1849,6 @@ common:  	case CDP:  	case DHCP:  		if (memcmp(NetOurEther, "\0\0\0\0\0\0", 6) == 0) { -			extern int eth_get_dev_index(void);  			int num = eth_get_dev_index();  			switch (num) { @@ -1918,7 +1910,7 @@ NetEthHdrSize(void)  }  int -NetSetEther(volatile uchar *xet, uchar * addr, uint prot) +NetSetEther(uchar *xet, uchar * addr, uint prot)  {  	Ethernet_t *et = (Ethernet_t *)xet;  	ushort myvlanid; @@ -1943,7 +1935,7 @@ NetSetEther(volatile uchar *xet, uchar * addr, uint prot)  }  void -NetSetIP(volatile uchar *xip, IPaddr_t dest, int dport, int sport, int len) +NetSetIP(uchar *xip, IPaddr_t dest, int dport, int sport, int len)  {  	IP_t *ip = (IP_t *)xip; @@ -33,8 +33,8 @@  #define NFS_RETRY_COUNT 30  #define NFS_TIMEOUT 2000UL -static int fs_mounted = 0; -static unsigned long rpc_id = 0; +static int fs_mounted; +static unsigned long rpc_id;  static int nfs_offset = -1;  static int nfs_len; @@ -61,14 +61,14 @@ static char *nfs_filename;  static char *nfs_path;  static char nfs_path_buff[2048]; -static __inline__ int -store_block (uchar * src, unsigned offset, unsigned len) +static inline int +store_block(uchar *src, unsigned offset, unsigned len)  {  	ulong newsize = offset + len;  #ifdef CONFIG_SYS_DIRECT_FLASH_NFS  	int i, rc = 0; -	for (i=0; i<CONFIG_SYS_MAX_FLASH_BANKS; i++) { +	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {  		/* start address in flash? */  		if (load_addr + offset >= flash_info[i].start[0]) {  			rc = 1; @@ -77,15 +77,15 @@ store_block (uchar * src, unsigned offset, unsigned len)  	}  	if (rc) { /* Flash is destination for this packet */ -		rc = flash_write ((uchar *)src, (ulong)(load_addr+offset), len); +		rc = flash_write((uchar *)src, (ulong)(load_addr+offset), len);  		if (rc) { -			flash_perror (rc); +			flash_perror(rc);  			return -1;  		}  	} else  #endif /* CONFIG_SYS_DIRECT_FLASH_NFS */  	{ -		(void)memcpy ((void *)(load_addr + offset), src, len); +		(void)memcpy((void *)(load_addr + offset), src, len);  	}  	if (NetBootFileXferSize < (offset+len)) @@ -94,7 +94,7 @@ store_block (uchar * src, unsigned offset, unsigned len)  }  static char* -basename (char *path) +basename(char *path)  {  	char *fname; @@ -110,11 +110,11 @@ basename (char *path)  }  static char* -dirname (char *path) +dirname(char *path)  {  	char *fname; -	fname = basename (path); +	fname = basename(path);  	--fname;  	*fname = '\0';  	return path; @@ -123,14 +123,14 @@ dirname (char *path)  /**************************************************************************  RPC_ADD_CREDENTIALS - Add RPC authentication/verifier entries  **************************************************************************/ -static long *rpc_add_credentials (long *p) +static long *rpc_add_credentials(long *p)  {  	int hl;  	int hostnamelen;  	char hostname[256]; -	strcpy (hostname, ""); -	hostnamelen=strlen (hostname); +	strcpy(hostname, ""); +	hostnamelen = strlen(hostname);  	/* Here's the executive summary on authentication requirements of the  	 * various NFS server implementations:	Linux accepts both AUTH_NONE @@ -148,10 +148,9 @@ static long *rpc_add_credentials (long *p)  	*p++ = htonl(hl+20);		/* auth length */  	*p++ = htonl(0);		/* stamp */  	*p++ = htonl(hostnamelen);	/* hostname string */ -	if (hostnamelen & 3) { +	if (hostnamelen & 3)  		*(p + hostnamelen / 4) = 0; /* add zero padding */ -	} -	memcpy (p, hostname, hostnamelen); +	memcpy(p, hostname, hostnamelen);  	p += hl / 4;  	*p++ = 0;			/* uid */  	*p++ = 0;			/* gid */ @@ -168,7 +167,7 @@ static long *rpc_add_credentials (long *p)  RPC_LOOKUP - Lookup RPC Port numbers  **************************************************************************/  static void -rpc_req (int rpc_prog, int rpc_proc, uint32_t *data, int datalen) +rpc_req(int rpc_prog, int rpc_proc, uint32_t *data, int datalen)  {  	struct rpc_t pkt;  	unsigned long id; @@ -186,11 +185,12 @@ rpc_req (int rpc_prog, int rpc_proc, uint32_t *data, int datalen)  	p = (uint32_t *)&(pkt.u.call.data);  	if (datalen) -		memcpy ((char *)p, (char *)data, datalen*sizeof(uint32_t)); +		memcpy((char *)p, (char *)data, datalen*sizeof(uint32_t));  	pktlen = (char *)p + datalen*sizeof(uint32_t) - (char *)&pkt; -	memcpy ((char *)NetTxPacket + NetEthHdrSize() + IP_HDR_SIZE, (char *)&pkt, pktlen); +	memcpy((char *)NetTxPacket + NetEthHdrSize() + IP_HDR_SIZE, +		(char *)&pkt, pktlen);  	if (rpc_prog == PROG_PORTMAP)  		sport = SUNRPC_PORT; @@ -199,14 +199,15 @@ rpc_req (int rpc_prog, int rpc_proc, uint32_t *data, int datalen)  	else  		sport = NfsSrvNfsPort; -	NetSendUDPPacket (NetServerEther, NfsServerIP, sport, NfsOurPort, pktlen); +	NetSendUDPPacket(NetServerEther, NfsServerIP, sport, NfsOurPort, +		pktlen);  }  /**************************************************************************  RPC_LOOKUP - Lookup RPC Port numbers  **************************************************************************/  static void -rpc_lookup_req (int prog, int ver) +rpc_lookup_req(int prog, int ver)  {  	uint32_t data[16]; @@ -217,56 +218,56 @@ rpc_lookup_req (int prog, int ver)  	data[6] = htonl(17);	/* IP_UDP */  	data[7] = 0; -	rpc_req (PROG_PORTMAP, PORTMAP_GETPORT, data, 8); +	rpc_req(PROG_PORTMAP, PORTMAP_GETPORT, data, 8);  }  /**************************************************************************  NFS_MOUNT - Mount an NFS Filesystem  **************************************************************************/  static void -nfs_mount_req (char *path) +nfs_mount_req(char *path)  {  	uint32_t data[1024];  	uint32_t *p;  	int len;  	int pathlen; -	pathlen = strlen (path); +	pathlen = strlen(path);  	p = &(data[0]);  	p = (uint32_t *)rpc_add_credentials((long *)p);  	*p++ = htonl(pathlen); -	if (pathlen & 3) *(p + pathlen / 4) = 0; -	memcpy (p, path, pathlen); +	if (pathlen & 3) +		*(p + pathlen / 4) = 0; +	memcpy(p, path, pathlen);  	p += (pathlen + 3) / 4;  	len = (uint32_t *)p - (uint32_t *)&(data[0]); -	rpc_req (PROG_MOUNT, MOUNT_ADDENTRY, data, len); +	rpc_req(PROG_MOUNT, MOUNT_ADDENTRY, data, len);  }  /**************************************************************************  NFS_UMOUNTALL - Unmount all our NFS Filesystems on the Server  **************************************************************************/  static void -nfs_umountall_req (void) +nfs_umountall_req(void)  {  	uint32_t data[1024];  	uint32_t *p;  	int len; -	if ((NfsSrvMountPort == -1) || (!fs_mounted)) { +	if ((NfsSrvMountPort == -1) || (!fs_mounted))  		/* Nothing mounted, nothing to umount */  		return; -	}  	p = &(data[0]); -	p = (uint32_t *)rpc_add_credentials ((long *)p); +	p = (uint32_t *)rpc_add_credentials((long *)p);  	len = (uint32_t *)p - (uint32_t *)&(data[0]); -	rpc_req (PROG_MOUNT, MOUNT_UMOUNTALL, data, len); +	rpc_req(PROG_MOUNT, MOUNT_UMOUNTALL, data, len);  }  /*************************************************************************** @@ -277,65 +278,66 @@ nfs_umountall_req (void)   * so that inside the nfs() function a recursion can be done.   **************************************************************************/  static void -nfs_readlink_req (void) +nfs_readlink_req(void)  {  	uint32_t data[1024];  	uint32_t *p;  	int len;  	p = &(data[0]); -	p = (uint32_t *)rpc_add_credentials ((long *)p); +	p = (uint32_t *)rpc_add_credentials((long *)p); -	memcpy (p, filefh, NFS_FHSIZE); +	memcpy(p, filefh, NFS_FHSIZE);  	p += (NFS_FHSIZE / 4);  	len = (uint32_t *)p - (uint32_t *)&(data[0]); -	rpc_req (PROG_NFS, NFS_READLINK, data, len); +	rpc_req(PROG_NFS, NFS_READLINK, data, len);  }  /**************************************************************************  NFS_LOOKUP - Lookup Pathname  **************************************************************************/  static void -nfs_lookup_req (char *fname) +nfs_lookup_req(char *fname)  {  	uint32_t data[1024];  	uint32_t *p;  	int len;  	int fnamelen; -	fnamelen = strlen (fname); +	fnamelen = strlen(fname);  	p = &(data[0]); -	p = (uint32_t *)rpc_add_credentials ((long *)p); +	p = (uint32_t *)rpc_add_credentials((long *)p); -	memcpy (p, dirfh, NFS_FHSIZE); +	memcpy(p, dirfh, NFS_FHSIZE);  	p += (NFS_FHSIZE / 4);  	*p++ = htonl(fnamelen); -	if (fnamelen & 3) *(p + fnamelen / 4) = 0; -	memcpy (p, fname, fnamelen); +	if (fnamelen & 3) +		*(p + fnamelen / 4) = 0; +	memcpy(p, fname, fnamelen);  	p += (fnamelen + 3) / 4;  	len = (uint32_t *)p - (uint32_t *)&(data[0]); -	rpc_req (PROG_NFS, NFS_LOOKUP, data, len); +	rpc_req(PROG_NFS, NFS_LOOKUP, data, len);  }  /**************************************************************************  NFS_READ - Read File on NFS Server  **************************************************************************/  static void -nfs_read_req (int offset, int readlen) +nfs_read_req(int offset, int readlen)  {  	uint32_t data[1024];  	uint32_t *p;  	int len;  	p = &(data[0]); -	p = (uint32_t *)rpc_add_credentials ((long *)p); +	p = (uint32_t *)rpc_add_credentials((long *)p); -	memcpy (p, filefh, NFS_FHSIZE); +	memcpy(p, filefh, NFS_FHSIZE);  	p += (NFS_FHSIZE / 4);  	*p++ = htonl(offset);  	*p++ = htonl(readlen); @@ -343,7 +345,7 @@ nfs_read_req (int offset, int readlen)  	len = (uint32_t *)p - (uint32_t *)&(data[0]); -	rpc_req (PROG_NFS, NFS_READ, data, len); +	rpc_req(PROG_NFS, NFS_READ, data, len);  }  /************************************************************************** @@ -351,31 +353,31 @@ RPC request dispatcher  **************************************************************************/  static void -NfsSend (void) +NfsSend(void)  {  	debug("%s\n", __func__);  	switch (NfsState) {  	case STATE_PRCLOOKUP_PROG_MOUNT_REQ: -		rpc_lookup_req (PROG_MOUNT, 1); +		rpc_lookup_req(PROG_MOUNT, 1);  		break;  	case STATE_PRCLOOKUP_PROG_NFS_REQ: -		rpc_lookup_req (PROG_NFS, 2); +		rpc_lookup_req(PROG_NFS, 2);  		break;  	case STATE_MOUNT_REQ: -		nfs_mount_req (nfs_path); +		nfs_mount_req(nfs_path);  		break;  	case STATE_UMOUNT_REQ: -		nfs_umountall_req (); +		nfs_umountall_req();  		break;  	case STATE_LOOKUP_REQ: -		nfs_lookup_req (nfs_filename); +		nfs_lookup_req(nfs_filename);  		break;  	case STATE_READ_REQ: -		nfs_read_req (nfs_offset, nfs_len); +		nfs_read_req(nfs_offset, nfs_len);  		break;  	case STATE_READLINK_REQ: -		nfs_readlink_req (); +		nfs_readlink_req();  		break;  	}  } @@ -385,11 +387,11 @@ Handlers for the reply from server  **************************************************************************/  static int -rpc_lookup_reply (int prog, uchar *pkt, unsigned len) +rpc_lookup_reply(int prog, uchar *pkt, unsigned len)  {  	struct rpc_t rpc_pkt; -	memcpy ((unsigned char *)&rpc_pkt, pkt, len); +	memcpy((unsigned char *)&rpc_pkt, pkt, len);  	debug("%s\n", __func__); @@ -398,9 +400,8 @@ rpc_lookup_reply (int prog, uchar *pkt, unsigned len)  	if (rpc_pkt.u.reply.rstatus  ||  	    rpc_pkt.u.reply.verifier || -	    rpc_pkt.u.reply.astatus) { +	    rpc_pkt.u.reply.astatus)  		return -1; -	}  	switch (prog) {  	case PROG_MOUNT: @@ -415,13 +416,13 @@ rpc_lookup_reply (int prog, uchar *pkt, unsigned len)  }  static int -nfs_mount_reply (uchar *pkt, unsigned len) +nfs_mount_reply(uchar *pkt, unsigned len)  {  	struct rpc_t rpc_pkt;  	debug("%s\n", __func__); -	memcpy ((unsigned char *)&rpc_pkt, pkt, len); +	memcpy((unsigned char *)&rpc_pkt, pkt, len);  	if (ntohl(rpc_pkt.u.reply.id) != rpc_id)  		return -1; @@ -429,48 +430,46 @@ nfs_mount_reply (uchar *pkt, unsigned len)  	if (rpc_pkt.u.reply.rstatus  ||  	    rpc_pkt.u.reply.verifier ||  	    rpc_pkt.u.reply.astatus  || -	    rpc_pkt.u.reply.data[0]) { +	    rpc_pkt.u.reply.data[0])  		return -1; -	}  	fs_mounted = 1; -	memcpy (dirfh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE); +	memcpy(dirfh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);  	return 0;  }  static int -nfs_umountall_reply (uchar *pkt, unsigned len) +nfs_umountall_reply(uchar *pkt, unsigned len)  {  	struct rpc_t rpc_pkt;  	debug("%s\n", __func__); -	memcpy ((unsigned char *)&rpc_pkt, pkt, len); +	memcpy((unsigned char *)&rpc_pkt, pkt, len);  	if (ntohl(rpc_pkt.u.reply.id) != rpc_id)  		return -1;  	if (rpc_pkt.u.reply.rstatus  ||  	    rpc_pkt.u.reply.verifier || -	    rpc_pkt.u.reply.astatus) { +	    rpc_pkt.u.reply.astatus)  		return -1; -	}  	fs_mounted = 0; -	memset (dirfh, 0, sizeof(dirfh)); +	memset(dirfh, 0, sizeof(dirfh));  	return 0;  }  static int -nfs_lookup_reply (uchar *pkt, unsigned len) +nfs_lookup_reply(uchar *pkt, unsigned len)  {  	struct rpc_t rpc_pkt;  	debug("%s\n", __func__); -	memcpy ((unsigned char *)&rpc_pkt, pkt, len); +	memcpy((unsigned char *)&rpc_pkt, pkt, len);  	if (ntohl(rpc_pkt.u.reply.id) != rpc_id)  		return -1; @@ -478,24 +477,23 @@ nfs_lookup_reply (uchar *pkt, unsigned len)  	if (rpc_pkt.u.reply.rstatus  ||  	    rpc_pkt.u.reply.verifier ||  	    rpc_pkt.u.reply.astatus  || -	    rpc_pkt.u.reply.data[0]) { +	    rpc_pkt.u.reply.data[0])  		return -1; -	} -	memcpy (filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE); +	memcpy(filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);  	return 0;  }  static int -nfs_readlink_reply (uchar *pkt, unsigned len) +nfs_readlink_reply(uchar *pkt, unsigned len)  {  	struct rpc_t rpc_pkt;  	int rlen;  	debug("%s\n", __func__); -	memcpy ((unsigned char *)&rpc_pkt, pkt, len); +	memcpy((unsigned char *)&rpc_pkt, pkt, len);  	if (ntohl(rpc_pkt.u.reply.id) != rpc_id)  		return -1; @@ -503,34 +501,34 @@ nfs_readlink_reply (uchar *pkt, unsigned len)  	if (rpc_pkt.u.reply.rstatus  ||  	    rpc_pkt.u.reply.verifier ||  	    rpc_pkt.u.reply.astatus  || -	    rpc_pkt.u.reply.data[0]) { +	    rpc_pkt.u.reply.data[0])  		return -1; -	} -	rlen = ntohl (rpc_pkt.u.reply.data[1]); /* new path length */ +	rlen = ntohl(rpc_pkt.u.reply.data[1]); /* new path length */  	if (*((char *)&(rpc_pkt.u.reply.data[2])) != '/') {  		int pathlen; -		strcat (nfs_path, "/"); +		strcat(nfs_path, "/");  		pathlen = strlen(nfs_path); -		memcpy (nfs_path+pathlen, (uchar *)&(rpc_pkt.u.reply.data[2]), rlen); +		memcpy(nfs_path + pathlen, (uchar *)&(rpc_pkt.u.reply.data[2]), +			rlen);  		nfs_path[pathlen + rlen] = 0;  	} else { -		memcpy (nfs_path, (uchar *)&(rpc_pkt.u.reply.data[2]), rlen); +		memcpy(nfs_path, (uchar *)&(rpc_pkt.u.reply.data[2]), rlen);  		nfs_path[rlen] = 0;  	}  	return 0;  }  static int -nfs_read_reply (uchar *pkt, unsigned len) +nfs_read_reply(uchar *pkt, unsigned len)  {  	struct rpc_t rpc_pkt;  	int rlen;  	debug("%s\n", __func__); -	memcpy ((uchar *)&rpc_pkt, pkt, sizeof(rpc_pkt.u.reply)); +	memcpy((uchar *)&rpc_pkt, pkt, sizeof(rpc_pkt.u.reply));  	if (ntohl(rpc_pkt.u.reply.id) != rpc_id)  		return -1; @@ -539,24 +537,22 @@ nfs_read_reply (uchar *pkt, unsigned len)  	    rpc_pkt.u.reply.verifier ||  	    rpc_pkt.u.reply.astatus  ||  	    rpc_pkt.u.reply.data[0]) { -		if (rpc_pkt.u.reply.rstatus) { +		if (rpc_pkt.u.reply.rstatus)  			return -9999; -		} -		if (rpc_pkt.u.reply.astatus) { +		if (rpc_pkt.u.reply.astatus)  			return -9999; -		} -		return -ntohl(rpc_pkt.u.reply.data[0]);; +		return -ntohl(rpc_pkt.u.reply.data[0]);  	} -	if ((nfs_offset!=0) && !((nfs_offset) % (NFS_READ_SIZE/2*10*HASHES_PER_LINE))) { -		puts ("\n\t "); -	} -	if (!(nfs_offset % ((NFS_READ_SIZE/2)*10))) { -		putc ('#'); -	} +	if ((nfs_offset != 0) && !((nfs_offset) % +			(NFS_READ_SIZE / 2 * 10 * HASHES_PER_LINE))) +		puts("\n\t "); +	if (!(nfs_offset % ((NFS_READ_SIZE / 2) * 10))) +		putc('#');  	rlen = ntohl(rpc_pkt.u.reply.data[18]); -	if ( store_block ((uchar *)pkt+sizeof(rpc_pkt.u.reply), nfs_offset, rlen) ) +	if (store_block((uchar *)pkt + sizeof(rpc_pkt.u.reply), +			nfs_offset, rlen))  		return -9999;  	return rlen; @@ -567,15 +563,15 @@ Interfaces of U-BOOT  **************************************************************************/  static void -NfsTimeout (void) +NfsTimeout(void)  { -	if ( ++NfsTimeoutCount > NFS_RETRY_COUNT ) { -		puts ("\nRetry count exceeded; starting again\n"); -		NetStartAgain (); +	if (++NfsTimeoutCount > NFS_RETRY_COUNT) { +		puts("\nRetry count exceeded; starting again\n"); +		NetStartAgain();  	} else {  		puts("T "); -		NetSetTimeout (NFS_TIMEOUT, NfsTimeout); -		NfsSend (); +		NetSetTimeout(NFS_TIMEOUT, NfsTimeout); +		NfsSend();  	}  } @@ -586,86 +582,87 @@ NfsHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src, unsigned len)  	debug("%s\n", __func__); -	if (dest != NfsOurPort) return; +	if (dest != NfsOurPort) +		return;  	switch (NfsState) {  	case STATE_PRCLOOKUP_PROG_MOUNT_REQ: -		rpc_lookup_reply (PROG_MOUNT, pkt, len); +		rpc_lookup_reply(PROG_MOUNT, pkt, len);  		NfsState = STATE_PRCLOOKUP_PROG_NFS_REQ; -		NfsSend (); +		NfsSend();  		break;  	case STATE_PRCLOOKUP_PROG_NFS_REQ: -		rpc_lookup_reply (PROG_NFS, pkt, len); +		rpc_lookup_reply(PROG_NFS, pkt, len);  		NfsState = STATE_MOUNT_REQ; -		NfsSend (); +		NfsSend();  		break;  	case STATE_MOUNT_REQ:  		if (nfs_mount_reply(pkt, len)) { -			puts ("*** ERROR: Cannot mount\n"); +			puts("*** ERROR: Cannot mount\n");  			/* just to be sure... */  			NfsState = STATE_UMOUNT_REQ; -			NfsSend (); +			NfsSend();  		} else {  			NfsState = STATE_LOOKUP_REQ; -			NfsSend (); +			NfsSend();  		}  		break;  	case STATE_UMOUNT_REQ:  		if (nfs_umountall_reply(pkt, len)) { -			puts ("*** ERROR: Cannot umount\n"); +			puts("*** ERROR: Cannot umount\n");  			NetState = NETLOOP_FAIL;  		} else { -			puts ("\ndone\n"); +			puts("\ndone\n");  			NetState = NfsDownloadState;  		}  		break;  	case STATE_LOOKUP_REQ:  		if (nfs_lookup_reply(pkt, len)) { -			puts ("*** ERROR: File lookup fail\n"); +			puts("*** ERROR: File lookup fail\n");  			NfsState = STATE_UMOUNT_REQ; -			NfsSend (); +			NfsSend();  		} else {  			NfsState = STATE_READ_REQ;  			nfs_offset = 0;  			nfs_len = NFS_READ_SIZE; -			NfsSend (); +			NfsSend();  		}  		break;  	case STATE_READLINK_REQ:  		if (nfs_readlink_reply(pkt, len)) { -			puts ("*** ERROR: Symlink fail\n"); +			puts("*** ERROR: Symlink fail\n");  			NfsState = STATE_UMOUNT_REQ; -			NfsSend (); +			NfsSend();  		} else {  			debug("Symlink --> %s\n", nfs_path); -			nfs_filename = basename (nfs_path); -			nfs_path     = dirname (nfs_path); +			nfs_filename = basename(nfs_path); +			nfs_path     = dirname(nfs_path);  			NfsState = STATE_MOUNT_REQ; -			NfsSend (); +			NfsSend();  		}  		break;  	case STATE_READ_REQ: -		rlen = nfs_read_reply (pkt, len); -		NetSetTimeout (NFS_TIMEOUT, NfsTimeout); +		rlen = nfs_read_reply(pkt, len); +		NetSetTimeout(NFS_TIMEOUT, NfsTimeout);  		if (rlen > 0) {  			nfs_offset += rlen; -			NfsSend (); -		} -		else if ((rlen == -NFSERR_ISDIR)||(rlen == -NFSERR_INVAL)) { +			NfsSend(); +		} else if ((rlen == -NFSERR_ISDIR) || (rlen == -NFSERR_INVAL)) {  			/* symbolic link */  			NfsState = STATE_READLINK_REQ; -			NfsSend (); +			NfsSend();  		} else { -			if ( ! rlen ) NfsDownloadState = NETLOOP_SUCCESS; +			if (!rlen) +				NfsDownloadState = NETLOOP_SUCCESS;  			NfsState = STATE_UMOUNT_REQ; -			NfsSend (); +			NfsSend();  		}  		break;  	} @@ -673,7 +670,7 @@ NfsHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src, unsigned len)  void -NfsStart (void) +NfsStart(void)  {  	debug("%s\n", __func__);  	NfsDownloadState = NETLOOP_FAIL; @@ -683,7 +680,7 @@ NfsStart (void)  	if (nfs_path == NULL) {  		NetState = NETLOOP_FAIL; -		puts ("*** ERROR: Fail allocate memory\n"); +		puts("*** ERROR: Fail allocate memory\n");  		return;  	} @@ -692,29 +689,29 @@ NfsStart (void)  			NetOurIP & 0xFF,  			(NetOurIP >>  8) & 0xFF,  			(NetOurIP >> 16) & 0xFF, -			(NetOurIP >> 24) & 0xFF	); -		strcpy (nfs_path, default_filename); +			(NetOurIP >> 24) & 0xFF); +		strcpy(nfs_path, default_filename); -		printf ("*** Warning: no boot file name; using '%s'\n", +		printf("*** Warning: no boot file name; using '%s'\n",  			nfs_path);  	} else { -		char *p=BootFile; +		char *p = BootFile; -		p = strchr (p, ':'); +		p = strchr(p, ':');  		if (p != NULL) { -			NfsServerIP = string_to_ip (BootFile); +			NfsServerIP = string_to_ip(BootFile);  			++p; -			strcpy (nfs_path, p); +			strcpy(nfs_path, p);  		} else { -			strcpy (nfs_path, BootFile); +			strcpy(nfs_path, BootFile);  		}  	} -	nfs_filename = basename (nfs_path); -	nfs_path     = dirname (nfs_path); +	nfs_filename = basename(nfs_path); +	nfs_path     = dirname(nfs_path); -	printf ("Using %s device\n", eth_get_name()); +	printf("Using %s device\n", eth_get_name());  	printf("File transfer via NFS from server %pI4"  		"; our IP address is %pI4", &NfsServerIP, &NetOurIP); @@ -725,19 +722,20 @@ NfsStart (void)  		IPaddr_t ServerNet  = NetServerIP & NetOurSubnetMask;  		if (OurNet != ServerNet) -			printf("; sending through gateway %pI4", &NetOurGatewayIP); +			printf("; sending through gateway %pI4", +				&NetOurGatewayIP);  	} -	printf ("\nFilename '%s/%s'.", nfs_path, nfs_filename); +	printf("\nFilename '%s/%s'.", nfs_path, nfs_filename);  	if (NetBootFileSize) { -		printf (" Size is 0x%x Bytes = ", NetBootFileSize<<9); -		print_size (NetBootFileSize<<9, ""); +		printf(" Size is 0x%x Bytes = ", NetBootFileSize<<9); +		print_size(NetBootFileSize<<9, "");  	} -	printf ("\nLoad address: 0x%lx\n" +	printf("\nLoad address: 0x%lx\n"  		"Loading: *\b", load_addr); -	NetSetTimeout (NFS_TIMEOUT, NfsTimeout); -	NetSetHandler (NfsHandler); +	NetSetTimeout(NFS_TIMEOUT, NfsTimeout); +	NetSetHandler(NfsHandler);  	NfsTimeoutCount = 0;  	NfsState = STATE_PRCLOOKUP_PROG_MOUNT_REQ; @@ -747,7 +745,7 @@ NfsStart (void)  	NfsOurPort = 1000;  	/* zero out server ether in case the server ip has changed */ -	memset (NetServerEther, 0, 6); +	memset(NetServerEther, 0, 6); -	NfsSend (); +	NfsSend();  } @@ -72,7 +72,7 @@ struct rpc_t {  		} reply;  	} u;  }; -extern void	NfsStart (void);	/* Begin NFS */ +extern void NfsStart(void);	/* Begin NFS */  /**********************************************************************/ diff --git a/net/rarp.c b/net/rarp.c index 097f970f4..5a813a290 100644 --- a/net/rarp.c +++ b/net/rarp.c @@ -58,21 +58,21 @@ static void  RarpTimeout(void)  {  	if (RarpTry >= TIMEOUT_COUNT) { -		puts ("\nRetry count exceeded; starting again\n"); -		NetStartAgain (); +		puts("\nRetry count exceeded; starting again\n"); +		NetStartAgain();  	} else { -		NetSetTimeout (TIMEOUT, RarpTimeout); -		RarpRequest (); +		NetSetTimeout(TIMEOUT, RarpTimeout); +		RarpRequest();  	}  }  void -RarpRequest (void) +RarpRequest(void)  {  	int i; -	volatile uchar *pkt; -	ARP_t *	rarp; +	uchar *pkt; +	ARP_t *rarp;  	printf("RARP broadcast %d\n", ++RarpTry);  	pkt = NetTxPacket; @@ -81,18 +81,18 @@ RarpRequest (void)  	rarp = (ARP_t *)pkt; -	rarp->ar_hrd = htons (ARP_ETHER); -	rarp->ar_pro = htons (PROT_IP); +	rarp->ar_hrd = htons(ARP_ETHER); +	rarp->ar_pro = htons(PROT_IP);  	rarp->ar_hln = 6;  	rarp->ar_pln = 4; -	rarp->ar_op  = htons (RARPOP_REQUEST); -	memcpy (&rarp->ar_data[0],  NetOurEther, 6);	/* source ET addr */ -	memcpy (&rarp->ar_data[6],  &NetOurIP,   4);	/* source IP addr */ -	memcpy (&rarp->ar_data[10], NetOurEther, 6);	/* dest ET addr = source ET addr ??*/ +	rarp->ar_op  = htons(RARPOP_REQUEST); +	memcpy(&rarp->ar_data[0],  NetOurEther, 6);	/* source ET addr */ +	memcpy(&rarp->ar_data[6],  &NetOurIP,   4);	/* source IP addr */ +	/* dest ET addr = source ET addr ??*/ +	memcpy(&rarp->ar_data[10], NetOurEther, 6);  	/* dest. IP addr set to broadcast */ -	for (i = 0; i <= 3; i++) { +	for (i = 0; i <= 3; i++)  		rarp->ar_data[16 + i] = 0xff; -	}  	NetSendPacket(NetTxPacket, (pkt - NetTxPacket) + ARP_HDR_SIZE); diff --git a/net/rarp.h b/net/rarp.h index 0c16d4666..4e92d80a6 100644 --- a/net/rarp.h +++ b/net/rarp.h @@ -35,9 +35,9 @@   *	Global functions and variables.   */ -extern int	RarpTry; +extern int RarpTry; -extern void RarpRequest (void);	/* Send a RARP request */ +extern void RarpRequest(void);	/* Send a RARP request */  /**********************************************************************/ diff --git a/net/sntp.c b/net/sntp.c index 82f2fe6cd..69cddb16b 100644 --- a/net/sntp.c +++ b/net/sntp.c @@ -17,7 +17,7 @@  static int SntpOurPort;  static void -SntpSend (void) +SntpSend(void)  {  	struct sntp_pkt_t pkt;  	int pktlen = SNTP_PACKET_LEN; @@ -25,24 +25,26 @@ SntpSend (void)  	debug("%s\n", __func__); -	memset (&pkt, 0, sizeof(pkt)); +	memset(&pkt, 0, sizeof(pkt));  	pkt.li = NTP_LI_NOLEAP;  	pkt.vn = NTP_VERSION;  	pkt.mode = NTP_MODE_CLIENT; -	memcpy ((char *)NetTxPacket + NetEthHdrSize() + IP_HDR_SIZE, (char *)&pkt, pktlen); +	memcpy((char *)NetTxPacket + NetEthHdrSize() + IP_HDR_SIZE, +		(char *)&pkt, pktlen);  	SntpOurPort = 10000 + (get_timer(0) % 4096);  	sport = NTP_SERVICE_PORT; -	NetSendUDPPacket (NetServerEther, NetNtpServerIP, sport, SntpOurPort, pktlen); +	NetSendUDPPacket(NetServerEther, NetNtpServerIP, sport, SntpOurPort, +		pktlen);  }  static void -SntpTimeout (void) +SntpTimeout(void)  { -	puts ("Timeout\n"); +	puts("Timeout\n");  	NetState = NETLOOP_FAIL;  	return;  } @@ -57,19 +59,20 @@ SntpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  	debug("%s\n", __func__); -	if (dest != SntpOurPort) return; +	if (dest != SntpOurPort) +		return;  	/*  	 * As the RTC's used in U-Boot sepport second resolution only  	 * we simply ignore the sub-second field.  	 */ -	memcpy (&seconds, &rpktp->transmit_timestamp, sizeof(ulong)); +	memcpy(&seconds, &rpktp->transmit_timestamp, sizeof(ulong));  	to_tm(ntohl(seconds) - 2208988800UL + NetTimeOffset, &tm);  #if defined(CONFIG_CMD_DATE) -	rtc_set (&tm); +	rtc_set(&tm);  #endif -	printf ("Date: %4d-%02d-%02d Time: %2d:%02d:%02d\n", +	printf("Date: %4d-%02d-%02d Time: %2d:%02d:%02d\n",  		tm.tm_year, tm.tm_mon, tm.tm_mday,  		tm.tm_hour, tm.tm_min, tm.tm_sec); @@ -77,13 +80,13 @@ SntpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  }  void -SntpStart (void) +SntpStart(void)  {  	debug("%s\n", __func__); -	NetSetTimeout (SNTP_TIMEOUT, SntpTimeout); +	NetSetTimeout(SNTP_TIMEOUT, SntpTimeout);  	NetSetHandler(SntpHandler); -	memset (NetServerEther, 0, 6); +	memset(NetServerEther, 0, sizeof(NetServerEther)); -	SntpSend (); +	SntpSend();  } diff --git a/net/sntp.h b/net/sntp.h index 8a097bfa3..1d0046e94 100644 --- a/net/sntp.h +++ b/net/sntp.h @@ -56,6 +56,6 @@ struct sntp_pkt_t {  	unsigned long long transmit_timestamp;  }; -extern void	SntpStart (void);	/* Begin SNTP */ +extern void SntpStart(void);	/* Begin SNTP */  #endif /* __SNTP_H__ */ diff --git a/net/tftp.c b/net/tftp.c index 7aa3e23c9..bc7fe0546 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -11,6 +11,9 @@  #include <net.h>  #include "tftp.h"  #include "bootp.h" +#ifdef CONFIG_SYS_DIRECT_FLASH_TFTP +#include <flash.h> +#endif  /* Well known TFTP port # */  #define WELL_KNOWN_PORT	69 @@ -112,10 +115,6 @@ static char default_filename[DEFAULT_NAME_LEN];  static char tftp_filename[MAX_LEN]; -#ifdef CONFIG_SYS_DIRECT_FLASH_TFTP -extern flash_info_t flash_info[]; -#endif -  /* 512 is poor choice for ethernet, MTU is typically 1500.   * Minus eth.hdrs thats 1468.  Can get 2x better throughput with   * almost-MTU block sizes.  At least try... fall back to 512 if need be. @@ -137,7 +136,6 @@ static unsigned *Bitmap;  static int PrevBitmapHole, Mapsize = MTFTP_BITMAPSIZE;  static uchar ProhibitMcast, MasterClient;  static uchar Multicast; -extern IPaddr_t Mcast_addr;  static int Mcast_port;  static ulong TftpEndingBlock; /* can get 'last' block before done..*/ @@ -157,7 +155,7 @@ mcast_cleanup(void)  #endif	/* CONFIG_MCAST_TFTP */ -static __inline__ void +static inline void  store_block(unsigned block, uchar *src, unsigned len)  {  	ulong offset = block * TftpBlkSize + TftpBlockWrapOffset; @@ -182,8 +180,7 @@ store_block(unsigned block, uchar *src, unsigned len)  			NetState = NETLOOP_FAIL;  			return;  		} -	} -	else +	} else  #endif /* CONFIG_SYS_DIRECT_FLASH_TFTP */  	{  		(void)memcpy((void *)(load_addr + offset), src, len); @@ -310,9 +307,9 @@ static void  TftpSend(void)  {  	uchar *pkt; -	volatile uchar *xp; -	int		len = 0; -	volatile ushort *s; +	uchar *xp; +	int len = 0; +	ushort *s;  #ifdef CONFIG_MCAST_TFTP  	/* Multicast TFTP.. non-MasterClients do not ACK data. */ @@ -357,12 +354,14 @@ TftpSend(void)  				0, TftpBlkSizeOption, 0);  #ifdef CONFIG_MCAST_TFTP  		/* Check all preconditions before even trying the option */ -		if (!ProhibitMcast -		 && (Bitmap = malloc(Mapsize)) -		 && eth_get_dev()->mcast) { -			free(Bitmap); -			Bitmap = NULL; -			pkt += sprintf((char *)pkt, "multicast%c%c", 0, 0); +		if (!ProhibitMcast) { +			Bitmap = malloc(Mapsize); +			if (Bitmap && eth_get_dev()->mcast) { +				free(Bitmap); +				Bitmap = NULL; +				pkt += sprintf((char *)pkt, "multicast%c%c", +					0, 0); +			}  		}  #endif /* CONFIG_MCAST_TFTP */  		len = pkt - xp; @@ -630,8 +629,7 @@ TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,  				mcast_cleanup();  				NetState = NETLOOP_SUCCESS;  			} -		} -		else +		} else  #endif  		if (len < TftpBlkSize)  			tftp_complete(); diff --git a/net/tftp.h b/net/tftp.h index c51aa253c..18e4c9c25 100644 --- a/net/tftp.h +++ b/net/tftp.h @@ -19,7 +19,7 @@  void TftpStart(enum proto_t protocol);	/* Begin TFTP get/put */  #ifdef CONFIG_CMD_TFTPSRV -extern void	TftpStartServer(void);	/* Wait for incoming TFTP put */ +extern void TftpStartServer(void);	/* Wait for incoming TFTP put */  #endif  /**********************************************************************/ |