--- u-boot-1.1.4.old/tools/Makefile 2007-03-22 18:17:25.000000000 +0100 +++ u-boot-1.1.4/tools/Makefile 2007-03-22 17:08:46.000000000 +0100 @@ -21,9 +21,9 @@ # MA 02111-1307 USA # -BINS = img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX) +BINS = img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX) ubparams$(SFX) -OBJS = environment.o img2srec.o mkimage.o crc32.o envcrc.o gen_eth_addr.o bmp_logo.o +OBJS = environment.o img2srec.o mkimage.o crc32.o envcrc.o gen_eth_addr.o bmp_logo.o ubparams.o ifeq ($(ARCH),mips) BINS += inca-swap-bytes$(SFX) @@ -118,6 +118,9 @@ all: .depend $(BINS) $(LOGO_H) subdirs +ubparams$(SFX): ubparams.o crc32.o + $(CC) $(CFLAGS) -o $@ $^ + envcrc$(SFX): envcrc.o crc32.o environment.o $(CC) $(CFLAGS) -o $@ $^ @@ -149,6 +152,9 @@ $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(STRIP) $@ +ubparams.o: ubparams.c + $(CC) -g $(CFLAGS) -c $< + envcrc.o: envcrc.c $(CC) -g $(CFLAGS) -c $< --- u-boot-1.1.4.old/tools/ubparams.c 1970-01-01 01:00:00.000000000 +0100 +++ u-boot-1.1.4/tools/ubparams.c 2007-03-22 18:09:52.000000000 +0100 @@ -0,0 +1,78 @@ +/* + * ubparams.c + * + * Generate a u-boot parameter block with correct crc + * + * (C) 1007 Guthrie Consulting + * hamish@prodigi.ch + * + */ + +#include +#include +#include + +#ifndef __ASSEMBLY__ +#define __ASSEMBLY__ +#endif +#define __ASM_STUB_PROCESSOR_H__ +#include +#undef __ASSEMBLY__ +#include "environment.h" + +#define XMK_STR(x) #x +#define MK_STR(x) XMK_STR(x) + +extern unsigned long crc32 (unsigned long, const unsigned char *, unsigned int); + +#if !defined(ENV_CRC) +#define ENV_CRC ~0 +#endif + +unsigned int env_size = 0x8400; +env_t environment = { + ENV_CRC, + "bootdelay=3\0" + "baudrate=115200\0" + "stdin=serial\0" + "stdout=serial\0" + "stderr=serial\0" + "partitions=mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data)\0" + "fbargs=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/mtdblock4 ro console=/dev/ttyS0,115200,mem=32M\0" + "rdba=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/ram rw initrd=0x21200000,6000000 ramdisk_size=20000 console=/dev/ttyS0,115200,mem=32M\0" + "rdram=run rdba; tftp 21000000 vImage; tftp 21200000 root.squashfs; bootm 21000000\0" + "flash=run fbargs; bootm 0xc0042000\0" + "bootargs=setenv bootargs mtdparts=AT45DB642.spi0:132k(bootloader),33k(ubparams),99k(spare),1056k(linux),2112k(rootfs),33k(nvram),-(rootfs_data) root=/dev/mtdblock4 ro console=/dev/ttyS0,115200,mem=32M\0" + "bootcmd=bootm 0xc0042000\0" + "ethaddr=00:30:49:00:00:01\0" + "ipaddr=10.0.1.73\0" + "serverip=10.0.1.210\0" + "serial#=MX070205484\0" + "\0" + }; + +int main(void) { + env_t *envptr, *source; + unsigned char *dataptr; + FILE *params; + + source = &environment; + envptr = (env_t *)malloc(CFG_ENV_SIZE); + dataptr = (unsigned char *)envptr + ENV_HEADER_SIZE; + + printf("Make u-boot params\n"); + printf("Params size is %d\n", CFG_ENV_SIZE); + + memset(envptr, 0, CFG_ENV_SIZE); + memcpy(envptr, source, sizeof(environment)); + + envptr->crc = crc32(0, envptr->data, ENV_SIZE); + + params = fopen("params", "w"); + fwrite(envptr, CFG_ENV_SIZE, 1, params); + fclose(params); + + free(envptr); + } + +