Allow user to specify the size of a newly created cbfs image

to be stated in kilobytes or megabytes. Usage is
cbfstool coreboot.rom create 1048576 coreboot.bootblock
cbfstool coreboot.rom create 1024k coreboot.bootblock
cbfstool coreboot.rom create 1m coreboot.bootblock
to get an 1048576 bytes = 1024kb = 1mb image.

Kconfig also uses this instead of calculating bytes from kilobytes itself.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4987 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Patrick Georgi 2009-12-21 13:50:37 +00:00
parent 7a27fc558d
commit 467b12acab
2 changed files with 9 additions and 2 deletions

View File

@ -14,7 +14,7 @@ ifdef POST_EVALUATION
$(obj)/coreboot.rom: $(obj)/coreboot.bootblock $(obj)/coreboot_ram $(CBFSTOOL)
rm -f $@
$(CBFSTOOL) $@ create $(shell expr 1024 \* $(CONFIG_COREBOOT_ROMSIZE_KB)) $(obj)/coreboot.bootblock
$(CBFSTOOL) $@ create $(CONFIG_COREBOOT_ROMSIZE_KB)K $(obj)/coreboot.bootblock
if [ -f fallback/coreboot_apc ]; \
then \
$(CBFSTOOL) $@ add-stage fallback/coreboot_apc fallback/coreboot_apc $(CBFS_COMPRESS_FLAG); \

View File

@ -192,7 +192,14 @@ static int cbfs_create(int argc, char **argv)
return 1;
}
uint32_t size = strtoul(argv[3], NULL, 0);
char* suffix;
uint32_t size = strtoul(argv[3], &suffix, 0);
if (tolower(suffix[0])=='k') {
size *= 1024;
}
if (tolower(suffix[0])=='m') {
size *= 1024 * 1024;
}
char *bootblock = argv[4];
uint32_t align = 0;