ATF:Gicv源码文件系列-gic_common.h
/*
- Copyright © 2015-2020, ARM Limited and Contributors. All rights reserved.
- SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef GIC_COMMON_H
#define GIC_COMMON_H
#include <lib/utils_def.h>
1-GIC Distributor接口通用定义
/*******************************************************************************
- GIC Distributor interface general definitions
*****************************************************************************/
/ Constants to categorise interrupts */
#define MIN_SGI_ID U(0)
#define MIN_SEC_SGI_ID U(8)
#define MIN_PPI_ID U(16)
#define MIN_SPI_ID U(32)
#define MAX_SPI_ID U(1019)
#define TOTAL_SPI_INTR_NUM (MAX_SPI_ID - MIN_SPI_ID + U(1))
#define TOTAL_PCPU_INTR_NUM (MIN_SPI_ID - MIN_SGI_ID)
/* Mask for the priority field common to all GIC interfaces */
#define GIC_PRI_MASK U(0xff)
/* Mask for the configuration field common to all GIC interfaces */
#define GIC_CFG_MASK U(0x3)
/* Constant to indicate a spurious interrupt in all GIC versions */
#define GIC_SPURIOUS_INTERRUPT U(1023)
/* Interrupt configurations: 2-bit fields with LSB reserved */
#define GIC_INTR_CFG_LEVEL (0 << 1)
#define GIC_INTR_CFG_EDGE (1 << 1)
/* Highest possible interrupt priorities */
#define GIC_HIGHEST_SEC_PRIORITY U(0x00)
#define GIC_HIGHEST_NS_PRIORITY U(0x80)
1-通用GIC Distributor接口寄存器偏移
/*******************************************************************************
- Common GIC Distributor interface register offsets
******************************************************************************/
#define GICD_CTLR U(0x0)
#define GICD_TYPER U(0x4)
#define GICD_IIDR U(0x8)
#define GICD_IGROUPR U(0x80)
#define GICD_ISENABLER U(0x100)
#define GICD_ICENABLER U(0x180)
#define GICD_ISPENDR U(0x200)
#define GICD_ICPENDR U(0x280)
#define GICD_ISACTIVER U(0x300)
#define GICD_ICACTIVER U(0x380)
#define GICD_IPRIORITYR U(0x400)
#define GICD_ICFGR U(0xc00)
#define GICD_NSACR U(0xe00)
/* GICD_CTLR bit definitions */
#define CTLR_ENABLE_G0_SHIFT 0
#define CTLR_ENABLE_G0_MASK U(0x1)
#define CTLR_ENABLE_G0_BIT BIT_32(CTLR_ENABLE_G0_SHIFT)
2-通用GIC Distributor接口寄存器常量
/*******************************************************************************
- Common GIC Distributor interface register constants
******************************************************************************/
#define PIDR2_ARCH_REV_SHIFT 4
#define PIDR2_ARCH_REV_MASK U(0xf)
/* GIC revision as reported by PIDR2.ArchRev register field */
#define ARCH_REV_GICV1 U(0x1)
#define ARCH_REV_GICV2 U(0x2)
#define ARCH_REV_GICV3 U(0x3)
#define ARCH_REV_GICV4 U(0x4)
#define IGROUPR_SHIFT 5
#define ISENABLER_SHIFT 5
#define ICENABLER_SHIFT ISENABLER_SHIFT
#define ISPENDR_SHIFT 5
#define ICPENDR_SHIFT ISPENDR_SHIFT
#define ISACTIVER_SHIFT 5
#define ICACTIVER_SHIFT ISACTIVER_SHIFT
#define IPRIORITYR_SHIFT 2
#define ITARGETSR_SHIFT 2
#define ICFGR_SHIFT 4
#define NSACR_SHIFT 4
/* GICD_TYPER shifts and masks */
#define TYPER_IT_LINES_NO_SHIFT U(0)
#define TYPER_IT_LINES_NO_MASK U(0x1f)
/* Value used to initialize Normal world interrupt priorities four at a time */
#define GICD_IPRIORITYR_DEF_VAL
(GIC_HIGHEST_NS_PRIORITY |
(GIC_HIGHEST_NS_PRIORITY << 8) |
(GIC_HIGHEST_NS_PRIORITY << 16) |
(GIC_HIGHEST_NS_PRIORITY << 24))
#endif /* GIC_COMMON_H */
ATF:Gicv源码文件系列-gic_common.h相关推荐
- ATF:Gicv源码文件系列-gicv2.h
/* Copyright © 2015-2018, ARM Limited and Contributors. All rights reserved. SPDX-License-Identifier ...
- ATF:Gicv源码文件系列-gicdv2_helpers.c
/* Copyright © 2015-2020, ARM Limited and Contributors. All rights reserved. SPDX-License-Identifier ...
- ATF:Gicv源码文件系列-gicv2.mk
这个文件包含了gicv2的源码文件!!! #Copyright © 2020, Arm Limited. All rights reserved. #SPDX-License-Identifier: ...
- U-Boot 之三 U-Boot 源码文件解析及移植过程详解
在之前的博文 Linux 之八 完整嵌入式 Linux 环境介绍及搭建说明 中我们说了要一步步搭建整个嵌入式 Linux 运行环境.我所使用的硬件平台及整个要搭建的嵌入式 Linux 环境见博文 ...
- Go 学习笔记(2)— 安装目录、工作区、源码文件和标准命令
GOROOT: Go 语言安装根目录的路径,也就是 GO 语言的安装路径. GOPATH: 若干工作区目录的路径.是我们自己定义的工作空间.在 Go Module 模式之前非常重要,现在基本上用来存放 ...
- IntelliJ IDEA for Mac 如何配置项目模块的源代码根目录_源码文件的根目录
按下组合键 Command + ; 打开[项目结构]配置窗口:然后选择左侧菜单栏的[Modules]:然后在右侧的模块列表中,选择你要配置的模块:接着选择右侧界面中的[Sources]标签. 首先添加 ...
- U-Boot 之零 源码文件、启动阶段(TPL、SPL)、FALCON、设备树
最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,在之前的博文 Linux 之八 完整嵌入式 Linux 环境.(交叉)编译工具链.CPU 体系架构.嵌入式系统构建工具 中详细介绍了嵌 ...
- 设置WebStorm查看本地源码文件个人修改的历史记录快捷键Alt+Shift+H、Ctrl+Shift+H(通常用于调试bug,发现文件出问题需要回溯到若干天之前)
Alt+Shift+H 查看整个代码文件的修改历史记录 Ctrl+Shift+H 只查看被选中代码内容的修改历史记录(更具针对性)
- ATF:Gicv源码解读系列-gicv2_spis_configure_defaults
1.gicv2_spis_configure_defaults 用来配置SPI的一些默认的属性,SPI中断 SPI:(shared peripheral interrupt),共享外设中断,该中断来源 ...
最新文章
- 微信小程序在showToast中换行并且隐藏icon
- 深度探索C++ 对象模型(5)-Initialization list(1)
- Linux系统\Centos没有网卡eth0配置文件怎么办?
- Zookeeper是什么?
- c语言预处理指令之 ##
- PL/SQL Developer下设置“长SQL自己主动换行”
- linux 文档属于apache,Apache 安装和使用文档
- java动态代理和cglib动态代理
- 手把手一起 图形化安装 k8s 集群
- JVM内存结构、垃圾回收那点事
- Ubuntu打包发布qt程序
- Autodesk cad卸载不干净导致的无法安装问题解决
- 【VScode实用生产力插件】
- 阿里云mysql空间不足_阿里云数据库MySQL系统文件导致实例空间满的解决办法
- python基础程序_Python基础初识
- 原来证件照还可以这样拍?美炸了!再也不怕证件照丑到家了!
- (四)Redis——搭建哨兵机制
- 乔布斯现身布道iPad 2 中国渠道商降价清库存
- 打开应用出现 “需要使用新应用一打开此ms-gamingoverlay链接”
- 如何在Mac上关闭应用程序?
热门文章
- 华硕关闭更新BIOS
- android弹出自定义layout菜单,Android:PopWindow — 对Android的底部弹窗、顶部弹窗菜单及自定义界面的使用封装...
- xcode更新一直失败的解决办法
- 从零实现Transformer、ChatGLM-6B、本地知识库、模型(训练/推理)加速
- 2019网络小说十大口碑神作盘点,诡秘剑来谍影覆汉牧神学霸皆在
- 手机端上传照片压缩功能canvas
- 手把手教你用深度学习做物体检测(四):模型使用
- 从C/C++到Python(之一)(By Robinvane Suen)
- 2人同步听歌软件_打包走!全网无损音乐任意下,支持4大主流音乐平台同步歌单!...
- 1000元如何让旧电脑升级改造?这些方案你得学会