xref: /rk3399_rockchip-uboot/doc/device-tree-bindings/firmware/nvidia,tegra186-bpmp.txt (revision 7b9cb4940575f3b2d368d56ca06d3c0330af4c4b)
1*7b9cb494SStephen WarrenNVIDIA Tegra Boot and Power Management Processor (BPMP)
2*7b9cb494SStephen Warren
3*7b9cb494SStephen WarrenThe BPMP is a specific processor in Tegra chip, which is designed for
4*7b9cb494SStephen Warrenbooting process handling and offloading the power management, clock
5*7b9cb494SStephen Warrenmanagement, and reset control tasks from the CPU. The binding document
6*7b9cb494SStephen Warrendefines the resources that would be used by the BPMP firmware driver,
7*7b9cb494SStephen Warrenwhich can create the interprocessor communication (IPC) between the CPU
8*7b9cb494SStephen Warrenand BPMP.
9*7b9cb494SStephen Warren
10*7b9cb494SStephen WarrenRequired properties:
11*7b9cb494SStephen Warren- name : Should be bpmp
12*7b9cb494SStephen Warren- compatible
13*7b9cb494SStephen Warren    Array of strings
14*7b9cb494SStephen Warren    One of:
15*7b9cb494SStephen Warren    - "nvidia,tegra186-bpmp"
16*7b9cb494SStephen Warren- mboxes : The phandle of mailbox controller and the mailbox specifier.
17*7b9cb494SStephen Warren- shmem : List of the phandle of the TX and RX shared memory area that
18*7b9cb494SStephen Warren	  the IPC between CPU and BPMP is based on.
19*7b9cb494SStephen Warren- #clock-cells : Should be 1.
20*7b9cb494SStephen Warren- #power-domain-cells : Should be 1.
21*7b9cb494SStephen Warren- #reset-cells : Should be 1.
22*7b9cb494SStephen Warren
23*7b9cb494SStephen WarrenThis node is a mailbox consumer. See the following files for details of
24*7b9cb494SStephen Warrenthe mailbox subsystem, and the specifiers implemented by the relevant
25*7b9cb494SStephen Warrenprovider(s):
26*7b9cb494SStephen Warren
27*7b9cb494SStephen Warren- .../mailbox/mailbox.txt
28*7b9cb494SStephen Warren- .../mailbox/nvidia,tegra186-hsp.txt
29*7b9cb494SStephen Warren
30*7b9cb494SStephen WarrenThis node is a clock, power domain, and reset provider. See the following
31*7b9cb494SStephen Warrenfiles for general documentation of those features, and the specifiers
32*7b9cb494SStephen Warrenimplemented by this node:
33*7b9cb494SStephen Warren
34*7b9cb494SStephen Warren- .../clock/clock-bindings.txt
35*7b9cb494SStephen Warren- <dt-bindings/clock/tegra186-clock.h>
36*7b9cb494SStephen Warren- ../power/power_domain.txt
37*7b9cb494SStephen Warren- <dt-bindings/power/tegra186-powergate.h>
38*7b9cb494SStephen Warren- .../reset/reset.txt
39*7b9cb494SStephen Warren- <dt-bindings/reset/tegra186-reset.h>
40*7b9cb494SStephen Warren
41*7b9cb494SStephen WarrenThe shared memory bindings for BPMP
42*7b9cb494SStephen Warren-----------------------------------
43*7b9cb494SStephen Warren
44*7b9cb494SStephen WarrenThe shared memory area for the IPC TX and RX between CPU and BPMP are
45*7b9cb494SStephen Warrenpredefined and work on top of sysram, which is an SRAM inside the chip.
46*7b9cb494SStephen Warren
47*7b9cb494SStephen WarrenSee ".../sram/sram.txt" for the bindings.
48*7b9cb494SStephen Warren
49*7b9cb494SStephen WarrenExample:
50*7b9cb494SStephen Warren
51*7b9cb494SStephen Warrenhsp_top0: hsp@03c00000 {
52*7b9cb494SStephen Warren	...
53*7b9cb494SStephen Warren	#mbox-cells = <2>;
54*7b9cb494SStephen Warren};
55*7b9cb494SStephen Warren
56*7b9cb494SStephen Warrensysram@30000000 {
57*7b9cb494SStephen Warren	compatible = "nvidia,tegra186-sysram", "mmio-sram";
58*7b9cb494SStephen Warren	reg = <0x0 0x30000000 0x0 0x50000>;
59*7b9cb494SStephen Warren	#address-cells = <2>;
60*7b9cb494SStephen Warren	#size-cells = <2>;
61*7b9cb494SStephen Warren	ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>;
62*7b9cb494SStephen Warren
63*7b9cb494SStephen Warren	cpu_bpmp_tx: bpmp_shmem@4e000 {
64*7b9cb494SStephen Warren		compatible = "nvidia,tegra186-bpmp-shmem";
65*7b9cb494SStephen Warren		reg = <0x0 0x4e000 0x0 0x1000>;
66*7b9cb494SStephen Warren	};
67*7b9cb494SStephen Warren
68*7b9cb494SStephen Warren	cpu_bpmp_rx: bpmp_shmem@4f000 {
69*7b9cb494SStephen Warren		compatible = "nvidia,tegra186-bpmp-shmem";
70*7b9cb494SStephen Warren		reg = <0x0 0x4f000 0x0 0x1000>;
71*7b9cb494SStephen Warren	};
72*7b9cb494SStephen Warren};
73*7b9cb494SStephen Warren
74*7b9cb494SStephen Warrenbpmp {
75*7b9cb494SStephen Warren	compatible = "nvidia,tegra186-bpmp";
76*7b9cb494SStephen Warren	mboxes = <&hsp_top0 HSP_MBOX_TYPE_DB HSP_DB_MASTER_BPMP>;
77*7b9cb494SStephen Warren	shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
78*7b9cb494SStephen Warren	#clock-cells = <1>;
79*7b9cb494SStephen Warren	#power-domain-cells = <1>;
80*7b9cb494SStephen Warren	#reset-cells = <1>;
81*7b9cb494SStephen Warren};
82