summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeLines
* Merge branch 'master' of git://git.denx.de/u-boot-mpc85xxTom Rini2015-03-05-68/+2008
|\
| * SECURE_BOOT : enable esbc_validate command for powerpc and arm platforms.gaurav rana2015-03-05-1/+67
| | | | | | | | | | | | | | | | | | | | esbc_validate command uses various IP Blocks: Security Monitor, CAAM block and SFP registers. Hence the respective CONFIG's are enabled. Apart from these CONFIG_SHA_PROG_HW_ACCEL and CONFIG_RSA are also enabled. Signed-off-by: Gaurav Rana <gaurav.rana@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
| * SECURE BOOT: Add command for validation of imagesgaurav rana2015-03-05-0/+1242
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. esbc_validate command is meant for validating header and signature of images (Boot Script and ESBC uboot client). SHA-256 and RSA operations are performed using SEC block in HW. This command works on both PBL based and Non PBL based Freescale platforms. Command usage: esbc_validate img_hdr_addr [pub_key_hash] 2. ESBC uboot client can be linux. Additionally, rootfs and device tree blob can also be signed. 3. In the event of header or signature failure in validation, ITS and ITF bits determine further course of action. 4. In case of soft failure, appropriate error is dumped on console. 5. In case of hard failure, SoC is issued RESET REQUEST after dumping error on the console. 6. KEY REVOCATION Feature: QorIQ platforms like B4/T4 have support of srk key table and key revocation in ISBC code in Silicon. The srk key table allows the user to have a key table with multiple keys and revoke any key in case of particular key gets compromised. In case the ISBC code uses the key revocation and srk key table to verify the u-boot code, the subsequent chain of trust should also use the same. 6. ISBC KEY EXTENSION Feature: This feature allows large number of keys to be used for esbc validation of images. A set of public keys is being signed and validated by ISBC which can be further used for esbc validation of images. Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com> Signed-off-by: Gaurav Rana <gaurav.rana@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
| * fsl_sec_mon: Add driver for Security Monitor block of Freescalegaurav rana2015-03-05-0/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | The Security Monitor is the SOC’s central reporting point for security-relevant events such as the success or failure of boot software validation and the detection of potential security compromises. The API's for transition of Security states have been added which will be used in case of SECURE BOOT. Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com> Signed-off-by: Gaurav Rana <gaurav.rana@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
| * fsl_sfp : Move ccsr_sfp_regs definition to common includegaurav rana2015-03-05-15/+87
| | | | | | | | | | | | | | | | | | | | | | Freescale sfp has been used for mpc8xxx. It will be used for ARM-based SoC as well. This patch moves the CCSR defintion of sfp_regs to common include. This patch also defines ccsr_sfp_regs definition for newer versions of SFP. Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com> Signed-off-by: Gaurav Rana <gaurav.rana@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
| * rsa : Compile Modular Exponentiation files based on CONFIG_RSA_SOFTWARE_EXPgaurav rana2015-03-05-2/+4
| | | | | | | | | | | | | | | | | | | | Remove dependency of rsa_mod_exp from CONFIG_FIT_SIGNATURE. As rsa modular exponentiation is an independent module and can be invoked independently. Signed-off-by: Gaurav Rana <gaurav.rana@freescale.com> Acked-by: Simon Glass <sjg@chromium.org> Reviewed-by: York Sun <yorksun@freescale.com>
| * mpc85xx/t104xrdb : remove raw timing parametervijay rai2015-03-05-45/+0
| | | | | | | | | | | | | | | | This board uses DDR DIMM. Reading SPD provides more flexibility. Raw timing parameter code should be removed after debugging. Signed-off-by: Vijay Rai <vijay.rai@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
| * powerpc: 85xx: Modify CONFIG_USB_MAX_CONTROLLER_COUNT for P1022DSYing Zhang2015-03-04-2/+2
| | | | | | | | | | | | | | | | | | | | | | Modify CONFIG_USB_MAX_CONTROLLER_COUNT value to 1 on P1022DS. As ETSEC2 and USB2 are muxed; thus if ETSEC2 is enabled, the system bus hangs on USB2 if ETSEC2 is enabled but "usb start" command is issued. Hence making default controller count to 1 to avoid system hang. Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com> Reviewed-by: Yusong Sun <yorksun@freescale.com>
| * powerpc/mpc85xx: Add DSP side awareness for Freescale Heterogeneous SoCsShaveta Leekha2015-03-04-3/+393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code provides framework for heterogeneous multicore chips based on StarCore and Power Architecture which are chasis-2 compliant, like B4860 and B4420 It will make u-boot recognize all non-ppc cores and peripherals like SC3900/DSP CPUs, MAPLE, CPRI and print their configuration in u-boot logs. Example boot logs of B4860QDS: U-Boot 2015.01-00232-geef6e36-dirty (Jan 19 2015 - 11:58:45) CPU0: B4860E, Version: 2.2, (0x86880022) Core: e6500, Version: 2.0, (0x80400120) Clock Configuration: CPU0:1600 MHz, CPU1:1600 MHz, CPU2:1600 MHz, CPU3:1600 MHz, DSP CPU0:1200 MHz, DSP CPU1:1200 MHz, DSP CPU2:1200 MHz, DSP CPU3:1200 MHz, DSP CPU4:1200 MHz, DSP CPU5:1200 MHz, CCB:666.667 MHz, DDR:933.333 MHz (1866.667 MT/s data rate) (Asynchronous), IFC:166.667 MHz CPRI:600 MHz MAPLE:600 MHz, MAPLE-ULB:800 MHz, MAPLE-eTVPE:1000 MHz FMAN1: 666.667 MHz QMAN: 333.333 MHz Top level changes include: (1) Top level CONFIG to identify HETEROGENUOUS clusters (2) CONFIGS for SC3900/DSP components (3) Global structures like "cpu_type" and "MPC85xx_SYS_INFO" updated for dsp cores and other components (3) APIs to get DSP num cores and their Mask like: cpu_dsp_mask, cpu_num_dspcores etc same as that of PowerPC (5) Code to fetch and print SC cores and other heterogenous device's frequencies (6) README added for the same Signed-off-by: Shaveta Leekha <shaveta@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
* | fixdep: remove multiple .config support codeMasahiro Yamada2015-03-05-5/+1
| | | | | | | | | | | | | | | | | | | | Since commit e02ee2548afe (kconfig: switch to single .config configuration), the ".*.cmd" files are not correctly created for SPL/TPL. The U-Boot extension code in fixdep, which was introduced to support the multiple .config, must be removed. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* | stdio: extend "name" to 32 symbolsAlexey Brodkin2015-03-05-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | With limit of 16 symbols very simple device names derived drom device tree description could not be displayed correctly. For example "serial0@0xc0fc1000" will be truncated to sensless "serial0@0xc0fc10" - note dropped tariling zeros. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* | cmd_usb_mass_storage: Remove extra 'ums' string in the usage textFabio Estevam2015-03-05-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently the usage text for the 'ums' command looks like this: Usage: ums ums <USB_controller> [<devtype>] <devnum> e.g. ums 0 mmc 0 ,so remove the extra 'ums' in the text. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Acked-by: Marek Vasut <marex@denx.de>
* | common/board_f: implement type casting for gd structureAlexey Brodkin2015-03-05-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case of global data structure defined as "register volatile" compiler throws an warning about incorrect type used: --->8--- common/board_f.c: In function "board_init_f_r": common/board_f.c:1073:2: warning: passing argument 1 of "&board_init_r +(sizetype)gd->reloc_off" discards "volatile" qualifier from pointer target type [enabled by default] (board_init_r + gd->reloc_off)(gd, gd->relocaddr); ^ common/board_f.c:1073:2: note: expected "struct gd_t *" but argument is of type "volatile struct gd_t *" --->8--- An obvious fix is manual casting to "gd_t *". Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@ti.com> Acked-by: Simon Glass <sjg@chromium.org>
* | lib/asm-offsets - make GD_RELOCADDR, GD_RELOC_OFF & GD_START_ADDR_SP ↵Alexey Brodkin2015-03-05-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | available for all architectures GD_RELOCADDR, GD_RELOC_OFF & GD_START_ADDR_SP are generic members of global data structure so why don't we allow architectures other than ARM to use it. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@ti.com> Acked-by: Simon Glass <sjg@chromium.org>
* | spl: fix calling "spl export .." more than onceHeiko Schocher2015-03-05-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | running "spl export ..." more than once fails with: Trying to execute a command out of order Trying to execute a command out of order Trying to execute a command out of order Trying to execute a command out of order Trying to execute a command out of order Trying to execute a command out of order ERROR prep subcommand failed! Subcommand failed reason is commmit: 35fc84fa1f: Refactor the bootm command to reduce code duplication It used "state != BOOTM_STATE_START" but state is a bitfield, so check if the bit BOOTM_STATE_START is not set. With this fix, "spl export ..." can called more than once ... Signed-off-by: Heiko Schocher <hs@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
* | vexpress64: juno: add NOR flash detectionLinus Walleij2015-03-05-11/+23
| | | | | | | | | | | | | | This enables the vexpress64 to detect its NOR flash so that we can load kernel etc from it. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* | use ASM_NL instead of '; ' for assembler new line character in the macroChen Gang2015-03-05-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some assemblers, they use another character as newline in a macro (e.g. arc uses '`'), so for generic assembly code, need use ASM_NL (a macro) instead of ';' for it. Basically this is the same patch as applied to Linux kernel - http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/include/linux/linkage.h?id=9df62f054406992ce41ec4558fca6a0fa56fffeb but modified a bit to fit in U-Boot. Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@ti.com>
* | omap: gpmc: 'nandecc sw' can use HAM1 or BCH8Ash Charles2015-03-05-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'nandecc sw' command selects a software-based error correction algorithm. By default, this is OMAP_ECC_HAM1_CODE_SW but some platforms use OMAP_ECC_BCH8_CODE_HW_DETECTION_SW as their software-based correction algorithm. Allow a user to be specific e.g. # nandecc sw <hamming|bch8> where 'hamming' is still the default. Note: we don't just use CONFIG_NAND_OMAP_ECCSCHEME as it might be set to a hardware-based ECC scheme---a little strange when the user has requested 'sw' ECC. Signed-off-by: Ash Charles <ashcharles@gmail.com>
* | mtd: nand: omap_gpmc: Make ready/busy pins configurableMichal Sojka2015-03-05-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit fb384c4720ca7496775d6578f184bf628db73456 introduced the use of WAIT0 pin for determining whether the NAND is ready or not. This only works if all NAND chips are connected to WAIT0. If some chips are connected to the other available pin WAIT1, nand_wait() does not really wait and prints a WARN_ON message. This patch allows the board to provide configuration of which chip is connected to which WAITx signal. For example, one can define in include/configs/foo.h: #define CONFIG_NAND_OMAP_GPMC_WSCFG 0,0,1,1 This would mean that chips using to CS0 and 1 are connected to WAIT0 and chips with CS2 and 3 are connected to WAIT1. Signed-off-by: Michal Sojka <sojka@merica.cz> Acked-by: Stefan Roese <sr@denx.de> Tested-by: Michal Vokáč <michal.vokac@comap.cz> Cc: Tom Rini <trini@ti.com>
* | fs: ext4 write: return file len on successPrzemyslaw Marczak2015-03-05-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | After rework of the file system API, the size of ext4 write was missed. This causes printing unreliable write size at the end of the file system write operation. Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Simon Glass <sjg@chromium.org> Tested-by: Stephen Warren <swarren@nvidia.com>
* | vexpress64: juno: support SMC9118 ethernetLinus Walleij2015-03-05-2/+13
| | | | | | | | | | | | | | | | This configures the Juno board to enable ethernet using the SMSC9118 ethernet controller found in the board. Tested by TFTP-booting a kernel over ethernet. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* | m68k: Add generic board support for MCF547X/8X and MCF5445XAlison Wang2015-03-05-4/+25
| | | | | | | | | | | | | | | | This patch adds generic board support for MCF547X/8X and MCF5445X. It is based on the patch about common generic board support for M68K architecture sent by Angelo. Signed-off-by: Alison Wang <alison.wang@freescale.com>
* | m68k: add generic-board supportangelo@sysam.it2015-03-05-23/+42
| | | | | | | | | | | | Add generic-board support for the m68k architecture. Signed-off-by: Angelo Dureghello <angelo@sysam.it>
* | m68k: add mcf5307 cpu supportangelo@sysam.it2015-03-05-2/+742
| | | | | | | | | | | | Add Freescale MCF5307 cpu support. Signed-off-by: Angelo Dureghello <angelo@sysam.it>
* | m68k: add amcore board supportangelo@sysam.it2015-03-05-0/+376
| | | | | | | | | | | | Add Sysam Amcore m68k-based board support. Signed-off-by: Angelo Dureghello <angelo@sysam.it>
* | Adding Support for BAV335x boardsGilles Gameiro2015-03-05-0/+1540
| |
* | omap3: add support for QUIPOS Cairo board.Albert ARIBAUD \(3ADEV\)2015-03-05-0/+744
| | | | | | | | | | | | | | | | This patch extends OMAP3 support for AM/DM37xx and introduces the AM3703-based Quipos Cairo board. Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr> Reviewed-by: Simon Glass <sjg@chromium.org>
* | cmd_yaffs: Clean up command usage messagesPeter Tyser2015-03-05-13/+13
| | | | | | | | | | | | | | | | | | | | | | Remove duplicate command names in usage messages to fix issues such as: => help yls yls - yaffs ls Usage: yls yls [-l] dirname Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* | board/BuR/kwb: Support modify bootcmd through reset-controllerHannes Petermaier2015-03-05-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | For some cases it is necessary to modify temporaly the bootcommand. This can be done by writing into the Scratchregister a specific value: * 0xCC - modify bootcmd "run netboot" * 0xCD - modify bootcmd "run netscript" * 0xCE - modify bootcmd "run mmcboot" the environment in flash is NOT overwritten. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/kwb: Form a bootline for vxWorksHannes Petermaier2015-03-05-0/+30
| | | | | | | | | | | | | | | | vxWorks needs several parameters which are set by the bootloader und his environment. So we form a vxWorks bootline and pass the result to vxWorks on a predefined address. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/kwb: Redesign default-environmentHannes Petermaier2015-03-05-36/+45
| | | | | | | | | | | | | | Due to several changes in the boot-process we do a complete redesign of the default environment. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/kwb: Support booting LinuxHannes Petermaier2015-03-05-1/+8
| | | | | | | | | | | | | | | | | | | | For series testing purpose we need to boot some linux, therefore we enable the needed features - bootz - devicetree Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/kwb: switch to board HW-Rev3Hannes Petermaier2015-03-05-63/+89
| | | | | | | | | | | | | | | | | | The board has been redesigned, therefore we need from now other I/O Pins to mux and handle. Older boards aren't supported from now anymore. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: cosmetic changesHannes Petermaier2015-03-05-2/+0
| | | | | | | | | | | | remove unnary '#define ETHLED_ORANGE (96+16) /* GPIO3_16 */' Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: Rework default-environment settings.Hannes Petermaier2015-03-05-5/+66
| | | | | | | | | | | | | | Due to several changes of the boot-process we've redesigned the default- environment settings completly. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/common: Add support for displaying BMP on LCDHannes Petermaier2015-03-05-1/+8
| | | | | | | | | | | | | | Customer wants to display some logo very quickly after power on, so we support from now loading a compressed bmp.gz to the screen. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/common: Enable CONFIG_CMD_TIMEHannes Petermaier2015-03-05-0/+1
| | | | | | | | | | | | | | time measurement of u-boot commands is needed very often during development. We add this feature until development is completed. Maybe forever :) Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/common: Introduce Network Console and common environment for itHannes Petermaier2015-03-05-31/+25
| | | | | | | | | | | | | | | | | | | | | | It is often necessary to "break in" into boards bootloader commandline if something fails or even for development purposes some parameters have to be changed. So we enable u-boot's CONFIG_NETCONSOLE feature. We also modify Networksettings to apply with this new use-case. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: Chg Pinmux - enable UART1 pinsHannes Petermaier2015-03-05-0/+8
| | | | | | | | Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: Chg pinmux - use free NAND Pins in non NAND-config as GPIOHannes Petermaier2015-03-05-1/+8
| | | | | | | | | | | | | | On boards were we have no NAND-flash soldered, we want to use those free pins as regular gpio. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: Change pinmux for GPIO2_28 from GPIO to PWM-TimeroutputHannes Petermaier2015-03-05-3/+3
| | | | | | | | Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: Enable EXT4 supportHannes Petermaier2015-03-05-0/+4
| | | | | | | | Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: Enable U-Boot BOOTCOUNT featureHannes Petermaier2015-03-05-0/+4
| | | | | | | | Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/tseries: Enable HW-WatchdogHannes Petermaier2015-03-05-0/+7
| | | | | | | | Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/common: try to setup cpsw mac-address from the devicetreeHannes Petermaier2015-03-05-10/+15
| | | | | | | | | | | | | | | | since we have a dtb blob programmed on the board we try to setup the cpsw interface with the programmed mac. If this method fails, we fall back to the device-fuses. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | board/BuR/common: Take usage of am335x LCD-DisplayHannes Petermaier2015-03-05-19/+463
| | | | | | | | | | | | | | a summary screen to the lcd. Values are taken from environment and or devicetree blob. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | common/lcd: Add command for writing to lcd-displayHannes Petermaier2015-03-05-0/+18
| | | | | | | | | | | | | | | | | | | | Sometimes we do not want redirect u-boot's console to screen but anyway we want write out some status information out of a u-boot script to the display. So we cannot use the normal "echo ....", instead we write explicitly using "lcdputs ..." for writing to the actual cursor position on LCD. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | common/lcd: Add command for setting cursor within lcd-consoleHannes Petermaier2015-03-05-0/+21
| | | | | | | | | | | | | | | | | | | | Sometimes we do not want redirect u-boot's console to screen but anyway we want write out some status information out of a u-boot script to the display. To define the specific position of the string to be written, we have to set the cursor with "setcurs" before writing. Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | drivers/video/am335x-fb: Add possibility to wait for stable power/pictureHannes Petermaier2015-03-05-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Often on boards exists a circuit which switches power on/off to LCD display. Due to the need of limiting the in-rush current the output voltage from this circuit rises "slowly", so it is necessary to wait a bit (VCC ramp up time) before starting output on LCD-pins. This time is specified in <n> ms within the panel-settings, called "pup_delay" Further some LCDs need a couple of frames to stabilize the image on it. We have now the possibility to wait some time after starting output on LCD. This time is also specified in <n> ms within panel-settings, called "pon_delay" Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
* | arm: spear: Move to generic board supportStefan Roese2015-03-05-0/+3
| | | | | | | | | | | | | | | | | | | | Without this change the board support for these SPEAr boards would be dropped soon. Generic board support seems to work just fine. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Viresh Kumar <viresh.kumar@linaro.org> Cc: Vipin Kumar <vk.vipin@gmail.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>