]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add support for the Coresight technology from ARM Ltd.
authorRuslan Bukin <br@FreeBSD.org>
Thu, 5 Apr 2018 15:45:54 +0000 (15:45 +0000)
committerRuslan Bukin <br@FreeBSD.org>
Thu, 5 Apr 2018 15:45:54 +0000 (15:45 +0000)
commitb09de0b34a3cdda99d7a852988b1b8ca6a8dc4a8
treec03d0bd94cfcbeea8eb43541a9dd82989aaca07d
parent2e23ded5c400a9b398ae07e70a5b443c4dc1ba6c
Add support for the Coresight technology from ARM Ltd.

ARM Coresight is a solution for debug and trace of complex SoC designs.

This includes a collection of drivers for ARM Coresight interconnect
devices within a small Coresight framework.

Supported devices are:
o Embedded Trace Macrocell v4 (ETMv4)
o Funnel
o Dynamic Replicator
o Trace Memory Controller (TMC)
o CPU debug module

Devices are connected to each other internally in SoC and the
configuration of each device endpoints is described in FDT.

Typical trace flow (as found on Qualcomm Snapdragon 410e):
CPU0 -> ETM0 -> funnel1 -> funnel0 -> ETF -> replicator -> ETR -> DRAM
CPU1 -> ETM1 -^
CPU2 -> ETM2 -^
CPU3 -> ETM3 -^

Note that both Embedded Trace FIFO (ETF) and Embedded Trace Router (ETR)
are hardware configurations of TMC.

This is required for upcoming HWPMC tracing support.

This is tested on single-core system only.

Reviewed by: andrew (partially)
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14618
13 files changed:
sys/arm64/coresight/coresight-cmd.c [new file with mode: 0644]
sys/arm64/coresight/coresight-cpu-debug.c [new file with mode: 0644]
sys/arm64/coresight/coresight-dynamic-replicator.c [new file with mode: 0644]
sys/arm64/coresight/coresight-etm4x.c [new file with mode: 0644]
sys/arm64/coresight/coresight-etm4x.h [new file with mode: 0644]
sys/arm64/coresight/coresight-funnel.c [new file with mode: 0644]
sys/arm64/coresight/coresight-funnel.h [new file with mode: 0644]
sys/arm64/coresight/coresight-tmc.c [new file with mode: 0644]
sys/arm64/coresight/coresight-tmc.h [new file with mode: 0644]
sys/arm64/coresight/coresight.c [new file with mode: 0644]
sys/arm64/coresight/coresight.h [new file with mode: 0644]
sys/arm64/coresight/coresight_if.m [new file with mode: 0644]
sys/conf/files.arm64