CN117097576B - 一种面向功能安全的axi总线防火墙 - Google Patents
一种面向功能安全的axi总线防火墙 Download PDFInfo
- Publication number
- CN117097576B CN117097576B CN202311361027.9A CN202311361027A CN117097576B CN 117097576 B CN117097576 B CN 117097576B CN 202311361027 A CN202311361027 A CN 202311361027A CN 117097576 B CN117097576 B CN 117097576B
- Authority
- CN
- China
- Prior art keywords
- firewall
- access request
- axi
- access
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013507 mapping Methods 0.000 claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000002093 peripheral effect Effects 0.000 claims description 61
- 230000003111 delayed effect Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 abstract description 30
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 101100289989 Drosophila melanogaster alpha-Man-Ia gene Proteins 0.000 description 1
- 101150021286 MAS1 gene Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Bus Control (AREA)
Abstract
本公开的实施例公开了一种面向功能安全的AXI总线防火墙,包括:第一寄存器组,所述第一寄存器组包括配置寄存器,所述配置寄存器构造为存储访问映射表;以及第一防火墙单元,所述第一防火墙单元设置在AXI总线上,构造为通过AXI总线从主设备接收对从设备的访问请求,并基于访问映射表确定是否拦截该访问请求。本公开还提供了一种适用于该AXI总线防火墙的方法。通过本公开的实施例可以以较小的代价为AXI总线提供满足功能安全需求的灵活可控的防火墙功能。
Description
技术领域
本公开涉及一种防火墙,特别的涉及一种面向功能安全的AXI总线防火墙。
背景技术
车载SOC是汽车电子领域的重要组成部分,功能安全一直是SOC设计和实现过程中的核心问题。功能安全指的是不存在由电子电气系统的功能异常表现引起的危害而导致不合理的风险,是在汽车电子电气技术基础上发展而来的一项安全技术。汽车功能安全属于汽车操作安全体系下的人身安全,它关注的危害单指因E/E系统的故障行为引起的,对驾驶员或者路人或周边车辆内人员(注意不仅是驾驶员)的人身危害。也就是说,功能安全开发的目的是避免伤人,而不是避免伤车。
车载SOC芯片通常具有很多功能,其中一些功能与安全高度相关,其它一些功能与安全相关性较低,甚至不相关。如何保证当非安全相关的模块出现故障时,不会影响到安全相关的模块,是在SOC设计中一个非常重要的课题。
AXI是SOC中最常用的总线之一,AXI(Advanced eXtensible Interface)总线是在SOC中常用的一种总线AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。AXI总线将读写通道进行了拆分(写地址通道/AW、写数据通道/W、写响应信号/B、读地址通道/AR、读数据通道/R),并且分别增加了安全标志位AWPROT[1]和ARPROT[1](Secureor non-secure, ARPROT[1] and AWPROT[1]),通常应用于需要在处理模式之间进行更大程度区分的系统,用于表示当前的写操作或者读操作是安全操作还是非安全操作。这两个安全标志位可以被赋值为LOW或HIGH,当安全标志位被赋值为HIGH时,访问被认为是不安全的,当被赋值为低时,访问被认为是安全的。该方法可以区分安全处理器(如果是ARM处理器,处理器有工作状态,通过设置其内部寄存器的标志位可以将其设置为安全处理器或者非安全处理器)和非安全处理器对于从设备(芯片中的存储器,外部设备)的访问。
但在车载SOC芯片应用中,主设备通常不止有处理器,从设备也有不同类型和属性。即使是相同属性的从设备,在实际使用时,对于不同地址往往也会有不同要求。当前的AXI总线尚未能够灵活适配以上需求。
发明内容
鉴于以上技术问题,本公开的实施例提供了一种能够以较小的代价为AXI总线提供满足功能安全需求的灵活可控的防火墙功能。
本公开的至少一个实施例提供了一种面向功能安全的AXI总线防火墙,包括:
第一寄存器组,所述第一寄存器组包括配置寄存器,所述配置寄存器构造为存储访问映射表;以及
第一防火墙单元,所述第一防火墙单元设置在AXI总线上,构造为通过AXI总线从主设备接收对从设备的访问请求,并基于访问映射表确定是否拦截该访问请求。
在本公开的一个实施例中,所述访问映射表包括主设备对存储设备的读访问映射表、主设备对存储器设备的写访问映射表、主设备对外设设备的读访问映射表、以及主设备对外设设备的写访问映射表。
在本公开的一个实施例中,所述配置寄存器具有写使能功能,使得存储在配置寄存器中的访问映射表能够被重新配置。
在本公开的一个实施例中,所述第一寄存器组还包括状态寄存器,在该访问请求被禁止时,所述第一防火墙单元被配置为将该访问请求中的访问地址修改为错误地址,并将该访问请求引导至错误地址,同时,将该访问请求的信息存储在所述状态寄存器中。
在本公开的一个实施例中,所述AXI总线防火墙还包括第一APB延迟逻辑单元、第二APB延迟逻辑单元、第二寄存器组、以及APB冗余锁步检查单元,第一寄存器组连接至APB总线,接收来自APB总线的数据,第一寄存器组将接收到的数据发送至第一APB延迟逻辑单元以进行延迟,APB总线的数据还发送至第二APB延迟逻辑单元以进行延迟,第二APB延迟逻辑单元将延迟后的数据发送至第二寄存器组,所述APB冗余锁步检查单元接收来自第一APB延迟逻辑单元的数据和来自第二寄存器组的数据,以进行冗余检查。
在本公开的一个实施例中,所述AXI总线防火墙还包括第一AXI延迟逻辑单元、第二AXI延迟逻辑单元、第二防火墙单元以及AXI冗余锁步检查单元,来自AXI总线的信号输入至第一防火墙单元,经第一防火墙单元处理后输入至第一AXI延迟逻辑单元进行延迟处理,延迟处理后的信号输入至AXI冗余锁步检查单元,来自AXI总线的信号还输入至第二AXI延迟逻辑单元,经第二AXI延迟逻辑单元延迟后输入至第二防火墙单元,在被第二防火墙单元处理后输入至所述AXI冗余锁步检查单元,所述AXI冗余锁步检查单元构造为对来自第一AXI延迟逻辑单元的数据和第二防火墙单元的数据进行冗余检查。
在根据本公开的实施例中,通过区分来自不同主机的不同访问类型,对主设备进行分类,同时将从设备分为存储器设备和外设设备,并根据主从设备分类,设计了防火墙的权限控制映射关系,实现了灵活配置不同主设备访问时对不同从设备读写的灵活权限控制,保证安全设备中的信息无法被非安全设备访问,且非安全设备中的流量无法流入安全设备。此外,通过对防火墙增加锁步机制,可以进一步提升防火墙配置和功能对于随机失效的抵抗能力,满足功能安全的需求。从而,通过本公开的实施例,可以以较小的代价为AXI总线提供满足功能安全需求的灵活可控的防火墙功能。
本公开的至少一个实施例还一种适用于AXI总线防火墙的操作方法,包括:
S01,第一防火墙单元通过AXI总线从主设备接收主设备对从设备的访问请求;
S02,第一防火墙单元从配置寄存器中读取访问映射表,确定所述访问请求是被允许的还是被禁止的;以及
S03,在所述访问请求是被允许的情况下,第一防火墙单元放行所述访问请求,在所述访问请求被禁止的情况下,第一防火墙单元拦截所述访问请求。
在本公开的一个实施例中,读取访问映射表包括主设备对存储设备的读访问映射表、主设备对存储器设备的写访问映射表、主设备对外设设备的读访问映射表、以及主设备对外设设备的写访问配置表。
在本公开的一个实施例中,所述读取访问映射表是能够重新配置的。
在本公开的一个实施例中,所述方法还包括对来自AXI总线的信号进行冗余锁步检查,其中,来自AXI总线的信号在经过第一防火墙单元之后经第一延迟处理,得到第一延迟信号,来自AXI总线的信号先经第二延迟处理后经第二防火墙单元处理,得到第二延迟信号,对第一延迟信号和第二延迟信号进行比较。
在本公开的一个实施例中,所述方法还包括对来自APB总线的信号进行冗余锁步检查,其中,来自APB总线的信号进入设置在AXI总线和第一防火墙单元之间的第一寄存器组,之后经第三延迟处理得到第三延迟信号,同时,来自APB总线的信号经第四延迟处理并输入至第二寄存器组得到第四延迟信号,对第三延迟信号和第四延迟信号进行比较。
在本公开的一个实施例中,在所述访问请求被禁止的情况下,第一防火墙单元拦截所述访问请求包括:
将访问请求中的访问地址修改为错误地址,将被禁止的访问请求引导至错误地址;以及保存所述访问请求的信息。
在根据本公开实施例的适用于AXI总线防火墙的操作方法中,通过设置读取访问映射表,可以根据需要灵活地配置主设备对从设备的读写权限,保证安全设备中的信息无法被非安全设备访问,且非安全设备中的流量无法进入安全设备,从而提高SOC的功能安全。同时,通过对AXI总线防火墙增加锁步校验机制,可以进一步提升防火墙配置和功能对于随机失效的抵抗能力,从而满足功能安全的需求。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了根据本公开一个实施例的AXI总线防火墙的框图;
图2示出了根据本公开一个实施例的主设备对存储器的读访问映射表;
图3示出了根据本公开一个实施例的主设备对存储器的写访问映射表;
图4示出了根据本公开一个实施例的主设备对外设设备的读访问映射表;
图5示出了根据本公开一个实施例的主设备对外设设备的写访问映射表;
图6示出了根据本公开一个实施例的主设备对存储器设备的读访问映射表的配置;
图7示出了根据本公开一个实施例的主设备对存储器设备的写访问映射表的配置
图8示出了根据本公开一个实施例的主设备对对外设设备的读访问映射表的配置;
图9示出了根据本公开一个实施例的主设备对外设设备的写访问映射关表配置;以及
图10示出了根据本公开一个实施例的适用于AXI总线防火墙的操作方法的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
考虑到目前车载SOC芯片中在AXI总线上无法在非安全相关的模块出现故障时确保安全相关的模块的安全性,本公开的多个实施例提供了一种面向功能安全的AXI总线防火墙。
本公开的至少一个实施例提供了一种AXI总线防火墙,包括:
第一寄存器组,构造为存储访问映射表;以及
第一防火墙单元,所述第一防火墙单元设置在AXI总线上,构造为通过AXI总线从主设备接收对从设备的访问请求,并基于访问映射表确定是否拦截该访问请求。
图1示出了根据本公开一个实施例的AXI总线防火墙的结构示意图。如图1所示,所述AXI总线防火墙设置在AXI总线上,AXI总线连接主设备和从设备,主设备可以是CPU或者DMA设备,主设备对从设备的访问请求通过AXI总线发送至从设备,例如,读访问请求或者写访问请求。从设备包括存储器设备(MEM_0,MEM_1,… MEM_n0)和外设设备(DEV_0,DEV_1,…DEV_n1)。在实际使用中,可以根据进程或者程序运行的需要,根据存储器地址将存储器设备划分为不同的子块(block),精确灵活地实现对存储器的权限控制。
针对主设备对从设备的访问请求,在本公开的实施例中通过AXI总线中的AWID、ARID、AWPROT[1]和ARPROT[1]信号,区分来自不同主机的不同访问类型, 将主设备分为处理器安全访问和处理器非安全访问(CPU_S和CPU_NS),以及其它主设备访问(MAS_0,MAS_1,… MAS_n2),由于存储器设备可以是cacheable的,无法通过AXI总线中的ID区分不同的处理器核,因此针对存储器设备的访问不区分不同核的请求。
在AXI总线中,主设备对从设备的访问请求分为读访问请求和写访问请求,从设备包括存储器设备和外部设备。下文中分别对在主设备对存储器设备进行读访问请求和写访问请求的情况下AXI总线防火墙对读访问请求和写访问请求是如何处理的。
在根据本公开一个实施例的防火墙中,设置了第一寄存器组,第一寄存器组包括配置寄存器和状态寄存器,所述配置寄存器构造为存储访问请求映射表。如图2示出了存储在配置寄存器中的主设备对存储器的读访问映射表。
图2中O表示主设备可以读对应存储器设备,X表示主设备对对应存储器设备的读请求被禁止,它们的值可以通过防火墙寄存器进行配置。
防火墙中还设置了第一防火墙单元,在主设备发出对存储器的读访问请求时,该读访问请求会通过AXI总线被发送至第一防火墙单元。在第一防火墙单元接收到主设备发出的对存储器设备的读访问请求时,第一防火墙单元与配置寄存器通信,从配置寄存器中读取读访问映射表,并根据进行访问的主设备和被访问的从设备,在访问映射表中查找该读访问请求是被允许的还是被禁止的,在该读访问请求是被允许的情况下,第一防火墙单元对该读访问请求放行,在该读访问请求被禁止的情况下,第一防火墙单元对该读访问请求进行拦截。
例如,在主设备CPU_S发起对存储器设备MEM_0_block_0的读访问请求时,该读访问请求通过AXI总线被发送至第一防火墙单元,之后,第一防火墙单元访问配置寄存器,在读访问映射表中查找主设备CPU_S对存储器设备MEM_0_block_0的读访问请求是否被允许。第一防火墙单元从读访问映射表中查询到主设备CPU_S对存储器设备MEM_0_block_0的读访问请求是被允许的,该读访问请求被放行。
再例如,在第一防火墙单元收到主设备CPU_NS对存储器设备MEM_1_block_k1的读访问请求时,第一防火墙单元从存储在配置寄存器中的读访问映射表中查询到主设备CPU_NS对存储器设备MEM_1_block_k1的读访问请求是被禁止的,则该读访问请求被禁止。在本公开的一个实施例中,在拦截该读访问请求时,第一防火墙单元将ARADDR改写为预设错误地址FAULT_ADDR。即被禁止的读访问请求将被引导到FAULT_ADDR,该地址不被分配用于实际SOC功能。另外,在该读访问请求被禁止的情况下,第一防火墙单元生成中断信号,锁存此时的ARID和改写前的ARADDR,并将这些锁存值存储到第一寄存器组中的状态寄存器中,状态寄存器构造为记录发生被拦截的访问请求时的访问信息。例如,状态寄存器构造为存储出现访问拦截时的AXI总线地址、地址以及读写类型。在读访问请求被拦截时,用户可以在中断函数中读取状态寄存器中的信息,以了解发生异常的访问请求的详细信息。例如,用户在接收到中断信号后,触发主CPU进入中断处理函数,中断处理函数读取到被拦截的访问请求ID和访问地址,即可了解当前触发拦截行为的请求来自于哪个主设备,原本要发送到哪个从设备。主CPU可以将上述信息通过交互界面等形式发送给用户,以对用户进行告警,或者由用户判断是否需要对防火墙配置进行修改,以在之后对类似请求进行放行操作。
配置寄存器中还存储有存储器写访问映射表。在本公开的实施例中,将读访问存储表和写访问存储表统称为访问存储表。在图3中示出了存储在配置寄存器中的主设备对存储器的写访问映射表。
图3中的O表示主设备可以对对应存储器设备进行写访问,X表示主设备对对应存储器设备不能进行写访问,即,对该存储器设备的写访问请求被禁止。它们的值可以通过防火墙寄存器进行配置。图3与图2形式相同,但其对应不同的寄存器,也即,图3所示的主设备对存储器的写访问映射表和图2所示的主设备对存储器的读访问映射表存储在不同的寄存器中。可以通过配置主设备对从设备的不同访问权限,实现不同主设备对从设备的只读、只写、可读可写、不可读不可写配置。
在主设备发出对存储器的写访问请求时,该写访问请求会通过AXI总线被发送至第一防火墙单元。在第一防火墙单元接收到主设备发出的对存储器设备的写访问请求时,第一防火墙单元与配置寄存器通信,从配置寄存器中读取存储器写访问映射表,并根据进行访问的主设备和被访问的从设备,在访问映射表中查找该写访问请求是被允许的还是被禁止的,在该写访问请求是被允许的情况下,第一防火墙单元对该写访问请求放行,在该写访问请求被禁止的情况下,第一防火墙单元对该写访问请求进行拦截。
例如,在主设备CPU_S发起对存储器设备MEM_0_block_0的写访问请求时,该写访问请求通过AXI总线发送至第一防火墙单元,在第一防火墙单元收到该写访问请求时,第一防火墙单元会访问配置存储器,在读访问映射表中查找主设备CPU_S对存储器设备MEM_0_block_0的写访问请求是否被允许。第一防火墙单元从读访问映射表中查询到主设备CPU_S对存储器设备MEM_0_block_0的读访问请求是被允许的,该读访问请求被放行。
再例如,在第一防火墙单元收到主设备CPU_NS对存储器设备MEM_1_block_k1的写访问请求时,第一防火墙单元从写访问映射表中查询到主设备CPU_NS对存储器设备MEM_1_block_k1的读访问请求是被禁止的,则该写访问请求被禁止。在对该写访问请求进行拦截时,第一防火墙单元将AWADDR改写为预设错误地址FAULT_ADDR,即将被禁止的写访问请求引导到FAULT_ADDR,该地址不被分配用于实际SOC功能。同时,当发生被禁止的写访问请求时,防火墙生成中断信号,锁存此时的AWID和改写前的AWADDR,并将这些锁存值存储在状态寄存器中。在写访问请求被拦截时,用户可以在中断函数中读取状态寄存器中的信息,以了解发生异常的访问请求的具体信息。例如,用户在接收到中断信号后,触发主CPU进入中断处理函数,中断处理函数读取到被拦截的访问请求ID和访问地址,即可了解当前触发拦截行为的请求来自于哪个主设备,原本要发送到哪个从设备。主CPU可以将上述信息通过交互界面等形式发送给用户,以对用户进行告警,或者由用户判断是否需要对防火墙配置进行修改,以在之后对类似请求进行放行操作。
在基于AXI总线的SOC系统中,从设备还可以包括外设设备。由于主设备中通常只有处理器和直接存储器访问(direct memory access,DMA)会访问外设设备,在本文中仅讨论处理器和DMA访问外部设备的情况。
在本公开的一个实施例中,主设备包括多个处理器(Core_S_0,Core_NS_0, Core_S_1, Core_NS_1,… Core_S_n3, Core_NS_n3)和多个DMA(DMA_0,DMA_1,… DMA_n4),从设备包括多个外设设备(DEV_0,DEV_1,……,DEV_n1)。在主设备发起对外设设备的读访问请求时,该读访问请求会通过AXI总线发送至第一防火墙单元。在第一防火墙单元接收到主设备发起的对外设设备的读访问请求时,第一防火墙单元与配置寄存器通信,从配置寄存器中读取如图4所示的外设设备读访问映射表,并根据进行访问的主设备和被访问的外设设备,在外设设备读访问映射表中查找该读访问请求是被允许的还是被禁止的,在该读访问请求是被允许的情况下,第一防火墙单元对该读访问请求放行,在该读访问请求被禁止的情况下,第一防火墙单元对该读访问请求进行拦截。图4所示的外设设备读访问映射表和图2所示的主设备对从设备的读访问映射表以及图3所示的主设备对从设备的写访问映射表存储在不同的寄存器中。
图4中的O表示主设备可以读取对应从设备信息,X表示主设备对对应外设设备的读请求被禁止,它们的值可以通过防火墙寄存器进行配置。
在主设备发起对外设设备的读访问请求时,该读访问请求会通过AXI总线被发送至第一防火墙单元。在第一防火墙单元接收到主设备发出的对外设设备的读访问请求时,第一防火墙单元与配置寄存器通信,从配置寄存器中读取主设备对外设设备的读访问映射表,并根据进行访问的主设备和被访问的从设备,在访问映射表中查找该读访问请求是被允许的还是被禁止的,在该读访问请求是被允许的情况下,第一防火墙单元对该读访问请求放行,在该读访问请求被禁止的情况下,第一防火墙单元对该读访问请求进行拦截。
例如,在处理器Core_S_0发起对外设设备DEV_0的读访问请求时,该读访问请求通过AXI总线被发送至第一防火墙单元,之后,第一防火墙单元访问配置存储器,在主设备对外设设备的读访问映射表中查找处理器Core_S_0对外设设备DEV_0的读访问请求是否被允许。第一防火墙单元从主设备对外设设备的读访问映射表中查询到处理器Core_S_0对外设设备DEV_0的读访问请求是被允许的,该读访问请求被放行。
再例如,在第一防火墙单元收到处理器Core_NS_n3对外设设备DEV_n1的读访问请求时,第一防火墙单元从主设备对外设设备的读访问映射表中查询到处理器Core_NS_n3对外设设备DEV_n1的读访问请求是被禁止的,则该读访问请求被禁止。在读访问请求被拦截时,用户可以在中断函数中读取状态寄存器中的信息,以了解发生异常的访问请求的具体信息。在本公开的一个实施例中,当第一防火墙单元检测到该读访问请求需要被拦截时,第一防火墙单元将ARADDR改写为预设错误地址FAULT_ADDR,即被禁止的读访问请求将被引导到FAULT_ADDR,该地址不被分配用于实际SOC功能。
在主设备发起对外设设备的写访问请求时,该写访问请求会通过AXI总线发送至第一防火墙单元。在第一防火墙单元接收到主设备发起的对外设设备的写访问请求时,第一防火墙单元与配置寄存器通信,从配置寄存器中读取如图5所示的主设备对外设设备的写访问映射表,并根据进行访问的主设备和被访问的外设设备,在外设设备读访问映射表中查找该写访问请求是被允许的还是被禁止的,在该写访问请求是被允许的情况下,第一防火墙单元对该读访问请求放行,在该写访问请求被禁止的情况下,第一防火墙单元对该写访问请求进行拦截。
主设备对外设设备的写访问请求包括第一类写访问请求和第二类写访问请求,其中,第一类写访问请求是处理器作为主设备对外设设备寄存器的写访问请求,第二类写访问请求是DMA作为主设备对外设设备数据进行搬移操作的写访问请求。在图5中,Ownerindex表示分配给外设设备的处理器的核编号,只有该核编号的处理器可以对该外设设备进行写访问请求,第一类写访问请求由该列决定。对于第二类写访问请求,由于DMA的配置寄存器同时也是处理器的从设备,该表决定了外设设备DMA_x设备被分配给了哪个处理器核。当其它外设设备使用该DMA_x进行数据搬移时,只有当该外设设备被分配的Ownerindex和该DMA_x对应的Owner index相同,且对应DMA_enable为O时,该DMA操作才被允许。
例如,如图5所示,对于第一类写访问请求,对于外设设备DEV_0,其被分配给了核编号为1的处理器,只有核编号为1的处理器才可以对外设设备DEV_0进行写访问请求,对于外设设备DEV_1,其被分配给了核编号为3的处理器,只有核编号为3的处理器才可以对外设设备DEV_1进行写访问请求,对于外设设备DEV_n1,其被分配给了核编号为0的处理器,只有核编号为0的处理器才可以对外设设备DEV_n1进行写访问请求。对于第二类写访问请求,如图5示例所示,DMA_0对应的Owner index为核编号为2的处理器,表明当前核编号为2的处理器具有配置和读取DMA_0寄存器的权限;同时外设DEV_2对应的Owner index为核编号为2的处理器,且对应的DMA enable为O,即使能DMA对DEV_2的操作。这样,DMA_0作为主设备对DEV_2的写访问请求才是被允许的。
在本公开的实施例中,存储在配置寄存器中的主设备对存储器的读访问映射表、主设备对存储器的写访问映射表、主设备对外设设备的读访问映射表、以及主设备对外设设备的写访问映射表都是可以重新配置的。如果需要对某一个配置寄存器进行重新进行配置,需要向该寄存器写入一串预置的编码,打开该配置寄存器的写使能功能,使该配置寄存器进入写使能状态,可以重新对该配置寄存器进行配置。这样,可以防止没有权限的用户操作配置寄存器或者有权限的用户误操作配置寄存器。在写入操作完成之后,再次输入预置编码,关闭配置寄存器的写使能功能。在对该配置寄存器配置结束之后,根据本公开实施例的AXI总线防火墙就可以基于重新配置的配置寄存器对主设备对从设备的读访问请求和写访问请求进行放行或者拦截,达到了灵活配置访问权限以及实现功能安全的目的。
在本公开的一个实施例中,如图1所示,所述AXI总线防火墙还包括第一AXI延迟逻辑单元、第二AXI延迟逻辑单元、第二防火墙单元以及AXI冗余锁步检查单元,来自AXI总线的信号输入至第一防火墙单元,经第一防火墙单元处理后输入至第一AXI延迟逻辑单元进行延迟处理,延迟处理后的信号输入至AXI冗余锁步检查单元,来自AXI总线的信号还输入至第二AXI延迟逻辑单元,经第二AXI延迟逻辑单元延迟后输入至第二防火墙单元,在被第二防火墙单元处理后输入至所述AXI冗余锁步检查单元,所述AXI冗余锁步检查单元构造为对来自第一AXI延迟逻辑单元的数据和第二防火墙单元的数据进行冗余检查,在来自第一AXI延迟逻辑单元的数据和第二防火墙单元的数据不同的情况下,输出AXI锁步告警信息,以告知SOC和/或用户。
在正常工作时,来自第一AXI延迟逻辑单元的数据和第二防火墙单元的数据是完全相同的。如果二者不同,说明出现了突发故障,此时应当向SOC和用户发出告警信息。对来自AXI总线的数据进行异步延迟并进行冗余检查,可以在出现瞬时异常或者数据瞬时抖动的情况下,或者两组数据通路中的其中一路出现异常时,确定数据是否出现异常,进一步保证数据的安全传输。
在本公开的一个实施例中,如图1所示,所述AXI总线防火墙还包括第一APB延迟逻辑单元、第二APB延迟逻辑单元、第二寄存器组、以及APB冗余锁步检查单元,第一寄存器组连接至APB总线,接收来自APB总线的数据,第一寄存器组将接收到的数据发送至第一APB延迟逻辑单元以进行延迟,APB总线的数据还发送至第二APB延迟逻辑单元以进行延迟,第二APB延迟逻辑单元将延迟后的数据发送至第二寄存器组,所述APB冗余锁步检查单元接收来自第一APB延迟逻辑单元的数据和来自第二寄存器组的数据,以进行冗余检查。在来自第一APB延迟逻辑单元的数据和来自第二寄存器组的数据不同的情况下,所述APB冗余锁步检查单元发出APB锁步告警信息,以告知SOC和/或用户。
下文将通过一个具体的示例对本公开实施例的AXI总线防火墙做进一步的说明,以更清楚和完整地了解本公开的工作原理。
在一个SOC中,连接至AXI总线的主设备包括CPU和两个DMA(DMA_0和DMA_1),CPU包括4个核,其中,核0为secure状态,其它3个核为non-secure状态,连接至AXI总线的从设备包括存储器设备MEM_0和MEM_1、DMA_0的配置寄存器,DMA_1的配置寄存器、以及外设设备DEV_0和DEV_1。AXI总线防火墙连接在AXI总线上,连接在主设备和从设备之间。
在芯片上电之后,主处理器向防火墙的写使能寄存器中写入预置编码并打开第一寄存次组的写功能。此时,根据芯片安全功能需求和图2所对应的寄存器,配置主设备对存储器设备的读访问映射寄存器;此处的需求为:安全状态的CPU和DMA_0可以读写所有的存储器空间,非安全状态的CPU只被允许读写MEM_0的第2个block,DMA_1只被允许读写MEM_1。主设备对存储器设备的读访问映射表的配置如图6所示。
之后,根据芯片安全功能需求,在相应的寄存器配置主设备对存储器设备的写访问映射寄存器;根据需求,对存储器设备的写访问映射寄存器配置如图7所示。接下来,根据芯片安全功能需求,在相应的寄存器中配置主设备对外设设备的读访问映射寄存器,设置CPU核0和核1可以读取所有外设设备,CPU核2和核3可以读取除DMA之外的所有外设设备;对外设设备的读访问映射寄存器的配置如图8所示。然后,根据芯片安全功能需求,在相应的寄存器中配置主设备对外设设备的写访问映射关系,将DMA_0的配置寄存器和DEV_0分配给CPU_0;DMA_1的配置寄存器和DEV_1分配给CPU_1,对应的DEV_0和DEV_1的DMA_enable使能打开,这样可以使用DMA_0对DEV_0的数据进行搬移,使用DMA_1对DEV_1的数据进行搬移。主设备对外设设备的写访问映射关系配置如图9所示。之后,主处理器向防火墙写使能寄存器中写入预置编码并关闭第一寄存器组写功能。再然后,使能并注册防火墙中断处理程序,在程序运行中出现防火墙拦截操作时,触发中断处理程序,用户可以根据功能安全需求在中断处理程序中对异常操作进行额外处理。
通过根据本公开实施例的AXI总线防火墙,通过主从设备的划分并根据需要建立主设备对从设备的访问映射关系,可以灵活地配置不同主设备对从设备的读写权限,保证安全设备中的信息无法被非安全设备访问,且非安全设备中的流量无法进入安全设备,从而提高SOC的功能安全。同时,通过对AXI总线防火墙增加锁步校验机制,可以进一步提升防火墙配置和功能对于随机失效的抵抗能力,从而满足功能安全的需求。
根据本公开的至少一个实施例还提供了一种适用于AXI总线防火墙的操作方法,如图10所示,包括:
S01,第一防火墙单元通过AXI总线从主设备接收主设备对从设备的访问请求;
S02,第一防火墙单元从配置寄存器中读取访问映射表,确定所述访问请求是被允许的还是被禁止的;以及
S03,在所述访问请求是被允许的情况下,第一防火墙单元放行所述访问请求,在所述访问请求被禁止的情况下,第一防火墙单元拦截所述访问请求。
在本公开的一个实施例中,读取访问映射表包括主设备对存储设备的读访问映射表、主设备对存储器设备的写访问映射表、主设备对外设设备的读访问映射表、以及主设备对外设设备的写访问配置表。
在本公开的一个实施例中,为了满足功能安全需要的要求,所述读取访问映射表是能够重新配置的。
在本公开的一个实施例中,所述方法还包括对来自AXI总线的信号进行冗余锁步检查,其中,来自AXI总线的信号在经过第一防火墙单元之后经第一延迟处理,得到第一延迟信号,来自AXI总线的信号先经第二延迟处理后经第二防火墙单元处理,得到第二延迟信号,对第一延迟信号和第二延迟信号进行比较。
在本公开的一个实施例中,所述方法还包括对来自APB总线的信号进行冗余锁步检查,其中,来自APB总线的信号进入设置在AXI总线和第一防火墙单元之间的第一寄存器组,之后经第三延迟处理得到第三延迟信号,同时,来自APB总线的信号经第四延迟处理并输入至第二寄存器组得到第四延迟信号,对第三延迟信号和第四延迟信号进行比较。
在本公开的一个实施例中,在所述访问请求被禁止的情况下,第一防火墙单元拦截所述访问请求包括:
将访问请求中的访问地址修改为错误地址,将被禁止的访问请求引导至错误地址;以及保存所述访问请求的信息。
上述操作的实施可以参照AXI总线防火墙的实施例,在此不再赘述。
在根据本公开实施例的适用于AXI总线防火墙的操作方法中,通过设置读取访问映射表,可以根据需要灵活地配置主设备对从设备的读写权限,保证安全设备中的信息无法被非安全设备访问,且非安全设备中的流量无法进入安全设备,从而提高SOC的功能安全。同时,通过对AXI总线防火墙增加锁步校验机制,可以进一步提升防火墙配置和功能对于随机失效的抵抗能力,从而满足功能安全的需求。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本公开实施例的基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本公开精神的基础上所做的这些修改或改进,均属于本公开要求保护的范围。
Claims (12)
1.一种AXI总线防火墙,包括:
第一寄存器组,所述第一寄存器组包括配置寄存器,所述配置寄存器构造为存储访问映射表;以及
第一防火墙单元,所述第一防火墙单元设置在AXI总线上,构造为通过AXI总线从主设备接收对从设备的访问请求,并基于所述访问映射表确定是否拦截该访问请求;其中从设备至少包括存储器设备和外设设备,主设备至少包括处理器和DMA,并且每个处理器的核被分配有各自的编号;
其中,当从设备为存储器设备时,基于AXI总线中的AWID、ARID、AWPROT和ARPROT标志位将主设备的访问请求分为处理器安全访问请求、处理器非安全访问请求以及其它主设备访问请求;
当主设备为DMA、从设备为外设设备时,只有当分配给该外设设备的处理器核编号与分配给DMA寄存器的处理器核编号一致,并且该外设设备对应的DMA使能信号有效时,DMA才被允许访问该外设设备。
2.根据权利要求1所述的防火墙,其中,所述访问映射表包括主设备对存储设备的读访问映射表、主设备对存储器设备的写访问映射表、主设备对外设设备的读访问映射表、以及主设备对外设设备的写访问映射表,这些访问映射表存储在不同的配置寄存器中。
3.根据权利要求1所述的防火墙,其中,当主设备为处理器、从设备为外设设备时,基于AXI总线中的AWID和ARID区分不同的处理器核编号,只有分配给外设设备的处理器核编号对应的处理器核才被允许对该外设设备进行访问。
4.根据权利要求1至3中任何一项所述的防火墙,其中,所述第一寄存器组还包括状态寄存器,在该访问请求被禁止时,所述第一防火墙单元被配置为将该访问请求中的访问地址修改为错误地址,并将该访问请求引导至错误地址,同时,将该访问请求的信息存储在所述状态寄存器中。
5.根据权利要求1至3中任何一项所述的防火墙,其中,所述AXI总线防火墙还包括第一APB延迟逻辑单元、第二APB延迟逻辑单元、第二寄存器组、以及APB冗余锁步检查单元,所述第一寄存器组连接至APB总线,接收来自APB总线的数据,第一寄存器组将接收到的数据发送至所述第一APB延迟逻辑单元以进行延迟,APB总线的数据还发送至第二APB延迟逻辑单元以进行延迟,所述第二APB延迟逻辑单元将延迟后的数据发送至第二寄存器组,所述APB冗余锁步检查单元接收来自所述第一APB延迟逻辑单元的数据和来自所述第二寄存器组的数据,以进行冗余检查。
6.根据权利要求1至3中任何一项所述的防火墙,其中,所述AXI总线防火墙还包括第一AXI延迟逻辑单元、第二AXI延迟逻辑单元、第二防火墙单元以及AXI冗余锁步检查单元,来自AXI总线的信号输入至第一防火墙单元,经所述第一防火墙单元处理后输入至所述第一AXI延迟逻辑单元进行延迟处理,延迟处理后的信号输入至所述AXI冗余锁步检查单元,来自所述AXI总线的信号还输入至所述第二AXI延迟逻辑单元,经所述第二AXI延迟逻辑单元延迟后输入至第二防火墙单元,在被第二防火墙单元处理后输入至所述AXI冗余锁步检查单元,所述AXI冗余锁步检查单元构造为对来自所述第一AXI延迟逻辑单元的数据和所述第二防火墙单元的数据进行冗余检查。
7.一种适用于AXI总线防火墙的方法,包括:
S01,第一防火墙单元通过AXI总线从主设备接收主设备对从设备的访问请求;
S02,所述第一防火墙单元从配置寄存器中读取访问映射表,确定所述访问请求是被允许的还是被禁止的;以及
S03,在所述访问请求是被允许的情况下,所述第一防火墙单元放行所述访问请求,在所述访问请求被禁止的情况下,所述第一防火墙单元拦截所述访问请求;
其中从设备至少包括存储器设备和外设设备,主设备至少包括处理器和DMA,并且每个处理器的核被分配有各自的编号;
其中,当从设备为存储器设备时,基于AXI总线中的AWID、ARID、AWPROT和ARPROT标志将主设备的访问请求分为处理器安全访问请求、处理器非安全访问请求以及其它主设备访问请求;
当主设备为DMA、从设备为外设设备时,只有当分配给该外设设备的处理器核编号与分配给DMA寄存器的处理器核编号一致,并且该外设设备对应的DMA使能信号有效时,DMA才被允许访问该外设设备。
8.根据权利要求7所述的方法,其中,读取访问映射表包括主设备对存储设备的读访问映射表、主设备对存储器设备的写访问映射表、主设备对外设设备的读访问映射表、以及主设备对外设设备的写访问配置表。
9.根据权利要求7所述方法,其中,当主设备为处理器、从设备为外设设备时,基于AXI总线中的AWID和ARID区分不同的处理器核编号,只有分配给外设设备的处理器核编号对应的处理器核才被允许对该外设设备进行访问。
10.根据权利要求7至9中任何一项所述的方法,其还包括对来自AXI总线的信号进行冗余锁步检查,其中,来自AXI总线的信号在经过所述第一防火墙单元之后经第一延迟处理,得到第一延迟信号,来自AXI总线的信号先经第二延迟处理后经第二防火墙单元处理,得到第二延迟信号,对所述第一延迟信号和所述第二延迟信号进行比较。
11.根据权利要求7至9中任何一项所述的方法,其还包括对来自APB总线的信号进行冗余锁步检查,其中,来自APB总线的信号进入设置在AXI总线和所述第一防火墙单元之间的第一寄存器组,之后经第三延迟处理得到第三延迟信号,同时,来自APB总线的信号经第四延迟处理并输入至第二寄存器组得到第四延迟信号,对所述第三延迟信号和所述第四延迟信号进行比较。
12.根据权利要求7至9中任何一项所述的方法,在所述访问请求被禁止的情况下,第一防火墙单元拦截所述访问请求包括:
将访问请求中的访问地址修改为错误地址,将被禁止的访问请求引导至错误地址;以及保存所述访问请求的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311361027.9A CN117097576B (zh) | 2023-10-20 | 2023-10-20 | 一种面向功能安全的axi总线防火墙 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311361027.9A CN117097576B (zh) | 2023-10-20 | 2023-10-20 | 一种面向功能安全的axi总线防火墙 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117097576A CN117097576A (zh) | 2023-11-21 |
CN117097576B true CN117097576B (zh) | 2024-01-02 |
Family
ID=88780273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311361027.9A Active CN117097576B (zh) | 2023-10-20 | 2023-10-20 | 一种面向功能安全的axi总线防火墙 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097576B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886035A (zh) * | 2019-05-06 | 2019-06-14 | 上海燧原智能科技有限公司 | 芯片访问安全的控制装置及芯片系统 |
CN114844726A (zh) * | 2022-07-01 | 2022-08-02 | 湖北芯擎科技有限公司 | 防火墙实现方法、芯片、电子设备及计算机可读存储介质 |
CN114944958A (zh) * | 2022-06-14 | 2022-08-26 | 西安爱芯元智科技有限公司 | 访问请求的处理方法、装置和电子设备 |
CN116166609A (zh) * | 2021-11-25 | 2023-05-26 | 意法半导体(大西部)公司 | 存储器防火墙的动态管理 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11483287B2 (en) * | 2018-06-13 | 2022-10-25 | Nokia Solutions And Networks Oy | Reliable firewall |
-
2023
- 2023-10-20 CN CN202311361027.9A patent/CN117097576B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886035A (zh) * | 2019-05-06 | 2019-06-14 | 上海燧原智能科技有限公司 | 芯片访问安全的控制装置及芯片系统 |
CN116166609A (zh) * | 2021-11-25 | 2023-05-26 | 意法半导体(大西部)公司 | 存储器防火墙的动态管理 |
CN114944958A (zh) * | 2022-06-14 | 2022-08-26 | 西安爱芯元智科技有限公司 | 访问请求的处理方法、装置和电子设备 |
CN114844726A (zh) * | 2022-07-01 | 2022-08-02 | 湖北芯擎科技有限公司 | 防火墙实现方法、芯片、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117097576A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7194663B2 (en) | Protective bus interface and method | |
CA1315007C (en) | Virtual input/output commands | |
US10489332B2 (en) | System and method for per-task memory protection for a non-programmable bus master | |
EP1839156B1 (en) | Managing multiprocessor operations | |
US7861095B2 (en) | Data processing apparatus security | |
CN106663061B (zh) | 用于可编程逻辑的存储器的虚拟化 | |
CN105938466B (zh) | 用于处理器间通信的电路和方法 | |
US10296356B2 (en) | Implementation of reset functions in an SoC virtualized device | |
US20220206970A1 (en) | Configurable Multi-Function PCIe Endpoint Controller in an SoC | |
WO2010097925A1 (ja) | 情報処理装置 | |
US20240296220A1 (en) | Method and system for freedom from interference (ffi) | |
EP3279796B1 (en) | Resource access management component and method therefor | |
US20170286354A1 (en) | Separation of control and data plane functions in soc virtualized i/o device | |
CN101620652B (zh) | 一种保护存储器数据的主板、计算机和方法 | |
US9098425B2 (en) | Implementing user mode foreign device attachment to memory channel | |
WO2022144646A1 (en) | Migrating pages of memory accessible by input-output devices | |
CN117097576B (zh) | 一种面向功能安全的axi总线防火墙 | |
CN114912107B (zh) | 访问管理方法、相关装置、系统及计算机可读存储介质 | |
US20240303205A1 (en) | Error Management In System On A Chip With Securely Partitioned Memory Space | |
CN111742303A (zh) | 用于在调试设备时访问元数据的装置和方法 | |
CN115374041A (zh) | 总线解码器 | |
US7913129B2 (en) | Method of testing data paths in an electronic circuit | |
US10860520B2 (en) | Integration of a virtualized input/output device in a computer system | |
US20240289495A1 (en) | Address Range Encoding in System on a Chip with Securely Partitioned Memory Space | |
US20240338221A1 (en) | Debug In System On A Chip With Securely Partitioned Memory Space |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |