From: Lokesh Vutla <lokeshvutla@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC 4/9] arm: omap-common: add secure rom call API for secure devices
Date: Fri, 17 Jun 2016 09:48:05 +0530 [thread overview]
Message-ID: <576379FD.5030000@ti.com> (raw)
In-Reply-To: <1466018801-18044-5-git-send-email-dannenberg@ti.com>
On Thursday 16 June 2016 12:56 AM, Andreas Dannenberg wrote:
> From: Daniel Allred <d-allred@ti.com>
>
> Adds a generic C-callable API for making secure ROM calls on OMAP and
> OMAP-compatible devices. This API provides the important function of
> flushing the ROM call arguments to memory from the cache, so that the
> secure world will have a coherent view of those arguments. Then is
> simply calls the omap_smc_sec routine.
>
> Signed-off-by: Daniel Allred <d-allred@ti.com>
> Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
> ---
> arch/arm/cpu/armv7/omap-common/Makefile | 4 +++
> arch/arm/cpu/armv7/omap-common/sec_bridge.c | 47 +++++++++++++++++++++++++++++
> arch/arm/include/asm/omap_common.h | 4 +++
> 3 files changed, 55 insertions(+)
> create mode 100644 arch/arm/cpu/armv7/omap-common/sec_bridge.c
>
> diff --git a/arch/arm/cpu/armv7/omap-common/Makefile b/arch/arm/cpu/armv7/omap-common/Makefile
> index 87a7ac0..4fc3926 100644
> --- a/arch/arm/cpu/armv7/omap-common/Makefile
> +++ b/arch/arm/cpu/armv7/omap-common/Makefile
> @@ -28,6 +28,10 @@ obj-y += pipe3-phy.o
> obj-$(CONFIG_SCSI_AHCI_PLAT) += sata.o
> endif
>
> +ifneq ($(CONFIG_TI_SECURE_DEVICE),)
> +obj-y += sec_bridge.o
> +endif
can we use: obj-$(CONFIG_TI_SECURE_DEVICE) += sec_bridge.o ?
> +
> ifeq ($(CONFIG_SYS_DCACHE_OFF),)
> obj-y += omap-cache.o
> endif
> diff --git a/arch/arm/cpu/armv7/omap-common/sec_bridge.c b/arch/arm/cpu/armv7/omap-common/sec_bridge.c
> new file mode 100644
> index 0000000..4eaba8e
> --- /dev/null
> +++ b/arch/arm/cpu/armv7/omap-common/sec_bridge.c
> @@ -0,0 +1,47 @@
> +/*
> + *
> + * Common bridge function to make OMAP secure ROM calls
> + *
> + * (C) Copyright 2016
> + * Texas Instruments, <www.ti.com>
> + *
> + * Daniel Allred <d-allred@ti.com>
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <stdarg.h>
> +
> +#include <asm/arch/sys_proto.h>
> +#include <asm/omap_common.h>
> +
> +static uint32_t secure_rom_call_args[5] __aligned(ARCH_DMA_MINALIGN);
> +
> +u32 secure_rom_call(u32 service, u32 proc_id, u32 flag, ...)
> +{
> + int i;
> + u32 num_args;
> + va_list ap;
> +
> + va_start(ap, flag);
> +
> + num_args = va_arg(ap, u32);
> +
Is there a cap on the num_args? can you add a check for that?
> + /* Copy args to aligned args structure */
> + for (i = 0; i < num_args; i++)
> + secure_rom_call_args[i + 1] = va_arg(ap, u32);
> +
> + secure_rom_call_args[0] = num_args;
> +
> + va_end(ap);
> +
> + /* if data cache is enabled, flush the aligned args structure */
> +#ifndef CONFIG_SYS_DCACHE_OFF
> + flush_dcache_range(
> + (unsigned int)&secure_rom_call_args[0],
> + (unsigned int)&secure_rom_call_args[0] +
> + roundup(sizeof(secure_rom_call_args), ARCH_DMA_MINALIGN));
> +#endif
I guess you do not need #ifndef here. Patch 2 should take care of it.
Thanks and regards,
Lokesh
> + return omap_smc_sec(service, proc_id, flag, secure_rom_call_args);
> +}
> diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
> index 5943e6f..cb02c88 100644
> --- a/arch/arm/include/asm/omap_common.h
> +++ b/arch/arm/include/asm/omap_common.h
> @@ -629,6 +629,10 @@ void omap_smc1(u32 service, u32 val);
>
> u32 omap_smc_sec(u32 service, u32 proc_id, u32 flag, u32 *params);
>
> +#ifdef CONFIG_TI_SECURE_DEVICE
> +u32 secure_rom_call(u32 service, u32 proc_id, u32 flag, ...);
> +#endif
> +
> void enable_edma3_clocks(void);
> void disable_edma3_clocks(void);
>
>
next prev parent reply other threads:[~2016-06-17 4:18 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-15 19:26 [U-Boot] [RFC 0/9] Secure Boot by Authenticating/Decrypting SPL FIT blobs Andreas Dannenberg
2016-06-15 19:26 ` [U-Boot] [RFC 1/9] spl: fit: add support for post-processing of images Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-15 19:26 ` [U-Boot] [RFC 2/9] arm: cache: add missing dummy functions for when dcache disabled Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-20 2:13 ` Tom Rini
2016-06-15 19:26 ` [U-Boot] [RFC 3/9] arm: omap-common: add secure smc entry Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-15 19:26 ` [U-Boot] [RFC 4/9] arm: omap-common: add secure rom call API for secure devices Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-17 4:18 ` Lokesh Vutla [this message]
2016-06-15 19:26 ` [U-Boot] [RFC 5/9] arm: omap5: add secure ROM signature verify API Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-20 2:13 ` Tom Rini
2016-06-15 19:26 ` [U-Boot] [RFC 6/9] arm: omap5: add FIT image post process function Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-17 4:26 ` Lokesh Vutla
2016-06-15 19:26 ` [U-Boot] [RFC 7/9] arm: am4x: add secure ROM signature verify API Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-15 19:26 ` [U-Boot] [RFC 8/9] arm: am4x: add FIT image post process function Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-17 4:27 ` Lokesh Vutla
2016-06-15 19:26 ` [U-Boot] [RFC 9/9] ti: omap-common: Update to generate secure FIT Andreas Dannenberg
2016-06-17 3:52 ` Simon Glass
2016-06-17 16:13 ` Andreas Dannenberg
2016-06-20 22:40 ` Simon Glass
2016-06-21 2:35 ` Andreas Dannenberg
2016-06-23 4:59 ` Masahiro Yamada
2016-06-23 13:23 ` Andreas Dannenberg
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=576379FD.5030000@ti.com \
--to=lokeshvutla@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.