diff options
Diffstat (limited to 'common')
| -rw-r--r-- | common/cmd_bdinfo.c | 2 | ||||
| -rw-r--r-- | common/cmd_bootm.c | 9 | ||||
| -rw-r--r-- | common/cmd_flash.c | 4 | ||||
| -rw-r--r-- | common/cmd_ide.c | 50 | ||||
| -rw-r--r-- | common/cmd_mfsl.c | 6 | ||||
| -rw-r--r-- | common/dlmalloc.c | 21 | ||||
| -rw-r--r-- | common/lcd.c | 19 | ||||
| -rw-r--r-- | common/main.c | 4 | 
8 files changed, 65 insertions, 50 deletions
| diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c index caa467d02..24ff9b995 100644 --- a/common/cmd_bdinfo.c +++ b/common/cmd_bdinfo.c @@ -205,7 +205,7 @@ int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	puts ("\nip_addr     = ");  	print_IPaddr (bd->bi_ip_addr);  #endif -	printf ("\nbaudrate    = %d bps\n", (ulong)bd->bi_baudrate); +	printf ("\nbaudrate    = %ld bps\n", (ulong)bd->bi_baudrate);  	return 0;  } diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 1c0a4161d..18d71008d 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -36,7 +36,7 @@  #include <lmb.h>  #include <asm/byteorder.h> -#if (CONFIG_COMMANDS & CFG_CMD_USB) +#if defined(CONFIG_CMD_USB)  #include <usb.h>  #endif @@ -217,7 +217,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	 */  	iflag = disable_interrupts(); -#if (CONFIG_COMMANDS & CFG_CMD_USB) +#if defined(CONFIG_CMD_USB)  	/*  	 * turn off USB to prevent the host controller from writing to the  	 * SDRAM while Linux is booting. This could happen (at least for OHCI @@ -251,10 +251,9 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  			memmove_wd ((void *)load_start,  				   (void *)os_data, os_len, CHUNKSZ); - -			load_end = load_start + os_len; -			puts("OK\n");  		} +		load_end = load_start + os_len; +		puts("OK\n");  		break;  	case IH_COMP_GZIP:  		printf ("   Uncompressing %s ... ", type_name); diff --git a/common/cmd_flash.c b/common/cmd_flash.c index a7f66ddbf..18d2250f3 100644 --- a/common/cmd_flash.c +++ b/common/cmd_flash.c @@ -342,7 +342,7 @@ int do_flerase (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  			puts ("Bad sector specification\n");  			return 1;  		} -		printf ("Erase Flash Sectors %d-%d in Bank # %d ", +		printf ("Erase Flash Sectors %d-%d in Bank # %zu ",  			sect_first, sect_last, (info-flash_info)+1);  		rcode = flash_erase(info, sect_first, sect_last);  		return rcode; @@ -534,7 +534,7 @@ int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  			puts ("Bad sector specification\n");  			return 1;  		} -		printf("%sProtect Flash Sectors %d-%d in Bank # %d\n", +		printf("%sProtect Flash Sectors %d-%d in Bank # %zu\n",  			p ? "" : "Un-", sect_first, sect_last,  			(info-flash_info)+1);  		for (i = sect_first; i <= sect_last; i++) { diff --git a/common/cmd_ide.c b/common/cmd_ide.c index 97a873d1c..d6ba79f70 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -161,8 +161,6 @@ static uchar ide_wait  (int dev, ulong t);  #define IDE_SPIN_UP_TIME_OUT 5000 /* 5 sec spin-up timeout */ -void inline ide_outb(int dev, int port, unsigned char val); -unsigned char inline ide_inb(int dev, int port);  static void input_data(int dev, ulong *sect_buf, int words);  static void output_data(int dev, ulong *sect_buf, int words);  static void ident_cpy (unsigned char *dest, unsigned char *src, unsigned int len); @@ -298,7 +296,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		ulong addr = simple_strtoul(argv[2], NULL, 16);  		ulong cnt  = simple_strtoul(argv[4], NULL, 16);  		ulong n; -#ifdef CFG_64BIT_STRTOUL +#ifdef CFG_64BIT_LBA  		lbaint_t blk  = simple_strtoull(argv[3], NULL, 16);  		printf ("\nIDE read: device %d block # %qd, count %ld ... ", @@ -327,7 +325,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		ulong addr = simple_strtoul(argv[2], NULL, 16);  		ulong cnt  = simple_strtoul(argv[4], NULL, 16);  		ulong n; -#ifdef CFG_64BIT_STRTOUL +#ifdef CFG_64BIT_LBA  		lbaint_t blk  = simple_strtoull(argv[3], NULL, 16);  		printf ("\nIDE write: device %d block # %qd, count %ld ... ", @@ -523,6 +521,28 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  /* ------------------------------------------------------------------------- */ +void inline +__ide_outb(int dev, int port, unsigned char val) +{ +	debug ("ide_outb (dev= %d, port= 0x%x, val= 0x%02x) : @ 0x%08lx\n", +		dev, port, val, (ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port))); +	outb(val, (ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port))); +} +void inline ide_outb (int dev, int port, unsigned char val) +		__attribute__((weak, alias("__ide_outb"))); + +unsigned char inline +__ide_inb(int dev, int port) +{ +	uchar val; +	val = inb((ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port))); +	debug ("ide_inb (dev= %d, port= 0x%x) : @ 0x%08lx -> 0x%02x\n", +		dev, port, (ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port)), val); +	return val; +} +unsigned char inline ide_inb(int dev, int port) +			__attribute__((weak, alias("__ide_inb"))); +  void ide_init (void)  { @@ -817,28 +837,6 @@ set_pcmcia_timing (int pmode)  /* ------------------------------------------------------------------------- */ -void inline -__ide_outb(int dev, int port, unsigned char val) -{ -	debug ("ide_outb (dev= %d, port= 0x%x, val= 0x%02x) : @ 0x%08lx\n", -		dev, port, val, (ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port))); -	outb(val, (ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port))); -} -void inline ide_outb (int dev, int port, unsigned char val) -		__attribute__((weak, alias("__ide_outb"))); - -unsigned char inline -__ide_inb(int dev, int port) -{ -	uchar val; -	val = inb((ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port))); -	debug ("ide_inb (dev= %d, port= 0x%x) : @ 0x%08lx -> 0x%02x\n", -		dev, port, (ATA_CURR_BASE(dev)+CFG_ATA_PORT_ADDR(port)), val); -	return val; -} -unsigned char inline ide_inb(int dev, int port) -			__attribute__((weak, alias("__ide_inb"))); -  #ifdef __PPC__  # ifdef CONFIG_AMIGAONEG3SE  static void diff --git a/common/cmd_mfsl.c b/common/cmd_mfsl.c index 5982b76e6..c2442eed1 100644 --- a/common/cmd_mfsl.c +++ b/common/cmd_mfsl.c @@ -183,7 +183,7 @@ int do_frd (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		return 1;  	} -	printf ("%01x: 0x%08lx - %s %s read\n", fslnum, num, +	printf ("%01x: 0x%08x - %s %s read\n", fslnum, num,  		blocking < 2  ? "non blocking" : "blocking",  		((blocking == 1) || (blocking == 3)) ? "control" : "data" );  	return 0; @@ -341,7 +341,7 @@ int do_fwr (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		return 1;  	} -	printf ("%01x: 0x%08lx - %s %s write\n", fslnum, num, +	printf ("%01x: 0x%08x - %s %s write\n", fslnum, num,  		blocking < 2  ? "non blocking" : "blocking",  		((blocking == 1) || (blocking == 3)) ? "control" : "data" );  	return 0; @@ -382,7 +382,7 @@ int do_rspr (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		puts ("Unsupported register\n");  		return 1;  	} -	printf (": 0x%08lx\n", val); +	printf (": 0x%08x\n", val);  	return 0;  } diff --git a/common/dlmalloc.c b/common/dlmalloc.c index c51351e96..4a185620f 100644 --- a/common/dlmalloc.c +++ b/common/dlmalloc.c @@ -1457,7 +1457,7 @@ typedef struct malloc_chunk* mbinptr;     indexing, maintain locality, and avoid some initialization tests.  */ -#define top            (bin_at(0)->fd)   /* The topmost chunk */ +#define top            (av_[2])          /* The topmost chunk */  #define last_remainder (bin_at(1))       /* remainder from last split */ @@ -1552,13 +1552,14 @@ void malloc_bin_reloc (void)  #define BINBLOCKWIDTH     4   /* bins per block */ -#define binblocks      (bin_at(0)->size) /* bitvector of nonempty blocks */ +#define binblocks_r     ((INTERNAL_SIZE_T)av_[1]) /* bitvector of nonempty blocks */ +#define binblocks_w     (av_[1])  /* bin<->block macros */  #define idx2binblock(ix)    ((unsigned)1 << (ix / BINBLOCKWIDTH)) -#define mark_binblock(ii)   (binblocks |= idx2binblock(ii)) -#define clear_binblock(ii)  (binblocks &= ~(idx2binblock(ii))) +#define mark_binblock(ii)   (binblocks_w = (mbinptr)(binblocks_r | idx2binblock(ii))) +#define clear_binblock(ii)  (binblocks_w = (mbinptr)(binblocks_r & ~(idx2binblock(ii)))) @@ -2250,17 +2251,17 @@ Void_t* mALLOc(bytes) size_t bytes;       search for best fitting chunk by scanning bins in blockwidth units.    */ -  if ( (block = idx2binblock(idx)) <= binblocks) +  if ( (block = idx2binblock(idx)) <= binblocks_r)    {      /* Get to the first marked block */ -    if ( (block & binblocks) == 0) +    if ( (block & binblocks_r) == 0)      {        /* force to an even block boundary */        idx = (idx & ~(BINBLOCKWIDTH - 1)) + BINBLOCKWIDTH;        block <<= 1; -      while ((block & binblocks) == 0) +      while ((block & binblocks_r) == 0)        {  	idx += BINBLOCKWIDTH;  	block <<= 1; @@ -2315,7 +2316,7 @@ Void_t* mALLOc(bytes) size_t bytes;        {  	if ((startidx & (BINBLOCKWIDTH - 1)) == 0)  	{ -	  binblocks &= ~block; +	  av_[1] = (mbinptr)(binblocks_r & ~block);  	  break;  	}  	--startidx; @@ -2324,9 +2325,9 @@ Void_t* mALLOc(bytes) size_t bytes;        /* Get to the next possibly nonempty block */ -      if ( (block <<= 1) <= binblocks && (block != 0) ) +      if ( (block <<= 1) <= binblocks_r && (block != 0) )        { -	while ((block & binblocks) == 0) +	while ((block & binblocks_r) == 0)  	{  	  idx += BINBLOCKWIDTH;  	  block <<= 1; diff --git a/common/lcd.c b/common/lcd.c index eec1f53b0..e3347ec93 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -678,6 +678,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  		/* Set color map */  		for (i=0; i<colors; ++i) {  			bmp_color_table_entry_t cte = bmp->color_table[i]; +#if !defined(CONFIG_ATMEL_LCD)  			ushort colreg =  				( ((cte.red)   << 8) & 0xf800) |  				( ((cte.green) << 3) & 0x07e0) | @@ -692,6 +693,9 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  #elif defined(CONFIG_MPC823)  			cmap--;  #endif +#else /* CONFIG_ATMEL_LCD */ +			lcd_setcolreg(i, cte.red, cte.green, cte.blue); +#endif  		}  	}  #endif @@ -727,7 +731,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  	for (i = 0; i < height; ++i) {  		WATCHDOG_RESET();  		for (j = 0; j < width ; j++) -#if defined(CONFIG_PXA250) +#if defined(CONFIG_PXA250) || defined(CONFIG_ATMEL_LCD)  			*(fb++) = *(bmap++);  #elif defined(CONFIG_MPC823) || defined(CONFIG_MCC200)  			*(fb++)=255-*(bmap++); @@ -740,6 +744,9 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  }  #endif +#ifdef CONFIG_VIDEO_BMP_GZIP +extern bmp_image_t *gunzip_bmp(unsigned long addr, unsigned long *lenp); +#endif  static void *lcd_logo (void)  { @@ -761,6 +768,16 @@ static void *lcd_logo (void)  		addr = simple_strtoul(s, NULL, 16);  		do_splash = 0; +#ifdef CONFIG_VIDEO_BMP_GZIP +		bmp_image_t *bmp = (bmp_image_t *)addr; +		unsigned long len; + +		if (!((bmp->header.signature[0]=='B') && +		      (bmp->header.signature[1]=='M'))) { +			addr = (ulong)gunzip_bmp(addr, &len); +		} +#endif +  		if (lcd_display_bitmap (addr, 0, 0) == 0) {  			return ((void *)lcd_base);  		} diff --git a/common/main.c b/common/main.c index 79ad2912a..187ef8a3a 100644 --- a/common/main.c +++ b/common/main.c @@ -116,7 +116,7 @@ static __inline__ int abortboot(int bootdelay)  	u_int i;  #  ifdef CONFIG_AUTOBOOT_PROMPT -	printf(CONFIG_AUTOBOOT_PROMPT, bootdelay); +	printf(CONFIG_AUTOBOOT_PROMPT);  #  endif  #  ifdef CONFIG_AUTOBOOT_DELAY_STR @@ -212,7 +212,7 @@ static __inline__ int abortboot(int bootdelay)  	int abort = 0;  #ifdef CONFIG_MENUPROMPT -	printf(CONFIG_MENUPROMPT, bootdelay); +	printf(CONFIG_MENUPROMPT);  #else  	printf("Hit any key to stop autoboot: %2d ", bootdelay);  #endif |