mirror of
https://github.com/jclehner/bcm3390.git
synced 2025-01-31 00:31:35 +00:00
359 lines
11 KiB
Plaintext
359 lines
11 KiB
Plaintext
/ {
|
|
//Boot Assist
|
|
boot-assist {
|
|
compatible = "brcm,brcm-ba";
|
|
version = < 0x00020002 >;
|
|
interrupts = <0 23 0x4 0 24 0x4>;
|
|
reg = <0x0 0x04000000 0x0 0x05500000>, //Memory Region
|
|
<0x0 0xd3800000 0x0 0x80>, //CPU_COMM_REGS_CPUC
|
|
<0x0 0xd3881000 0x0 0x50>, //RG_TOP_CTRL
|
|
<0x0 0xd3880000 0x0 0x374>, //CM_TOP_CTRL
|
|
<0x0 0xf0410000 0x0 0x600>, //AON_CTRL
|
|
<0x0 0xf1500000 0x0 0x3fff>, //MEMC_0
|
|
<0x0 0xf1580000 0x0 0x3fff>, //MEMC_1
|
|
<0x0 0xd3890158 0x0 0x4>, //JTAG_OTP_UB:STATUS_16
|
|
<0x0 0xd2100000 0x0 0x300>; //LEAP_CTRL: Control registers
|
|
reg-names = "mem", "cpuc", "rgtop", "cmtop", "aon", "mc0", "mc1", "otp", "leap";
|
|
allow-user-map;
|
|
stb = < 0xFFFFFFFF 0 2 50 10 >; //start, size, # cpu, priority, latency
|
|
rg = < 0xFFFFFFFF 0 2 50 10 >; //start, size, # cpu, priority, latency
|
|
tp1 = < 0x08000000 0x01400000 >; //start, size
|
|
cm_xfer = < 0x09410000 0x20000 0x2 >; //start, size, count
|
|
leap = < 0x07F00000 0x100000>; //start, size
|
|
arm_boot_rom = <0x09430000 0x00010000>; //start, size
|
|
cm_atw = < 0x0 0x04000000 0x4000000 0x0 0x4807FFFC 0x0 0x0 0x0 >; //index, start, size, destination, client0-3
|
|
cm_dsp_atw = < 0x1 0x08000000 0x200000 0x7e00000 0x4804FFFC 0x0 0x0 0x0 >; //index, start, size, destination, client0-3
|
|
cm_boot_atw = < 0x2 0x09400000 0x10000 0x1fc00000 0x40000 0x0 0x0 0x0 >; //index, start, size, destination, client0-3
|
|
//arc=<memc, index, ubus, exclusive, start, end, r_clients[8], w_clients[8]>
|
|
};
|
|
|
|
brcm-mbox {
|
|
compatible = "brcm,brcm-mbox";
|
|
reg = <0x0 0xd3800080 0x0 0x80>, //MBOX_CPUC
|
|
<0x0 0xd3800000 0x0 0x80>; //CPU_COMM_REGS_CPUC
|
|
interrupts = <0 129 0x4>;
|
|
read = < 0x0000011F >; /* 0,1,2,3,4,8 */
|
|
write = < 0x000003E4 >; /* 2, 5, 6, 7, 8, 9 */
|
|
};
|
|
|
|
fpm@0xd3a00000 {
|
|
compatible = "brcm,fpm";
|
|
reg = <0x0 0x0BC00000 0x0 0x02000000>, /* Free Pool 0 */
|
|
<0x0 0xd3a00000 0x0 0x30133>; /* Registers */
|
|
// <0x0 0x86000000 0x0 0x02000000>; /* Free Pool 1 */
|
|
// <0x0 0x00000000 0x0 0x0>, /* Free Pool 1 */
|
|
// <0x0 0xd7e00000 0x0 0x1000>, /* UBUS capture engines 0 */
|
|
// <0x0 0xd3e00000 0x0 0x1000>; /* UBUS capture engines 1 */
|
|
interrupts = <0 127 0>;
|
|
init = <1>;
|
|
pool-alloc-weight = <1 1>;
|
|
pool-free-weight = <1 1>;
|
|
track-tokens = <1>;
|
|
track-on-err = <0>;
|
|
};
|
|
|
|
dqm: dqm@d3800000 {
|
|
compatible = "brcm,dqm";
|
|
reg = <0x0 0xd3800000 0x0 0xa580>;
|
|
interrupts = <0 129 0>;
|
|
|
|
dev-name = "cpucomm";
|
|
|
|
l1-irq-mask-offset = <0x0058>;
|
|
l1-irq-status-offset = <0x005c>;
|
|
l1-irq-dqm-mask = <0x00400000 0x00200000 0x00100000>;
|
|
token-offset = <0x1400>;
|
|
|
|
cfg-offset = <0x1c00 0x1c00 0x1c00>;
|
|
lwm-irq-mask-offset = <0x1cb4 0x1d44 0x1ddc>;
|
|
lwm-irq-status-offset = <0x1ca0 0x1d30 0x1dc8>;
|
|
ne-irq-mask-offset = <0x1c60 0x1cd8 0x1d6c>;
|
|
ne-irq-status-offset = <0x1c18 0x1cc4 0x1d58>;
|
|
ne-status-offset = <0x1c20 0x1cc8 0x1d5c>;
|
|
fpm-alloc-offset = <0x1df4 0x1df4 0x1df4>;
|
|
|
|
q-ctl-base-offset = <0x8000 0x8400 0x8800>;
|
|
q-data-base-offset = <0x9000 0x9400 0x9800>;
|
|
q-status-base-offset = <0x7400 0x7480 0x7500>;
|
|
q-mib-base-offset = <0xa000 0xa200 0xa400>;
|
|
q-count = <96>;
|
|
cfg-qsm = <1>;
|
|
qsm-size = <0x2fc0>; /* Bx and beyond top 256 bytes reserved for random seed created by bootrom */
|
|
#qsm-alloc-cells = <4>;
|
|
/* set all Q's to offload due to chip bug in Ax where non-offload doesn't work */
|
|
/* do not use 3rd bank (Q #'s 64-95) due to chip bug in some Ax mask and other register reads & writes */
|
|
/* Q #, # words/element, # elements (depth), offload(1)/non-offload(0) */
|
|
qsm-allocation = < 2 4 8 1 /* RPC RG-->CM */
|
|
3 4 8 1 /* RPC RG<--CM */
|
|
8 4 8 1 /* RPC DECT-->CM */
|
|
9 4 8 1 /* RPC DECT<--CM */
|
|
10 2 16 1 /* Private Network DECT-->CM */
|
|
11 2 16 1 /* Private Network DECT<--CM */
|
|
14 2 16 1 /* Private Network RG (bridge)-->CM */
|
|
15 2 16 1 /* Private Network RG (bridge)<--CM */
|
|
20 4 8 1 /* RPC SVM-->CM */
|
|
21 4 8 1 /* RPC SVM<--CM */
|
|
32 2 64 1 /* RG DS Forward (RG-->Runner) */
|
|
33 2 2048 1 /* WiFi US Forward (WiFi-->Runner) */
|
|
34 2 64 1 /* RG DS Egress (RG-->Runner) */
|
|
35 2 64 1 /* RG US Egress (RG-->Runner) */
|
|
36 2 64 1 /* STB DS Forward (STB-->Runner) */
|
|
37 2 64 1 /* STB US Forward (STB-->Runner) */
|
|
38 2 64 1 /* STB DS Egress (STB-->Runner) */
|
|
39 2 64 1 /* STB US Egress (STB-->Runner) */
|
|
40 2 64 1 /* DFAP DS Forward (DFAP-->Runner) */
|
|
41 2 64 1 /* DFAP US Forward (DFAP-->Runner) */
|
|
42 2 64 1 /* DFAP DS Egress (DFAP-->Runner) */
|
|
43 2 64 1 /* DFAP US Egress (DFAP-->Runner) */
|
|
44 2 64 1 /* Viper DS Forward (DFAP-->Runner) */
|
|
45 2 64 1 /* Viper US Forward (DFAP-->Runner) */
|
|
46 2 64 1 /* Viper DS Egress (DFAP-->Runner) */
|
|
47 2 64 1 /* Viper US Egress (DFAP-->Runner) */
|
|
48 4 256 1 /* RG Exception 0 (Runner-->RG) */
|
|
49 4 256 1 /* RG Exception 1 (Runner-->RG) */
|
|
50 4 256 1 /* RG Exception 2 (Runner-->RG) */
|
|
51 4 256 1 /* RG Exception 3 (Runner-->RG) */
|
|
52 4 256 1 /* RG Exception 4 (Runner-->RG) */
|
|
53 4 256 1 /* RG Exception 5 (Runner-->RG) */
|
|
54 4 256 1 /* RG Exception 6 (Runner-->RG) */
|
|
55 4 256 1 /* RG Exception 7 (Runner-->RG) */
|
|
56 4 4000 1 /* WiFi 0 Rx (Runner-->WiFi) */
|
|
57 4 4000 1 /* WiFi 0 Rx (Runner-->WiFi) */
|
|
58 4 4000 1 /* WiFi 1 Rx (Runner-->WiFi) */
|
|
59 4 4000 1 >; /* WiFi 1 Rx (Runner-->WiFi) */
|
|
};
|
|
|
|
rpcrgcm: rpcrgcm {
|
|
compatible = "brcm,itc-rpc";
|
|
dev-name = "rg-cm";
|
|
dqm = "cpucomm";
|
|
tx-q = <2>;
|
|
rx-q = <3>;
|
|
};
|
|
|
|
rpcsvmcm: rpcsvmcm {
|
|
compatible = "brcm,itc-rpc";
|
|
dev-name = "svm-cm";
|
|
dqm = "cpucomm";
|
|
tx-q = <20>;
|
|
rx-q = <21>;
|
|
};
|
|
|
|
qchan0: q-channel0 {
|
|
dev-name = "fap-exception";
|
|
|
|
#tx-q-cells = <4>;
|
|
/* DQM device, Q#, Priority US/DS */
|
|
tx-q = "cpucomm", "35", "0", "upstream", /* RG upstream egress */
|
|
"cpucomm", "34", "0", "downstream"; /* RG downstream egress */
|
|
#rx-q-cells = <3>;
|
|
/* DQM device, Q#, Priority */
|
|
rx-q = "cpucomm", "48", "0"; /* Runner-->RG 0 */
|
|
|
|
type = "fap-exception";
|
|
q-msg-fmt = "runner";
|
|
};
|
|
|
|
qchan1: q-channel1 {
|
|
dev-name = "cm-private";
|
|
|
|
#tx-q-cells = <3>;
|
|
/* DQM device, Q#, Priority US/DS */
|
|
tx-q = "cpucomm", "14", "0"; /* RG-->CM */
|
|
#rx-q-cells = <3>;
|
|
/* DQM device, Q#, Priority */
|
|
rx-q = "cpucomm", "15", "0"; /* CM-->RG */
|
|
|
|
type = "point-to-point";
|
|
q-msg-fmt = "gfap";
|
|
};
|
|
|
|
priv0 { /* RG <--> CM private */
|
|
compatible = "brcm,dqnet";
|
|
channel = <&qchan1>;
|
|
dev-name = "priv0";
|
|
demux = "none";
|
|
link-type = "rpc";
|
|
rpc-channel = <&rpcrgcm>;
|
|
};
|
|
|
|
eth0: ethernet0 {
|
|
compatible = "brcm,dqnet";
|
|
channel = <&qchan0>;
|
|
dev-name = "eth0";
|
|
if-id = <2>; /* rdpa_if_lan0 */
|
|
if-sub-id = <0>; /* if-sub-id must match the first column in phy-port node */
|
|
demux = "subid";
|
|
link-type = "switch";
|
|
brcm-tag = <1>;
|
|
};
|
|
|
|
eth1: ethernet1 {
|
|
compatible = "brcm,dqnet";
|
|
channel = <&qchan0>;
|
|
dev-name = "eth1";
|
|
if-id = <3>; /* rdpa_if_lan1 */
|
|
if-sub-id = <1>; /* if-sub-id must match the first column in phy-port node */
|
|
demux = "subid";
|
|
link-type = "switch";
|
|
brcm-tag = <1>;
|
|
};
|
|
|
|
/* Mel, 20151209, Disable eth2~eth3 */
|
|
// eth2: ethernet2 {
|
|
// compatible = "brcm,dqnet";
|
|
// channel = <&qchan0>;
|
|
// dev-name = "eth2";
|
|
// if-id = <4>; /* rdpa_if_lan2 */
|
|
// if-sub-id = <2>; /* if-sub-id must match the first column in phy-port node */
|
|
// demux = "subid";
|
|
// link-type = "switch";
|
|
// brcm-tag = <1>;
|
|
// };
|
|
//
|
|
// eth3: ethernet3 {
|
|
// compatible = "brcm,dqnet";
|
|
// channel = <&qchan0>;
|
|
// dev-name = "eth3";
|
|
// if-id = <5>; /* rdpa_if_lan3 */
|
|
// if-sub-id = <3>; /* if-sub-id must match the first column in phy-port node */
|
|
// demux = "subid";
|
|
// link-type = "switch";
|
|
// brcm-tag = <1>;
|
|
// };
|
|
/* Mel, 20151209, End */
|
|
|
|
cm0 {
|
|
compatible = "brcm,dqnet";
|
|
channel = <&qchan0>;
|
|
dev-name = "cm0";
|
|
if-id = <0>; /* rdpa_if_wan0 */
|
|
demux = "subid";
|
|
link-type = "rpc";
|
|
rpc-channel = <&rpcrgcm>;
|
|
};
|
|
|
|
miimdiomux: miimdiomux@d3c026a0 {
|
|
compatible = "brcm,miimdiomux3390";
|
|
reg = <0 0xd3c026a0 0 0x4>;
|
|
rgmii0-tx-select = "unimac";
|
|
rgmii1-tx-select = "unimac";
|
|
p7-rx-select = "runner";
|
|
p4-rx-select = "moca";
|
|
unimac-rx-select = "rgmii1";
|
|
unimac-mdio-select = "mdio0";
|
|
switch-mdio-select = "mdio1";
|
|
};
|
|
|
|
unimac_mdio: mdio@d040062c {
|
|
compatible = "brcm,unimac-mdio";
|
|
reg = <0 0xd040062c 0 0x8>;
|
|
reg-names = "mdio";
|
|
#size-cells = <1>;
|
|
#address-cells = <0>;
|
|
};
|
|
|
|
switch_mdio: mdio@d4e403c0 {
|
|
compatible = "brcm,unimac-mdio";
|
|
reg = <0 0xd4e403c0 0 0x8>;
|
|
reg-names = "mdio";
|
|
#size-cells = <1>;
|
|
#address-cells = <0>;
|
|
};
|
|
|
|
ethsw: ethsw@d4e00000 {
|
|
compatible = "brcm,ethsw";
|
|
reg = <0x0 0xd4e00000 0x0 0x42000>,
|
|
<0x0 0xd3c00000 0x0 0x2800>;
|
|
interrupts = <0 113 0>,
|
|
<0 114 0>;
|
|
|
|
dev-name = "ethsw";
|
|
phy-port = <0 2>,
|
|
<1 3>,
|
|
<2 4>,
|
|
<3 5>;
|
|
mii-port = <4 0 1000>;
|
|
imp-port = <5 2000>,
|
|
<7 2000>,
|
|
<8 2000>;
|
|
eee-support = <1>;
|
|
high-speed-imp = <1>;
|
|
};
|
|
|
|
runner: runner@0xd5000000 {
|
|
compatible = "brcm,rdpa_cm";
|
|
reg = <0x0 0xd5000000 0x0 0x000fc460>, /* Registers */
|
|
<0x0 0x09c00000 0x0 0x02000000>, /* Runner Extra Memory 0 */
|
|
<0x0 0x00000000 0x0 0x00000000>, /* Runner Extra Memory 1 */
|
|
<0x0 0x09500000 0x0 0x00700000>; /* Runner NAT Cache */
|
|
freq = <800>; /* MHz */
|
|
lag-ports = < 0 1 2 >;
|
|
};
|
|
|
|
upg_fixed: upg_fixed {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-clock";
|
|
clock-frequency = <27000000>;
|
|
};
|
|
|
|
suntop_pmx: pinmux@f0404100 {
|
|
compatible = "pinctrl-single";
|
|
reg = <0 0xf04040a4 0 0xc4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
pinctrl-single,bit-per-mux;
|
|
pinctrl-single,register-width = <32>;
|
|
pinctrl-single,function-mask = <0x1>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
pmb@0xd3c03100 {
|
|
compatible = "brcm,pmb";
|
|
reg = <0 0xd3c03100 0 0x50000>;
|
|
#address-cells = <0>;
|
|
#size-cells = <1>;
|
|
direct-access;
|
|
|
|
pbcm@0x7 {
|
|
compatible = "brcm,bpcm";
|
|
reg = <0x7>;
|
|
dev-name = "bpcm-fpm";
|
|
zones = <1>;
|
|
boot-on;
|
|
};
|
|
|
|
pbcm@0x8 {
|
|
compatible = "brcm,bpcm";
|
|
reg = <0x8>;
|
|
dev-name = "bpcm-cpuc";
|
|
zones = <1>;
|
|
boot-on;
|
|
};
|
|
|
|
pbcm@0xb {
|
|
compatible = "brcm,bpcm";
|
|
reg = <0xb>;
|
|
dev-name = "bpcm-unimac";
|
|
zones = <1>;
|
|
boot-on;
|
|
};
|
|
};
|
|
|
|
pmb@0xf10b0f00 {
|
|
compatible = "brcm,pmb";
|
|
reg = <0 0xf10b0f00 0 0x10>;
|
|
#address-cells = <0>;
|
|
#size-cells = <1>;
|
|
version=<2>;
|
|
|
|
pbcm@0x0 {
|
|
compatible = "brcm,bpcm";
|
|
reg = <0x0>;
|
|
dev-name = "bpcm-rdp";
|
|
zones = <2>;
|
|
boot-on;
|
|
};
|
|
};
|
|
};
|