Simon Glass [Thu, 4 Jul 2013 20:26:09 +0000 (13:26 -0700)]
bootm: Require boot function only if it is about to be used
The original bootm code (before commit
35fc84f) did not check for a valid
boot function in the subcommand case, which was incorrect.
This check was introduced in all cases, but in fact we should only check
for the function when we need it. Otherwise in some cases the check fires
before the OS type is known.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 4 Jul 2013 20:26:08 +0000 (13:26 -0700)]
bootm: Disable interrupts only when loading
With the move of the interrupt code to earlier in the sequence, we
exposed a problem where the interrupts are disabled at each bootm
stage. This is not correct - it should be done only once. Let's disable
interrupts in the LOAD stage. Put the code in a function for clarity.
Also, bootz lost its interrupt code altogether, so reinstate it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Tom Rini [Wed, 10 Jul 2013 12:42:25 +0000 (08:42 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-video
Anatolij Gustschin [Mon, 1 Jul 2013 22:04:05 +0000 (00:04 +0200)]
video: consolidate splash screen alignment code
Code for checking "splashpos" environment variable is
duplicated in drivers, move it to the common function.
Call this function also in the bmp display command to
consider "splashpos" settings.
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Tom Rini [Mon, 1 Jul 2013 13:09:23 +0000 (09:09 -0400)]
cmd_bootm.c: Correct check/return for unsupported sub-command
With the do_bootm_states re-organization, we have the call to any
potential sub-commands in a single spot. If one fails, we can then stop
right there and return to the caller. Prior to these calls we have
already ensured that ret is zero so we will not be returning this error
for some other case.
Signed-off-by: Tom Rini <trini@ti.com>
Tested-by: Andreas Bießmann <andreas.devel@googlemail.com>
Masahiro Yamada [Tue, 2 Jul 2013 06:42:47 +0000 (15:42 +0900)]
cosmetic: README.SPL: fix a typo
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Andreas Bießmann [Tue, 2 Jul 2013 06:37:37 +0000 (08:37 +0200)]
Makefile: fix readelf usage
Some OS (like OS X) do not provide a generic readelf. We should enforce to use
the toochain provided readelf instead, to do so use $(CROSS_COMPILE)readelf.
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
Acked-by: Jeroen Hofstee <jeroen@myspectrum.nl>
Tested-by: Lubomir Popov <lpopov@mm-sol.com>
Andreas Bießmann [Tue, 2 Jul 2013 06:37:36 +0000 (08:37 +0200)]
tools/proftool: remove REG_NOERROR
Remove non portable usage of REG_NOERROR.
BSD (like OS X) variants of regex.h do not declare REG_NOERROR, even GNU
regex(3) does not mention REG_NOERROR, just remove it.
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
Acked-by: Jeroen Hofstee <jeroen@myspectrum.nl>
Andreas Bießmann [Tue, 2 Jul 2013 06:37:35 +0000 (08:37 +0200)]
lib/rsa/rsa-sig.c: compile on OS X
Interfaces exposed by error.h seems not to be used in rsa-sig.c, remove it.
This also fixes an compile error on OS X:
---8<---
u-boot/lib/rsa/rsa-sign.c:23:19: error: error.h: No such file or directory
--->8---
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
Acked-by: Jeroen Hofstee <jeroen@myspectrum.nl>
Tested-by: Lubomir Popov <lpopov@mm-sol.com>
Łukasz Majewski [Fri, 28 Jun 2013 16:41:50 +0000 (18:41 +0200)]
dfu:ext4:fix Fix DFU upload functionality
For the first eMMC read of data for upload, use the "large" dfu_buf (now
configurable) instead of usb request buffer allocated at composite layer
(which is 4KiB) [*].
For eMMC the whole file is read, which usually is larger than the buffer [*]
provided with usb request.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Tom Rini <trini@ti.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Łukasz Majewski [Fri, 28 Jun 2013 16:41:49 +0000 (18:41 +0200)]
dfu:ext4:fix Fix ext4{read|write} command formatting
In the following commit:
"dfu: Support larger than memory transfers."
SHA1:
ea2453d56b8860dbd18a3c517531ffc8dcb5c839
The ext4{read|write} command formatting has been changed. It removed
a write mandatory [sizebytes] parameter.
It extents DFU_FS_EXT4 case at mmc_file_op to provide mandatory
parameter for DFU write.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Tom Rini <trini@ti.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Tom Rini [Wed, 3 Jul 2013 12:40:58 +0000 (08:40 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-usb
Andreas Bießmann [Tue, 2 Jul 2013 11:57:44 +0000 (13:57 +0200)]
avr32/m68k/microblaze/nds32/nios2/openrisc/sh/sparc: fix do_bootm_linux
Commit
35fc84fa1ff51e15ecd3e464dac87eb105ffed30 broke bootm on avr32. It
requires to call do_bootm_linux() with flag set to BOOTM_STATE_OS_PREP before
calling it again with flag set to BOOTM_STATE_OS_GO.
Fix this by allowing flag set to BOOTM_STATE_OS_PREP, this however will
require a complete refactoring later on.
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
[trini: Apply to m68k, microblaze, nds32, nios2, openrisc, sh and sparc]
Signed-off-by: Tom Rini <trini@ti.com>
Robert Winkler [Mon, 17 Jun 2013 18:31:31 +0000 (11:31 -0700)]
omap: cm_t35: Fix cm_t35 for weak splash_screen_prepare
Signed-off-by: Robert Winkler <robert.winkler@boundarydevices.com>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Robert Winkler [Mon, 17 Jun 2013 18:31:30 +0000 (11:31 -0700)]
video: lcd: Make splash_screen_prepare weak, remove config macro
Remove CONFIG_SPLASH_SCREEN_PREPARE from README
Add doc/README.splashprepare to document functionality
Signed-off-by: Robert Winkler <robert.winkler@boundarydevices.com>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Robert Winkler [Mon, 17 Jun 2013 18:31:29 +0000 (11:31 -0700)]
video: lcd: Add CONFIG_SPLASH_SCREEN_PREPARE support to CONFIG_VIDEO
Create splash.c/h to put the function and any future common splash
screen code in.
Signed-off-by: Robert Winkler <robert.winkler@boundarydevices.com>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Piotr Wilczek [Wed, 5 Jun 2013 06:14:30 +0000 (08:14 +0200)]
lcd: align bmp header when uncopmressing image
When compressed image is loaded, it must be decompressed
to an aligned address + 2 to avoid unaligned access exception
on some ARM platforms.
Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Anatolij Gustschin <agust@denx.de>
CC: Wolfgang Denk <wd@denx.de>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Stephen Warren [Thu, 13 Jun 2013 23:13:11 +0000 (17:13 -0600)]
lcd: remove unaligned access in lcd_dt_simplefb_configure_node()
Some ARM compilers may emit code that makes unaligned accesses when
faced with constructs such as:
const char format[] = "r5g6b5";
Make this data static since it doesn't chagne; the compiler will simply
place it into the .rodata section directly, and avoid any unaligned run-
time initialization.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Piotr Wilczek [Fri, 24 May 2013 07:43:46 +0000 (09:43 +0200)]
drivers:video:s6e8ax0: change data_to_send array to static
This patch change 'data_to_send' array to static to avoid
unaligned access exeption on some platforms (ex Trats2).
Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Minkyu Kang <mk7.kang@samsung.com>
CC: Anatolij Gustschin <agust@denx.de>
Tom Rini [Mon, 1 Jul 2013 14:11:56 +0000 (10:11 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
Pierre Aubert [Thu, 27 Jun 2013 07:01:54 +0000 (09:01 +0200)]
usb: add support for the USB Ethernet adapter D-Link DUB-E100 H/W Ver C1
This trivial patch adds the definition of the vid/pid for the Ver C1 of the
USB Ethernet adapter D-Link DUB-E100.
Signed-off-by: Pierre Aubert <p.aubert@staubli.com>
CC: Marek Vasut <marex@denx.de>
Heiko Schocher [Thu, 27 Jun 2013 08:04:57 +0000 (10:04 +0200)]
usb: fix unaligned access in device_qual()
while playing with dfu, I tapped in an unaligned access
when doing on the host side a "lsusb -d [vendornr]: -v"
I get on the board:
GADGET DRIVER: usb_dnl_dfu
data abort
MAYBE you should read doc/README.arm-unaligned-accesses
pc : [<
8ff71db8>] lr : [<
8ff75aec>]
sp :
8ef40d18 ip :
00000005 fp :
00000000
r10:
00000000 r9 :
47401410 r8 :
8ef40f38
r7 :
8ef4aae8 r6 :
0000000a r5 :
8ef4ab28 r4 :
8ef4ab80
r3 :
0000000a r2 :
00000006 r1 :
00000006 r0 :
8ef4aae8
Flags: Nzcv IRQs off FIQs on Mode SVC_32
Resetting CPU ...
reason is that in the "struct usb_composite_dev" the
"struct usb_device_descriptor desc;" is on an odd address,
and this struct gets accessed in
drivers/usb/gadget/composite.c device_qual()
Fix it, by align this var "struct desc" fix to an aligned
address.
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Samuel Egli <samuel.egli@siemens.com>
Lukasz Majewski [Wed, 26 Jun 2013 09:46:13 +0000 (11:46 +0200)]
dfu:function: Fix number of allocated DFU function pointers
This subtle change fix problem with too small amount of allocated
memory to store DFU function pointers.
One needs to allocate extra space for sentinel NULL pointer in this array
of function pointers.
With the previous code, the NULL value overwrites malloc internal data
and afterwards free(f_dfu->function) crashes.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Heiko Schocher [Tue, 4 Jun 2013 09:10:01 +0000 (11:10 +0200)]
usb, musb-new: add wdt trigger
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Ilya Yanok <ilya.yanok@cogentembedded.com>
Heiko Schocher [Tue, 4 Jun 2013 09:19:50 +0000 (11:19 +0200)]
usb, g_dnl: make possibility to fixup the device_desc board specific
add a weak dummy function g_dnl_fixup to add the possibility to update
the device_desc board specific. Used on the upcoming siemens board
support, where idVendor and idProduct is stored in an eeprom.
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
Heiko Schocher [Tue, 25 Jun 2013 11:59:29 +0000 (13:59 +0200)]
usb, dfu gadget: switch to dfu mode in dfu_bind
- set in to_dfu_mode() f_dfu->dfu_state = DFU_STATE_dfuIDLE
as after every to_dfu_mode call this is done, so move
this into to_dfu_mode
- switch in dfu_bind() into dfu mode:
This fixes wrong "dfu-util -l" output, when calling
"dfu-util -l" after a board reset, without doing a
download before. See also discussion here:
http://lists.denx.de/pipermail/u-boot/2013-June/157272.html
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@ti.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Samuel Egli <samuel.egli@siemens.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Tested-by: Lukasz Majewski <l.majewski@samsung.com>
Piotr Wilczek [Wed, 10 Apr 2013 12:07:51 +0000 (14:07 +0200)]
usb:composite: use memcpy to avoid unaligned access
This patch memcpy is used instead of an assignment to
avoid unaligned access execption on some ARM platforms.
Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Lukasz Majewski <l.majewski@samsung.com>
Tested-by: Heiko Schocher <hs@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
Piotr Wilczek [Wed, 26 Jun 2013 06:22:05 +0000 (08:22 +0200)]
drivers:usb: use get|put_unaligned_le16
This patch use get|put_unaligned_le16 to access structure data
to avoid data abort on some ARM platforms.
Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Marek Vasut <marex@denx.de>
Heiko Schocher [Wed, 12 Jun 2013 04:05:51 +0000 (06:05 +0200)]
dfu: make data buffer size configurable
Dfu transfer uses a buffer before writing data to the
raw storage device. Make the size (in bytes) of this buffer
configurable through environment variable "dfu_bufsiz".
Defaut value is configurable through CONFIG_SYS_DFU_DATA_BUF_SIZE
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@ti.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
Acked-by: Tom Rini <trini@ti.com>
Tom Rini [Fri, 28 Jun 2013 22:03:51 +0000 (18:03 -0400)]
Prepare v2013.07-rc2
Signed-off-by: Tom Rini <trini@ti.com>
Stefan Roese [Fri, 28 Jun 2013 08:02:03 +0000 (10:02 +0200)]
Fix bootm to work on powerpc again (compressed uImage)
Patch
35fc84fa1 [Refactor the bootm command to reduce code duplication]
breaks booting Linux (compressed uImage with fdt) on powerpc.
boot_jump_linux() mustn't be called before boot_prep_linux() and
boot_body_linux() have been called. So remove the superfluous call
to boot_jump_linux() in arch/powerpc/lib/bootm.c as its called later on
in this function.
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@ti.com>
Simon Glass [Thu, 27 Jun 2013 17:43:18 +0000 (10:43 -0700)]
mkimage: Build signing only if board has CONFIG_FIT_SIGNATURE
At present mkimage is set up to always build with image signing support.
This means that the SSL libraries (e.g. libssl-dev) are always required.
Adjust things so that mkimage can be built with and without image signing,
controlled by the presence of CONFIG_FIT_SIGNATURE in the board config file.
If CONFIG_FIT_SIGNATURE is not enabled, then mkimage will report a warning
that signing is not supported. If the option is enabled, but libraries are
not available, then a build error similar to this will be shown:
lib/rsa/rsa-sign.c:26:25: fatal error: openssl/rsa.h: No such file or directory
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Fri, 28 Jun 2013 07:46:12 +0000 (00:46 -0700)]
bootm: Disable interrupts before loading OS
This restores the ordering of interrupt disable to what it what before
commit
35fc84fa. It seems that on some archiectures (e.g. PowerPC) the
OS is loaded into an interrupt region, which can cause problems if
interrupts are still running.
Tested-by: Stefan Roese <sr@denx.de>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tom Rini [Fri, 28 Jun 2013 15:38:02 +0000 (11:38 -0400)]
cmd_bootm.c: Correct BOOTM_ERR_OVERLAP handling
With
35fc84fa1 [Refactor the bootm command to reduce code duplication]
we stopped checking the return value of bootm_load_os (unintentionally!)
and simply returned if we had a non-zero return value from the function.
This broke the valid case of a legacy image file of a single kernel
loaded into an overlapping memory area (the default way of booting
nearly all TI platforms).
The best way to fix this problem in the new code is to make
bootm_load_os be the one to see if we have a problem with this, and if
it's fatal return BOOTM_ERR_RESET and if it's not BOOTM_ERR_OVERLAP, so
that we can avoid calling lmb_reserve() but continue with booting. We
however still need to handle the other BOOTM_ERR values so re-work
do_bootm_states so that we have an error handler at the bottom we can
goto for problems from bootm_load_os, or problems from the other callers
(as the code was before). Add a comment to do_bootm_states noting the
existing restriction on negative return values.
Signed-off-by: Tom Rini <trini@ti.com>
---
Changes in v2:
- Rework so that only bootm_load_os and boot_selected_os head down into
the err case code, and other errors simply return back to the caller.
Fixes 'spl export'.
Tom Rini [Thu, 27 Jun 2013 13:55:39 +0000 (09:55 -0400)]
am335x_evm: Add missing ';' in findfdt
In
a714321 we add a check at the end of findfdt to make sure we have
updated it from undefined and if not, warn the user. This however
forgot a ';' on the end of the previous last test.
Signed-off-by: Tom Rini <trini@ti.com>
Tom Rini [Thu, 27 Jun 2013 12:23:27 +0000 (08:23 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-74xx-7xx
Wolfgang Denk [Fri, 14 Jun 2013 08:20:44 +0000 (10:20 +0200)]
PPC 74xx_7xx: Fix build warnings for ELPPC board
Fix:
misc.c: In function 'misc_init_r':
misc.c:210:3: warning: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
misc.c:211:3: warning: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
misc.c:212:3: warning: dereferencing type-punned pointer will break
strict-aliasing rules [-Wstrict-aliasing]
Signed-off-by: Wolfgang Denk <wd@denx.de>
Jason Jin [Wed, 26 Jun 2013 02:21:31 +0000 (10:21 +0800)]
ColdFire: Update the arch_global_date changes for mcf5441x
Update inp_clk, vco_clk and flb_clk for mcf5441x as those
items were moved to arch_global_data.
Signed-off-by: Jason Jin <Jason.jin@freescale.com>
Steve deRosier [Tue, 22 Jan 2013 21:05:35 +0000 (13:05 -0800)]
Fix MCF5235 SDRAM base address macro
SDRAMC_DARCn_BA() macro worked fine when the BA is 0x00000000 even
though the macro is incorrect. It causes the BA to be set incorrctly
for other base addresses. This patch fixes the macro so that base
addresses other than zero can be used with the MCF5235.
Signed-off-by: Steve deRosier <derosier@gmail.com>
Jens Scharsig (BuS Elektronik) [Wed, 16 Jan 2013 07:24:10 +0000 (08:24 +0100)]
m68k: fix debug call befor serial init
There is a debug call in board.c befor serial interface was initialized.
This moves the debug code behind serial_initialize call.
Signed-off-by: Jens Scharsig (BuS Elektronik) <esw@bus-elektronik.de>
Mike Dunn [Wed, 26 Jun 2013 19:33:53 +0000 (12:33 -0700)]
mtd/nand: docg4: fix compiler warnings
Newer gcc versions warn about unused variables. This patch corrects a few of
those warnings that popped up in a build for the palmtreo680 board.
Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
Axel Lin [Sat, 22 Jun 2013 16:57:46 +0000 (00:57 +0800)]
usb: musb: Use ARRAY_SIZE at appropriate places
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Axel Lin [Sat, 22 Jun 2013 16:56:46 +0000 (00:56 +0800)]
mtd: cfi_flash: Use ARRAY_SIZE at appropriate places
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Axel Lin [Sat, 22 Jun 2013 16:55:14 +0000 (00:55 +0800)]
hwmon: lm63: Use ARRAY_SIZE at appropriate place
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Axel Lin [Sat, 22 Jun 2013 16:46:41 +0000 (00:46 +0800)]
serial: Use ARRAY_SIZE instead of reinventing it
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Vincent Stehlé [Thu, 20 Jun 2013 16:14:22 +0000 (18:14 +0200)]
README: align default commands with code
Align the list of default commands mentioned in the configuration options
paragraph of the README with the actual definitions found in
include/config_cmd_default.h
Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
Sascha Silbe [Fri, 14 Jun 2013 11:07:25 +0000 (13:07 +0200)]
Fix block device accesses beyond 2TiB
With CONFIG_SYS_64BIT_LBA, lbaint_t gets defined as a 64-bit type,
which is required to represent block numbers for storage devices that
exceed 2TiB (the block size usually is 512B), e.g. recent hard drives.
For some obscure reason, the current U-Boot code uses lbaint_t for the
number of blocks to read (a rather optimistic estimation of how RAM
sizes will evolve), but not for the starting address. Trying to access
blocks beyond the 2TiB boundary will simply wrap around and read a
block within the 0..2TiB range.
We now use lbaint_t for block start addresses, too. This required
changes to all block drivers as the signature of block_read(),
block_write() and block_erase() in block_dev_desc_t changed.
Signed-off-by: Sascha Silbe <t-uboot@infra-silbe.de>
Steven Stallion [Mon, 10 Jun 2013 08:00:09 +0000 (01:00 -0700)]
cmd_bootm: Add command line arguments to Plan 9
This patch introduces support for command line arguments to Plan 9.
Plan 9 generally dedicates a small region of kernel memory (known
as CONFADDR) for runtime configuration. A new environment variable
named confaddr was introduced to indicate this location when copying
arguments.
Signed-off-by: Steven Stallion <sstallion@gmail.com>
[trini: Adapt for Simon's changes about correcting argc, no need to bump
by 2 now]
Signed-off-by: Tom Rini <trini@ti.com>
Simon Glass [Thu, 13 Jun 2013 22:10:11 +0000 (15:10 -0700)]
Add verified boot information and test
Add a description of how to implement verified boot using signed FIT images,
and a simple test which verifies operation on sandbox.
The test signs a FIT image and verifies it, then signs a FIT configuration
and verifies it. Then it corrupts the signature to check that this is
detected.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 13 Jun 2013 22:10:10 +0000 (15:10 -0700)]
sandbox: config: Enable FIT signatures with RSA
We want to sign and verify images using sandbox, so enable these options.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 13 Jun 2013 22:10:09 +0000 (15:10 -0700)]
image: Add support for signing of FIT configurations
While signing images is useful, it does not provide complete protection
against several types of attack. For example, it it possible to create a
FIT with the same signed images, but with the configuration changed such
that a different one is selected (mix and match attack). It is also possible
to substitute a signed image from an older FIT version into a newer FIT
(roll-back attack).
Add support for signing of FIT configurations using the libfdt's region
support.
Please see doc/uImage.FIT/signature.txt for more information.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 13 Jun 2013 22:10:08 +0000 (15:10 -0700)]
libfdt: Add fdt_find_regions()
Add a function to find regions in device tree given a list of nodes to
include and properties to exclude.
See the header file for full documentation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 13 Jun 2013 22:10:07 +0000 (15:10 -0700)]
mkimage: Add -r option to specify keys that must be verified
Normally, multiple public keys can be provided and U-Boot is not
required to use all of them for verification. This is because some
images may not be signed, or may be optionally signed.
But we still need a mechanism to determine when a key must be used.
This feature cannot be implemented in the FIT itself, since anyone
could change it to mark a key as optional. The requirement for
key verification must go in with the public keys, in a place that
is protected from modification.
Add a -r option which tells mkimage to mark all keys that it uses
for signing as 'required'.
If some keys are optional and some are required, run mkimage several
times (perhaps with different key directories if some keys are very
secret) using the -F flag to update an existing FIT.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Simon Glass [Thu, 13 Jun 2013 22:10:06 +0000 (15:10 -0700)]
mkimage: Add -c option to specify a comment for key signing
When signing an image, it is useful to add some details about which tool
or person is authorising the signing. Add a comment field which can take
care of miscellaneous requirements.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Simon Glass [Thu, 13 Jun 2013 22:10:05 +0000 (15:10 -0700)]
mkimage: Add -F option to modify an existing .fit file
When signing images it is sometimes necessary to sign with different keys
at different times, or make the signer entirely separate from the FIT
creation to avoid needing the private keys to be publicly available in
the system.
Add a -F option so that key signing can be a separate step, and possibly
done multiple times as different keys are avaiable.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Simon Glass [Thu, 13 Jun 2013 22:10:04 +0000 (15:10 -0700)]
mkimage: Add -K to write public keys to an FDT blob
FIT image verification requires public keys. Add a convenient option to
mkimage to write the public keys to an FDT blob when it uses then for
signing an image. This allows us to use:
mkimage -f test.its -K dest.dtb -k keys test.fit
and have the signatures written to test.fit and the corresponding public
keys written to dest.dtb. Then dest.dtb can be used as the control FDT
for U-Boot (CONFIG_OF_CONTROL), thus providing U-Boot with access to the
public keys it needs.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Simon Glass [Thu, 13 Jun 2013 22:10:03 +0000 (15:10 -0700)]
mkimage: Add -k option to specify key directory
Keys required for signing images will be in a specific directory. Add a
-k option to specify that directory.
Also update the mkimage man page with this information and a clearer list
of available commands.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de> (v1)
Simon Glass [Thu, 13 Jun 2013 22:10:02 +0000 (15:10 -0700)]
image: Add RSA support for image signing
RSA provides a public key encryption facility which is ideal for image
signing and verification.
Images are signed using a private key by mkimage. Then at run-time, the
images are verified using a private key.
This implementation uses openssl for the host part (mkimage). To avoid
bringing large libraries into the U-Boot binary, the RSA public key
is encoded using a simple numeric representation in the device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 13 Jun 2013 22:10:01 +0000 (15:10 -0700)]
image: Support signing of images
Add support for signing images using a new signature node. The process
is handled by fdt_add_verification_data() which now takes parameters to
provide the keys and related information.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 13 Jun 2013 22:10:00 +0000 (15:10 -0700)]
image: Add signing infrastructure
Add a structure to describe an algorithm which can sign and (later) verify
images.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:53 +0000 (11:14 -0700)]
x86: config: Add tracing options
Add configs to enable tracing when it is needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:52 +0000 (11:14 -0700)]
x86: Support tracing function
Some changes are needed to x86 timer functions to support tracing. Add
these so that the feature works correctly.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:51 +0000 (11:14 -0700)]
exynos: config: Add tracing options
Add tracing to Exynos5 boards, so that tracing can be enabled when building
with 'make FTRACE=1'. We use a 16MB trace buffer.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:50 +0000 (11:14 -0700)]
exynos: Avoid function instrumentation for microsecond timer
For tracing to work it has to be able to access the microsecond timer
without causing a recursive call to the function entry/exit handlers.
Add attributes to the relevant functions to support this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 20 Jun 2013 04:15:10 +0000 (21:15 -0700)]
arm: Implement the 'fake' go command
Implement this feature on ARM for tracing.
It would be nice to have generic bootm support so that it is easily
implemented on any arch.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
Simon Glass [Tue, 11 Jun 2013 18:14:48 +0000 (11:14 -0700)]
Add a 'fake' go command to the bootm command
For tracing it is useful to run as much of U-Boot as possible so as to get
a complete picture. Quite a bit of work happens in bootm, and we don't want
to have to stop tracing before bootm starts.
Add a way of doing a 'fake' boot of the OS - which does everything up to
the point where U-Boot is about to jump to the OS image. This allows
tracing to record right until the end.
This requires arch support to work.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:47 +0000 (11:14 -0700)]
Refactor the bootm command to reduce code duplication
At present the bootm code is mostly duplicated for the plain 'bootm'
command and its sub-command variant. This makes the code harder to
maintain and means that changes must be made to several places.
Introduce do_bootm_states() which performs selected portions of the bootm
work, so that both plain 'bootm' and 'bootm <sub_command>' can use the
same code.
Additional duplication exists in bootz, so tidy that up as well. This
is not intended to change behaviour, apart from minor fixes where the
previously-duplicated code missed some chunks of code.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:46 +0000 (11:14 -0700)]
Clarify bootm OS arguments
At present the arguments to bootm are processed in a somewhat confusing
way. Sub-functions must know how many arguments their calling functions
have processed, and the OS boot function must also have this information.
Also it isn't obvious that 'bootm' and 'bootm start' provide arguments in
the same way.
Adjust the code so that arguments are removed from the list before calling
a sub-function. This means that all functions can know that argv[0] is the
first argument of which they need to take notice.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:45 +0000 (11:14 -0700)]
Add a simple test for sandbox trace
It is difficult to automatically test tracing on most architectures, but
with sandbox it is easy enough to do a simple sanity check.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:44 +0000 (11:14 -0700)]
sandbox: Support trace feature
Support tracing on sandbox by adding suitable CONFIG options. To enable it,
compile U-Boot with FTRACE=1.
The timer functions are marked to skip tracing, since these are called from
the tracing code itself, and we want to avoid an infinite loop.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:43 +0000 (11:14 -0700)]
Add proftool to decode profile data
This tool provides the facility to decode U-Boot trace data and write out
a text file in Linux ftrace format for use with pytimechart.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:42 +0000 (11:14 -0700)]
Add trace support to generic board
Add hooks for tracing to generic board, including:
- allow early tracing to start early as possible in U-Boot
- reserve memory for trace buffer
- copy early trace buffer to main trace buffer after relocation
- setup full tracing support after relocation
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:41 +0000 (11:14 -0700)]
Support tracing in config.mk when enabled
Use -finstrument-functions when tracing is enabled (make FTRACE=1).
Tracing is not currently supported by SPL even if sufficient memory is
available.
When tracing is enabled, we #define FTRACE. This can be used by
board config files to conditionally enable the tracing options.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:40 +0000 (11:14 -0700)]
Add a trace command
Add a trace command with sub-commands to start/stop tracing, print out
statistics and dump trace information to memory for later upload to a host.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:39 +0000 (11:14 -0700)]
Add trace library
Add a library which supports tracing of execution using built-in gcc
features and a microsecond timer. This can be used to record a list of
function which are executed, along with a timestamp for each. Later
this information can be sent to the host for processing.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:38 +0000 (11:14 -0700)]
Add function to print a number with grouped digits
Move bootstage's numbering printing code into a generic place so that it can
be used by tracing also.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:37 +0000 (11:14 -0700)]
bootstage: Correct printf types
The unstash code is a bit loose with its printf() types, which gives
warnings on sandbox. Correct this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:36 +0000 (11:14 -0700)]
Show stdout on error in fit-test
When this test fails it is useful to see the output from U-Boot. Add
printing of this information on failure.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:35 +0000 (11:14 -0700)]
Fix missing return in do_mem_loop()
For some reason this does not normally cause a compiler warning, but the code
seems to be incorrect. Add the missing return.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:34 +0000 (11:14 -0700)]
x86: Correct missing local variable in bootm
Enabling FIT produces a compile error. Fix this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Tue, 11 Jun 2013 18:14:33 +0000 (11:14 -0700)]
pci: Convert extern inline functions to static inline
I am not sure of the meaning of extern inline, but this gives errors
when building with function instrumenting enabled. Change these functions
to static inline.
Signed-off-by: Simon Glass <sjg@chromium.org>
Hung-ying Tyan [Wed, 15 May 2013 10:27:34 +0000 (18:27 +0800)]
cros: exynos: enable cros-ec for smdk5250
This patch initiates cros-ec in board_init() to enable it for smdk5250.
This patch depends on the patch in the MMC series that brings in exynos5-dt.c.
Refer to http://patchwork.ozlabs.org/patch/240084.
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Hung-ying Tyan [Wed, 15 May 2013 10:27:33 +0000 (18:27 +0800)]
cros: exynos: add cros-ec device nodes to exynos5250-snow.dts
This patch adds cros-ec related device nodes to exynos5250-snow.dts.
It also adds a gpio node to exynos5250.dtsi.
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Hung-ying Tyan [Wed, 15 May 2013 10:27:32 +0000 (18:27 +0800)]
cros: adds cros_ec keyboard driver
This patch adds the driver for keyboard that's controlled by ChromeOS EC.
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Hung-ying Tyan [Wed, 15 May 2013 10:27:31 +0000 (18:27 +0800)]
cros: add LPC support for cros_ec
This patch adds LPC support for carrying out the cros_ec protocol.
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Hung-ying Tyan [Wed, 15 May 2013 10:27:30 +0000 (18:27 +0800)]
cros: exynos: add SPI support for cros_ec
This patch adds SPI support for carrying out the cros_ec protocol.
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Hung-ying Tyan [Wed, 15 May 2013 10:27:29 +0000 (18:27 +0800)]
cros: add I2C support for cros_ec
This patch adds I2C support for carrying out the cros_ec protocol.
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Hung-ying Tyan [Wed, 15 May 2013 10:27:28 +0000 (18:27 +0800)]
cros: add cros_ec driver
This patch adds the cros_ec driver that implements the protocol for
communicating with Google's ChromeOS embedded controller.
Signed-off-by: Bernie Thompson <bhthompson@chromium.org>
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Che-Liang Chiou <clchiou@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Gabe Black <gabeblack@chromium.org>
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org>
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Tom Rini [Tue, 25 Jun 2013 02:27:44 +0000 (22:27 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-net
Heiko Schocher [Tue, 4 Jun 2013 08:58:00 +0000 (10:58 +0200)]
phylib: add atheros ar803x phy
add atheros ar803x phy, used on the upcoming siemens boards.
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Andy Fleming <afleming@freescale.com>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Heiko Schocher [Tue, 4 Jun 2013 08:58:09 +0000 (10:58 +0200)]
phylib: add natsemi dp83630 phy
add natsemi dp83630 phy, used on the upcoming siemens boards.
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Andy Fleming <afleming@freescale.com>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Kuo-Jung Su [Tue, 7 May 2013 06:33:51 +0000 (14:33 +0800)]
net: update FTGMAC100 for MMU/D-cache support
Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
CC: Joe Hershberger <joe.hershberger@gmail.com>
CC: Tom Rini <trini@ti.com>
Kuo-Jung Su [Tue, 7 May 2013 06:33:31 +0000 (14:33 +0800)]
net: add Faraday FTMAC110 10/100Mbps ethernet support
Faraday FTMAC110 10/100Mbps supports half-word data transfer for Linux.
However it has a weird DMA alignment issue:
(1) Tx DMA Buffer Address:
1 bytes aligned: Invalid
2 bytes aligned: O.K
4 bytes aligned: O.K
(2) Rx DMA Buffer Address:
1 bytes aligned: Invalid
2 bytes aligned: O.K
4 bytes aligned: Invalid!!!
Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Tom Rini <trini@ti.com>
SARTRE Leo [Tue, 30 Apr 2013 14:57:25 +0000 (16:57 +0200)]
net: phy: supplement support for Micrel's KSZ9031
Add function ksz9031_phy_extended_write and ksz9031_phy_extended_read
Signed-off-by: Leo Sartre <lsartre@adeneo-embedded.com>
Bo Shen [Wed, 24 Apr 2013 07:59:28 +0000 (15:59 +0800)]
net: macb: add support for gigabit MAC
Add gigabit MAC support in macb driver
- using IP version to distinguish whether MAC is GMAC
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Bo Shen [Wed, 24 Apr 2013 07:59:27 +0000 (15:59 +0800)]
net: macb: using phylib to configure phy device
using phylib to configure phy device in macb driver
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Bo Shen [Wed, 24 Apr 2013 07:59:26 +0000 (15:59 +0800)]
net: macb: using AT91FAMILY replace #ifdeferry
Using CONFIG_AT91FAMILY replace #ifdeferry for atmel SoC
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Andreas Bießmann <andreas.devel@googlemail.com>
Bo Shen [Wed, 24 Apr 2013 02:46:18 +0000 (10:46 +0800)]
ARM: at91sam9n12: add network support with ksz8851_16mll
add network support with ksz8851_16mll on at91sam9n12ek board
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Andreas Bießmann <andreas.devel@googlemail.com>
Roberto Cerati [Wed, 24 Apr 2013 02:46:17 +0000 (10:46 +0800)]
net: ks8851_mll: add ethernet support
The device interface is 16 bits wide.
All the available packets are read from the incoming fifo.
Signed-off-by: Roberto Cerati <roberto.cerati@bticino.it>
Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
[voice.shen@atmel.com: address comments from review results]
[voice.shen@atmel.com: clean up for submit]
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Tested-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
Xie Xiaobo [Wed, 10 Apr 2013 08:23:39 +0000 (16:23 +0800)]
phylib: Add Atheros AR8035 GETH PHY support
Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>