diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-08 14:34:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-08 14:34:32 -0400 |
commit | 10c8e0562057b5d64ea170feab148e1550420030 (patch) | |
tree | cfd387208c85e893c93d24e324d147eb6e9abfc9 /Documentation/arm | |
parent | d4e1f5a14e17d4f0e8034c0967511884bcb12fba (diff) | |
parent | 3e528cb7bae00ba0d73def6645d0f2fa906ee3e8 (diff) |
Merge tag 'drivers-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver changes from Olof Johansson:
"A handful of driver-related changes. We've had a bunch of them going
in through other branches as well, so it's only a part of what we
really have this release.
Larger pieces are:
- Removal of a now unused PWM driver for atmel
[ This includes AVR32 changes that have been appropriately acked ]
- Performance counter support for the arm CCN interconnect
- OMAP mailbox driver cleanups and consolidation
- PCI and SATA PHY drivers for SPEAr 13xx platforms
- Redefinition (with backwards compatibility!) of PCI DT bindings for
Tegra to better model regulators/power"
Note: this merge also fixes up the semantic conflict with the new
calling convention for devm_phy_create(), see commit f0ed817638b5 ("phy:
core: Let node ptr of PHY point to PHY and not of PHY provider") that
came in through Greg's USB tree.
Semantic merge patch by Stephen Rothwell <sfr@canb.auug.org.au> through
the next tree.
* tag 'drivers-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits)
bus: arm-ccn: Fix error handling at event allocation
mailbox/omap: add a parent structure for every IP instance
mailbox/omap: remove the private mailbox structure
mailbox/omap: consolidate OMAP mailbox driver
mailbox/omap: simplify the fifo assignment by using macros
mailbox/omap: remove omap_mbox_type_t from mailbox ops
mailbox/omap: remove OMAP1 mailbox driver
mailbox/omap: use devm_* interfaces
bus: ARM CCN: add PERF_EVENTS dependency
bus: ARM CCN PMU driver
PCI: spear: Remove spear13xx_pcie_remove()
PCI: spear: Fix Section mismatch compilation warning for probe()
ARM: tegra: Remove legacy PCIe power supply properties
PCI: tegra: Remove deprecated power supply properties
PCI: tegra: Implement accurate power supply scheme
ARM: SPEAr13xx: Update defconfigs
ARM: SPEAr13xx: Add pcie and miphy DT nodes
ARM: SPEAr13xx: Add bindings and dt node for misc block
ARM: SPEAr13xx: Fix static mapping table
phy: Add drivers for PCIe and SATA phy on SPEAr13xx
...
Diffstat (limited to 'Documentation/arm')
-rw-r--r-- | Documentation/arm/CCN.txt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Documentation/arm/CCN.txt b/Documentation/arm/CCN.txt new file mode 100644 index 000000000000..0632b3aad83e --- /dev/null +++ b/Documentation/arm/CCN.txt | |||
@@ -0,0 +1,52 @@ | |||
1 | ARM Cache Coherent Network | ||
2 | ========================== | ||
3 | |||
4 | CCN-504 is a ring-bus interconnect consisting of 11 crosspoints | ||
5 | (XPs), with each crosspoint supporting up to two device ports, | ||
6 | so nodes (devices) 0 and 1 are connected to crosspoint 0, | ||
7 | nodes 2 and 3 to crosspoint 1 etc. | ||
8 | |||
9 | PMU (perf) driver | ||
10 | ----------------- | ||
11 | |||
12 | The CCN driver registers a perf PMU driver, which provides | ||
13 | description of available events and configuration options | ||
14 | in sysfs, see /sys/bus/event_source/devices/ccn*. | ||
15 | |||
16 | The "format" directory describes format of the config, config1 | ||
17 | and config2 fields of the perf_event_attr structure. The "events" | ||
18 | directory provides configuration templates for all documented | ||
19 | events, that can be used with perf tool. For example "xp_valid_flit" | ||
20 | is an equivalent of "type=0x8,event=0x4". Other parameters must be | ||
21 | explicitly specified. For events originating from device, "node" | ||
22 | defines its index. All crosspoint events require "xp" (index), | ||
23 | "port" (device port number) and "vc" (virtual channel ID) and | ||
24 | "dir" (direction). Watchpoints (special "event" value 0xfe) also | ||
25 | require comparator values ("cmp_l" and "cmp_h") and "mask", being | ||
26 | index of the comparator mask. | ||
27 | |||
28 | Masks are defined separately from the event description | ||
29 | (due to limited number of the config values) in the "cmp_mask" | ||
30 | directory, with first 8 configurable by user and additional | ||
31 | 4 hardcoded for the most frequent use cases. | ||
32 | |||
33 | Cycle counter is described by a "type" value 0xff and does | ||
34 | not require any other settings. | ||
35 | |||
36 | Example of perf tool use: | ||
37 | |||
38 | / # perf list | grep ccn | ||
39 | ccn/cycles/ [Kernel PMU event] | ||
40 | <...> | ||
41 | ccn/xp_valid_flit/ [Kernel PMU event] | ||
42 | <...> | ||
43 | |||
44 | / # perf stat -C 0 -e ccn/cycles/,ccn/xp_valid_flit,xp=1,port=0,vc=1,dir=1/ \ | ||
45 | sleep 1 | ||
46 | |||
47 | The driver does not support sampling, therefore "perf record" will | ||
48 | not work. Also notice that only single cpu is being selected | ||
49 | ("-C 0") - this is because perf framework does not support | ||
50 | "non-CPU related" counters (yet?) so system-wide session ("-a") | ||
51 | would try (and in most cases fail) to set up the same event | ||
52 | per each CPU. | ||