[U-Boot-Users] Uncompression of image takes time.
Adarsh Babu
adarshrbpin at yahoo.co.in
Thu Mar 1 17:37:25 CET 2007
Adarsh Babu <adarshrbpin <at> yahoo.co.in> writes:
>
> Jerry Van Baren <gerald.vanbaren <at> smiths-aerospace.com> writes:
>
> >
> > Adarsh Babu wrote:
> > > Hi,
> > >
> > > I have an image which is 1.5MB in size after compression, thats is done
> for
> > > MCF5271. When i try to load this on a MCF5271 eval board using u-boot
> 1.2.0 it
> > > takes about 25 secs to just uncompress. I loaded a MCF5272 eval board
with
> U-
> > > Boot 1.2.0 and then tried to start the same image(which was done for
> MCF5271).
> > > It was very fast. The checksum verification finish off in a second and
> > > uncompression in 10 seconds !
> > >
> > > The clock configurations for both are provided below:
> > > M5272C3.h
> > > define CFG_HZ 1000
> > > #define CFG_CLK 66000000
> > >
> > > M5271EVB.h:
> > > define CFG_HZ 1000000
> > > #define CFG_CLK 100000000
> > >
> > > What should I do to get the image to uncompress faster in the MCF5271
EVB?
> > >
> > > Regards,
> > > Adarsh.
> >
> > 1) Your CFG_HZ looks like a problem: it should be 1000 and your timer
> > tick interrupt should be running 1000 times per second to match. If you
> > are indeed ticking 1,000,000 times per second, you are spending all of
> > your processor time in your timer ISR.
> >
> > 2) Why is your image 1.5MB? I suspect you have large unused areas of
> > memory (typically due to ISR vectors, followed by a huge unused gap,
> > followed by the code). If you fix your image size (assuming it is
> > broken), the checksum and uncompress will be much faster.
> >
> > gvb
> >
>
> Hi Jerry,
>
> I tried the same after modifying the CFG_HZ to 1000. But i still get the
same
> result. Its as if there is no effect. The image size is 1.5MB becos its just
> not a kernel image. Its kernel + our application. Could this be a problem
with
> the timer initialization and cofiguration?
>
> Regards,
> Adarsh.
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
Hi Jerry,
The MCF5271EVB.h found in u-boot-1.2.0 is something like this.
#ifndef _M5271EVB_H
#define _M5271EVB_H
#define DEBUG
#undef DEBUG
/*
* High Level Configuration Options (easy to change)
*/
#define CONFIG_MCF52x2 /* define processor family */
#define CONFIG_M5271 /* define processor type */
#define CONFIG_M5271EVB /* define board type */
#define CONFIG_IPADDR 192.168.30.1
#define CONFIG_SERVERIP 192.168.1.1
#define CONFIG_ETHADDR 00:06:3b:01:41:55
#define CONFIG_BAUDRATE 19200
#define CFG_BAUDRATE_TABLE { 9600 , 19200 , 38400 , 57600, 115200 }
#undef CONFIG_WATCHDOG /* disable watchdog */
#define CONFIG_BOOTDELAY 5
/* Configuration for environment
* Environment is embedded in u-boot in the second sector of the flash
*/
#ifndef CONFIG_MONITOR_IS_IN_RAM
#define CFG_ENV_OFFSET 0x4000
#define CFG_ENV_SECT_SIZE 0x2000
#define CFG_ENV_IS_IN_FLASH 1
#else
#define CFG_ENV_ADDR 0xffe04000
#define CFG_ENV_SECT_SIZE 0x2000
#define CFG_ENV_IS_IN_FLASH 1
#endif
#define CONFIG_COMMANDS ((CONFIG_CMD_DFL | CFG_CMD_PING | CFG_CMD_NET ) & ~
(CFG_CMD_LOADS | CFG_CMD_LOADB))
/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
#include <cmd_confdefs.h>
#define CFG_PROMPT "=> "
#define CFG_LONGHELP /* undef to save memory
*/
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size
*/
#else
#define CFG_CBSIZE 256 /* Console I/O Buffer Size
*/
#endif
#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
#define CFG_MAXARGS 16 /* max number of command args
*/
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size
*/
#define CFG_LOAD_ADDR 0x00100000
#define CFG_MEMTEST_START 0x400
#define CFG_MEMTEST_END 0x380000
#define CFG_HZ 1000
#define CFG_CLK 100000000
/*
* Low Level Configuration Settings
* (address mappings, register initial values, etc.)
* You should know what you are doing if you make changes here.
*/
#define CFG_MBAR 0x40000000 /* Register Base Addrs */
/* Enable FEC ethernet */
#define FEC_ENET
#define CONFIG_NET_RETRY_COUNT 5
#define CFG_ENET_BD_BASE 0x480000
/*
* Definitions for initial stack pointer and data area (in DPRAM)
*/
#define CFG_INIT_RAM_ADDR 0x20000000
#define CFG_INIT_RAM_END 0x1000 /* End of used area in internal SRAM
*/
#define CFG_GBL_DATA_SIZE 64 /* size in bytes reserved for initial
data */
#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
/*
* Start addresses for the final memory configuration
* (Set up by the startup code)
* Please note that CFG_SDRAM_BASE _must_ start at 0
*/
#define CFG_SDRAM_BASE 0x00000000
#define CFG_SDRAM_SIZE 16 /* SDRAM size in MB */
#define CFG_FLASH_BASE 0xffe00000
#ifdef CONFIG_MONITOR_IS_IN_RAM
#define CFG_MONITOR_BASE 0x20000
#else
#define CFG_MONITOR_BASE (CFG_FLASH_BASE + 0x400)
#endif
#define CFG_MONITOR_LEN 0x40000
#define CFG_MALLOC_LEN (256 << 10)
#define CFG_BOOTPARAMS_LEN (64*1024)
/*
* For booting Linux, the board info and command line data
* have to be in the first 8 MB of memory, since this is
* the maximum mapped by the Linux kernel during initialization ??
*/
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for
Linux */
/* FLASH organization */
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks
*/
#define CFG_MAX_FLASH_SECT 11 /* max number of sectors on one chip
*/
#define CFG_FLASH_ERASE_TOUT 1000
#define CFG_FLASH_CFI 1
#define CFG_FLASH_CFI_DRIVER 1
#define CFG_FLASH_SIZE 0x200000
/* Cache Configuration */
#define CFG_CACHELINE_SIZE 16
/* Port configuration */
#define CFG_FECI2C 0xF0
#endif /* _M5271EVB_H */
Does anything look odd or our of place in here that might cause the Image
decompression to be close to 25 seconds??
Reagards,
Adarsh.
More information about the U-Boot
mailing list