hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
* Marvell Armada 380/XP Buffer Manager driver (BM)
 
Required properties:
 
- compatible: should be "marvell,armada-380-neta-bm".
- reg: address and length of the register set for the device.
- clocks: a pointer to the reference clock for this device.
- internal-mem: a phandle to BM internal SRAM definition.
 
Optional properties (port):
 
- pool<0 : 3>,capacity: size of external buffer pointers' ring maintained
  in DRAM. Can be set for each pool (id 0 : 3) separately. The value has
  to be chosen between 128 and 16352 and it also has to be aligned to 32.
  Otherwise the driver would adjust a given number or choose default if
  not set.
- pool<0 : 3>,pkt-size: maximum size of a packet accepted by a given buffer
  pointers' pool (id 0 : 3). It will be taken into consideration only when pool
  type is 'short'. For 'long' ones it would be overridden by port's MTU.
  If not set a driver will choose a default value.
 
In order to see how to hook the BM to a given ethernet port, please
refer to Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt.
 
Example:
 
- main node:
 
bm: bm@c8000 {
   compatible = "marvell,armada-380-neta-bm";
   reg = <0xc8000 0xac>;
   clocks = <&gateclk 13>;
   internal-mem = <&bm_bppi>;
   pool2,capacity = <4096>;
   pool1,pkt-size = <512>;
};
 
- internal SRAM node:
 
bm_bppi: bm-bppi {
   compatible = "mmio-sram";
   reg = <MBUS_ID(0x0c, 0x04) 0 0x100000>;
   ranges = <0 MBUS_ID(0x0c, 0x04) 0 0x100000>;
   #address-cells = <1>;
   #size-cells = <1>;
   clocks = <&gateclk 13>;
};