summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@coresystems.de>2009-12-21 13:50:37 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2009-12-21 13:50:37 +0000
commit467b12acab5be2b394093d25d8972f0bf971b110 (patch)
tree25277db9d7784933cf8ee0e268fcb6d230ab0167
parent7a27fc558d8ae47abe74d5a958b7a8b81797a3e7 (diff)
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
-rw-r--r--src/arch/i386/Makefile.inc2
-rw-r--r--util/cbfstool/cbfstool.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/src/arch/i386/Makefile.inc b/src/arch/i386/Makefile.inc
index 2459af102b..e2f464d285 100644
--- a/src/arch/i386/Makefile.inc
+++ b/src/arch/i386/Makefile.inc
@@ -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); \
diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c
index 26e443364f..3c6db6f231 100644
--- a/util/cbfstool/cbfstool.c
+++ b/util/cbfstool/cbfstool.c
@@ -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;