Skip to content

Instantly share code, notes, and snippets.

@halmartin
Created December 19, 2020 14:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save halmartin/06d07016738fd5df774f35dbeda594a3 to your computer and use it in GitHub Desktop.
Save halmartin/06d07016738fd5df774f35dbeda594a3 to your computer and use it in GitHub Desktop.
Meraki fullerene dts extracted from firmware image
/dts-v1/;
/ {
#address-cells = <0x2>;
#size-cells = <0x1>;
model = "apm,apm862xx";
compatible = "apm,apm862xx";
dcr-parent = <0x1>;
aliases {
serial0 = "/hbf/ahb/apb/serial@fa0000000";
ethernet0 = "/hbf/ethernet@dd8a0000";
ethernet1 = "/hbf/ethernet@dd8a0030";
};
cpus {
#address-cells = <0x1>;
#size-cells = <0x0>;
cpu@0 {
device_type = "cpu";
model = "PowerPC,APM86xxx";
reg = <0x0>;
clock-frequency = <0x0>;
plb-frequency = <0x0>;
timebase-frequency = <0x0>;
i-cache-line-size = <0x20>;
d-cache-line-size = <0x20>;
i-cache-size = <0x8000>;
d-cache-size = <0x8000>;
dcr-controller;
dcr-access-method = "native";
#address-cells = <0x1>;
#size-cells = <0x0>;
linux,phandle = <0x1>;
phandle = <0x1>;
};
cpu@1 {
device_type = "cpu";
model = "PowerPC,APM86xxx";
reg = <0x1>;
status = "disabled";
};
};
memory {
device_type = "memory";
reg = <0x0 0x0 0x0>;
};
memc@3fffff800 {
compatible = "apm,memc";
reg = <0x3 0xfffff800 0x1000>;
};
ocm@effff8000 {
compatible = "apm,ocm";
cell-index = <0x0>;
reg = <0xe 0xffff8000 0x8000>;
#size-cells = <0x1>;
#address-cells = <0x1>;
partition@0 {
type = "non-cached";
reg = <0x0 0x7f00>;
};
partition@1 {
type = "ipp";
reg = <0x7f00 0x100>;
};
};
sdu@ddd810000 {
compatible = "apm,apm86xxx-sdu";
reg = <0xd 0xdd810000 0x10000>;
interrupt-parent = <0x2>;
interrupts = <0x0 0x2>;
};
hbf {
compatible = "apm,hbf-am862xx", "apm,hbf";
#address-cells = <0x2>;
#size-cells = <0x1>;
ranges;
clock-frequency = <0x0>;
pic@df400000 {
clock-frequency = <0x0>;
interrupt-controller;
reg = <0xd 0xdf400000 0x40000>;
#address-cells = <0x0>;
#interrupt-cells = <0x2>;
compatible = "chrp,open-pic";
device_type = "open-pic";
big-endian;
linux,phandle = <0x2>;
phandle = <0x2>;
};
ipp@ddd8b0000 {
compatible = "apm,ipp";
gpio_wakeup = <0xd>;
reg = <0xd 0xdd8b0000 0x1000>;
is-gpio;
gpio-avail-mask = <0xc144>;
gpio-count = <0x10>;
interrupt-parent = <0x2>;
interrupts = <0x9 0x2 0xa 0x2 0x65 0x8>;
#gpio-cells = <0x2>;
gpio-controller;
linux,phandle = <0x4>;
phandle = <0x4>;
};
timer@df4010f0 {
compatible = "apm,apm86xxx-gpt";
reg = <0xd 0xdf4010f0 0x220>;
interrupts = <0xf3 0x0 0xf4 0x0 0xf5 0x0 0xf6 0x0>;
interrupt-parent = <0x2>;
};
timer@df4020f0 {
compatible = "apm,apm86xxx-gpt";
reg = <0xd 0xdf4020f0 0x220>;
interrupts = <0xf7 0x0 0xf8 0x0 0xf9 0x0 0xfa 0x0>;
interrupt-parent = <0x2>;
};
qmtm@dd800000 {
device_type = "qmtm";
compatible = "mb-qmtm", "apm,mb-qmtm";
#interrupt-cells = <0x2>;
reg = <0xd 0xdd800000 0x10000 0xd 0xdf000000 0x400000 0x3 0xffffd000 0x3fff 0xd 0x0 0x400000 0xd 0xdd8d0000 0x10000 0xd 0xdd8b1000 0x240>;
interrupt-parent = <0x2>;
interrupts = <0x21 0x2 0x5 0x2 0x11 0x2 0x12 0x2 0x13 0x2 0x14 0x2 0x15 0x2 0x16 0x2 0x17 0x2 0x18 0x2 0x19 0x2 0x1a 0x2 0x1b 0x2 0x1c 0x2 0x1d 0x2 0x1e 0x2 0x1f 0x2 0x20 0x2>;
maxqid = <0xff>;
qstart = <0x1>;
dma-reg = <0x0 0x7f000000 0x1000000>;
};
ethernet@dd8a0000 {
device_type = "network";
compatible = "apm, apm86xxx-enet";
interrupt-parent = <0x2>;
interrupts = <0x22 0x2 0x23 0x2 0x2b 0x2>;
reg = <0xd 0xdd8a0000 0x200 0xd 0xdd8e0000 0x10000 0xd 0xdd8a0800 0xf800 0xd 0xdd8a0000 0x20>;
local-mac-address = [1a 2a 3a 4a 5a 60];
max-frame-size = <0x233a>;
devid = <0x0>;
phyid = <0x1>;
hw-cfg = <0x1>;
};
ethernet@dd8a0030 {
device_type = "network";
compatible = "apm, apm86xxx-enet";
interrupt-parent = <0x2>;
interrupts = <0x22 0x2 0x23 0x2 0x2b 0x2>;
reg = <0xd 0xdd8a0030 0x200 0xd 0xdd8e0000 0x10000 0xd 0xdd8a0800 0xf800 0xd 0xdd8a0000 0x20>;
local-mac-address = [1a 2a 3a 4a 5a 61];
max-frame-size = <0x233a>;
devid = <0x1>;
phyid = <0x2>;
hw-cfg = <0x1>;
};
pktdma@dd820000 {
device_type = "dma";
compatible = "apm-pktdma", "apm,apm86xxx-pktdma";
#interrupt-cells = <0x1>;
reg = <0xd 0xdd820000 0x10000>;
interrupt-parent = <0x2>;
ch-info = <0x0 0x1 0x2 0x3>;
fp-info = <0x6>;
};
crypto@ddd830000 {
device_type = "crypto";
compatible = "apm,apm86xxx-crypto";
#interrupt-cells = <0x1>;
reg = <0xd 0xdd830000 0x8000>;
interrupt-parent = <0x2>;
interrupts = <0x5d 0x2>;
dma-reg = <0x0 0x7e000000 0x1000000>;
};
rtc@d00410000 {
device_type = "rtc";
compatible = "apm-apm86xxx-rtc";
reg = <0xd 0x410000 0x400>;
interrupt-parent = <0x2>;
interrupts = <0x30 0x2>;
};
pka@d00420000 {
device_type = "pka";
compatible = "apm-apm86xxx-pka";
reg = <0xd 0x420000 0x8000>;
interrupt-parent = <0x2>;
interrupts = <0x5c 0x2>;
};
trng@d00428000 {
device_type = "trng";
compatible = "apm-apm86xxx-trng";
reg = <0xd 0x428000 0x8000>;
interrupt-parent = <0x2>;
interrupts = <0x5a 0x2 0x5b 0x2>;
};
sata@500000000 {
device_type = "sata";
compatible = "sata-ahci", "apm,sata-ahci";
phy = <0x1>;
reg = <0x5 0x0 0x4000 0xd 0xdd877000 0x3000 0xd 0xdd870000 0x7000 0xd 0xdd880000 0x10000>;
interrupt-parent = <0x2>;
interrupts = <0x2c 0x2>;
};
ahb {
device_type = "ahb";
compatible = "apm,ahb";
#address-cells = <0x2>;
#size-cells = <0x1>;
ranges;
clock-frequency = <0x0>;
ahbc@ddd860000 {
device_tpye = "ahbc";
compatible = "apm,apm86xxx-ahbc";
reg = <0xd 0xdd860000 0x10000>;
};
ufc@0xfa0140000 {
compatible = "ibm,ufc";
reg = <0xf 0xa0140000 0x10000>;
#address-cells = <0x1>;
#size-cells = <0x1>;
bootmode = "nand";
nand {
#address-cells = <0x1>;
#size-cells = <0x1>;
partition@0 {
label = "firmware";
reg = <0x0 0x100000>;
};
partition@100000 {
label = "environment";
reg = <0x100000 0x100000>;
};
partition@200000 {
label = "oops-old";
reg = <0x200000 0x40000>;
};
partition@240000 {
label = "ubi";
reg = <0x240000 0x3fdc0000>;
};
all {
label = "all";
reg = <0x0 0x40000000>;
};
};
};
usb@fa0100000 {
device_type = "usb";
compatible = "apm,usb-otg";
reg = <0xf 0xa0100000 0x40000>;
interrupt-parent = <0x2>;
interrupts = <0x4f 0x2>;
devid = <0x0>;
};
apb {
compatible = "apm,apb";
device_type = "apb";
#address-cells = <0x2>;
#size-cells = <0x1>;
ranges;
clock-frequency = <0x0>;
serial@fa0000000 {
device_type = "serial";
compatible = "ns16550";
reg = <0xf 0xa0000000 0x1000>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clock-frequency = <0x0>;
current-speed = <0xe100>;
interrupt-parent = <0x2>;
interrupts = <0xb 0x2>;
};
serial@fa0001000 {
device_type = "serial";
compatible = "ns16550";
reg = <0xf 0xa0001000 0x1000>;
reg-shift = <0x2>;
clock-frequency = <0x0>;
current-speed = <0xe100>;
interrupt-parent = <0x2>;
interrupts = <0xc 0x2>;
};
serial@fa0007000 {
device_type = "serial";
compatible = "ns16550";
reg = <0xf 0xa0007000 0x1000>;
reg-shift = <0x2>;
clock-frequency = <0x0>;
current-speed = <0x1c200>;
interrupt-parent = <0x2>;
interrupts = <0xd 0x2>;
};
serial@fa0008000 {
device_type = "serial";
compatible = "ns16550";
reg = <0xf 0xa0008000 0x1000>;
reg-shift = <0x2>;
clock-frequency = <0x0>;
current-speed = <0x1c200>;
interrupt-parent = <0x2>;
interrupts = <0xe 0x2>;
};
i2c@fa0002000 {
device_type = "i2c";
compatible = "apm,apm86xxx-i2c";
reg = <0xf 0xa0002000 0x1000>;
clock-frequency = <0x5f5e100>;
interrupt-parent = <0x2>;
interrupts = <0xf 0x2>;
bus_num = <0x0>;
tca@22 {
compatible = "ti,tca6424";
reg = <0x22>;
gpio-count = <0x18>;
#gpio-cells = <0x2>;
gpio-controller;
linux,phandle = <0x3>;
phandle = <0x3>;
};
};
gpio@fa0004000 {
device_type = "gpio";
compatible = "apm,apm86xxx-gpio";
reg = <0xf 0xa0004000 0x1000>;
gpio-count = <0x1a>;
#gpio-cells = <0x2>;
gpio-controller;
};
};
};
i2c@d00411000 {
device_type = "i2c";
compatible = "apm,apm86xxx-i2c";
reg = <0xd 0x411000 0x1000>;
clock-frequency = <0x5f5e100>;
interrupt-parent = <0x2>;
interrupts = <0x10 0x2>;
bus_num = <0x1>;
#address-cells = <0x1>;
#size-cells = <0x0>;
rtc@68 {
compatible = "dal,ds1672";
reg = <0x68>;
};
hwm@19 {
compatible = "nat,lm95241";
reg = <0x19>;
};
};
gpio-leds {
compatible = "gpio-leds";
power-green {
label = "power:green";
gpios = <0x3 0x0 0x1>;
};
power-orange {
label = "power:orange";
gpios = <0x3 0x1 0x1>;
};
usb-green {
label = "usb:green";
gpios = <0x3 0x2 0x1>;
};
usb-orange {
label = "usb:orange";
gpios = <0x3 0x3 0x1>;
};
ha-green {
label = "ha:green";
gpios = <0x3 0x4 0x1>;
};
ha-orange {
label = "ha:orange";
gpios = <0x3 0x5 0x1>;
};
inet1 {
label = "inet1";
gpios = <0x3 0x6 0x1>;
};
inet2 {
label = "inet2";
gpios = <0x3 0x8 0x1>;
};
inet3 {
label = "inet3";
gpios = <0x3 0xa 0x1>;
};
inet4 {
label = "inet4";
gpios = <0x3 0xc 0x1>;
};
inet5 {
label = "inet5";
gpios = <0x3 0xe 0x1>;
};
inet6 {
label = "inet6";
gpios = <0x3 0x10 0x1>;
};
inet7 {
label = "inet7";
gpios = <0x3 0x12 0x1>;
};
inet8 {
label = "inet8";
gpios = <0x3 0x14 0x1>;
};
inet9 {
label = "inet9";
gpios = <0x3 0x16 0x1>;
};
lan2 {
label = "lan2";
gpios = <0x3 0x9 0x1>;
};
lan3 {
label = "lan3";
gpios = <0x3 0xb 0x1>;
};
lan4 {
label = "lan4";
gpios = <0x3 0xd 0x1>;
};
lan5 {
label = "lan5";
gpios = <0x3 0xf 0x1>;
};
lan6 {
label = "lan6";
gpios = <0x3 0x11 0x1>;
};
lan7 {
label = "lan7";
gpios = <0x3 0x13 0x1>;
};
lan8 {
label = "lan8";
gpios = <0x3 0x15 0x1>;
};
lan9 {
label = "lan9";
gpios = <0x3 0x17 0x1>;
};
8f {
label = "8f";
gpios = <0x4 0x6 0x0>;
};
9f {
label = "9f";
gpios = <0x4 0x8 0x0>;
};
};
gpio_keys_polled {
compatible = "gpio-keys-polled";
#address-cells = <0x1>;
#size-cells = <0x0>;
poll-interval = <0x3c>;
autorepeat;
button@1 {
label = "soft_reset";
linux,code = <0x198>;
linux,input-type = <0x1>;
gpios = <0x4 0xf 0x1>;
};
};
};
chosen {
linux,stdout-path = "/hbf/ahb/apb/serial@fa0000000";
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment