mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
![Christian Daudt](/assets/img/avatar_default.png)
- Adds a module to provide calls into secure monitor mode - Uses this module to make secure monitor calls to enable L2 cache. Updates from V1: - Split DT portion into separate patch - replace #ifdef-ed L2 code with "if". - move init call to board init Signed-off-by: Christian Daudt <csd@broadcom.com> Acked-by: Arnd Bergmann <arnd@arndb.de>
80 lines
2.5 KiB
C
80 lines
2.5 KiB
C
/*
|
|
* Copyright (C) 2013 Broadcom Corporation
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation version 2.
|
|
*
|
|
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
|
|
* kind, whether express or implied; without even the implied warranty
|
|
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef BCM_KONA_SMC_H
|
|
#define BCM_KONA_SMC_H
|
|
|
|
#include <linux/types.h>
|
|
#define FLAGS (SEC_ROM_ICACHE_ENABLE_MASK | SEC_ROM_DCACHE_ENABLE_MASK | \
|
|
SEC_ROM_IRQ_ENABLE_MASK | SEC_ROM_FIQ_ENABLE_MASK)
|
|
|
|
/*!
|
|
* Definitions for IRQ & FIQ Mask for ARM
|
|
*/
|
|
|
|
#define FIQ_IRQ_MASK 0xC0
|
|
#define FIQ_MASK 0x40
|
|
#define IRQ_MASK 0x80
|
|
|
|
/*!
|
|
* Secure Mode FLAGs
|
|
*/
|
|
|
|
/* When set, enables ICache within the secure mode */
|
|
#define SEC_ROM_ICACHE_ENABLE_MASK 0x00000001
|
|
|
|
/* When set, enables DCache within the secure mode */
|
|
#define SEC_ROM_DCACHE_ENABLE_MASK 0x00000002
|
|
|
|
/* When set, enables IRQ within the secure mode */
|
|
#define SEC_ROM_IRQ_ENABLE_MASK 0x00000004
|
|
|
|
/* When set, enables FIQ within the secure mode */
|
|
#define SEC_ROM_FIQ_ENABLE_MASK 0x00000008
|
|
|
|
/* When set, enables Unified L2 cache within the secure mode */
|
|
#define SEC_ROM_UL2_CACHE_ENABLE_MASK 0x00000010
|
|
|
|
/* Broadcom Secure Service API Service IDs */
|
|
#define SSAPI_DORMANT_ENTRY_SERV 0x01000000
|
|
#define SSAPI_PUBLIC_OTP_SERV 0x01000001
|
|
#define SSAPI_ENABLE_L2_CACHE 0x01000002
|
|
#define SSAPI_DISABLE_L2_CACHE 0x01000003
|
|
#define SSAPI_WRITE_SCU_STATUS 0x01000004
|
|
#define SSAPI_WRITE_PWR_GATE 0x01000005
|
|
|
|
/* Broadcom Secure Service API Return Codes */
|
|
#define SEC_ROM_RET_OK 0x00000001
|
|
#define SEC_ROM_RET_FAIL 0x00000009
|
|
|
|
#define SSAPI_RET_FROM_INT_SERV 0x4
|
|
#define SEC_EXIT_NORMAL 0x1
|
|
|
|
#define SSAPI_ROW_AES 0x0E000006
|
|
#define SSAPI_BRCM_START_VC_CORE 0x0E000008
|
|
|
|
#ifndef __ASSEMBLY__
|
|
extern void bcm_kona_smc_init(void);
|
|
|
|
extern unsigned bcm_kona_smc(unsigned service_id,
|
|
unsigned arg0,
|
|
unsigned arg1,
|
|
unsigned arg2,
|
|
unsigned arg3);
|
|
|
|
extern int bcm_kona_smc_asm(u32 service_id,
|
|
u32 buffer_addr);
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#endif /* BCM_KONA_SMC_H */
|