| /* |
| * 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 */ |