diff --git a/src/include/cbfs.h b/src/include/cbfs.h index b11c3b316d..bca089a73b 100644 --- a/src/include/cbfs.h +++ b/src/include/cbfs.h @@ -57,7 +57,6 @@ #define CBFS_COMPRESS_NONE 0 #define CBFS_COMPRESS_LZMA 1 -#define CBFS_COMPRESS_NRV2B 2 /** These are standard component types for well known components (i.e - those that coreboot needs to consume. @@ -165,8 +164,12 @@ int cbfs_execute_stage(const char *name); void * cbfs_get_file(const char *name); void *cbfs_load_optionrom(u16 vendor, u16 device, void * dest); int run_address(void *f); - +int cbfs_decompress(int algo, void *src, void *dst, int len); struct cbfs_stage *cbfs_find_file(const char *name, int type); +int cbfs_check_magic(struct cbfs_file *file); +struct cbfs_header *cbfs_master_header(void); +struct cbfs_file *cbfs_find(const char *name); +void cbfs_and_run_core(char* filename, unsigned int ebp); #endif diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index caf5db4b49..f57a14a800 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -29,8 +29,6 @@ #define ntohl(x) (x) #endif -int run_address(void *f); - int cbfs_decompress(int algo, void *src, void *dst, int len) { switch(algo) { @@ -44,15 +42,6 @@ int cbfs_decompress(int algo, void *src, void *dst, int len) } return 0; -#if CONFIG_COMPRESSED_PAYLOAD_NRV2B==1 - case CBFS_COMPRESS_NRV2B: { - unsigned long unrv2b(u8 *src, u8 *dst, unsigned long *ilen_p); - unsigned long tmp; - - unrv2b(src, dst, &tmp); - } - return 0; -#endif default: printk_info( "CBFS: Unknown compression type %d\n", algo); @@ -103,11 +92,11 @@ struct cbfs_file *cbfs_find(const char *name) int flen = ntohl(file->len); int foffset = ntohl(file->offset); - printk_spew("CBFS: follow chain: %p + %x + %x + align -> ", offset, foffset, flen); + printk_spew("CBFS: follow chain: %p + %x + %x + align -> ", (void *)offset, foffset, flen); unsigned long oldoffset = offset; offset = ALIGN(offset + foffset + flen, align); - printk_spew("%p\n", offset); + printk_spew("%p\n", (void *)offset); if (offset <= oldoffset) return NULL; if (offset < 0xFFFFFFFF - ntohl(header->romsize)) @@ -182,7 +171,8 @@ void * cbfs_load_stage(const char *name) if (stage == NULL) return (void *) -1; - printk_info("Stage: load @ %d/%d bytes, enter @ %llx\n", + printk_info("Stage: load %s @ %d/%d bytes, enter @ %llx\n", + name, (u32) stage->load, stage->memlen, stage->entry); memset((void *) (u32) stage->load, 0, stage->memlen); diff --git a/util/options/build_opt_tbl.c b/util/options/build_opt_tbl.c index f4aa8af7ec..ec9400629e 100644 --- a/util/options/build_opt_tbl.c +++ b/util/options/build_opt_tbl.c @@ -488,7 +488,7 @@ int main(int argc, char **argv) /* See if we want to output a C source file */ if(option) { int err=0; - strncpy(tmpfilename, dirname(option), TMPFILE_LEN); + strncpy(tmpfilename, dirname(strdup(option)), TMPFILE_LEN); strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN); tmpfile = mkstemp(tmpfilename); if(tmpfile == -1) { @@ -539,7 +539,7 @@ int main(int argc, char **argv) struct cmos_option_table *hdr; struct lb_record *ptr, *end; - strncpy(tmpfilename, dirname(option), TMPFILE_LEN); + strncpy(tmpfilename, dirname(strdup(option)), TMPFILE_LEN); strncat(tmpfilename, TMPFILE_TEMPLATE, TMPFILE_LEN); tmpfile = mkstemp(tmpfilename); if(tmpfile == -1) {