summaryrefslogtreecommitdiff
path: root/tools/mkenvimage.c
Commit message (Collapse)AuthorAgeFilesLines
* crc32: Use the crc.h header for crc functionsSimon Glass2019-12-021-0/+1
| | | | | | | | | | | Drop inclusion of crc.h in common.h and use the correct header directly instead. With this we can drop the conflicting definition in fw_env.h and rely on the crc.h header, which is already included. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
* tools: mkenvimage: Always consider non-regular filesAndre Przywara2019-07-181-49/+21
| | | | | | | | | | | | | | | | | | | At the moment mkenvimage has two separate read paths: One to read from a potential pipe, while dynamically increasing the buffer size, and a second one using mmap(2), using the input file's size. This is problematic for two reasons: - The "pipe" path will be chosen if the input filename is missing or "-". Any named, but non-regular file will use the other path, which typically will cause mmap() to fail: $ mkenvimage -s 256 -o out <(echo "foo=bar") - There is no reason to have *two* ways of reading a file, since the "pipe way" will always work, even for regular files. Fix this (and simplify the code on the way) by always using the method of dynamically resizing the buffer. The existing distinction between the two cases will merely be used to use the open() syscall or not. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
* tools: mkenvimage: Fix reading from slow pipeAndre Przywara2019-07-181-2/+1
| | | | | | | | | | | | | | | | | | | | | It is perfectly fine for the read(2) syscall to return with less than the requested number of bytes read (short read, see the "RETURN VALUE" section of the man page). This typically happens with slow input (keyboard, network) or with complex pipes. So far mkenvimage expects the exact number of requested bytes to be read, assuming an end-of-file condition otherwise. This wrong behaviour can be easily shown with: $ (echo "foo=bar"; sleep 1; echo "bar=baz") | mkenvimage -s 256 -o out - The second line will be missing from the output. Correct this by checking for any positive, non-zero return value. This fixes a problem with a complex pipe in one of my scripts, where the environment consist of two parts. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Alexander Dahl <ada@thorsis.com>
* SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini2018-05-071-2/+1
| | | | | | | | | | | | | | | | | | | | When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
* tools: mkenvimage: Fix possible segfault on stdin inputAlexander Dahl2018-04-281-1/+1
| | | | | | | | | | | The size of 'filebuf' was not increased as more and more bytes are read from stdin, but 'filebuf' was always reallocated to the same fix size. This works as long as only less bytes than the initial buffer size come in, for more input this will segfault. (It actually does, I tested that.) So for each loop cycle the buffer size has to be increased by the number of bytes we want to read. Signed-off-by: Alexander Dahl <ada@thorsis.com>
* tools: mkenvimage: Fix read() stdin error handlingAlexander Dahl2018-04-281-1/+1
| | | | | | | | On success read() returns the number of bytes read or zero for EOF. On error -1 is returned and errno is set, so the right way to test if read had failed is to test the return value instead of errno. Signed-off-by: Alexander Dahl <ada@thorsis.com>
* Patch to mkenvimage to handle text files with length that exceed env sizeBrian McFarland2015-03-281-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | The current head revision of mkenvimage (e72be8947e129f5ab274c0a9f235d2cc0014b2ea) will prevent you from creating an env image from a text file that is larger than the env length specified by the '-s' option. That doesn't make sense given that the tool now allows comments and blank lines. This patch removes that limitation and allows longer text files to be used. I don't have time / desire at the moment to figure out "patman" and could really care less if this is adopted up stream. Just figured I would share in case anybody else finds it useful enough to take time to do a proper patch. >From 39ff30190c2bf687861f4b4b33230f1944fb64f9 Mon Sep 17 00:00:00 2001 From: Brian McFarland <bmcfarland@rldrake.com> Date: Thu, 12 Mar 2015 11:37:19 -0400 Subject: [PATCH] In mkenvimage, removed the check that prevented using a source text file larger than the output environment image. Instead, the main parsing loop checks to see if the environment buffer is full, and quits if it is. After the main parse loop, a second loop swallows comments and whitespace until either the EOF is reached or more env vars are found, in which case an error will be thrown.
* Added support for comments in input to mkenvimage.Dominik Muth2014-11-101-3/+8
| | | | | | | | | | This patch adds support for comments in the input to mkenvimage, i.e. in the environment source: All lines starting with a # in the firs column will be ignored. Additionally empty lines will also be ignored. Signed-off-by: Dominik Muth <dominik.muth@bkvibro.com>
* tools/Makefile: Move _GNU_SOURCE to MakefileYork Sun2013-08-161-3/+0
| | | | | | | | | | Commit 669dfc2e adds libfdt_env.h to HOSTCPPFLAGS. It causes stdio.h to be included before _GNU_SOURCE is defined in C files. On some old hosts some prototypes are protected by #ifdef __USE_GNU, which is set when _GNU_SOURCE is defined. Signed-off-by: York Sun <yorksun@freescale.com> Acked-by: Simon Glass <sjg@chromium.org>
* Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk2013-07-241-17/+1
| | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <trini@ti.com>
* tools: clean up mingw ifdefsMike Frysinger2012-07-201-8/+2
| | | | | | | | We have a header file specifically for mingw cruft, so keep it there to avoid crap spreading into the main tools. This lets our devs just worry about *nix systems. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* tools: Fix mingw tools buildVladimir Yakovlev2012-07-081-2/+8
| | | | | | | | mkenvimage does not build due to missed os_support.o and unsupported file modes S_IRGRP S_IWGRP. Tested with mingw 4.2.1 on ubuntu 12.04. Signed-off-by: Vladimir Yakovlev <nagos@inbox.ru>
* tools/mkenvimage.c: fix basename(3) usageAndreas Bießmann2012-07-021-0/+1
| | | | | | | | | | | | | | | | | | | Use the POSIX variant of basename due to BSD systems (e.g. OS X) do not provide GNU version of basename(3). It is save to use the POSIX variant here cause we do never use argv[0] later on which may be modified by the basename(3) POSIX variant. On systems providing GNU variant the GNU variant should be used since string.h is included before libgen.h. Therefore let the _GNU_SOURCE as is. This patch fixes following warning (on OS X): ---8<--- mkenvimage.c: In function ‘main’: mkenvimage.c:105: warning: implicit declaration of function ‘basename’ mkenvimage.c:105: warning: assignment makes pointer from integer without a cast --->8--- Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> cc: Keith Mok <ek9852@gmail.com>
* mkenvimage: Fix compiler warningDirk Behme2012-04-101-2/+2
| | | | | | | | | | | | | | | | | | | | Fix the compiler warning mkenvimage.c: In function ‘main’: mkenvimage.c:218: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘unsigned int’ mkenvimage.c:226: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘unsigned int’ introduced with the commit mkenvimage: Use mmap() when reading from a regular file 6ee39f8055680654f9cc97b98dcce9588f1ab71e Signed-off-by: Dirk Behme <dirk.behme@googlemail.com> CC: David Wagner <david.wagner@free-electrons.com> CC: Anatolij Gustschin <agust@denx.de> CC: Mike Frysinger <vapier@gentoo.org> Acked-by: Mike Frysinger <vapier@gentoo.org> Acked-by: David Wagner <deubeuliou@gmail.com>
* mkenvimage: Really set the redundant byte when applicableDavid Wagner2012-03-271-1/+3
| | | | | Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* mkenvimage: Don't try to detect comments in the input fileDavid Wagner2012-03-271-8/+0
| | | | | | | Remove this feature since it seems impossible to reliably detect them. Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* mkenvimage: Use mmap() when reading from a regular fileDavid Wagner2012-03-271-6/+19
| | | | | | | Fall back to read() if it fails. Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* mkenvimage: Read/Write from/to stdin/out by default or if the filename is "-"David Wagner2012-03-271-13/+13
| | | | | Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* mkenvimage: More error handlingDavid Wagner2012-03-271-2/+29
| | | | | | | | | | Verbosly fail if the target environment size or the padding byte are badly formated. Verbosly fail if something bad happens when reading from standard input. Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* mkenvimage: Correct an include and add a missing oneDavid Wagner2012-03-271-1/+2
| | | | | | | | | | compiler.h needs to be included from U-Boot's headers. Also, group U-Boot-specific includes together stdlib.h was missing. Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* mkenvimage: correct and clarify comments and error messagesDavid Wagner2012-03-271-25/+14
| | | | | | | | Also, don't split error messages over several lines as per a coding style exception making them easier to grep. Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
* mkenvimage: fix usage messageWolfgang Denk2012-03-261-1/+1
| | | | | | | | | Don't use argv[0] for usage() because it may or may not be clobbered by the previous call to basename(). Use "prg" instead as it is done in the rest of the code. Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
* Correctly handle input files beginning with several newlinesDavid Wagner2012-01-051-5/+5
| | | | | | Also, fix some comments (minor) Signed-off-by: David Wagner <david.wagner@free-electrons.com>
* tools/mkenvimage.c: Fix a merge issueHorst Kronstorfer2012-01-051-2/+2
| | | | | | With bfcc40bb09b05c90cc3b1496abb270eb8aa72134 'optopt' was reverted. Signed-off-by: Horst Kronstorfer <hkronsto@frequentis.com>
* Merge branch 'next' of ../nextWolfgang Denk2011-12-231-5/+18
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'next' of ../next: mkenvimage: Add version info switch (-V) mkenvimage: Fix getopt() error handling mkenvimage: Fix some typos phy: add Micrel KS8721BL phy definition net: introduce per device index mvgbe: remove setting of ethaddr within the driver x86: Add support for specifying an initrd with the zboot command x86: Refactor the zboot innards so they can be reused with a vboot image x86: Add infrastructure to extract an e820 table from the coreboot tables x86: Add support for booting Linux using the 32 bit boot protocol x86: Clean up the x86 zimage code in preparation to extend it x86: Import code from coreboot's libpayload to parse the coreboot table x86: Initial commit for running as a coreboot payload CHECKPATCH: ./board/esd/hh405/logo_320_240_8bpp.c CHECKPATCH: ./board/esd/hh405/logo_1024_768_8bpp.c CHECKPATCH: ./board/esd/hh405/logo_320_240_4bpp.c CHECKPATCH: ./board/esd/hh405/logo_640_480_24bpp.c CHECKPATCH: ./board/esd/apc405/logo_640_480_24bpp.c CHECKPATCH: ./board/esd/voh405/logo_320_240_4bpp.c CHECKPATCH: ./board/esd/voh405/logo_640_480_24bpp.c CHECKPATCH: ./board/esd/hh405/fpgadata.c CHECKPATCH: ./board/esd/pci405/fpgadata.c CHECKPATCH: ./board/esd/tasreg/fpgadata.c CHECKPATCH: ./board/esd/apc405/fpgadata.c CHECKPATCH: ./board/esd/voh405/fpgadata.c CHECKPATCH: ./board/esd/ash405/fpgadata.c CHECKPATCH: ./board/esd/dasa_sim/fpgadata.c CHECKPATCH: ./board/esd/ar405/fpgadata_xl30.c CHECKPATCH: ./board/esd/ar405/fpgadata.c CHECKPATCH: ./board/esd/plu405/fpgadata.c CHECKPATCH: ./board/esd/wuh405/fpgadata.c CHECKPATCH: ./board/esd/cpci405/fpgadata_cpci405.c CHECKPATCH: ./board/esd/cpci405/fpgadata_cpci405ab.c CHECKPATCH: ./board/esd/cpci405/fpgadata_cpci4052.c CHECKPATCH: ./board/esd/canbt/fpgadata.c CHECKPATCH: ./board/esd/du405/fpgadata.c CHECKPATCH: ./board/esd/cpciiser4/fpgadata.c CHECKPATCH: ./board/dave/PPChameleonEVB/fpgadata.c avr32:mmu.c: fix printf() length modifier fat.c: fix printf() length modifier cmd_sf.c: fix printf() length modifier Make printf and vprintf safe from buffer overruns vsprintf: Move function documentation into header file Add safe vsnprintf and snprintf library functions Move vsprintf functions into their own header Conflicts: tools/mkenvimage.c Signed-off-by: Wolfgang Denk <wd@denx.de>
| * mkenvimage: Add version info switch (-V)Horst Kronstorfer2011-12-201-1/+6
| | | | | | | | Signed-off-by: Horst Kronstorfer <hkronsto@frequentis.com>
| * mkenvimage: Fix getopt() error handlingHorst Kronstorfer2011-12-201-2/+10
| | | | | | | | | | | | | | | | | | Since the original implementation indicates explicit error handling we turn off getopt()'s internal error messaging to avoid duplicate error messages. Additionally we add ':' (missing option argument) error handling. Signed-off-by: Horst Kronstorfer <hkronsto@frequentis.com>
| * mkenvimage: Fix some typosHorst Kronstorfer2011-12-201-4/+4
| | | | | | | | Signed-off-by: Horst Kronstorfer <hkronsto@frequentis.com>
* | Print program basename instead of whole path in usage()Horst Kronstorfer2011-12-221-3/+9
|/ | | | Signed-off-by: Horst Kronstorfer <hkronsto@frequentis.com>
* new tool mkenvimage: generates an env image from an arbitrary config fileDavid Wagner2011-11-221-0/+270
This tool takes a key=value configuration file (same as would a `printenv' show) and generates the corresponding environment image, ready to be flashed. use case: flash the environment with an external tool Signed-off-by: David Wagner <david.wagner@free-electrons.com> Acked-by; Mike Frysinger <vapier@gentoo.org> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>