使用omap-138 UBOOT 内解压内核问题
主要想要测试下在uboot 下解压和在内核里解压,对于启动时间的影响
static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress)
{
uint8_t comp = os.comp;
ulong load = os.load;
ulong blob_start = os.start;
ulong blob_end = os.end;
ulong image_start = os.image_start;
ulong image_len = os.image_len;
uint unc_len = CONFIG_SYS_BOOTM_LEN;
const char *type_name = genimg_get_type_name (os.type);
switch (comp) {
case IH_COMP_NONE:
if (load == blob_start) {
printf (" XIP %s … ", type_name);
} else {
printf (" Loading %s … ", type_name);
if (load != image_start) {
memmove_wd ((void *)load,
(void *)image_start, image_len, CHUNKSZ);
}
}
*load_end = load + image_len;
puts("OK\n");
break;
case IH_COMP_GZIP:
printf (" Uncompressing %s … ", type_name);
if (gunzip ((void *)load, unc_len,
(uchar *)image_start, &image_len) != 0) {
puts ("GUNZIP: uncompress, out-of-mem or overwrite error "
"- must RESET board to recover\n");
if (boot_progress)
show_boot_progress (-6);
return BOOTM_ERR_RESET;
}
quiet_cmd_uimage = UIMAGE $@
cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
-C gzip -a $(LOADADDR) -e $(STARTADDR) \
-n 'Linux-$(KERNELRELEASE)' -d $< $@
烧写入内核启动后打印如下
Loading from NAND 256MiB 1,8V 8-bit, offset 0x200000
Image Name: Linux-2.6.33-rc4-D8135
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 3403660 Bytes = 3.2 MB
Load Address: c0008000
Entry Point: c0008000
## Booting kernel from Legacy Image at c0700000 …
Image Name: Linux-2.6.33-rc4-D8135
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 3403660 Bytes = 3.2 MB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum … OK
Uncompressing Kernel Image … Error: Bad gzipped data
GUNZIP: uncompress, out-of-mem or overwrite error – must RESET board to recover
resetting …
由uboot 解压就直接报错了,请问这是为什么
测试过lzo的压缩方式,也是类似的错误
是不是还有什么地方需要修改的
Denny%20Yang99373:
有没有可能是内核文件读取不对?