u-boot/arch/arm/mach-keystone
Nishanth Menon 2283284b05 ARM: keystone2: Add missing privilege ID settings
Add missing Privilege ID settings for KS2 SoCs.

Based on:
K2H/K: Table 6-7. Privilege ID Settings from SPRS866E (Nov 2013)
  http://www.ti.com/lit/ds/symlink/66ak2h14.pdf (page 99)
K2L: Table 7-7. Privilege ID Settings from SPRS930 (April 2015)
  http://www.ti.com/lit/ds/symlink/66ak2l06.pdf (page 71)
K2E: Table 7-7. Privilege ID Settings from SPRS865D (Mar 2015)
  http://www.ti.com/lit/ds/symlink/66ak2e05.pdf (page 75)
K2G: Table 3-16. PrivIDs from SPRUHY8 (Jan 2016)
  http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf (page 238)

Overall mapping:
-------+-----------+-----------+-----------+---------
PrivID | KS2H/K    | K2L       | K2E       | K2G
-------+-----------+-----------+-----------+---------
0      | C66x 0    | C66x 0    | C66x 0    | C66x 0
1      | C66x 1    | C66x 1    | Reserved  | ARM
2      | C66x 2    | C66x 2    | Reserved  | ICSS0
3      | C66x 3    | C66x 3    | Reserved  | ICSS1
4      | C66x 4    | Reserved  | Reserved  | NETCP
5      | C66x 5    | Reserved  | Reserved  | CPIE
6      | C66x 6    | Reserved  | Reserved  | USB
7      | C66x 7    | Reserved  | Reserved  | Reserved
8      | ARM       | ARM       | ARM       | MLB
9      | NetCP     | NetCP     | NetCP     | PMMC
10     | QM_PDSP   | QM_PDSP   | QM_PDSP   | DSS
11     | PCIe_0    | PCIe_0    | PCIe_0    | MMC
12     | DEBUG/DAP | DEBUG/DAP | DEBUG/DAP | DEBUG/DAP
13     | Reserved  | Reserved  | PCIe_1    | Reserved
14     | HyperLink | PCIe_1    | HyperLink | Reserved
15     | Reserved  | Reserved  | TSIP      | Reserved
-------+-----------+-----------+-----------+---------

NOTE: Few of these might have default configurations, however,
since most are software configurable, it is better to explicitly
configure the system to have a known default state.

Without programming these, we end up seeing lack of coherency on certain
peripherals resulting in inexplicable failures (such as USB peripheral's
DMA data not appearing on ARM etc and weird workarounds being done by
drivers including cache flushes which tend to have system wide
performance impact).

By marking these segments as shared, we also ensure SoC wide coherency
is enabled.

Reported-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2016-04-01 17:17:40 -04:00
..
include/mach ARM: keystone2: Add missing privilege ID settings 2016-04-01 17:17:40 -04:00
clock.c ARM: keystone2: K2G: Add support for different arm/device speeds 2016-03-14 19:18:44 -04:00
cmd_clock.c ARM: keystone2: Use common definition for clk_get_rate 2015-08-12 20:47:55 -04:00
cmd_ddr3.c ARM: keystone: move SoC sources to mach-keystone 2015-02-21 08:23:52 -05:00
cmd_mon.c ARM: keystone2: Split monitor code / command code 2016-03-16 15:03:15 -04:00
cmd_poweroff.c ARM: keystone2: Switch to using the poweroff command 2016-03-16 15:03:32 -04:00
config.mk ARM: keystone2: Use dtb images by default 2015-10-22 14:22:11 -04:00
ddr3_spd.c ARM: keystone2: use detected ddr3a size 2016-03-14 19:18:45 -04:00
ddr3.c ARM: k2g: Add ddr3 info 2015-10-22 14:22:18 -04:00
init.c ARM: keystone2: Add missing privilege ID settings 2016-04-01 17:17:40 -04:00
Kconfig ARM: k2g: Add kconfig support 2015-10-22 14:22:13 -04:00
keystone.c ARM: keystone2: Switch to using the poweroff command 2016-03-16 15:03:32 -04:00
Makefile ARM: keystone2: Only link cmd_ddr3.o on non-SPL builds 2016-03-16 15:03:34 -04:00
mon.c ARM: keystone2: Split monitor code / command code 2016-03-16 15:03:15 -04:00
msmc.c ARM: keystone: move SoC sources to mach-keystone 2015-02-21 08:23:52 -05:00
psc.c ARM: keystone2: psc: introduce function to hold and release module in reset. 2016-03-14 19:18:36 -04:00