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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox