All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Murphy <dmurphy@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/7] arm: mach-keystone: Implements FIT post-processing call for keystone SoCs
Date: Mon, 29 Aug 2016 11:22:36 -0500	[thread overview]
Message-ID: <57C4614C.2020001@ti.com> (raw)
In-Reply-To: <1472193016-77388-4-git-send-email-madans@ti.com>

On 08/26/2016 01:30 AM, Madan Srinivas wrote:
> From: Vitaly Andrianov <vitalya@ti.com>
>
> This commit implements the board_fit_image_post_process() function for
> the keystone architecture. Unlike OMAP class devices, security
> functions in keystone are not handled in the ROM.
> The interface to the secure functions is TI proprietary and depending
> on the keystone platform, the security functions like encryption,
> decryption and authentication might even be offloaded to other secure
> processing elements in the SoC.
> The boot monitor acts as the gateway to these secure functions and the
> boot monitor for secure devices is available as part of the SECDEV
> package for KS2. For more details refer doc/README.ti-secure
>
> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
> Signed-off-by: Madan Srinivas <madans@ti.com>
> ---
>
>  arch/arm/mach-keystone/mon.c | 53 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 53 insertions(+)
>
> diff --git a/arch/arm/mach-keystone/mon.c b/arch/arm/mach-keystone/mon.c
> index 256f630..b4a6f1c 100644
> --- a/arch/arm/mach-keystone/mon.c
> +++ b/arch/arm/mach-keystone/mon.c
> @@ -12,10 +12,31 @@
>  #include <mach/mon.h>
>  asm(".arch_extension sec\n\t");
>  
> +#ifdef CONFIG_TI_SECURE_DEVICE
> +#define KS2_HS_AUTH_FN_OFFSET	8
> +#define KS2_HS_SEC_HEADER_LEN	0x60
> +#define KS2_AUTH_CMD		"2"
> +/**
> + * (*fn_auth)() - Invokes security functions using a
> + * proprietary TI interface. This binary and source for
> + * this is available in the secure development package or
> + * SECDEV. For details on how to access this please refer
> + * doc/README.ti-secure
> + *
> + * @first param:	no. of parameters
> + * @second param:	parameter list
> + * @return non-zero value on success, zero on error
> + */
> +static unsigned int (*fn_auth)(int, char * const []);
> +#endif
> +
>  int mon_install(u32 addr, u32 dpsc, u32 freq)
>  {
>  	int result;
>  
> +#ifdef CONFIG_TI_SECURE_DEVICE
> +	fn_auth = (void *)(addr + KS2_HS_AUTH_FN_OFFSET);
> +#endif
>  	__asm__ __volatile__ (
>  		"stmfd r13!, {lr}\n"
>  		"mov r0, %1\n"
> @@ -61,3 +82,35 @@ int mon_power_off(int core_id)
>  		: "cc", "r0", "r1", "memory");
>  	return  result;
>  }
> +
> +#ifdef CONFIG_TI_SECURE_DEVICE
> +static void k2_hs_auth(void *addr)
> +{
> +	char *argv1 = KS2_AUTH_CMD;
> +	char argv2[32];
> +	char *argv[3] = {NULL, argv1, argv2};
> +	int ret;
> +
> +	sprintf(argv2, "0x%08x", (u32)addr);
> +	ret = fn_auth(3, argv);
> +
> +	if (ret == 0) {

Can this be if (!ret)?

> +		printf("FAIL!!!\n"); /* remove form production code */

Wouldn't this be production code?
If this print is intended to stay the s/form/from

Dan

> +		hang();
> +	}
> +}
> +
> +void board_fit_image_post_process(void **p_image, size_t *p_size)
> +{
> +	void *dst = *p_image;
> +	void *src = dst + KS2_HS_SEC_HEADER_LEN;
> +
> +	k2_hs_auth(*p_image);
> +
> +	/*
> +	* Overwrite the image headers  after authentication
> +	* and decryption. Move the image to its run address
> +	*/
> +	memcpy(dst, src, *p_size - KS2_HS_SEC_HEADER_LEN);
> +}
> +#endif


-- 
------------------
Dan Murphy

  reply	other threads:[~2016-08-29 16:22 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <madans@ti.com>
2016-08-26  6:30 ` [U-Boot] [PATCH 0/7] Adds support for secure boot on Keystone SoCs (K2E) Madan Srinivas
2016-08-26  6:30   ` [U-Boot] [PATCH 1/7] include: image.h: Fixes build warning with CONFIG_FIT_IMAGE_POST_PROCESS Madan Srinivas
2016-08-29 14:52     ` Andrew F. Davis
2016-08-26  6:30   ` [U-Boot] [PATCH 2/7] arm: mach-keystone: Implements FIT post-processing call for keystone SoCs Madan Srinivas
2016-08-29 16:22     ` Dan Murphy [this message]
2016-08-30  9:03     ` Lokesh Vutla
2016-08-26  6:30   ` [U-Boot] [PATCH 3/7] arm: omap-common: Enable support for K2 HS devices in u-boot Madan Srinivas
2016-08-29 14:56     ` Andrew F. Davis
2016-08-29 17:02     ` Dan Murphy
2016-08-26  6:30   ` [U-Boot] [PATCH 4/7] arm: omap-common: Reuse secure image name between OMAP and keystone Madan Srinivas
2016-08-29 15:10     ` Andrew F. Davis
2016-08-26  6:30   ` [U-Boot] [PATCH 5/7] arm: mach-keystone: config.mk: Adds support for secure images on K2 Madan Srinivas
2016-08-29 15:21     ` Andrew F. Davis
2016-08-26  6:30   ` [U-Boot] [PATCH 6/7] doc: Updates info on using keystone secure devices from TI Madan Srinivas
2016-08-26  6:30   ` [U-Boot] [PATCH 7/7] configs: Adds a defconfig for K2E High Security EVM Madan Srinivas
2016-08-29 15:28     ` Andrew F. Davis
2016-09-01  5:04 ` [U-Boot] [PATCH v2 0/7] Adds support for secure boot on Keystone SoCs (K2E) Madan Srinivas
2016-09-01  5:04   ` [U-Boot] [PATCH v2 1/7] include: image.h: Fixes build warning with CONFIG_FIT_IMAGE_POST_PROCESS Madan Srinivas
2016-09-06 13:34     ` Tom Rini
2016-09-06 13:34     ` Tom Rini
2016-09-01  5:04   ` [U-Boot] [PATCH v2 2/7] arm: mach-keystone: Implements FIT post-processing call for keystone SoCs Madan Srinivas
2016-09-06 13:34     ` Tom Rini
2016-09-08 15:29       ` Srinivas, Madan
2016-09-01  5:04   ` [U-Boot] [PATCH v2 3/7] arm: omap-common: adds secure image name common to OMAP and keystone Madan Srinivas
2016-09-06 13:34     ` Tom Rini
2016-09-01  5:04   ` [U-Boot] [PATCH v2 4/7] arm: omap-common: Enable support for K2 HS devices in u-boot Madan Srinivas
2016-09-06 13:34     ` Tom Rini
2016-09-01  5:04   ` [U-Boot] [PATCH v2 5/7] arm: mach-keystone: config.mk: Adds support for secure images on K2 Madan Srinivas
2016-09-02 14:35     ` Andrew F. Davis
2016-09-01  5:04   ` [U-Boot] [PATCH v2 6/7] doc: Updates info on using keystone secure devices from TI Madan Srinivas
2016-09-06 13:34     ` Tom Rini
2016-09-01  5:04   ` [U-Boot] [PATCH v2 7/7] configs: Adds a defconfig for K2E High Security EVM Madan Srinivas
2016-09-02  4:25   ` [U-Boot] [PATCH v2 0/7] Adds support for secure boot on Keystone SoCs (K2E) Lokesh Vutla
2016-09-02 16:48     ` Srinivas, Madan
2016-09-03 16:56       ` Lokesh Vutla
2016-09-03 17:23         ` Nishanth Menon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57C4614C.2020001@ti.com \
    --to=dmurphy@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.