# Raspberry Pi 3 ###### tags: `mimiker` ## Spodziewana topologia ``` > rootdev: (rpi3) + rm: mem[0]: BCM2835 peripherals (16MiB) + rm: mem[1]: BCM2836 shared processor (4KiB) * intr_setup / intr_teardown * alloc_resource / ... > intc + rm: irq[0..31] ARM specific interrupts + rm: irq[32..95]: BCM2835 peripherals > uart + irq[UART] z intc + mem[UART] > timer + irq[0..3] z intc > cpulist > cpu0 ``` ## Dokumentacja ### Raspberry Pi 3 * [ARM local peripherals](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2836/QA7_rev3.4.pdf) * [BCM2835 ARM peripherals](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf) * [BCM2835 datasheet errata](https://elinux.org/BCM2835_datasheet_errata) ### Flattened Device Tree * [FreeBSD FDT](https://wiki.freebsd.org/FlattenedDeviceTree/) * [Device Tree Reference](https://elinux.org/Device_Tree_Reference) * [FDT sepcification](https://github.com/devicetree-org/devicetree-specification/releases/download/v0.3/devicetree-specification-v0.3.pdf) ## Linux ### _dtb_ -> _fdt_ ``` /dts-v1/; // magic: 0xd00dfeed // totalsize: 0x3158 (12632) // off_dt_struct: 0x48 // off_dt_strings: 0x2e30 // off_mem_rsvmap: 0x28 // version: 17 // last_comp_version: 16 // boot_cpuid_phys: 0x0 // size_dt_strings: 0x328 // size_dt_struct: 0x2de8 /memreserve/ 0 0x1000; / { compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; model = "Raspberry Pi 3 Model B"; interrupt-parent = <0x00000001>; #address-cells = <0x00000001>; #size-cells = <0x00000001>; aliases { serial0 = "/soc/serial@7e201000"; serial1 = "/soc/serial@7e215040"; ethernet0 = "/soc/usb@7e980000/usb1@1/usbether@1"; }; chosen { stdout-path = "serial1:115200n8"; }; thermal-zones { cpu-thermal { polling-delay-passive = <0x00000000>; polling-delay = <0x000003e8>; thermal-sensors = <0x00000002>; coefficients = <0xfffffde6 0x00064960>; trips { cpu-crit { temperature = <0x00013880>; hysteresis = <0x00000000>; type = "critical"; }; }; cooling-maps { }; }; }; soc { compatible = "simple-bus"; #address-cells = <0x00000001>; #size-cells = <0x00000001>; ranges = <0x7e000000 0x3f000000 0x01000000 0x40000000 0x40000000 0x00001000>; dma-ranges = <0xc0000000 0x00000000 0x3f000000>; timer@7e003000 { compatible = "brcm,bcm2835-system-timer"; reg = <0x7e003000 0x00001000>; interrupts = <0x00000001 0x00000000 0x00000001 0x00000001 0x00000001 0x00000002 0x00000001 0x00000003>; clock-frequency = <0x000f4240>; }; dma@7e007000 { compatible = "brcm,bcm2835-dma"; reg = <0x7e007000 0x00000f00>; interrupts = <0x00000001 0x00000010 0x00000001 0x00000011 0x00000001 0x00000012 0x00000001 0x00000013 0x00000001 0x00000014 0x00000001 0x00000015 0x00000001 0x00000016 0x00000001 0x00000017 0x00000001 0x00000018 0x00000001 0x00000019 0x00000001 0x0000001a 0x00000001 0x0000001b 0x00000001 0x0000001b 0x00000001 0x0000001b 0x00000001 0x0000001b 0x00000001 0x0000001c>; interrupt-names = "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10", "dma11", "dma12", "dma13", "dma14", "dma-shared-all"; #dma-cells = <0x00000001>; brcm,dma-channel-mask = <0x00007f35>; linux,phandle = <0x0000000a>; phandle = <0x0000000a>; }; interrupt-controller@7e00b200 { compatible = "brcm,bcm2836-armctrl-ic"; reg = <0x7e00b200 0x00000200>; interrupt-controller; #interrupt-cells = <0x00000002>; interrupt-parent = <0x00000003>; interrupts = <0x00000008>; linux,phandle = <0x00000001>; phandle = <0x00000001>; }; watchdog@7e100000 { compatible = "brcm,bcm2835-pm-wdt"; reg = <0x7e100000 0x00000028>; }; cprman@7e101000 { compatible = "brcm,bcm2835-cprman"; #clock-cells = <0x00000001>; reg = <0x7e101000 0x00002000>; clocks = <0x00000004 0x00000005 0x00000000 0x00000005 0x00000001 0x00000005 0x00000002 0x00000006 0x00000000 0x00000006 0x00000001 0x00000006 0x00000002>; linux,phandle = <0x00000007>; phandle = <0x00000007>; }; rng@7e104000 { compatible = "brcm,bcm2835-rng"; reg = <0x7e104000 0x00000010>; }; mailbox@7e00b880 { compatible = "brcm,bcm2835-mbox"; reg = <0x7e00b880 0x00000040>; interrupts = <0x00000000 0x00000001>; #mbox-cells = <0x00000000>; linux,phandle = <0x00000017>; phandle = <0x00000017>; }; gpio@7e200000 { compatible = "brcm,bcm2835-gpio"; reg = <0x7e200000 0x000000b4>; interrupts = <0x00000002 0x00000011 0x00000002 0x00000012 0x00000002 0x00000013 0x00000002 0x00000014>; gpio-controller; #gpio-cells = <0x00000002>; interrupt-controller; #interrupt-cells = <0x00000002>; pinctrl-names = "default"; linux,phandle = <0x00000019>; phandle = <0x00000019>; dpi_gpio0 { brcm,pins = <0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000a 0x0000000b 0x0000000c 0x0000000d 0x0000000e 0x0000000f 0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015 0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a 0x0000001b>; brcm,function = <0x00000006>; }; emmc_gpio22 { brcm,pins = <0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a 0x0000001b>; brcm,function = <0x00000007>; }; emmc_gpio34 { brcm,pins = <0x00000022 0x00000023 0x00000024 0x00000025 0x00000026 0x00000027>; brcm,function = <0x00000007>; brcm,pull = <0x00000000 0x00000002 0x00000002 0x00000002 0x00000002 0x00000002>; linux,phandle = <0x00000012>; phandle = <0x00000012>; }; emmc_gpio48 { brcm,pins = <0x00000030 0x00000031 0x00000032 0x00000033 0x00000034 0x00000035>; brcm,function = <0x00000007>; }; gpclk0_gpio4 { brcm,pins = <0x00000004>; brcm,function = <0x00000004>; }; gpclk1_gpio5 { brcm,pins = <0x00000005>; brcm,function = <0x00000004>; }; gpclk1_gpio42 { brcm,pins = <0x0000002a>; brcm,function = <0x00000004>; }; gpclk1_gpio44 { brcm,pins = <0x0000002c>; brcm,function = <0x00000004>; }; gpclk2_gpio6 { brcm,pins = <0x00000006>; brcm,function = <0x00000004>; }; gpclk2_gpio43 { brcm,pins = <0x0000002b>; brcm,function = <0x00000004>; linux,phandle = <0x00000009>; phandle = <0x00000009>; }; i2c0_gpio0 { brcm,pins = <0x00000000 0x00000001>; brcm,function = <0x00000004>; linux,phandle = <0x0000000c>; phandle = <0x0000000c>; }; i2c0_gpio28 { brcm,pins = <0x0000001c 0x0000001d>; brcm,function = <0x00000004>; }; i2c0_gpio44 { brcm,pins = <0x0000002c 0x0000002d>; brcm,function = <0x00000005>; }; i2c1_gpio2 { brcm,pins = <0x00000002 0x00000003>; brcm,function = <0x00000004>; linux,phandle = <0x00000013>; phandle = <0x00000013>; }; i2c1_gpio44 { brcm,pins = <0x0000002c 0x0000002d>; brcm,function = <0x00000006>; }; i2c_slave_gpio18 { brcm,pins = <0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000007>; }; jtag_gpio4 { brcm,pins = <0x00000004 0x00000005 0x00000006 0x0000000c 0x0000000d>; brcm,function = <0x00000003>; }; jtag_gpio22 { brcm,pins = <0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a 0x0000001b>; brcm,function = <0x00000003>; }; pcm_gpio18 { brcm,pins = <0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000004>; }; pcm_gpio28 { brcm,pins = <0x0000001c 0x0000001d 0x0000001e 0x0000001f>; brcm,function = <0x00000006>; }; pwm0_gpio12 { brcm,pins = <0x0000000c>; brcm,function = <0x00000004>; }; pwm0_gpio18 { brcm,pins = <0x00000012>; brcm,function = <0x00000002>; }; pwm0_gpio40 { brcm,pins = <0x00000028>; brcm,function = <0x00000004>; linux,phandle = <0x00000010>; phandle = <0x00000010>; }; pwm1_gpio13 { brcm,pins = <0x0000000d>; brcm,function = <0x00000004>; }; pwm1_gpio19 { brcm,pins = <0x00000013>; brcm,function = <0x00000002>; }; pwm1_gpio41 { brcm,pins = <0x00000029>; brcm,function = <0x00000004>; }; pwm1_gpio45 { brcm,pins = <0x0000002d>; brcm,function = <0x00000004>; linux,phandle = <0x00000011>; phandle = <0x00000011>; }; sdhost_gpio48 { brcm,pins = <0x00000030 0x00000031 0x00000032 0x00000033 0x00000034 0x00000035>; brcm,function = <0x00000004>; linux,phandle = <0x0000000b>; phandle = <0x0000000b>; }; spi0_gpio7 { brcm,pins = <0x00000007 0x00000008 0x00000009 0x0000000a 0x0000000b>; brcm,function = <0x00000004>; }; spi0_gpio35 { brcm,pins = <0x00000023 0x00000024 0x00000025 0x00000026 0x00000027>; brcm,function = <0x00000004>; }; spi1_gpio16 { brcm,pins = <0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000003>; }; spi2_gpio40 { brcm,pins = <0x00000028 0x00000029 0x0000002a 0x0000002b 0x0000002c 0x0000002d>; brcm,function = <0x00000003>; }; uart0_gpio14 { brcm,pins = <0x0000000e 0x0000000f>; brcm,function = <0x00000004>; }; uart0_ctsrts_gpio16 { brcm,pins = <0x00000010 0x00000011>; brcm,function = <0x00000007>; }; uart0_ctsrts_gpio30 { brcm,pins = <0x0000001e 0x0000001f>; brcm,function = <0x00000007>; }; uart0_gpio32 { brcm,pins = <0x00000020 0x00000021>; brcm,function = <0x00000007>; linux,phandle = <0x00000008>; phandle = <0x00000008>; }; uart0_gpio36 { brcm,pins = <0x00000024 0x00000025>; brcm,function = <0x00000006>; }; uart0_ctsrts_gpio38 { brcm,pins = <0x00000026 0x00000027>; brcm,function = <0x00000006>; }; uart1_gpio14 { brcm,pins = <0x0000000e 0x0000000f>; brcm,function = <0x00000002>; linux,phandle = <0x0000000f>; phandle = <0x0000000f>; }; uart1_ctsrts_gpio16 { brcm,pins = <0x00000010 0x00000011>; brcm,function = <0x00000002>; }; uart1_gpio32 { brcm,pins = <0x00000020 0x00000021>; brcm,function = <0x00000002>; }; uart1_ctsrts_gpio30 { brcm,pins = <0x0000001e 0x0000001f>; brcm,function = <0x00000002>; }; uart1_gpio40 { brcm,pins = <0x00000028 0x00000029>; brcm,function = <0x00000002>; }; uart1_ctsrts_gpio42 { brcm,pins = <0x0000002a 0x0000002b>; brcm,function = <0x00000002>; }; gpioout { brcm,pins = <0x00000006>; brcm,function = <0x00000001>; }; alt0 { brcm,pins = <0x00000004 0x00000005 0x00000007 0x00000008 0x00000009 0x0000000a 0x0000000b>; brcm,function = <0x00000004>; }; }; serial@7e201000 { compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; reg = <0x7e201000 0x00001000>; interrupts = <0x00000002 0x00000019>; clocks = <0x00000007 0x00000013 0x00000007 0x00000014>; clock-names = "uartclk", "apb_pclk"; arm,primecell-periphid = <0x00241011>; pinctrl-names = "default"; pinctrl-0 = <0x00000008 0x00000009>; status = "okay"; }; mmc@7e202000 { compatible = "brcm,bcm2835-sdhost"; reg = <0x7e202000 0x00000100>; interrupts = <0x00000002 0x00000018>; clocks = <0x00000007 0x00000014>; dmas = <0x0000000a 0x0000000d>; dma-names = "rx-tx"; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x0000000b>; bus-width = <0x00000004>; }; i2s@7e203000 { compatible = "brcm,bcm2835-i2s"; reg = <0x7e203000 0x00000020 0x7e101098 0x00000002>; dmas = <0x0000000a 0x00000002 0x0000000a 0x00000003>; dma-names = "tx", "rx"; status = "disabled"; }; spi@7e204000 { compatible = "brcm,bcm2835-spi"; reg = <0x7e204000 0x00001000>; interrupts = <0x00000002 0x00000016>; clocks = <0x00000007 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; }; i2c@7e205000 { compatible = "brcm,bcm2835-i2c"; reg = <0x7e205000 0x00001000>; interrupts = <0x00000002 0x00000015>; clocks = <0x00000007 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x0000000c>; clock-frequency = <0x000186a0>; }; pixelvalve@7e206000 { compatible = "brcm,bcm2835-pixelvalve0"; reg = <0x7e206000 0x00000100>; interrupts = <0x00000002 0x0000000d>; }; pixelvalve@7e207000 { compatible = "brcm,bcm2835-pixelvalve1"; reg = <0x7e207000 0x00000100>; interrupts = <0x00000002 0x0000000e>; }; dsi@7e209000 { compatible = "brcm,bcm2835-dsi0"; reg = <0x7e209000 0x00000078>; interrupts = <0x00000002 0x00000004>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; #clock-cells = <0x00000001>; clocks = <0x00000007 0x00000020 0x00000007 0x0000002f 0x00000007 0x00000031>; clock-names = "phy", "escape", "pixel"; clock-output-names = "dsi0_byte", "dsi0_ddr2", "dsi0_ddr"; power-domains = <0x0000000d 0x00000011>; linux,phandle = <0x00000005>; phandle = <0x00000005>; }; thermal@7e212000 { compatible = "brcm,bcm2837-thermal"; reg = <0x7e212000 0x00000008>; clocks = <0x00000007 0x0000001b>; #thermal-sensor-cells = <0x00000000>; status = "okay"; linux,phandle = <0x00000002>; phandle = <0x00000002>; }; aux@0x7e215000 { compatible = "brcm,bcm2835-aux"; #clock-cells = <0x00000001>; reg = <0x7e215000 0x00000008>; clocks = <0x00000007 0x00000014>; linux,phandle = <0x0000000e>; phandle = <0x0000000e>; }; serial@7e215040 { compatible = "brcm,bcm2835-aux-uart"; reg = <0x7e215040 0x00000040>; interrupts = <0x00000001 0x0000001d>; clocks = <0x0000000e 0x00000000>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x0000000f>; }; spi@7e215080 { compatible = "brcm,bcm2835-aux-spi"; reg = <0x7e215080 0x00000040>; interrupts = <0x00000001 0x0000001d>; clocks = <0x0000000e 0x00000001>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; }; spi@7e2150c0 { compatible = "brcm,bcm2835-aux-spi"; reg = <0x7e2150c0 0x00000040>; interrupts = <0x00000001 0x0000001d>; clocks = <0x0000000e 0x00000002>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; }; pwm@7e20c000 { compatible = "brcm,bcm2835-pwm"; reg = <0x7e20c000 0x00000028>; clocks = <0x00000007 0x0000001e>; assigned-clocks = <0x00000007 0x0000001e>; assigned-clock-rates = <0x00989680>; #pwm-cells = <0x00000002>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x00000010 0x00000011>; }; sdhci@7e300000 { compatible = "brcm,bcm2835-sdhci"; reg = <0x7e300000 0x00000100>; interrupts = <0x00000002 0x0000001e>; clocks = <0x00000007 0x0000001c>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x00000012>; bus-width = <0x00000004>; non-removable; }; hvs@7e400000 { compatible = "brcm,bcm2835-hvs"; reg = <0x7e400000 0x00006000>; interrupts = <0x00000002 0x00000001>; }; dsi@7e700000 { compatible = "brcm,bcm2835-dsi1"; reg = <0x7e700000 0x0000008c>; interrupts = <0x00000002 0x0000000c>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; #clock-cells = <0x00000001>; clocks = <0x00000007 0x00000023 0x00000007 0x00000030 0x00000007 0x00000032>; clock-names = "phy", "escape", "pixel"; clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; status = "disabled"; power-domains = <0x0000000d 0x00000012>; linux,phandle = <0x00000006>; phandle = <0x00000006>; }; i2c@7e804000 { compatible = "brcm,bcm2835-i2c"; reg = <0x7e804000 0x00001000>; interrupts = <0x00000002 0x00000015>; clocks = <0x00000007 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x00000013>; clock-frequency = <0x000186a0>; }; i2c@7e805000 { compatible = "brcm,bcm2835-i2c"; reg = <0x7e805000 0x00001000>; interrupts = <0x00000002 0x00000015>; clocks = <0x00000007 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "okay"; linux,phandle = <0x00000014>; phandle = <0x00000014>; }; vec@7e806000 { compatible = "brcm,bcm2835-vec"; reg = <0x7e806000 0x00001000>; clocks = <0x00000007 0x00000018>; interrupts = <0x00000002 0x0000001b>; status = "okay"; power-domains = <0x0000000d 0x00000007>; }; pixelvalve@7e807000 { compatible = "brcm,bcm2835-pixelvalve2"; reg = <0x7e807000 0x00000100>; interrupts = <0x00000002 0x0000000a>; }; hdmi@7e902000 { compatible = "brcm,bcm2835-hdmi"; reg = <0x7e902000 0x00000600 0x7e808000 0x00000100>; interrupts = <0x00000002 0x00000008 0x00000002 0x00000009>; ddc = <0x00000014>; clocks = <0x00000007 0x00000010 0x00000007 0x00000019>; clock-names = "pixel", "hdmi"; dmas = <0x0000000a 0x00000011>; dma-names = "audio-rx"; status = "okay"; power-domains = <0x0000000d 0x00000005>; }; usb@7e980000 { compatible = "brcm,bcm2835-usb"; reg = <0x7e980000 0x00010000>; interrupts = <0x00000001 0x00000009>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; clocks = <0x00000015>; clock-names = "otg"; phys = <0x00000016>; phy-names = "usb2-phy"; power-domains = <0x0000000d 0x00000006>; dr_mode = "host"; usb1@1 { compatible = "usb424,9514"; reg = <0x00000001>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; usbether@1 { compatible = "usb424,ec00"; reg = <0x00000001>; }; }; }; v3d@7ec00000 { compatible = "brcm,bcm2835-v3d"; reg = <0x7ec00000 0x00001000>; interrupts = <0x00000001 0x0000000a>; power-domains = <0x0000000d 0x0000000a>; }; gpu { compatible = "brcm,bcm2835-vc4"; }; local_intc { compatible = "brcm,bcm2836-l1-intc"; reg = <0x40000000 0x00000100>; interrupt-controller; #interrupt-cells = <0x00000001>; interrupt-parent = <0x00000003>; linux,phandle = <0x00000003>; phandle = <0x00000003>; }; firmware { compatible = "raspberrypi,bcm2835-firmware"; mboxes = <0x00000017>; linux,phandle = <0x00000018>; phandle = <0x00000018>; }; power { compatible = "raspberrypi,bcm2835-power"; firmware = <0x00000018>; #power-domain-cells = <0x00000001>; linux,phandle = <0x0000000d>; phandle = <0x0000000d>; }; }; clocks { compatible = "simple-bus"; #address-cells = <0x00000001>; #size-cells = <0x00000000>; clock@3 { compatible = "fixed-clock"; reg = <0x00000003>; #clock-cells = <0x00000000>; clock-output-names = "osc"; clock-frequency = <0x0124f800>; linux,phandle = <0x00000004>; phandle = <0x00000004>; }; clock@4 { compatible = "fixed-clock"; reg = <0x00000004>; #clock-cells = <0x00000000>; clock-output-names = "otg"; clock-frequency = <0x1c9c3800>; linux,phandle = <0x00000015>; phandle = <0x00000015>; }; }; phy { compatible = "usb-nop-xceiv"; linux,phandle = <0x00000016>; phandle = <0x00000016>; }; timer { compatible = "arm,armv7-timer"; interrupt-parent = <0x00000003>; interrupts = <0x00000000 0x00000001 0x00000003 0x00000002>; always-on; }; cpus { #address-cells = <0x00000001>; #size-cells = <0x00000000>; enable-method = "brcm,bcm2836-smp"; cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000000>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000d8>; }; cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000001>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000e0>; }; cpu@2 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000002>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000e8>; }; cpu@3 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000003>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000f0>; }; }; memory { device_type = "memory"; reg = <0x00000000 0x40000000>; }; leds { compatible = "gpio-leds"; act { label = "ACT"; default-state = "keep"; linux,default-trigger = "heartbeat"; gpios = <0x00000019 0x0000002f 0x00000000>; }; }; }; ``` ### lsusb -vvv ``` Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 1 bMaxPacketSize0 64 idVendor 0x0424 Standard Microsystems Corp. idProduct 0xec00 SMSC9512/9514 Fast Ethernet Adapter bcdDevice 2.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 39 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 2mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 255 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 4 Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 2 TT per port bMaxPacketSize0 64 idVendor 0x0424 Standard Microsystems Corp. idProduct 0x9514 SMC9514 Hub bcdDevice 2.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 41 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 2mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 1 Single TT iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 12 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 2 TT per port iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0001 1x 1 bytes bInterval 12 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 1 Single TT bMaxPacketSize0 64 idVendor 0x1d6b Linux Foundation idProduct 0x0002 2.0 root hub bcdDevice 4.19 iManufacturer 3 iProduct 2 iSerial 1 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed (or root) hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0004 1x 4 bytes bInterval 12 ``` ## FreeBSD > Jak odpalić `qemu`? Skąd wziąć obraz? Obraz jest dostępny na stronie głównej [freebsd](https://freebsd.org) ale __wybitnie__ nie chce on się porozumiewać z qemu. Aby cokolwiek wystartowało jest potrzebny _u-boot_ i zmuszenie _qemu_ do potraktowania go jako obrazu biosu. A i tak ostatecznie kernel dostaje gdzieś na początku bootstrapu błąd związany z wykonywaniem nieznanej instrukcji. Ostatecznie odpaliłem to na fizycznym sprzęcie. ### `devinfo -r` ``` nexus0 ofwbus0 psci0 simplebus0 bcm_dma0 Interrupts: 0x8 0x9 0xc 0xd 0xe 0xf Device Memory: 0x3f007000-0x3f007eff intc0 Interrupts: 0x14 Device Memory: 0x3f00b200-0x3f00b3ff bcmwd0 Device Memory: 0x3f100000-0x3f100027 bcmrng0 Device Memory: 0x3f104000-0x3f10400f mbox0 Interrupts: 0x16 Device Memory: 0x3f00b880-0x3f00b8bf gpio0 Interrupts: 0x17 0x18 Device Memory: 0x3f200000-0x3f2000b3 gpiobus0 gpioc0 uart0 Interrupts: 0x19 Device Memory: 0x3f201000-0x3f201fff spi0 Interrupts: 0x1b Device Memory: 0x3f204000-0x3f204fff spibus0 iichb0 Interrupts: 0x28 Device Memory: 0x3f804000-0x3f804fff iicbus0 iic0 bcm283x_dwcotg0 Interrupts: 0x2f Device Memory: 0x3f980000-0x3f98ffff usbus0 uhub0 uhub1 smsc0 miibus0 smscphy0 lintc0 Device Memory: 0x40000000-0x400000ff sdhci_bcm0 Interrupts: 0x31 Device Memory: 0x3f300000-0x3f3000ff mmc0 mmcsd0 fb0 fbd0 pmu0 Interrupts: 0x35 ofw_clkbus0 clk_fixed0 clk_fixed1 usb_nop_xceiv0 generic_timer0 Interrupts: 0x0 0x1 0x2 0x3 cpulist0 cpu0 bcm2835_cpufreq0 arm64_cpu0 cpufreq0 cpu1 arm64_cpu1 cpu2 arm64_cpu2 cpu3 arm64_cpu3 regfix0 regfix1 gpioled0 cryptosoft0 ``` ### odpowiadające sterowniki - psci0 -> http://bxr.su/FreeBSD/sys/dev/psci/psci.c - bcm_dma0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_dma.c - intc0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_intr.c - bcmwd0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_wdog.c - bcmrng0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_rng.c - mbox0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_mbox.c - gpio0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_gpio.c - uart0 -> http://bxr.su/FreeBSD/sys/dev/uart/uart_dev_pl011.c - spi0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_spi.c - iichb0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_bsc.c - bcm283x_dwcotg0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm283x_dwc_fdt.c http://bxr.su/FreeBSD/sys/dev/usb/controller/dwc_otg_fdt.c - lintc0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2836.c - sdhci_bcm0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c - fb0 -> http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_fb.c http://bxr.su/FreeBSD/sys/arm/broadcom/bcm2835/bcm2835_fbd.c - pmu0 -> http://bxr.su/FreeBSD/sys/arm/arm/pmu.c - ofw_clkbus0 -> http://bxr.su/FreeBSD/sys/dev/fdt/simplebus.c http://bxr.su/FreeBSD/sys/dev/dpaa/bman_fdt.c http://bxr.su/FreeBSD/sys/dev/dpaa/qman_fdt.c http://bxr.su/FreeBSD/sys/dev/extres/syscon/syscon_generic.c http://bxr.su/FreeBSD/sys/dev/fdt/fdt_common.c http://bxr.su/FreeBSD/sys/arm/mv/mv_common.c http://bxr.su/FreeBSD/sys/arm/mv/mv_armv7_machdep.c - clk_fixed0, clk_fixed1 -> http://bxr.su/FreeBSD/sys/dev/extres/clk/clk_fixed.c - usb_nop_xceiv0 -> http://bxr.su/FreeBSD/sys/arm/freescale/imx/imx_nop_usbphy.c http://bxr.su/FreeBSD/sys/dev/usb/controller/usb_nop_xceiv.c http://bxr.su/FreeBSD/sys/dev/usb/controller/ehci_imx.c - generic_timer0 -> http://bxr.su/FreeBSD/sys/arm/arm/generic_timer.c - cpu0, cpu1, cpu2, cpu3 -> http://bxr.su/FreeBSD/sys/arm/arm/identcpu-v6.c - regfix0, regfix1 -> http://bxr.su/FreeBSD/sys/dev/extres/regulator/regulator_fixed.c - gpioled0 -> http://bxr.su/FreeBSD/sys/dev/gpio/gpioled_fdt.c ### `devinfo -vr` ``` nexus0 ofwbus0 unknown pnpinfo name=framebuffer@3eaf0000 compat=simple-framebuffer psci0 pnpinfo name=psci compat=arm,psci-0.2 unknown pnpinfo name=system unknown pnpinfo name=axi unknown pnpinfo name=aliases unknown pnpinfo name=chosen unknown pnpinfo name=thermal-zones simplebus0 pnpinfo name=soc compat=simple-bus bcm_dma0 pnpinfo name=dma@7e007000 compat=brcm,bcm2835-dma Interrupts: 0x8 0x9 0xc 0xd 0xe 0xf Device Memory: 0x3f007000-0x3f007eff intc0 pnpinfo name=interrupt-controller@7e00b200 compat=brcm,bcm2836-armctrl-ic Interrupts: 0x14 Device Memory: 0x3f00b200-0x3f00b3ff bcmwd0 pnpinfo name=watchdog@7e100000 compat=brcm,bcm2835-pm-wdt Device Memory: 0x3f100000-0x3f100027 unknown pnpinfo name=cprman@7e101000 compat=brcm,bcm2835-cprman bcmrng0 pnpinfo name=rng@7e104000 compat=brcm,bcm2835-rng Device Memory: 0x3f104000-0x3f10400f mbox0 pnpinfo name=mailbox@7e00b880 compat=brcm,bcm2835-mbox Interrupts: 0x16 Device Memory: 0x3f00b880-0x3f00b8bf gpio0 pnpinfo name=gpio@7e200000 compat=brcm,bcm2835-gpio Interrupts: 0x17 0x18 Device Memory: 0x3f200000-0x3f2000b3 gpiobus0 gpioc0 uart0 pnpinfo name=serial@7e201000 compat=brcm,bcm2835-pl011 Interrupts: 0x19 Device Memory: 0x3f201000-0x3f201fff unknown unknown spi0 pnpinfo name=spi@7e204000 compat=brcm,bcm2835-spi Interrupts: 0x1b Device Memory: 0x3f204000-0x3f204fff spibus0 unknown pnpinfo name=spidev@0 compat=spidev at bus=0 cs=0 unknown pnpinfo name=spidev@1 compat=spidev at bus=0 cs=1 unknown unknown unknown unknown unknown pnpinfo name=dsi@7e209000 compat=brcm,bcm2835-dsi0 unknown pnpinfo name=thermal@7e212000 compat=brcm,bcm2837-thermal unknown pnpinfo name=aux@0x7e215000 compat=brcm,bcm2835-aux unknown unknown unknown unknown pnpinfo name=pwm@7e20c000 compat=brcm,bcm2835-pwm unknown unknown unknown unknown iichb0 pnpinfo name=i2c@7e804000 compat=brcm,bcm2835-i2c Interrupts: 0x28 Device Memory: 0x3f804000-0x3f804fff iicbus0 iic0 at addr=0 unknown unknown unknown unknown bcm283x_dwcotg0 pnpinfo name=usb@7e980000 compat=brcm,bcm2708-usb Interrupts: 0x2f Device Memory: 0x3f980000-0x3f98ffff usbus0 uhub0 uhub1 pnpinfo vendor=0x0424 product=0x9514 devclass=0x09 devsubclass=0x00 devproto=0x02 sernum="" release=0x0200 mode=host intclass=0x09 intsubclass=0x00 intprotocol=0x02 at bus=0 hubaddr=1 port=1 devaddr=2 interface=0 ugen=ugen0.2 smsc0 pnpinfo vendor=0x0424 product=0xec00 devclass=0xff devsubclass=0x00 devproto=0x01 sernum="" release=0x0200 mode=host intclass=0xff intsubclass=0x00 intprotocol=0xff at bus=0 hubaddr=2 port=1 devaddr=3 interface=0 ugen=ugen0.3 miibus0 smscphy0 pnpinfo oui=0x800f model=0xc rev=0x3 at phyno=1 unknown unknown lintc0 pnpinfo name=local_intc@40000000 compat=brcm,bcm2836-l1-intc Device Memory: 0x40000000-0x400000ff sdhci_bcm0 pnpinfo name=mmc@7e300000 compat=brcm,bcm2835-mmc Interrupts: 0x31 Device Memory: 0x3f300000-0x3f3000ff mmc0 mmcsd0 at rca=0xe624 unknown unknown unknown unknown pnpinfo name=gpiomem compat=brcm,bcm2835-gpiomem unknown pnpinfo name=firmware compat=raspberrypi,bcm2835-firmware unknown pnpinfo name=power compat=raspberrypi,bcm2835-power fb0 pnpinfo name=fb compat=brcm,bcm2708-fb fbd0 unknown pnpinfo name=vchiq compat=brcm,bcm2835-vchiq unknown pnpinfo name=vcsm compat=raspberrypi,bcm2835-vcsm unknown pnpinfo name=audio compat=brcm,bcm2835-audio unknown pmu0 pnpinfo name=arm-pmu compat=arm,cortex-a7-pmu Interrupts: 0x35 unknown pnpinfo name=virtgpio compat=brcm,bcm2835-virtgpio unknown pnpinfo name=expgpio compat=brcm,bcm2835-expgpio ofw_clkbus0 pnpinfo name=clocks compat=simple-bus clk_fixed0 pnpinfo name=clock@3 compat=fixed-clock clk_fixed1 pnpinfo name=clock@4 compat=fixed-clock usb_nop_xceiv0 pnpinfo name=phy compat=usb-nop-xceiv generic_timer0 pnpinfo name=timer compat=arm,armv7-timer Interrupts: 0x0 0x1 0x2 0x3 cpulist0 pnpinfo name=cpus cpu0 pnpinfo name=cpu@0 compat=arm,cortex-a53 bcm2835_cpufreq0 arm64_cpu0 cpufreq0 cpu1 pnpinfo name=cpu@1 compat=arm,cortex-a53 bcm2835_cpufreq1 arm64_cpu1 cpu2 pnpinfo name=cpu@2 compat=arm,cortex-a53 bcm2835_cpufreq2 arm64_cpu2 cpu3 pnpinfo name=cpu@3 compat=arm,cortex-a53 bcm2835_cpufreq3 arm64_cpu3 regfix0 pnpinfo name=fixedregulator_5v0 compat=regulator-fixed regfix1 pnpinfo name=fixedregulator_3v3 compat=regulator-fixed unknown pnpinfo name=__overrides__ unknown pnpinfo name=memory gpioled0 pnpinfo name=leds compat=gpio-leds unknown pnpinfo name=__symbols__ cryptosoft0 efirtc0 ``` ### _dtb_ -> _fdt_ #### v1 ``` /dts-v1/; // magic: 0xd00dfeed // totalsize: 0x62df (25311) // off_dt_struct: 0x48 // off_dt_strings: 0x5950 // off_mem_rsvmap: 0x28 // version: 17 // last_comp_version: 16 // boot_cpuid_phys: 0x0 // size_dt_strings: 0x98f // size_dt_struct: 0x5908 /memreserve/ 0 0x1000; / { compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; model = "Raspberry Pi 3 Model B"; interrupt-parent = <0x00000001>; #address-cells = <0x00000001>; #size-cells = <0x00000001>; aliases { serial0 = "/soc/serial@7e215040"; serial1 = "/soc/serial@7e201000"; audio = "/soc/audio"; aux = "/soc/aux@0x7e215000"; sound = "/soc/sound"; soc = "/soc"; dma = "/soc/dma@7e007000"; intc = "/soc/interrupt-controller@7e00b200"; watchdog = "/soc/watchdog@7e100000"; random = "/soc/rng@7e104000"; mailbox = "/soc/mailbox@7e00b880"; gpio = "/soc/gpio@7e200000"; uart0 = "/soc/serial@7e201000"; sdhost = "/soc/mmc@7e202000"; mmc0 = "/soc/mmc@7e202000"; i2s = "/soc/i2s@7e203000"; spi0 = "/soc/spi@7e204000"; i2c0 = "/soc/i2c@7e205000"; uart1 = "/soc/serial@7e215040"; spi1 = "/soc/spi@7e215080"; spi2 = "/soc/spi@7e2150c0"; mmc = "/soc/mmc@7e300000"; mmc1 = "/soc/mmc@7e300000"; i2c1 = "/soc/i2c@7e804000"; i2c2 = "/soc/i2c@7e805000"; usb = "/soc/usb@7e980000"; leds = "/leds"; fb = "/soc/fb"; vchiq = "/soc/vchiq"; thermal = "/soc/thermal@7e212000"; axiperf = "/soc/axiperf"; ethernet0 = "/soc/usb@7e980000/usb1@1/usbether@1"; }; chosen { bootargs = "8250.nr_uarts=1"; }; thermal-zones { cpu-thermal { polling-delay-passive = <0x00000000>; polling-delay = <0x000003e8>; thermal-sensors = <0x00000002>; coefficients = <0xfffffde6 0x00064960>; phandle = <0x00000031>; cooling-maps { }; }; }; soc { compatible = "simple-bus"; #address-cells = <0x00000001>; #size-cells = <0x00000001>; ranges = <0x7e000000 0x3f000000 0x01000000 0x40000000 0x40000000 0x00001000>; dma-ranges = <0xc0000000 0x00000000 0x3f000000>; phandle = <0x00000032>; dma@7e007000 { compatible = "brcm,bcm2835-dma"; reg = <0x7e007000 0x00000f00>; interrupts = <0x00000001 0x00000010 0x00000001 0x00000011 0x00000001 0x00000012 0x00000001 0x00000013 0x00000001 0x00000014 0x00000001 0x00000015 0x00000001 0x00000016 0x00000001 0x00000017 0x00000001 0x00000018 0x00000001 0x00000019 0x00000001 0x0000001a 0x00000001 0x0000001b 0x00000001 0x0000001b 0x00000001 0x0000001b 0x00000001 0x0000001b 0x00000001 0x0000001c>; interrupt-names = "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10", "dma11", "dma12", "dma13", "dma14", "dma-shared-all"; #dma-cells = <0x00000001>; brcm,dma-channel-mask = <0x00007f34>; phandle = <0x0000000b>; }; interrupt-controller@7e00b200 { compatible = "brcm,bcm2836-armctrl-ic"; reg = <0x7e00b200 0x00000200>; interrupt-controller; #interrupt-cells = <0x00000002>; interrupt-parent = <0x00000003>; interrupts = <0x00000008>; phandle = <0x00000001>; }; watchdog@7e100000 { compatible = "brcm,bcm2835-pm-wdt"; reg = <0x7e100000 0x00000028>; phandle = <0x00000025>; }; cprman@7e101000 { compatible = "brcm,bcm2835-cprman"; #clock-cells = <0x00000001>; reg = <0x7e101000 0x00002000>; clocks = <0x00000004 0x00000005 0x00000000 0x00000005 0x00000001 0x00000005 0x00000002 0x00000006 0x00000000 0x00000006 0x00000001 0x00000006 0x00000002>; firmware = <0x00000007>; phandle = <0x00000008>; }; rng@7e104000 { compatible = "brcm,bcm2835-rng"; reg = <0x7e104000 0x00000010>; interrupts = <0x00000002 0x0000001d>; phandle = <0x00000026>; }; mailbox@7e00b880 { compatible = "brcm,bcm2835-mbox"; reg = <0x7e00b880 0x00000040>; interrupts = <0x00000000 0x00000001>; #mbox-cells = <0x00000000>; phandle = <0x0000001b>; }; gpio@7e200000 { compatible = "brcm,bcm2835-gpio"; reg = <0x7e200000 0x000000b4>; interrupts = <0x00000002 0x00000011 0x00000002 0x00000012>; gpio-controller; #gpio-cells = <0x00000002>; interrupt-controller; #interrupt-cells = <0x00000002>; phandle = <0x00000010>; dpi_gpio0 { brcm,pins = <0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000a 0x0000000b 0x0000000c 0x0000000d 0x0000000e 0x0000000f 0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015 0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a 0x0000001b>; brcm,function = <0x00000006>; phandle = <0x00000033>; }; emmc_gpio22 { brcm,pins = <0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a 0x0000001b>; brcm,function = <0x00000007>; phandle = <0x00000034>; }; emmc_gpio34 { brcm,pins = <0x00000022 0x00000023 0x00000024 0x00000025 0x00000026 0x00000027>; brcm,function = <0x00000007>; brcm,pull = <0x00000000 0x00000002 0x00000002 0x00000002 0x00000002 0x00000002>; phandle = <0x00000035>; }; emmc_gpio48 { brcm,pins = <0x00000030 0x00000031 0x00000032 0x00000033 0x00000034 0x00000035>; brcm,function = <0x00000007>; phandle = <0x00000036>; }; gpclk0_gpio4 { brcm,pins = <0x00000004>; brcm,function = <0x00000004>; phandle = <0x00000037>; }; gpclk1_gpio5 { brcm,pins = <0x00000005>; brcm,function = <0x00000004>; phandle = <0x00000038>; }; gpclk1_gpio42 { brcm,pins = <0x0000002a>; brcm,function = <0x00000004>; phandle = <0x00000039>; }; gpclk1_gpio44 { brcm,pins = <0x0000002c>; brcm,function = <0x00000004>; phandle = <0x0000003a>; }; gpclk2_gpio6 { brcm,pins = <0x00000006>; brcm,function = <0x00000004>; phandle = <0x0000003b>; }; gpclk2_gpio43 { brcm,pins = <0x0000002b>; brcm,function = <0x00000004>; phandle = <0x0000003c>; }; i2c0_gpio0 { brcm,pins = <0x00000000 0x00000001>; brcm,function = <0x00000004>; phandle = <0x0000003d>; }; i2c0_gpio28 { brcm,pins = <0x0000001c 0x0000001d>; brcm,function = <0x00000004>; phandle = <0x0000003e>; }; i2c0_gpio44 { brcm,pins = <0x0000002c 0x0000002d>; brcm,function = <0x00000005>; phandle = <0x0000003f>; }; i2c1_gpio2 { brcm,pins = <0x00000002 0x00000003>; brcm,function = <0x00000004>; phandle = <0x00000040>; }; i2c1_gpio44 { brcm,pins = <0x0000002c 0x0000002d>; brcm,function = <0x00000006>; phandle = <0x00000041>; }; i2c_slave_gpio18 { brcm,pins = <0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000007>; phandle = <0x00000042>; }; jtag_gpio4 { brcm,pins = <0x00000004 0x00000005 0x00000006 0x0000000c 0x0000000d>; brcm,function = <0x00000002>; phandle = <0x00000043>; }; jtag_gpio22 { brcm,pins = <0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a 0x0000001b>; brcm,function = <0x00000003>; phandle = <0x00000044>; }; pcm_gpio18 { brcm,pins = <0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000004>; phandle = <0x00000045>; }; pcm_gpio28 { brcm,pins = <0x0000001c 0x0000001d 0x0000001e 0x0000001f>; brcm,function = <0x00000006>; phandle = <0x00000046>; }; pwm0_gpio12 { brcm,pins = <0x0000000c>; brcm,function = <0x00000004>; phandle = <0x00000047>; }; pwm0_gpio18 { brcm,pins = <0x00000012>; brcm,function = <0x00000002>; phandle = <0x00000048>; }; pwm0_gpio40 { brcm,pins = <0x00000028>; brcm,function = <0x00000004>; phandle = <0x00000049>; }; pwm1_gpio13 { brcm,pins = <0x0000000d>; brcm,function = <0x00000004>; phandle = <0x0000004a>; }; pwm1_gpio19 { brcm,pins = <0x00000013>; brcm,function = <0x00000002>; phandle = <0x0000004b>; }; pwm1_gpio41 { brcm,pins = <0x00000029>; brcm,function = <0x00000004>; phandle = <0x0000004c>; }; pwm1_gpio45 { brcm,pins = <0x0000002d>; brcm,function = <0x00000004>; phandle = <0x0000004d>; }; sdhost_gpio48 { brcm,pins = <0x00000030 0x00000031 0x00000032 0x00000033 0x00000034 0x00000035>; brcm,function = <0x00000004>; phandle = <0x0000000c>; }; spi0_gpio7 { brcm,pins = <0x00000007 0x00000008 0x00000009 0x0000000a 0x0000000b>; brcm,function = <0x00000004>; phandle = <0x0000004e>; }; spi0_gpio35 { brcm,pins = <0x00000023 0x00000024 0x00000025 0x00000026 0x00000027>; brcm,function = <0x00000004>; phandle = <0x0000004f>; }; spi1_gpio16 { brcm,pins = <0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000003>; phandle = <0x00000050>; }; spi2_gpio40 { brcm,pins = <0x00000028 0x00000029 0x0000002a 0x0000002b 0x0000002c 0x0000002d>; brcm,function = <0x00000003>; phandle = <0x00000051>; }; uart0_gpio14 { brcm,pins = <0x0000000e 0x0000000f>; brcm,function = <0x00000004>; phandle = <0x00000052>; }; uart0_ctsrts_gpio16 { brcm,pins = <0x00000010 0x00000011>; brcm,function = <0x00000007>; phandle = <0x00000053>; }; uart0_ctsrts_gpio30 { brcm,pins = <0x0000001e 0x0000001f>; brcm,function = <0x00000007>; phandle = <0x00000054>; }; uart0_gpio32 { brcm,pins = <0x00000020 0x00000021>; brcm,function = <0x00000007>; phandle = <0x00000055>; }; uart0_gpio36 { brcm,pins = <0x00000024 0x00000025>; brcm,function = <0x00000006>; phandle = <0x00000056>; }; uart0_ctsrts_gpio38 { brcm,pins = <0x00000026 0x00000027>; brcm,function = <0x00000006>; phandle = <0x00000057>; }; uart1_gpio14 { brcm,pins = <0x0000000e 0x0000000f>; brcm,function = <0x00000002>; phandle = <0x00000058>; }; uart1_ctsrts_gpio16 { brcm,pins = <0x00000010 0x00000011>; brcm,function = <0x00000002>; phandle = <0x00000059>; }; uart1_gpio32 { brcm,pins = <0x00000020 0x00000021>; brcm,function = <0x00000002>; phandle = <0x0000005a>; }; uart1_ctsrts_gpio30 { brcm,pins = <0x0000001e 0x0000001f>; brcm,function = <0x00000002>; phandle = <0x0000005b>; }; uart1_gpio40 { brcm,pins = <0x00000028 0x00000029>; brcm,function = <0x00000002>; phandle = <0x0000005c>; }; uart1_ctsrts_gpio42 { brcm,pins = <0x0000002a 0x0000002b>; brcm,function = <0x00000002>; phandle = <0x0000005d>; }; dpi_18bit_gpio0 { brcm,pins = <0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008 0x00000009 0x0000000a 0x0000000b 0x0000000c 0x0000000d 0x0000000e 0x0000000f 0x00000010 0x00000011 0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000006>; phandle = <0x0000005e>; }; spi0_pins { brcm,pins = <0x00000009 0x0000000a 0x0000000b>; brcm,function = <0x00000004>; phandle = <0x0000000e>; }; spi0_cs_pins { brcm,pins = <0x00000008 0x00000007>; brcm,function = <0x00000001>; phandle = <0x0000000f>; }; i2c0 { brcm,pins = <0x00000000 0x00000001>; brcm,function = <0x00000004>; phandle = <0x00000011>; }; i2c1 { brcm,pins = <0x00000002 0x00000003>; brcm,function = <0x00000004>; phandle = <0x00000015>; }; i2s { brcm,pins = <0x00000012 0x00000013 0x00000014 0x00000015>; brcm,function = <0x00000004>; phandle = <0x0000000d>; }; sdio_pins { brcm,pins = <0x00000022 0x00000023 0x00000024 0x00000025 0x00000026 0x00000027>; brcm,function = <0x00000007>; brcm,pull = <0x00000000 0x00000002 0x00000002 0x00000002 0x00000002 0x00000002>; phandle = <0x0000001a>; }; bt_pins { brcm,pins = <0x0000002b>; brcm,function = <0x00000004>; brcm,pull = <0x00000000>; phandle = <0x0000000a>; }; uart0_pins { brcm,pins = <0x00000020 0x00000021>; brcm,function = <0x00000007>; brcm,pull = <0x00000000 0x00000002>; phandle = <0x00000009>; }; uart1_pins { brcm,pins; brcm,function; brcm,pull; phandle = <0x00000013>; }; audio_pins { brcm,pins = <0x00000028 0x00000029>; brcm,function = <0x00000004>; phandle = <0x0000001c>; }; }; serial@7e201000 { compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; reg = <0x7e201000 0x00001000>; interrupts = <0x00000002 0x00000019>; clocks = <0x00000008 0x00000013 0x00000008 0x00000014>; clock-names = "uartclk", "apb_pclk"; arm,primecell-periphid = <0x00241011>; cts-event-workaround; pinctrl-names = "default"; pinctrl-0 = <0x00000009 0x0000000a>; status = "okay"; phandle = <0x0000001e>; }; mmc@7e202000 { compatible = "brcm,bcm2835-sdhost"; reg = <0x7e202000 0x00000100>; interrupts = <0x00000002 0x00000018>; clocks = <0x00000008 0x00000014>; dmas = <0x0000000b 0x0000000d>; dma-names = "rx-tx"; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x0000000c>; bus-width = <0x00000004>; brcm,overclock-50 = <0x00000000>; brcm,pio-limit = <0x00000001>; phandle = <0x00000027>; }; i2s@7e203000 { compatible = "brcm,bcm2835-i2s"; reg = <0x7e203000 0x00000024>; clocks = <0x00000008 0x0000001f>; dmas = <0x0000000b 0x00000002 0x0000000b 0x00000003>; dma-names = "tx", "rx"; status = "disabled"; #sound-dai-cells = <0x00000000>; pinctrl-names = "default"; pinctrl-0 = <0x0000000d>; phandle = <0x00000020>; }; spi@7e204000 { compatible = "brcm,bcm2835-spi"; reg = <0x7e204000 0x00001000>; interrupts = <0x00000002 0x00000016>; clocks = <0x00000008 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; dmas = <0x0000000b 0x00000006 0x0000000b 0x00000007>; dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = <0x0000000e 0x0000000f>; cs-gpios = <0x00000010 0x00000008 0x00000001 0x00000010 0x00000007 0x00000001>; phandle = <0x00000021>; spidev@0 { compatible = "spidev"; reg = <0x00000000>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; spi-max-frequency = <0x07735940>; phandle = <0x0000005f>; }; spidev@1 { compatible = "spidev"; reg = <0x00000001>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; spi-max-frequency = <0x07735940>; phandle = <0x00000060>; }; }; i2c@7e205000 { compatible = "brcm,bcm2835-i2c"; reg = <0x7e205000 0x00001000>; interrupts = <0x00000002 0x00000015>; clocks = <0x00000008 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; pinctrl-names = "default"; pinctrl-0 = <0x00000011>; clock-frequency = <0x000186a0>; phandle = <0x00000022>; }; pixelvalve@7e206000 { compatible = "brcm,bcm2835-pixelvalve0"; reg = <0x7e206000 0x00000100>; interrupts = <0x00000002 0x0000000d>; status = "disabled"; phandle = <0x00000061>; }; pixelvalve@7e207000 { compatible = "brcm,bcm2835-pixelvalve1"; reg = <0x7e207000 0x00000100>; interrupts = <0x00000002 0x0000000e>; status = "disabled"; phandle = <0x00000062>; }; dpi@7e208000 { compatible = "brcm,bcm2835-dpi"; reg = <0x7e208000 0x0000008c>; clocks = <0x00000008 0x00000014 0x00000008 0x0000002c>; clock-names = "core", "pixel"; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; phandle = <0x00000063>; }; dsi@7e209000 { compatible = "brcm,bcm2835-dsi0"; reg = <0x7e209000 0x00000078>; interrupts = <0x00000002 0x00000004>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; #clock-cells = <0x00000001>; clocks = <0x00000008 0x00000020 0x00000008 0x0000002f 0x00000008 0x00000031>; clock-names = "phy", "escape", "pixel"; clock-output-names = "dsi0_byte", "dsi0_ddr2", "dsi0_ddr"; phandle = <0x00000005>; }; thermal@7e212000 { compatible = "brcm,bcm2837-thermal"; reg = <0x7e212000 0x00000008>; clocks = <0x00000008 0x0000001b>; #thermal-sensor-cells = <0x00000000>; status = "okay"; phandle = <0x00000002>; }; aux@0x7e215000 { compatible = "brcm,bcm2835-aux"; #clock-cells = <0x00000001>; reg = <0x7e215000 0x00000008>; clocks = <0x00000008 0x00000014>; interrupts = <0x00000001 0x0000001d>; interrupt-controller; #interrupt-cells = <0x00000001>; phandle = <0x00000012>; }; serial@7e215040 { compatible = "brcm,bcm2835-aux-uart"; reg = <0x7e215040 0x00000040>; interrupts = <0x00000000>; clocks = <0x00000012 0x00000000>; status = "okay"; interrupt-parent = <0x00000012>; pinctrl-names = "default"; pinctrl-0 = <0x00000013>; phandle = <0x0000001f>; }; spi@7e215080 { compatible = "brcm,bcm2835-aux-spi"; reg = <0x7e215080 0x00000040>; interrupts = <0x00000001>; clocks = <0x00000012 0x00000001>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; interrupt-parent = <0x00000012>; phandle = <0x00000064>; }; spi@7e2150c0 { compatible = "brcm,bcm2835-aux-spi"; reg = <0x7e2150c0 0x00000040>; interrupts = <0x00000002>; clocks = <0x00000012 0x00000002>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; interrupt-parent = <0x00000012>; phandle = <0x00000065>; }; pwm@7e20c000 { compatible = "brcm,bcm2835-pwm"; reg = <0x7e20c000 0x00000028>; clocks = <0x00000008 0x0000001e>; assigned-clocks = <0x00000008 0x0000001e>; assigned-clock-rates = <0x00989680>; #pwm-cells = <0x00000002>; status = "disabled"; phandle = <0x00000066>; }; hvs@7e400000 { compatible = "brcm,bcm2835-hvs"; reg = <0x7e400000 0x00006000>; interrupts = <0x00000002 0x00000001>; status = "disabled"; phandle = <0x00000067>; }; dsi@7e700000 { compatible = "brcm,bcm2835-dsi1"; reg = <0x7e700000 0x0000008c>; interrupts = <0x00000002 0x0000000c>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; #clock-cells = <0x00000001>; clocks = <0x00000008 0x00000023 0x00000008 0x00000030 0x00000008 0x00000032>; clock-names = "phy", "escape", "pixel"; clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; status = "disabled"; phandle = <0x00000006>; }; csi0@7e800000 { compatible = "brcm,bcm2835-unicam"; reg = <0x7e800000 0x00000800 0x7e802000 0x00000004>; interrupts = <0x00000002 0x00000006>; clocks = <0x00000008 0x0000002d>; clock-names = "lp"; #address-cells = <0x00000001>; #size-cells = <0x00000000>; #clock-cells = <0x00000001>; status = "disabled"; power-domains = <0x00000014 0x0000000c>; phandle = <0x00000068>; }; csi1@7e801000 { compatible = "brcm,bcm2835-unicam"; reg = <0x7e801000 0x00000800 0x7e802004 0x00000004>; interrupts = <0x00000002 0x00000007>; clocks = <0x00000008 0x0000002e>; clock-names = "lp"; #address-cells = <0x00000001>; #size-cells = <0x00000000>; #clock-cells = <0x00000001>; status = "disabled"; power-domains = <0x00000014 0x0000000d>; phandle = <0x00000069>; port { endpoint { data-lanes = <0x00000001 0x00000002>; }; }; }; i2c@7e804000 { compatible = "brcm,bcm2835-i2c"; reg = <0x7e804000 0x00001000>; interrupts = <0x00000002 0x00000015>; clocks = <0x00000008 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; pinctrl-names = "default"; pinctrl-0 = <0x00000015>; clock-frequency = <0x000186a0>; phandle = <0x00000023>; }; i2c@7e805000 { compatible = "brcm,bcm2835-i2c"; reg = <0x7e805000 0x00001000>; interrupts = <0x00000002 0x00000015>; clocks = <0x00000008 0x00000014>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; status = "disabled"; clock-frequency = <0x000186a0>; phandle = <0x00000016>; }; vec@7e806000 { compatible = "brcm,bcm2835-vec"; reg = <0x7e806000 0x00001000>; clocks = <0x00000008 0x00000018>; interrupts = <0x00000002 0x0000001b>; status = "disabled"; phandle = <0x0000006a>; }; pixelvalve@7e807000 { compatible = "brcm,bcm2835-pixelvalve2"; reg = <0x7e807000 0x00000100>; interrupts = <0x00000002 0x0000000a>; status = "disabled"; phandle = <0x0000006b>; }; hdmi@7e902000 { compatible = "brcm,bcm2835-hdmi"; reg = <0x7e902000 0x00000600 0x7e808000 0x00000100>; interrupts = <0x00000002 0x00000008 0x00000002 0x00000009>; ddc = <0x00000016>; clocks = <0x00000008 0x00000010 0x00000008 0x00000019>; clock-names = "pixel", "hdmi"; dmas = <0x0000000b 0x00000011>; dma-names = "audio-rx"; status = "disabled"; power-domains = <0x00000014 0x00000005>; hpd-gpios = <0x00000017 0x00000004 0x00000001>; phandle = <0x0000006c>; }; usb@7e980000 { compatible = "brcm,bcm2708-usb"; reg = <0x7e980000 0x00010000 0x7e006000 0x00001000>; interrupts = <0x00000002 0x00000000 0x00000001 0x00000009>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; clocks = <0x00000018>; clock-names = "otg"; phys = <0x00000019>; phy-names = "usb2-phy"; power-domains = <0x00000014 0x00000006>; phandle = <0x0000006d>; usb1@1 { compatible = "usb424,9514"; reg = <0x00000001>; #address-cells = <0x00000001>; #size-cells = <0x00000000>; usbether@1 { compatible = "usb424,ec00"; reg = <0x00000001>; phandle = <0x0000006e>; }; }; }; v3d@7ec00000 { compatible = "brcm,vc4-v3d"; reg = <0x7ec00000 0x00001000>; interrupts = <0x00000001 0x0000000a>; power-domains = <0x00000014 0x0000000a>; status = "disabled"; phandle = <0x0000006f>; }; gpu { compatible = "brcm,bcm2835-vc4"; status = "disabled"; phandle = <0x00000070>; }; local_intc@40000000 { compatible = "brcm,bcm2836-l1-intc"; reg = <0x40000000 0x00000100>; interrupt-controller; #interrupt-cells = <0x00000001>; interrupt-parent = <0x00000003>; phandle = <0x00000003>; }; mmc@7e300000 { compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci"; reg = <0x7e300000 0x00000100>; interrupts = <0x00000002 0x0000001e>; clocks = <0x00000008 0x0000001c>; dmas = <0x0000000b 0x0000000b>; dma-names = "rx-tx"; brcm,overclock-50 = <0x00000000>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <0x0000001a>; non-removable; bus-width = <0x00000004>; phandle = <0x00000028>; }; firmwarekms@7e600000 { compatible = "raspberrypi,rpi-firmware-kms"; reg = <0x7e600000 0x00000100>; interrupts = <0x00000002 0x00000010>; brcm,firmware = <0x00000007>; status = "disabled"; phandle = <0x00000071>; }; smi@7e600000 { compatible = "brcm,bcm2835-smi"; reg = <0x7e600000 0x00000100>; interrupts = <0x00000002 0x00000010>; clocks = <0x00000008 0x0000002a>; assigned-clocks = <0x00000008 0x0000002a>; assigned-clock-rates = <0x07735940>; dmas = <0x0000000b 0x00000004>; dma-names = "rx-tx"; status = "disabled"; phandle = <0x00000072>; }; axiperf { compatible = "brcm,bcm2835-axiperf"; reg = <0x7e009800 0x00000100 0x7ee08000 0x00000100>; firmware = <0x00000007>; status = "disabled"; phandle = <0x00000029>; }; gpiomem { compatible = "brcm,bcm2835-gpiomem"; reg = <0x7e200000 0x00001000>; }; firmware { compatible = "raspberrypi,bcm2835-firmware"; mboxes = <0x0000001b>; phandle = <0x00000007>; }; power { compatible = "raspberrypi,bcm2835-power"; firmware = <0x00000007>; #power-domain-cells = <0x00000001>; phandle = <0x00000014>; }; fb { compatible = "brcm,bcm2708-fb"; firmware = <0x00000007>; status = "okay"; phandle = <0x00000073>; }; vchiq { compatible = "brcm,bcm2835-vchiq"; reg = <0x7e00b840 0x0000000f>; interrupts = <0x00000000 0x00000002>; cache-line-size = <0x00000020>; firmware = <0x00000007>; phandle = <0x0000001d>; }; vcsm { compatible = "raspberrypi,bcm2835-vcsm"; firmware = <0x00000007>; status = "okay"; phandle = <0x00000074>; }; audio { compatible = "brcm,bcm2835-audio"; brcm,pwm-channels = <0x00000008>; status = "disabled"; pinctrl-names = "default"; pinctrl-0 = <0x0000001c>; phandle = <0x00000024>; }; sound { status = "disabled"; phandle = <0x00000075>; }; arm-pmu { compatible = "arm,cortex-a7-pmu"; interrupt-parent = <0x00000003>; interrupts = <0x00000009>; }; virtgpio { compatible = "brcm,bcm2835-virtgpio"; gpio-controller; #gpio-cells = <0x00000002>; firmware = <0x00000007>; status = "okay"; phandle = <0x00000030>; }; expgpio { compatible = "brcm,bcm2835-expgpio"; gpio-controller; #gpio-cells = <0x00000002>; firmware = <0x00000007>; status = "okay"; phandle = <0x00000017>; }; }; clocks { compatible = "simple-bus"; #address-cells = <0x00000001>; #size-cells = <0x00000000>; clock@3 { compatible = "fixed-clock"; reg = <0x00000003>; #clock-cells = <0x00000000>; clock-output-names = "osc"; clock-frequency = <0x0124f800>; phandle = <0x00000004>; }; clock@4 { compatible = "fixed-clock"; reg = <0x00000004>; #clock-cells = <0x00000000>; clock-output-names = "otg"; clock-frequency = <0x1c9c3800>; phandle = <0x00000018>; }; }; phy { compatible = "usb-nop-xceiv"; #phy-cells = <0x00000000>; phandle = <0x00000019>; }; timer { compatible = "arm,armv7-timer"; interrupt-parent = <0x00000003>; interrupts = <0x00000000 0x00000001 0x00000003 0x00000002>; always-on; }; cpus { #address-cells = <0x00000001>; #size-cells = <0x00000000>; enable-method = "brcm,bcm2836-smp"; phandle = <0x00000076>; cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000000>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000d8>; phandle = <0x0000002a>; }; cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000001>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000e0>; phandle = <0x0000002b>; }; cpu@2 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000002>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000e8>; phandle = <0x0000002c>; }; cpu@3 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x00000003>; enable-method = "spin-table"; cpu-release-addr = <0x00000000 0x000000f0>; phandle = <0x0000002d>; }; }; fixedregulator_5v0 { compatible = "regulator-fixed"; regulator-name = "5v0"; regulator-min-microvolt = <0x004c4b40>; regulator-max-microvolt = <0x004c4b40>; regulator-always-on; phandle = <0x00000077>; }; fixedregulator_3v3 { compatible = "regulator-fixed"; regulator-name = "3v3"; regulator-min-microvolt = <0x00325aa0>; regulator-max-microvolt = <0x00325aa0>; regulator-always-on; phandle = <0x00000078>; }; __overrides__ { cam0-pwdn-ctrl; cam0-pwdn; cam0-led-ctrl; cam0-led; cache_line_size = [00 00 00 1d 63 61 63 68 65 2d 6c 69 6e 65 2d 73 69 7a 65 3a 30 00]; uart0 = [00 00 00 1e 73 74 61 74 75 73 00]; uart1 = [00 00 00 1f 73 74 61 74 75 73 00]; i2s = [00 00 00 20 73 74 61 74 75 73 00]; spi = [00 00 00 21 73 74 61 74 75 73 00]; i2c0 = [00 00 00 22 73 74 61 74 75 73 00]; i2c1 = [00 00 00 23 73 74 61 74 75 73 00]; i2c2_iknowwhatimdoing = [00 00 00 16 73 74 61 74 75 73 00]; i2c0_baudrate = [00 00 00 22 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; i2c1_baudrate = [00 00 00 23 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; i2c2_baudrate = [00 00 00 16 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; audio = [00 00 00 24 73 74 61 74 75 73 00]; watchdog = [00 00 00 25 73 74 61 74 75 73 00]; random = [00 00 00 26 73 74 61 74 75 73 00]; sd_overclock = <0x00000027 0x6272636d 0x2c6f7665 0x72636c6f 0x636b2d35 0x303a3000>; sd_force_pio = <0x00000027 0x6272636d 0x2c666f72 0x63652d70 0x696f3f00>; sd_pio_limit = [00 00 00 27 62 72 63 6d 2c 70 69 6f 2d 6c 69 6d 69 74 3a 30 00]; sd_debug = [00 00 00 27 62 72 63 6d 2c 64 65 62 75 67 00]; sdio_overclock = <0x00000028 0x6272636d 0x2c6f7665 0x72636c6f 0x636b2d35 0x303a3000>; axiperf = [00 00 00 29 73 74 61 74 75 73 00]; arm_freq = <0x0000002a 0x636c6f63 0x6b2d6672 0x65717565 0x6e63793a 0x30000000 0x002b636c 0x6f636b2d 0x66726571 0x75656e63 0x793a3000 0x0000002c 0x636c6f63 0x6b2d6672 0x65717565 0x6e63793a 0x30000000 0x002d636c 0x6f636b2d 0x66726571 0x75656e63 0x793a3000>; act_led_gpio = <0x0000002e 0x6770696f 0x733a3400>; act_led_activelow = <0x0000002e 0x6770696f 0x733a3800>; act_led_trigger = [00 00 00 2e 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00]; pwr_led_gpio = <0x0000002f 0x6770696f 0x733a3400>; pwr_led_activelow = <0x0000002f 0x6770696f 0x733a3800>; pwr_led_trigger = [00 00 00 2f 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00]; }; memory { device_type = "memory"; reg = <0x00000000 0x00000000>; }; leds { compatible = "gpio-leds"; phandle = <0x00000079>; act { label = "led0"; linux,default-trigger = "mmc0"; gpios = <0x00000030 0x00000000 0x00000000>; phandle = <0x0000002e>; }; pwr { label = "led1"; linux,default-trigger = "input"; gpios = <0x00000017 0x00000007 0x00000000>; phandle = <0x0000002f>; }; }; __symbols__ { cpu_thermal = "/thermal-zones/cpu-thermal"; soc = "/soc"; dma = "/soc/dma@7e007000"; intc = "/soc/interrupt-controller@7e00b200"; watchdog = "/soc/watchdog@7e100000"; clocks = "/soc/cprman@7e101000"; random = "/soc/rng@7e104000"; mailbox = "/soc/mailbox@7e00b880"; gpio = "/soc/gpio@7e200000"; dpi_gpio0 = "/soc/gpio@7e200000/dpi_gpio0"; emmc_gpio22 = "/soc/gpio@7e200000/emmc_gpio22"; emmc_gpio34 = "/soc/gpio@7e200000/emmc_gpio34"; emmc_gpio48 = "/soc/gpio@7e200000/emmc_gpio48"; gpclk0_gpio4 = "/soc/gpio@7e200000/gpclk0_gpio4"; gpclk1_gpio5 = "/soc/gpio@7e200000/gpclk1_gpio5"; gpclk1_gpio42 = "/soc/gpio@7e200000/gpclk1_gpio42"; gpclk1_gpio44 = "/soc/gpio@7e200000/gpclk1_gpio44"; gpclk2_gpio6 = "/soc/gpio@7e200000/gpclk2_gpio6"; gpclk2_gpio43 = "/soc/gpio@7e200000/gpclk2_gpio43"; i2c0_gpio0 = "/soc/gpio@7e200000/i2c0_gpio0"; i2c0_gpio28 = "/soc/gpio@7e200000/i2c0_gpio28"; i2c0_gpio44 = "/soc/gpio@7e200000/i2c0_gpio44"; i2c1_gpio2 = "/soc/gpio@7e200000/i2c1_gpio2"; i2c1_gpio44 = "/soc/gpio@7e200000/i2c1_gpio44"; i2c_slave_gpio18 = "/soc/gpio@7e200000/i2c_slave_gpio18"; jtag_gpio4 = "/soc/gpio@7e200000/jtag_gpio4"; jtag_gpio22 = "/soc/gpio@7e200000/jtag_gpio22"; pcm_gpio18 = "/soc/gpio@7e200000/pcm_gpio18"; pcm_gpio28 = "/soc/gpio@7e200000/pcm_gpio28"; pwm0_gpio12 = "/soc/gpio@7e200000/pwm0_gpio12"; pwm0_gpio18 = "/soc/gpio@7e200000/pwm0_gpio18"; pwm0_gpio40 = "/soc/gpio@7e200000/pwm0_gpio40"; pwm1_gpio13 = "/soc/gpio@7e200000/pwm1_gpio13"; pwm1_gpio19 = "/soc/gpio@7e200000/pwm1_gpio19"; pwm1_gpio41 = "/soc/gpio@7e200000/pwm1_gpio41"; pwm1_gpio45 = "/soc/gpio@7e200000/pwm1_gpio45"; sdhost_pins = "/soc/gpio@7e200000/sdhost_gpio48"; sdhost_gpio48 = "/soc/gpio@7e200000/sdhost_gpio48"; spi0_gpio7 = "/soc/gpio@7e200000/spi0_gpio7"; spi0_gpio35 = "/soc/gpio@7e200000/spi0_gpio35"; spi1_gpio16 = "/soc/gpio@7e200000/spi1_gpio16"; spi2_gpio40 = "/soc/gpio@7e200000/spi2_gpio40"; uart0_gpio14 = "/soc/gpio@7e200000/uart0_gpio14"; uart0_ctsrts_gpio16 = "/soc/gpio@7e200000/uart0_ctsrts_gpio16"; uart0_ctsrts_gpio30 = "/soc/gpio@7e200000/uart0_ctsrts_gpio30"; uart0_gpio32 = "/soc/gpio@7e200000/uart0_gpio32"; uart0_gpio36 = "/soc/gpio@7e200000/uart0_gpio36"; uart0_ctsrts_gpio38 = "/soc/gpio@7e200000/uart0_ctsrts_gpio38"; uart1_gpio14 = "/soc/gpio@7e200000/uart1_gpio14"; uart1_ctsrts_gpio16 = "/soc/gpio@7e200000/uart1_ctsrts_gpio16"; uart1_gpio32 = "/soc/gpio@7e200000/uart1_gpio32"; uart1_ctsrts_gpio30 = "/soc/gpio@7e200000/uart1_ctsrts_gpio30"; uart1_gpio40 = "/soc/gpio@7e200000/uart1_gpio40"; uart1_ctsrts_gpio42 = "/soc/gpio@7e200000/uart1_ctsrts_gpio42"; dpi_18bit_gpio0 = "/soc/gpio@7e200000/dpi_18bit_gpio0"; spi0_pins = "/soc/gpio@7e200000/spi0_pins"; spi0_cs_pins = "/soc/gpio@7e200000/spi0_cs_pins"; i2c0_pins = "/soc/gpio@7e200000/i2c0"; i2c1_pins = "/soc/gpio@7e200000/i2c1"; i2s_pins = "/soc/gpio@7e200000/i2s"; sdio_pins = "/soc/gpio@7e200000/sdio_pins"; bt_pins = "/soc/gpio@7e200000/bt_pins"; uart0_pins = "/soc/gpio@7e200000/uart0_pins"; uart1_pins = "/soc/gpio@7e200000/uart1_pins"; audio_pins = "/soc/gpio@7e200000/audio_pins"; uart0 = "/soc/serial@7e201000"; sdhost = "/soc/mmc@7e202000"; i2s = "/soc/i2s@7e203000"; spi0 = "/soc/spi@7e204000"; spi = "/soc/spi@7e204000"; spidev0 = "/soc/spi@7e204000/spidev@0"; spidev1 = "/soc/spi@7e204000/spidev@1"; i2c0 = "/soc/i2c@7e205000"; pixelvalve0 = "/soc/pixelvalve@7e206000"; pixelvalve1 = "/soc/pixelvalve@7e207000"; dpi = "/soc/dpi@7e208000"; dsi0 = "/soc/dsi@7e209000"; thermal = "/soc/thermal@7e212000"; aux = "/soc/aux@0x7e215000"; uart1 = "/soc/serial@7e215040"; spi1 = "/soc/spi@7e215080"; spi2 = "/soc/spi@7e2150c0"; pwm = "/soc/pwm@7e20c000"; hvs = "/soc/hvs@7e400000"; dsi1 = "/soc/dsi@7e700000"; csi0 = "/soc/csi0@7e800000"; csi1 = "/soc/csi1@7e801000"; i2c1 = "/soc/i2c@7e804000"; i2c2 = "/soc/i2c@7e805000"; vec = "/soc/vec@7e806000"; pixelvalve2 = "/soc/pixelvalve@7e807000"; hdmi = "/soc/hdmi@7e902000"; usb = "/soc/usb@7e980000"; ethernet = "/soc/usb@7e980000/usb1@1/usbether@1"; v3d = "/soc/v3d@7ec00000"; vc4 = "/soc/gpu"; local_intc = "/soc/local_intc@40000000"; mmc = "/soc/mmc@7e300000"; firmwarekms = "/soc/firmwarekms@7e600000"; smi = "/soc/smi@7e600000"; axiperf = "/soc/axiperf"; firmware = "/soc/firmware"; power = "/soc/power"; fb = "/soc/fb"; vchiq = "/soc/vchiq"; vcsm = "/soc/vcsm"; audio = "/soc/audio"; sound = "/soc/sound"; virtgpio = "/soc/virtgpio"; expgpio = "/soc/expgpio"; clk_osc = "/clocks/clock@3"; clk_usb = "/clocks/clock@4"; usbphy = "/phy"; cpus = "/cpus"; cpu0 = "/cpus/cpu@0"; cpu1 = "/cpus/cpu@1"; cpu2 = "/cpus/cpu@2"; cpu3 = "/cpus/cpu@3"; vdd_5v0_reg = "/fixedregulator_5v0"; vdd_3v3_reg = "/fixedregulator_3v3"; leds = "/leds"; act_led = "/leds/act"; pwr_led = "/leds/pwr"; }; }; ``` #### v2 (tutaj mamy limit rozmiaru notatki) [link](https://hackmd.io/7rTkNEyFSDe0_smY8djQng?view)