25#ifndef SDRV_FIREWALL_H
26#define SDRV_FIREWALL_H
31#include <firewall_hw.h>
40#define FIREWALL_PERMISSION_RW (0x00U)
42#define FIREWALL_PERMISSION_RO (0x01U)
44#define FIREWALL_PERMISSION_WO (0x02U)
46#define FIREWALL_PERMISSION_NONE (0x03U)
49#define FIREWALL_UNINIT (0x00U)
51#define FIREWALL_INIT (0x01U)
54#define FIREWALL_REG_VALUE_MIN (0x00U)
56#define FIREWALL_REG_VALUE_MAX (0xFFFFFFFFU)
59#define FIREWALL_APB_MAC_BASE APB_MAC_BASE
264 ppc_errinfo[FIREWALL_PPC_APBMUX_MAXNUM];
267 mpc_errinfo[FIREWALL_MPC_MEMPORT_MAXNUM];
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_FIREWALL
Definition: sdrv_common.h:63
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
@ SDRV_STATUS_OK
Definition: sdrv_common.h:72
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
struct mpc_memport_cfg sdrv_mpc_memport_cfg_t
MPC memory port configure.
status_t sdrv_firewall_get_error_info(sdrv_firewall_t *ctrl, sdrv_firewall_err_t *firewall_err_info)
Get firewall illegal access infomation.
status_t sdrv_firewall_set_callback(sdrv_firewall_t *ctrl, sdrv_firewall_callback_t callback, void *userdata)
Set callback function for firewall.
enum sdrv_firewall_err_status sdrv_firewall_err_status_e
Firewall status return code.
status_t sdrv_firewall_assign_domain(sdrv_firewall_t *ctrl, uint8_t master_id, uint8_t domain_id)
Assigns the master to the specified domain.
const uint8_t * sdrv_mac_config_t
The type of configuarion for the MAC module.
Definition: sdrv_firewall.h:112
void(* sdrv_firewall_callback_t)(sdrv_firewall_t *ctrl, void *userdata)
Firewall callback function type.
Definition: sdrv_firewall.h:276
status_t sdrv_firewall_init(sdrv_firewall_t *ctrl, const sdrv_firewall_cfg_t *cfg)
Configure firewall.
struct mpc_region_cfg sdrv_mpc_region_cfg_t
MPC region configure.
struct ppc_addrconfig sdrv_ppc_region_config_t
PPC address configure.
status_t sdrv_firewall_lock_domain_assignment(sdrv_firewall_t *ctrl)
Lock the domain assignment of the master.
int sdrv_firewall_irq_handler(uint32_t irq, void *ctrl)
Handle firewall interrupt.
sdrv_firewall_err_status
Firewall status return code.
Definition: sdrv_firewall.h:68
@ FIREWALL_E_MAC_MASTER_ID
Definition: sdrv_firewall.h:79
@ FIREWALL_E_GPIO_CORE_ID
Definition: sdrv_firewall.h:98
@ FIREWALL_E_MAC_DOMAIN_ID
Definition: sdrv_firewall.h:81
@ FIREWALL_E_GPIO_CHANNEL_NUM
Definition: sdrv_firewall.h:106
@ FIREWALL_E_GPIO_CORE_NUM
Definition: sdrv_firewall.h:103
@ FIREWALL_E_UNINIT
Definition: sdrv_firewall.h:73
@ FIREWALL_E_MAC_LOCKED
Definition: sdrv_firewall.h:83
@ FIREWALL_E_NULL_POINTER
Definition: sdrv_firewall.h:76
@ FIREWALL_E_OK
Definition: sdrv_firewall.h:69
@ FIREWALL_E_GPIO_CHANNEL_ID
Definition: sdrv_firewall.h:100
@ FIREWALL_E_PPC_IP_NUM
Definition: sdrv_firewall.h:92
@ FIREWALL_E_PPC_REGION_NUM
Definition: sdrv_firewall.h:95
@ FIREWALL_E_INIT
Definition: sdrv_firewall.h:70
@ FIREWALL_E_MPC_REGION_NUM
Definition: sdrv_firewall.h:89
@ FIREWALL_E_MPC_PORT_NUM
Definition: sdrv_firewall.h:86
struct gpio_channel_cfg sdrv_gpio_channel_cfg_t
Pin configuration.
struct ppc_ipconfig sdrv_ppc_ip_config_t
PPC ip configure.
struct gpio_core_cfg sdrv_gpio_core_cfg_t
Pin permission for the core.
Pin configuration.
Definition: sdrv_firewall.h:217
uint16_t gpio_channel_num
Definition: sdrv_firewall.h:219
const uint16_t * gpio_channel_id
Definition: sdrv_firewall.h:218
Pin permission for the core.
Definition: sdrv_firewall.h:226
const sdrv_gpio_channel_cfg_t gpio_channel_cfg
Definition: sdrv_firewall.h:233
uint8_t gpio_user_permission
Definition: sdrv_firewall.h:227
uint8_t gpio_core_id
Definition: sdrv_firewall.h:231
uint8_t gpio_privileged_permission
Definition: sdrv_firewall.h:229
MPC memory port configure.
Definition: sdrv_firewall.h:143
uint16_t region_nr
Definition: sdrv_firewall.h:144
uint16_t base_offset
Definition: sdrv_firewall.h:145
const sdrv_mpc_region_cfg_t *const region_config
Definition: sdrv_firewall.h:146
MPC region configure.
Definition: sdrv_firewall.h:118
uint32_t domain3_perms
Definition: sdrv_firewall.h:127
uint32_t domain1_perms
Definition: sdrv_firewall.h:123
uint32_t domain0_perms
Definition: sdrv_firewall.h:121
uint32_t end_addr
Definition: sdrv_firewall.h:120
uint32_t start_addr
Definition: sdrv_firewall.h:119
uint32_t domain6_perms
Definition: sdrv_firewall.h:133
uint32_t domain2_perms
Definition: sdrv_firewall.h:125
uint32_t domain4_perms
Definition: sdrv_firewall.h:129
uint32_t domain5_perms
Definition: sdrv_firewall.h:131
uint32_t domain7_perms
Definition: sdrv_firewall.h:135
PPC address configure.
Definition: sdrv_firewall.h:154
uint8_t domain4_user_permission
Definition: sdrv_firewall.h:167
uint8_t ppc_region_index
Definition: sdrv_firewall.h:177
uint8_t domain4_privileged_permission
Definition: sdrv_firewall.h:169
uint8_t domain6_permission
Definition: sdrv_firewall.h:175
uint8_t domain2_privileged_permission
Definition: sdrv_firewall.h:161
uint8_t ppc_apbmux_id
Definition: sdrv_firewall.h:176
uint8_t domain7_privileged_permission
Definition: sdrv_firewall.h:157
uint8_t domain3_user_permission
Definition: sdrv_firewall.h:163
uint8_t domain2_user_permission
Definition: sdrv_firewall.h:159
uint8_t domain5_privileged_permission
Definition: sdrv_firewall.h:173
uint32_t ppc_end_addr
Definition: sdrv_firewall.h:179
uint8_t domain3_privileged_permission
Definition: sdrv_firewall.h:165
uint8_t domain7_user_permission
Definition: sdrv_firewall.h:155
uint32_t ppc_start_addr
Definition: sdrv_firewall.h:178
uint8_t domain5_user_permission
Definition: sdrv_firewall.h:171
PPC ip configure.
Definition: sdrv_firewall.h:186
uint8_t domain4_user_permission
Definition: sdrv_firewall.h:199
uint8_t domain4_privileged_permission
Definition: sdrv_firewall.h:201
uint8_t domain6_permission
Definition: sdrv_firewall.h:207
uint8_t domain2_privileged_permission
Definition: sdrv_firewall.h:193
uint8_t ppc_apbmux_id
Definition: sdrv_firewall.h:209
uint8_t ppc_apbmux_ip_id
Definition: sdrv_firewall.h:210
uint8_t domain7_privileged_permission
Definition: sdrv_firewall.h:189
uint8_t domain3_user_permission
Definition: sdrv_firewall.h:195
uint8_t domain2_user_permission
Definition: sdrv_firewall.h:191
uint8_t domain5_privileged_permission
Definition: sdrv_firewall.h:205
uint8_t domain3_privileged_permission
Definition: sdrv_firewall.h:197
uint8_t domain7_user_permission
Definition: sdrv_firewall.h:187
uint8_t domain5_user_permission
Definition: sdrv_firewall.h:203
Firewall controller configuration.
Definition: sdrv_firewall.h:282
const sdrv_mac_config_t * mac_cfg
Definition: sdrv_firewall.h:284
const sdrv_gpio_core_cfg_t * io_cfg
Definition: sdrv_firewall.h:295
uint16_t core_num
Definition: sdrv_firewall.h:296
const sdrv_ppc_region_config_t * ppc_region_cfg
Definition: sdrv_firewall.h:292
const sdrv_mpc_memport_cfg_t * mpc_cfg
Definition: sdrv_firewall.h:286
const sdrv_ppc_ip_config_t * ppc_ip_cfg
Definition: sdrv_firewall.h:289
uint16_t ip_num
Definition: sdrv_firewall.h:290
uint16_t region_num
Definition: sdrv_firewall.h:293
uint32_t memport_num
Definition: sdrv_firewall.h:287
Firewall interrupt status.
Definition: sdrv_firewall.h:262
Firewall controller.
Definition: sdrv_firewall.h:303
uint8_t init_status
Definition: sdrv_firewall.h:307
uint32_t base
Definition: sdrv_firewall.h:304
const sdrv_firewall_cfg_t * config
Definition: sdrv_firewall.h:313
sdrv_firewall_callback_t callback
Definition: sdrv_firewall.h:308
sdrv_firewall_err_t error_info
Definition: sdrv_firewall.h:310
int irq
Definition: sdrv_firewall.h:305
spin_lock_t spinlock
Definition: sdrv_firewall.h:306
void * userdata
Definition: sdrv_firewall.h:309
MPC interrupt status.
Definition: sdrv_firewall.h:240
uint32_t mpc_intr_sta
Definition: sdrv_firewall.h:242
uint32_t mpc_memport_id
Definition: sdrv_firewall.h:241
PPC interrupt status.
Definition: sdrv_firewall.h:251
uint32_t ppc_apbmux_ip_id
Definition: sdrv_firewall.h:252
uint32_t ppc_intr_sta
Definition: sdrv_firewall.h:253