├── README.md ├── mkvf2img.sh └── dumps ├── devinfo.txt ├── ofwdump.txt ├── boot.txt └── dtb.txt /README.md: -------------------------------------------------------------------------------- 1 | ## FreeBSD on StarFive VisionFive 2 2 | 3 | I'm working on getting FreeBSD running nicely on the [StarFive VisionFive 2](https://www.kickstarter.com/projects/starfive/visionfive-2), a nice RISC-V board recently released. I'll be dropping scripts, notes, programs and anything else relevant in this repo until I get beyond early experiments. 4 | 5 | Latest progress (2023-01-07): booting 14.0-SNAPSHOT 2023-01-01. No drivers for anything yet. 6 | 7 | ### Getting started 8 | 9 | Get your board running on the provided Linux image first. This makes sure your board actually works, and you can flash an SD card. 10 | 11 | Make sure you set up the serial port according to the docs. FreeBSD has no driver support for anything on this board yet, so the serial console will be your only window to the world. 12 | 13 | ### Create an image 14 | 15 | Run `mkvf2img.sh`. This will produce `vf2.img`, a complete FreeBSD 14.0-SNAPSHOT 2023-01-01 base image with everything needed to boot on the VF2 and run from memory (necessary, since we have no device drivers yet). Flash it to an SD card. 16 | 17 | ### Boot the FreeBSD loader 18 | 19 | Insert the SD card, and power up. On the serial console, when it gets to `Hit any key to stop autoboot:`, hit a key to get to the `StarFive #` prompt. Then enter the following commands to setup and boot the FreeBSD loader: 20 | 21 | ``` 22 | fatload mmc 1:1 0x48000000 dtb/starfive/jh7110-visionfive-v2.dtb 23 | fatload mmc 1:1 0x44000000 efi/boot/bootriscv64.efi 24 | bootefi 0x44000000 0x48000000 25 | ``` 26 | 27 | ### Load the root filesystem and boot the system 28 | 29 | When you see the `Hit [Enter] to boot immediately, or any other key for command prompt`, hit a key to get to the `OK` prompt. The enter the following commands to load the root filesystem and boot the system: 30 | 31 | ``` 32 | load geom_uzip 33 | load -t md_image /root.img.uzip 34 | boot 35 | ``` 36 | 37 | (`root.img.uzip` is large, and will take a while to load). 38 | 39 | At the `mountroot>` prompt: 40 | 41 | ``` 42 | ufs:/dev/md0.uzip 43 | ``` 44 | 45 | Watch the kernel messages fly by, until finally: 46 | 47 | ``` 48 | FreeBSD/riscv (generic) (rcons) 49 | 50 | login: 51 | ``` 52 | 53 | Login with username `root`, password `root`. Enjoy! 54 | -------------------------------------------------------------------------------- /mkvf2img.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -euo pipefail 4 | 5 | BASE_URL=https://download.freebsd.org/snapshots/riscv/riscv64/ISO-IMAGES/14.0 6 | BASE_IMAGE=FreeBSD-14.0-CURRENT-riscv-riscv64-GENERICSD-20230420-f369f10dd812-262341.img 7 | 8 | DTB_FILE=jh7110-visionfive-v2.dtb 9 | 10 | # get base image 11 | if [ ! -f $BASE_IMAGE ] ; then 12 | curl -LOC - $BASE_URL/$BASE_IMAGE.xz 13 | xz -kd $BASE_IMAGE.xz 14 | fi 15 | 16 | # get dtb 17 | if [ ! -f $DTB_FILE ] ; then 18 | curl -LOC - https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v2.5.0/$DTB_FILE 19 | fi 20 | 21 | 22 | # attach the image, so we can extract the partition info 23 | mdconfig -a -t vnode -f $BASE_IMAGE -u 0 24 | 25 | # extract the esp and root partitions into their own files 26 | dd if=$BASE_IMAGE of=efi.img bs=512 $(gpart show -l /dev/md0 | grep efi | awk '{ printf "skip=%d count=%d", $1, $2 }') 27 | dd if=$BASE_IMAGE of=root.img bs=512 $(gpart show -l /dev/md0 | grep rootfs | awk '{ printf "skip=%d count=%d", $1, $2 }') 28 | 29 | # unmount it 30 | mdconfig -d -u 0 31 | 32 | 33 | # mount the esp image to put the dtb in 34 | mdconfig -a -t vnode -f efi.img -u 0 35 | mount_msdosfs /dev/md0 /mnt 36 | mkdir -p /mnt/dtb/starfive 37 | cp -v $DTB_FILE /mnt/dtb/starfive/starfive_visionfive2.dtb 38 | umount /dev/md0 39 | mdconfig -d -u 0 40 | 41 | 42 | # now mount the extracted image 43 | mdconfig -a -t vnode -f root.img -u 0 44 | mount /dev/md0 /mnt 45 | 46 | # make updates 47 | echo 'root_rw_mount="NO"' >> /mnt/etc/rc.conf 48 | rm -f /mnt/etc/fstab 49 | touch /mnt/etc/fstab 50 | 51 | # and unmount 52 | umount /mnt 53 | mdconfig -d -u 0 54 | 55 | 56 | # and zip it up 57 | mkuzip -A zstd -d -o root.img.uzip root.img 58 | 59 | 60 | # source and target mountpoints 61 | mkdir -p /mnt/s /mnt/t 62 | 63 | 64 | # create empty boot image 65 | truncate -s 1G boot.img 66 | mdconfig -a -t vnode -f boot.img -u 1 67 | newfs -L bootfs /dev/md1 68 | 69 | # mount root and boot 70 | mdconfig -a -t vnode -f root.img -u 0 71 | mount -o ro /dev/md0 /mnt/s 72 | mount /dev/md1 /mnt/t 73 | 74 | # and copy over everything we need 75 | cp -rv /mnt/s/boot/ /mnt/t/boot 76 | cp -v root.img.uzip /mnt/t 77 | 78 | # unmount it all 79 | umount /mnt/s 80 | umount /mnt/t 81 | mdconfig -d -u 0 82 | mdconfig -d -u 1 83 | 84 | 85 | # build the final image 86 | mkimg -s gpt -f raw -p efi/esp:=efi.img -p freebsd-ufs/boot:=boot.img -o vf2.img 87 | -------------------------------------------------------------------------------- /dumps/devinfo.txt: -------------------------------------------------------------------------------- 1 | root@generic:~ # devinfo -v 2 | nexus0 3 | timer0 4 | rcons0 5 | ofwbus0 6 | clk_fixed0 pnpinfo name=osc compat=fixed-clock 7 | clk_fixed1 pnpinfo name=clk-ext-camera compat=fixed-clock 8 | clk_fixed2 pnpinfo name=gmac1_rmii_refin compat=fixed-clock 9 | clk_fixed3 pnpinfo name=gmac1_rgmii_rxin compat=fixed-clock 10 | clk_fixed4 pnpinfo name=i2stx_bclk_ext compat=fixed-clock 11 | clk_fixed5 pnpinfo name=i2stx_lrck_ext compat=fixed-clock 12 | clk_fixed6 pnpinfo name=i2srx_bclk_ext compat=fixed-clock 13 | clk_fixed7 pnpinfo name=i2srx_lrck_ext compat=fixed-clock 14 | clk_fixed8 pnpinfo name=tdm_ext compat=fixed-clock 15 | clk_fixed9 pnpinfo name=mclk_ext compat=fixed-clock 16 | clk_fixed10 pnpinfo name=jtag_tck_inner compat=fixed-clock 17 | clk_fixed11 pnpinfo name=bist_apb compat=fixed-clock 18 | clk_fixed12 pnpinfo name=gmac0_rmii_refin compat=fixed-clock 19 | clk_fixed13 pnpinfo name=gmac0_rgmii_rxin compat=fixed-clock 20 | clk_fixed14 pnpinfo name=clk_rtc compat=fixed-clock 21 | clk_fixed15 pnpinfo name=hdmitx0_pixelclk compat=fixed-clock 22 | clk_fixed16 pnpinfo name=mipitx_dphy_rxesc compat=fixed-clock 23 | clk_fixed17 pnpinfo name=mipitx_dphy_txbytehs compat=fixed-clock 24 | clk_fixed18 pnpinfo name=wm8960_mclk compat=fixed-clock 25 | clk_fixed19 pnpinfo name=ac108_mclk compat=fixed-clock 26 | unknown pnpinfo name=opp-table-0 compat=operating-points-v2 27 | cpulist0 pnpinfo name=cpus 28 | cpu0 29 | riscv64_cpu0 30 | cpu1 pnpinfo name=cpu@1 compat=sifive,u74-mc 31 | riscv64_cpu1 32 | cpu2 pnpinfo name=cpu@2 compat=sifive,u74-mc 33 | riscv64_cpu2 34 | cpu3 pnpinfo name=cpu@3 compat=sifive,u74-mc 35 | riscv64_cpu3 36 | cpu4 pnpinfo name=cpu@4 compat=sifive,u74-mc 37 | riscv64_cpu4 38 | simplebus0 pnpinfo name=soc compat=simple-bus 39 | unknown pnpinfo name=cache-controller@2010000 compat=sifive,fu740-c000-ccache 40 | syscon_generic_dev0 pnpinfo name=aon_syscon@17010000 compat=syscon 41 | syscon_generic_dev1 pnpinfo name=stg_syscon@10240000 compat=syscon 42 | syscon_generic_dev2 pnpinfo name=sys_syscon@13030000 compat=syscon 43 | unknown pnpinfo name=clint@2000000 compat=riscv,clint0 44 | plic0 pnpinfo name=plic@c000000 compat=riscv,plic0 45 | unknown pnpinfo name=clock-controller compat=starfive,jh7110-clkgen 46 | unknown pnpinfo name=clock-controller@295C0000 compat=starfive,jh7110-clk-vout 47 | unknown pnpinfo name=clock-controller@19810000 compat=starfive,jh7110-clk-isp 48 | unknown pnpinfo name=spi@13010000 compat=cdns,qspi-nor 49 | unknown pnpinfo name=otp@17050000 compat=starfive,jh7110-otp 50 | unknown pnpinfo name=usbdrd compat=starfive,jh7110-cdns3 51 | unknown pnpinfo name=timer@13050000 compat=starfive,jh7110-timers 52 | unknown pnpinfo name=wdog@13070000 compat=starfive,jh7110-wdt 53 | unknown pnpinfo name=rtc@17040000 compat=starfive,jh7110-rtc 54 | unknown pnpinfo name=power-controller@17030000 compat=starfive,jh7110-pmu 55 | unknown pnpinfo name=serial@10000000 compat=snps,dw-apb-uart 56 | unknown 57 | unknown 58 | unknown 59 | unknown 60 | unknown 61 | unknown pnpinfo name=dma-controller@16050000 compat=starfive,jh7110-dma 62 | unknown pnpinfo name=gpio@13040000 compat=starfive,jh7110-sys-pinctrl 63 | unknown pnpinfo name=gpio@17020000 compat=starfive,jh7110-aon-pinctrl 64 | unknown pnpinfo name=tmon@120e0000 compat=starfive,jh7110-temp 65 | unknown pnpinfo name=thermal-zones 66 | unknown pnpinfo name=trng@1600C000 compat=starfive,jh7110-trng 67 | unknown pnpinfo name=sec_dma@16008000 compat=arm,pl080 68 | unknown pnpinfo name=crypto@16000000 compat=starfive,jh7110-sec 69 | unknown pnpinfo name=i2c@10030000 compat=snps,designware-i2c 70 | unknown 71 | unknown pnpinfo name=i2c@10050000 compat=snps,designware-i2c 72 | unknown 73 | unknown 74 | unknown pnpinfo name=i2c@12050000 compat=snps,designware-i2c 75 | unknown pnpinfo name=i2c@12060000 compat=snps,designware-i2c 76 | unknown pnpinfo name=sdio0@16010000 compat=starfive,jh7110-sdio 77 | unknown pnpinfo name=sdio1@16020000 compat=starfive,jh7110-sdio 78 | unknown pnpinfo name=vin_sysctl@19800000 compat=starfive,jh7110-vin 79 | unknown pnpinfo name=jpu@11900000 compat=starfive,jpu 80 | unknown pnpinfo name=vpu_dec@130A0000 compat=starfive,vdec 81 | unknown pnpinfo name=vpu_enc@130B0000 compat=starfive,venc 82 | unknown pnpinfo name=reset-controller compat=starfive,jh7110-reset 83 | unknown pnpinfo name=stmmac-axi-config 84 | unknown pnpinfo name=ethernet@16030000 compat=starfive,dwmac 85 | unknown pnpinfo name=ethernet@16040000 compat=starfive,dwmac 86 | unknown pnpinfo name=gpu@18000000 compat=img-gpu 87 | unknown 88 | unknown 89 | unknown 90 | unknown 91 | unknown pnpinfo name=pwmdac@100b0000 compat=starfive,jh7110-pwmdac 92 | unknown 93 | unknown pnpinfo name=pdm@100d0000 compat=starfive,jh7110-pdm 94 | unknown 95 | unknown 96 | unknown pnpinfo name=i2stx_4ch0@120b0000 compat=starfive,jh7110-i2stx-4ch0 97 | unknown 98 | unknown pnpinfo name=pwm@120d0000 compat=starfive,jh7110-pwm 99 | unknown 100 | unknown pnpinfo name=pwmdac-transmitter compat=starfive,jh7110-pwmdac-dit 101 | unknown 102 | unknown pnpinfo name=spi@10060000 compat=arm,pl022 103 | unknown 104 | unknown 105 | unknown 106 | unknown 107 | unknown 108 | unknown 109 | unknown pnpinfo name=pcie@2B000000 compat=starfive,jh7110-pcie 110 | unknown pnpinfo name=pcie@2C000000 compat=starfive,jh7110-pcie 111 | unknown pnpinfo name=mailbox@0 compat=starfive,mail_box 112 | unknown pnpinfo name=mailbox_client@0 compat=starfive,mailbox-test 113 | unknown pnpinfo name=display-subsystem compat=starfive,jh7110-display 114 | syscon_generic_dev3 pnpinfo name=dssctrl@295B0000 compat=starfive,jh7110-dssctrl 115 | unknown 116 | unknown 117 | unknown pnpinfo name=dc8200@29400000 compat=starfive,jh7110-dc8200 118 | unknown pnpinfo name=dsi-output compat=starfive,jh7110-display-encoder 119 | unknown pnpinfo name=mipi-dphy@295e0000 compat=starfive,jh7110-mipi-dphy-tx 120 | unknown pnpinfo name=mipi@295d0000 compat=starfive,jh7110-mipi_dsi 121 | unknown pnpinfo name=hdmi@29590000 compat=starfive,jh7110-hdmi 122 | unknown pnpinfo name=snd-card0 compat=simple-audio-card 123 | unknown pnpinfo name=snd-card1 compat=simple-audio-card 124 | unknown pnpinfo name=snd-card2 compat=simple-audio-card 125 | unknown pnpinfo name=snd-card3 compat=simple-audio-card 126 | unknown pnpinfo name=snd-card4 compat=simple-audio-card 127 | unknown pnpinfo name=snd-card5 compat=simple-audio-card 128 | unknown pnpinfo name=snd-card6 compat=simple-audio-card 129 | unknown pnpinfo name=e24@0 compat=starfive,e24 130 | unknown pnpinfo name=xrp@0 compat=cdns,xrp 131 | unknown pnpinfo name=starfive,jh7110-cpufreq compat=starfive,jh7110-cpufreq 132 | unknown pnpinfo name=aliases 133 | unknown pnpinfo name=chosen 134 | unknown pnpinfo name=memory@40000000 135 | unknown pnpinfo name=reserved-memory 136 | unknown pnpinfo name=leds compat=gpio-leds 137 | unknown pnpinfo name=gpio-restart compat=gpio-restart 138 | cryptosoft0 139 | -------------------------------------------------------------------------------- /dumps/ofwdump.txt: -------------------------------------------------------------------------------- 1 | root@generic:~ # ofwdump -a 2 | Node 0x38: 3 | Node 0xe4: osc 4 | Node 0x138: clk-ext-camera 5 | Node 0x198: gmac1_rmii_refin 6 | Node 0x1fc: gmac1_rgmii_rxin 7 | Node 0x260: i2stx_bclk_ext 8 | Node 0x2c0: i2stx_lrck_ext 9 | Node 0x320: i2srx_bclk_ext 10 | Node 0x380: i2srx_lrck_ext 11 | Node 0x3e0: tdm_ext 12 | Node 0x438: mclk_ext 13 | Node 0x494: jtag_tck_inner 14 | Node 0x4f4: bist_apb 15 | Node 0x550: gmac0_rmii_refin 16 | Node 0x5b4: gmac0_rgmii_rxin 17 | Node 0x618: clk_rtc 18 | Node 0x670: hdmitx0_pixelclk 19 | Node 0x6d4: mipitx_dphy_rxesc 20 | Node 0x738: mipitx_dphy_txbytehs 21 | Node 0x7a0: wm8960_mclk 22 | Node 0x7ec: ac108_mclk 23 | Node 0x838: opp-table-0 24 | Node 0x884: opp-375000000 25 | Node 0x8c0: opp-500000000 26 | Node 0x8fc: opp-750000000 27 | Node 0x938: opp-1500000000 28 | Node 0x978: cpus 29 | Node 0x9b4: cpu@0 30 | Node 0xb04: interrupt-controller 31 | Node 0xb70: cpu@1 32 | Node 0xccc: interrupt-controller 33 | Node 0xd38: cpu@2 34 | Node 0xe94: interrupt-controller 35 | Node 0xf00: cpu@3 36 | Node 0x105c: interrupt-controller 37 | Node 0x10c8: cpu@4 38 | Node 0x1224: interrupt-controller 39 | Node 0x1294: soc 40 | Node 0x1300: cache-controller@2010000 41 | Node 0x1414: aon_syscon@17010000 42 | Node 0x1470: stg_syscon@10240000 43 | Node 0x14cc: sys_syscon@13030000 44 | Node 0x1528: clint@2000000 45 | Node 0x15f8: plic@c000000 46 | Node 0x16f8: clock-controller 47 | Node 0x18f8: clock-controller@295C0000 48 | Node 0x1a6c: clock-controller@19810000 49 | Node 0x1c60: spi@13010000 50 | Node 0x1dcc: nor-flash@0 51 | Node 0x1e68: partitions 52 | Node 0x1eb8: spl@0 53 | Node 0x1edc: uboot@100000 54 | Node 0x1f08: data@f00000 55 | Node 0x1f3c: otp@17050000 56 | Node 0x1fc4: usbdrd 57 | Node 0x2184: usb@10100000 58 | Node 0x228c: timer@13050000 59 | Node 0x2414: wdog@13070000 60 | Node 0x2528: rtc@17040000 61 | Node 0x2664: power-controller@17030000 62 | Node 0x2708: serial@10000000 63 | Node 0x281c: serial@10010000 64 | Node 0x2910: serial@10020000 65 | Node 0x2a04: serial@12000000 66 | Node 0x2af8: serial@12010000 67 | Node 0x2bec: serial@12020000 68 | Node 0x2ce0: dma-controller@16050000 69 | Node 0x2eb0: gpio@13040000 70 | Node 0x2fa4: i2c0-pins 71 | Node 0x2fc4: i2c0-pins-scl 72 | Node 0x3048: i2c0-pins-sda 73 | Node 0x30d0: i2c5-pins 74 | Node 0x30f0: i2c5-pins-scl 75 | Node 0x3174: i2c5-pins-sda 76 | Node 0x31fc: i2c6-pins 77 | Node 0x321c: i2c6-pins-scl 78 | Node 0x32a0: i2c6-pins-sda 79 | Node 0x3328: csi-pins 80 | Node 0x3348: csi-pins-pwdn 81 | Node 0x33c0: pwmdac0-pins 82 | Node 0x33e4: pwmdac0-pins-left 83 | Node 0x345c: pwmdac0-pins-right 84 | Node 0x34d8: pwm-pins 85 | Node 0x34f8: pwm_ch0-pins 86 | Node 0x356c: pwm_ch1-pins 87 | Node 0x35e4: ssp0-pins 88 | Node 0x3604: ssp0-pins_tx 89 | Node 0x3678: ssp0-pins_rx 90 | Node 0x36ec: ssp0-pins_clk 91 | Node 0x3760: ssp0-pins_cs 92 | Node 0x37d8: pcie0_perst_default 93 | Node 0x3800: perst-pins 94 | Node 0x3874: pcie0_perst_active 95 | Node 0x389c: perst-pins 96 | Node 0x3910: pcie0_wake_default 97 | Node 0x3938: wake-pins 98 | Node 0x399c: pcie0_clkreq_default 99 | Node 0x39c8: clkreq-pins 100 | Node 0x3a2c: pcie1_perst_default 101 | Node 0x3a54: perst-pins 102 | Node 0x3ac8: pcie1_perst_active 103 | Node 0x3af0: perst-pins 104 | Node 0x3b64: pcie1_wake_default 105 | Node 0x3b8c: wake-pins 106 | Node 0x3bf0: pcie1_clkreq_default 107 | Node 0x3c1c: clkreq-pins 108 | Node 0x3c80: usb-pins 109 | Node 0x3c90: drive-vbus-pin 110 | Node 0x3d08: i2srx-pins 111 | Node 0x3d28: i2srx-pins0 112 | Node 0x3d9c: i2s-clk0 113 | Node 0x3dbc: i2s-clk0_bclk 114 | Node 0x3e34: i2s-clk0_lrclk 115 | Node 0x3eb0: i2stx-pins 116 | Node 0x3ed0: i2stx-pins0 117 | Node 0x3f44: uart0-pins 118 | Node 0x3f64: uart0-pins-tx 119 | Node 0x3fbc: uart0-pins-rx 120 | Node 0x4034: i2c2-pins 121 | Node 0x4054: i2c2-pins-scl 122 | Node 0x40bc: i2c2-pins-sda 123 | Node 0x4128: mmc0-pins 124 | Node 0x4148: mmc0-pins-rest 125 | Node 0x41c0: sdcard1-pins 126 | Node 0x41e4: sdcard1-pins0 127 | Node 0x4258: sdcard1-pins1 128 | Node 0x42dc: sdcard1-pins2 129 | Node 0x4360: sdcard1-pins3 130 | Node 0x43e4: sdcard1-pins4 131 | Node 0x4468: sdcard1-pins5 132 | Node 0x44f0: inno_hdmi-pins 133 | Node 0x4514: inno_hdmi-scl 134 | Node 0x457c: inno_hdmi-sda 135 | Node 0x45e4: inno_hdmi-cec-pins 136 | Node 0x4650: inno_hdmi-hpd-pins 137 | Node 0x46b0: mclk_ext_pins 138 | Node 0x46d4: mclk_ext_pins 139 | Node 0x4734: gpio@17020000 140 | Node 0x4818: tmon@120e0000 141 | Node 0x491c: thermal-zones 142 | Node 0x4930: cpu-thermal 143 | Node 0x4970: cooling-maps 144 | Node 0x4988: trips 145 | Node 0x4994: cpu_alert0 146 | Node 0x49dc: cpu_crit 147 | Node 0x4a34: trng@1600C000 148 | Node 0x4af8: sec_dma@16008000 149 | Node 0x4c58: crypto@16000000 150 | Node 0x4de4: i2c@10030000 151 | Node 0x4f34: i2c@10040000 152 | Node 0x5018: i2c@10050000 153 | Node 0x5164: seeed_plane_i2c@45 154 | Node 0x51a4: port 155 | Node 0x51b0: endpoint 156 | Node 0x51ec: panel_radxa@19 157 | Node 0x525c: port 158 | Node 0x5268: endpoint 159 | Node 0x52a8: i2c@12030000 160 | Node 0x538c: i2c@12040000 161 | Node 0x5470: i2c@12050000 162 | Node 0x55bc: eeprom@50 163 | Node 0x5608: axp15060_reg@36 164 | Node 0x5650: regulators 165 | Node 0x5660: ALDO1 166 | Node 0x56cc: ALDO5 167 | Node 0x5738: ALDO3 168 | Node 0x57a4: DCDC2 169 | Node 0x5820: i2c@12060000 170 | Node 0x596c: imx219@10 171 | Node 0x5a0c: port 172 | Node 0x5a18: endpoint 173 | Node 0x5ab8: sdio0@16010000 174 | Node 0x5c74: sdio1@16020000 175 | Node 0x5e24: vin_sysctl@19800000 176 | Node 0x6274: ports 177 | Node 0x62a0: port@1 178 | Node 0x62dc: endpoint@0 179 | Node 0x638c: jpu@11900000 180 | Node 0x64bc: vpu_dec@130A0000 181 | Node 0x6628: vpu_enc@130B0000 182 | Node 0x6794: reset-controller 183 | Node 0x6894: stmmac-axi-config 184 | Node 0x6908: ethernet@16030000 185 | Node 0x6bb4: ethernet-phy@0 186 | Node 0x6c30: ethernet@16040000 187 | Node 0x6edc: ethernet-phy@1 188 | Node 0x6f58: gpu@18000000 189 | Node 0x70ac: can@130d0000 190 | Node 0x7208: can@130e0000 191 | Node 0x7364: tdm@10090000 192 | Node 0x7520: spdif0@100a0000 193 | Node 0x7664: pwmdac@100b0000 194 | Node 0x77b0: i2stx@100c0000 195 | Node 0x7868: pdm@100d0000 196 | Node 0x7980: i2srx_mst@100e0000 197 | Node 0x7b18: i2srx_3ch@100e0000 198 | Node 0x7cf8: i2stx_4ch0@120b0000 199 | Node 0x7eb8: i2stx_4ch1@120c0000 200 | Node 0x809c: pwm@120d0000 201 | Node 0x8194: spdif_transmitter 202 | Node 0x81f4: pwmdac-transmitter 203 | Node 0x826c: dmic_codec 204 | Node 0x82c0: spi@10060000 205 | Node 0x83f0: spi@0 206 | Node 0x8464: spi@10070000 207 | Node 0x8578: spi@10080000 208 | Node 0x868c: spi@12070000 209 | Node 0x87a0: spi@12080000 210 | Node 0x88b4: spi@12090000 211 | Node 0x89c8: spi@120A0000 212 | Node 0x8adc: pcie@2B000000 213 | Node 0x8e40: pcie@2C000000 214 | Node 0x91a4: mailbox@0 215 | Node 0x928c: mailbox_client@0 216 | Node 0x9318: display-subsystem 217 | Node 0x939c: dssctrl@295B0000 218 | Node 0x9424: tda988x_pin 219 | Node 0x9478: rgb-output 220 | Node 0x94e0: ports 221 | Node 0x950c: port@0 222 | Node 0x9548: endpoint@0 223 | Node 0x9598: dc8200@29400000 224 | Node 0x9804: port 225 | Node 0x9830: endpoint@0 226 | Node 0x9874: endpoint@1 227 | Node 0x98b8: endpoint@2 228 | Node 0x9904: dsi-output 229 | Node 0x996c: ports 230 | Node 0x9998: port@0 231 | Node 0x99b4: endpoint 232 | Node 0x99ec: port@1 233 | Node 0x9a08: endpoint 234 | Node 0x9a48: mipi-dphy@295e0000 235 | Node 0x9b5c: mipi@295d0000 236 | Node 0x9ce4: ports 237 | Node 0x9d10: port@0 238 | Node 0x9d4c: endpoint@0 239 | Node 0x9d90: endpoint@1 240 | Node 0x9dd8: port@1 241 | Node 0x9df4: endpoint 242 | Node 0x9e34: hdmi@29590000 243 | Node 0x9f6c: port 244 | Node 0x9f98: endpoint@0 245 | Node 0x9fe4: snd-card0 246 | Node 0xa060: snd-card1 247 | Node 0xa0d8: simple-audio-card,dai-link@0 248 | Node 0xa160: cpu 249 | Node 0xa18c: codec 250 | Node 0xa1b4: snd-card2 251 | Node 0xa22c: snd-card3 252 | Node 0xa2a4: simple-audio-card,dai-link@0 253 | Node 0xa320: cpu 254 | Node 0xa34c: codec 255 | Node 0xa374: snd-card4 256 | Node 0xa3f0: snd-card5 257 | Node 0xa468: snd-card6 258 | Node 0xa4e4: e24@0 259 | Node 0xa694: dsp@0 260 | Node 0xa6a8: xrp@0 261 | Node 0xa7f8: dsp@0 262 | Node 0xa80c: starfive,jh7110-cpufreq 263 | Node 0xa87c: aliases 264 | Node 0xaa7c: chosen 265 | Node 0xab58: memory@40000000 266 | Node 0xaba0: reserved-memory 267 | Node 0xabe0: linux,cma 268 | Node 0xac6c: e24@c0000000 269 | Node 0xacac: xrpbuffer@f0000000 270 | Node 0xad28: leds 271 | Node 0xad4c: led-ack 272 | Node 0xadc8: gpio-restart 273 | -------------------------------------------------------------------------------- /dumps/boot.txt: -------------------------------------------------------------------------------- 1 | Loading kernel... 2 | /boot/kernel/kernel text=0x5bb3c8 text=0x17819c data=0xf5d50 data=0x1f9c+0x2739ec 0x8+0x1f6fe90+0x8+0xf5c90/ 3 | Loading configured modules... 4 | can't find '/boot/entropy' 5 | /boot/kernel/umodem.ko text=0x2080 text=0x11a0 data=0x6f0+0x4 0x8+0x6cd8+0x8+0xdd5 6 | loading required module 'ucom' 7 | /boot/kernel/ucom.ko text=0x2618 text=0x2af8 data=0x960+0x858 0x8+0xf228+0x8+0x14a5 8 | can't find '/etc/hostid' 9 | 10 | Hit [Enter] to boot immediately, or any other key for command prompt. 11 | Booting [/boot/kernel/kernel] in 9 seconds... 12 | 13 | Type '?' for a list of commands, 'help' for more detailed help. 14 | OK lsdev 15 | disk devices: 16 | disk0: 15523840 X 512 blocks (removable) 17 | disk0p1: EFI 18 | disk0p2: FreeBSD UFS 19 | http: (unknown) 20 | net devices: 21 | net0: 22 | OK lsmod 23 | 0xffffffc000000000: /boot/kernel/kernel (elf kernel, 0x2b06208) 24 | modules: riscv_syscon.1 xdr.1 ufs.1 kernel_mac_support.5 krpc.1 cryptosoft.1 crypto.1 nfslockd.1 nfssvc.1 ipsec_support.1 ertt.1 cubic.2 if_vlan.3 if_tap.1 if_tun.1 if_tuntap.1 if_gif.1 ether.1 zlib.1 aio.1 sysvshm.1 sysvsem.1 sysvmsg.1 firmware.1 acl_posix1e.1 acl_nfs4.1 kernel.1400077 cd9660.1 geom_raid.0 geom_part_mbr.0 geom_part_gpt.0 geom_part_bsd.0 g_part.0 geom_label.0 pseudofs.1 procfs.1 nfsd.1 nfscl.1 nfs.1 nfscommon.1 msdosfs.1 virtio_blk.1 vtnet.1 virtio_mmio.1 virtio_pci.1 virtio.1 usb_quirk.1 ukbd.1 uhub.1 usb.1 umass.1 tcp_log_dev.1 spibus.1 ofw_spibus.1 random_device.1 random_harvestq.1 pci.1 ofwbus.1 nvme.1 nvd.1 null.1 mii_bitbang.1 miibus.1 mem.1 geom_md.0 ofw_iicbus.1 iicbus.1 hidquirk.1 hid.1 ofw_gpiobus.1 gpioc.1 gpiobus.1 simple_mfd.1 fbd.1 syscon_generic.1 clk_fixed.1 ofw_clkbus.1 cam.1 25 | 0xffffffc002b07000: /boot/kernel/umodem.ko (elf module, 0xd3d8) 26 | modules: umodem.1 27 | 0xffffffc002b15000: /boot/kernel/ucom.ko (elf module, 0x189a8) 28 | modules: ucom.1 29 | OK load geom_uzip 30 | /boot/kernel/geom_uzip.ko text=0x29f2 text=0x24ec data=0x1088+0x4 0x8+0xbf28+0x8+0x123b 31 | loading required module 'xz' 32 | /boot/kernel/xz.ko text=0xc3e text=0x2070 data=0x300+0xc00 0x8+0xe8e0+0x8+0x52c 33 | OK load -t md_image /root.img.uzip 34 | /root.img.uzip size=0x2e2b1c00 35 | OK boot 36 | Using DTB provided by EFI at 0x47f00000. 37 | Kernel entry at 0x8f00002e... 38 | Kernel args: (null) 39 | clk u5_dw_i2c_clk_core already disabled 40 | clk u5_dw_i2c_clk_apb already disabled 41 | ---<>--- 42 | GDB: no debug ports present 43 | KDB: debugger backends: ddb 44 | KDB: current backend: ddb 45 | Copyright (c) 1992-2022 The FreeBSD Project. 46 | Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 47 | The Regents of the University of California. All rights reserved. 48 | FreeBSD is a registered trademark of The FreeBSD Foundation. 49 | FreeBSD 14.0-CURRENT #0 main-n259905-231d75568f16: Sun Jan 1 07:57:08 UTC 2023 50 | root@releng1.nyi.freebsd.org:/usr/obj/usr/src/riscv.riscv64/sys/GENERIC riscv 51 | FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c) 52 | WARNING: WITNESS option enabled, expect reduced performance. 53 | VT: init without driver. 54 | SBI: OpenSBI v1.0 55 | SBI Specification Version: 0.3 56 | CPU(0): Unknown Implementer Unknown Processor 57 | real memory = 4294967296 (4096 MB) 58 | avail memory = 3367084032 (3211 MB) 59 | Starting CPU 3 (hart 1) 60 | Starting CPU 1 (hart 3) 61 | Starting CPU 2 (hart 4) 62 | FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs 63 | arc4random: WARNING: initial seeding bypassed the cryptographic random device because it was not yet seeded and the knob 'bypass_before_seeding' was enabled. 64 | random: entropy device external interface 65 | kbd0 at kbdmux0 66 | ofwbus0: 67 | clk_fixed0: on ofwbus0 68 | clk_fixed1: on ofwbus0 69 | clk_fixed2: on ofwbus0 70 | clk_fixed3: on ofwbus0 71 | clk_fixed4: on ofwbus0 72 | clk_fixed5: on ofwbus0 73 | clk_fixed6: on ofwbus0 74 | clk_fixed7: on ofwbus0 75 | clk_fixed8: on ofwbus0 76 | clk_fixed9: on ofwbus0 77 | clk_fixed10: on ofwbus0 78 | clk_fixed11: on ofwbus0 79 | clk_fixed12: on ofwbus0 80 | clk_fixed13: on ofwbus0 81 | clk_fixed14: on ofwbus0 82 | clk_fixed15: on ofwbus0 83 | clk_fixed16: on ofwbus0 84 | clk_fixed17: on ofwbus0 85 | clk_fixed18: on ofwbus0 86 | clk_fixed19: on ofwbus0 87 | simplebus0: on ofwbus0 88 | plic0: mem 0xc000000-0xfffffff irq 14,15,16,17,18,19,20,21,22 on simplebus0 89 | timer0: 90 | Timecounter "RISC-V Timecounter" frequency 4000000 Hz quality 1000 91 | Event timer "RISC-V Eventtimer" frequency 4000000 Hz quality 1000 92 | rcons0: 93 | cpulist0: on ofwbus0 94 | cpu0: on cpulist0 95 | cpu1: on cpulist0 96 | cpu2: on cpulist0 97 | cpu3: on cpulist0 98 | cpu4: on cpulist0 99 | Timecounters tick every 1.000 msec 100 | usb_needs_explore_all: no devclass 101 | Release APs 102 | md0: Preloaded image 774577152 bytes at 0xffffffc002b589d0 103 | WARNING: WITNESS option enabled, expect reduced performance. 104 | random: unblocking device. 105 | 106 | Loader variables: 107 | 108 | Manual root filesystem specification: 109 | : [options] 110 | Mount using filesystem 111 | and with the specified (optional) option list. 112 | 113 | eg. ufs:/dev/da0s1a 114 | zfs:zroot/ROOT/default 115 | cd9660:/dev/cd0 ro 116 | (which is equivalent to: mount -t cd9660 -o ro /dev/cd0 /) 117 | 118 | ? List valid disk boot devices 119 | . Yield 1 second (for background tasks) 120 | Abort manual input 121 | 122 | mountroot> ? 123 | 124 | List of GEOM managed disk devices: 125 | ufs/rootfs ufsid/63b1574e97bc491e md0.uzip md0 126 | 127 | mountroot> ufs:/dev/md0.uzip 128 | Trying to mount root from ufs:/dev/md0.uzip []... 129 | Warning: no time-of-day clock registered, system time will not be set accurately 130 | No suitable dump device was found. 131 | Setting hostuuid: 31374656-3031-3141-2d32-3234392d4430. 132 | Setting hostid: 0xed74602a. 133 | Starting file system checks: 134 | Growing root partition to fill device 135 | unhandled type: UZIP 136 | growfs: requested size 4.9GB is equal to the current filesystem size 4.9GB 137 | eval: cannot create /etc/hostid: Read-only file system 138 | /etc/rc: WARNING: could not store hostuuid in /etc/hostid. 139 | Mounting local filesystems:. 140 | mkdir: /tmp/.diskless.a8dd26c8e391b72e1531dabdfb9abd43ab2e9f2c54dff21a4c252b2f37f3d11d: Read-only file system 141 | Building /boot/kernel/linker.hints 142 | kldxref: can't create /boot/lhint.vC79Ak: Read-only file system 143 | devmatch: Can't read linker hints file. 144 | ELF ldconfig path: /lib /usr/lib /usr/lib/compat 145 | Setting hostname: generic. 146 | Setting up harvesting: [CALLOUT],[UMA],[FS_ATIME],SWI,INTERRUPT,NET_NG,[NET_ETHER],NET_TUN,MOUSE,KEYBOARD,ATTACH,CACHED 147 | Feeding entropy: dd: /entropy: Read-only file system 148 | dd: /boot/entropy: Read-only file system 149 | . 150 | lo0: link state changed to UP 151 | Starting Network: lo0. 152 | lo0: flags=8049 metric 0 mtu 16384 153 | options=680003 154 | inet6 ::1 prefixlen 128 155 | inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 156 | inet 127.0.0.1 netmask 0xff000000 157 | groups: lo 158 | nd6 options=21 159 | Starting devd. 160 | devmatch: Can't read linker hints file. 161 | devmatch: Can't read linker hints file. 162 | devmatch: Can't read linker hints file. 163 | devmatch: Can't read linker hints file. 164 | devmatch: Can't read linker hints file. 165 | devmatch: Can't read linker hints file. 166 | devmatch: Can't read linker hints file. 167 | devmatch: Can't read linker hints file. 168 | devmatch: Can't read linker hints file. 169 | devmatch: Can't read linker hints file. 170 | devmatch: Can't read linker hints file. 171 | devmatch: Can't read linker hints file. 172 | devmatch: Can't read linker hints file. 173 | devmatch: Can't read linker hints file. 174 | devmatch: Can't read linker hints file. 175 | devmatch: Can't read linker hints file. 176 | devmatch: Can't read linker hints file. 177 | devmatch: Can't read linker hints file. 178 | devmatch: Can't read linker hints file. 179 | devmatch: Can't read linker hints file. 180 | devmatch: Can't read linker hints file. 181 | devmatch: Can't read linker hints file. 182 | devmatch: Can't read linker hints file. 183 | devmatch: Can't read linker hints file. 184 | devmatch: Can't read linker hints file. 185 | devmatch: Can't read linker hints file. 186 | devmatch: Can't read linker hints file. 187 | devmatch: Can't read linker hints file. 188 | devmatch: Can't read linker hints file. 189 | devmatch: Can't read linker hints file. 190 | devmatch: Can't read linker hints file. 191 | devmatch: Can't read linker hints file. 192 | devmatch: Can't read linker hints file. 193 | devmatch: Can't read linker hints file. 194 | devmatch: Can't read linker hints file. 195 | devmatch: Can't read linker hints file. 196 | devmatch: Can't read linker hints file. 197 | devmatch: Can't read linker hints file. 198 | devmatch: Can't read linker hints file. 199 | devmatch: Can't read linker hints file. 200 | devmatch: Can't read linker hints file. 201 | devmatch: Can't read linker hints file. 202 | devmatch: Can't read linker hints file. 203 | devmatch: Can't read linker hints file. 204 | devmatch: Can't read linker hints file. 205 | devmatch: Can't read linker hints file. 206 | devmatch: Can't read linker hints file. 207 | devmatch: Can't read linker hints file. 208 | devmatch: Can't read linker hints file. 209 | devmatch: Can't read linker hints file. 210 | devmatch: Can't read linker hints file. 211 | devmatch: Can't read linker hints file. 212 | devmatch: Can't read linker hints file. 213 | devmatch: Can't read linker hints file. 214 | devmatch: Can't read linker hints file. 215 | devmatch: Can't read linker hints file. 216 | devmatch: Can't read linker hints file. 217 | devmatch: Can't read linker hints file. 218 | devmatch: Can't read linker hints file. 219 | devmatch: Can't read linker hints file. 220 | devmatch: Can't read linker hints file. 221 | devmatch: Can't read linker hints file. 222 | devmatch: Can't read linker hints file. 223 | devmatch: Can't read linker hints file. 224 | devmatch: Can't read linker hints file. 225 | devmatch: Can't read linker hints file. 226 | devmatch: Can't read linker hints file. 227 | devmatch: Can't read linker hints file. 228 | devmatch: Can't read linker hints file. 229 | devmatch: Can't read linker hints file. 230 | devmatch: Can't read linker hints file. 231 | devmatch: Can't read linker hints file. 232 | devmatch: Can't read linker hints file. 233 | devmatch: Can't read linker hints file. 234 | devmatch: Can't read linker hints file. 235 | devmatch: Can't read linker hints file. 236 | devmatch: Can't read linker hints file. 237 | devmatch: Can't read linker hints file. 238 | devmatch: Can't read linker hints file. 239 | devmatch: Can't read linker hints file. 240 | devmatch: Can't read linker hints file. 241 | devmatch: Can't read linker hints file. 242 | devmatch: Can't read linker hints file. 243 | devmatch: Can't read linker hints file. 244 | devmatch: Can't read linker hints file. 245 | devmatch: Can't read linker hints file. 246 | devmatch: Can't read linker hints file. 247 | devmatch: Can't read linker hints file. 248 | devmatch: Can't read linker hints file. 249 | devmatch: Can't read linker hints file. 250 | devmatch: Can't read linker hints file. 251 | devmatch: Can't read linker hints file. 252 | devmatch: Can't read linker hints file. 253 | devmatch: Can't read linker hints file. 254 | devmatch: Can't read linker hints file. 255 | devmatch: Can't read linker hints file. 256 | add host 127.0.0.1: gateway lo0 fib 0: route already in table 257 | add host ::1: gateway lo0 fib 0: route already in table 258 | add net fe80::: gateway ::1 259 | add net ff02::: gateway ::1 260 | add net ::ffff:0.0.0.0: gateway ::1 261 | add net ::0.0.0.0: gateway ::1 262 | Updating motd:. 263 | Updating /var/run/os-release done. 264 | Clearing /tmp (X related). 265 | Creating and/or trimming log files. 266 | Creating /var/db/machine-id done. 267 | Starting syslogd. 268 | Mounting late filesystems:. 269 | Starting cron. 270 | Generating RSA host key. 271 | Saving key "/etc/ssh/ssh_host_rsa_key" failed: Read-only file system 272 | ssh-keygen: /etc/ssh/ssh_host_rsa_key.pub: No such file or directory 273 | Generating ECDSA host key. 274 | Saving key "/etc/ssh/ssh_host_ecdsa_key" failed: Read-only file system 275 | ssh-keygen: /etc/ssh/ssh_host_ecdsa_key.pub: No such file or directory 276 | Generating ED25519 host key. 277 | Saving key "/etc/ssh/ssh_host_ed25519_key" failed: Read-only file system 278 | ssh-keygen: /etc/ssh/ssh_host_ed25519_key.pub: No such file or directory 279 | Performing sanity check on sshd configuration. 280 | No host key files found 281 | /etc/rc: WARNING: failed precmd routine for sshd 282 | Starting background file system checks in 60 seconds. 283 | mount: /dev/md0.uzip: Read-only file system 284 | rm: /firstboot: Read-only file system 285 | 286 | Sun Jan 8 12:47:56 UTC 2023 287 | 288 | FreeBSD/riscv (generic) (rcons) 289 | 290 | login: 291 | -------------------------------------------------------------------------------- /dumps/dtb.txt: -------------------------------------------------------------------------------- 1 | root@generic:~ # sysctl -b hw.fdt.dtb | dtc -I dtb 2 | /dts-v1/; 3 | 4 | / { 5 | 6 | serial-number = "VF7110A1-2249-D008E000-00000061"; 7 | compatible = "starfive,visionfive-v2", "starfive,jh7110"; 8 | #address-cells = <0x2>; 9 | #size-cells = <0x2>; 10 | model = "StarFive VisionFive V2"; 11 | osc { 12 | 13 | compatible = "fixed-clock"; 14 | #clock-cells = <0x0>; 15 | clock-frequency = <0x16e3600>; 16 | phandle = <0x9>; 17 | }; 18 | clk-ext-camera { 19 | 20 | compatible = "fixed-clock"; 21 | #clock-cells = <0x0>; 22 | clock-frequency = <0x16e3600>; 23 | phandle = <0x29>; 24 | }; 25 | gmac1_rmii_refin { 26 | 27 | compatible = "fixed-clock"; 28 | #clock-cells = <0x0>; 29 | clock-frequency = <0x2faf080>; 30 | phandle = <0xa>; 31 | }; 32 | gmac1_rgmii_rxin { 33 | 34 | compatible = "fixed-clock"; 35 | #clock-cells = <0x0>; 36 | clock-frequency = <0x7735940>; 37 | phandle = <0xb>; 38 | }; 39 | i2stx_bclk_ext { 40 | 41 | compatible = "fixed-clock"; 42 | #clock-cells = <0x0>; 43 | clock-frequency = <0xbb8000>; 44 | phandle = <0xc>; 45 | }; 46 | i2stx_lrck_ext { 47 | 48 | compatible = "fixed-clock"; 49 | #clock-cells = <0x0>; 50 | clock-frequency = <0x2ee00>; 51 | phandle = <0xd>; 52 | }; 53 | i2srx_bclk_ext { 54 | 55 | compatible = "fixed-clock"; 56 | #clock-cells = <0x0>; 57 | clock-frequency = <0xbb8000>; 58 | phandle = <0xe>; 59 | }; 60 | i2srx_lrck_ext { 61 | 62 | compatible = "fixed-clock"; 63 | #clock-cells = <0x0>; 64 | clock-frequency = <0x2ee00>; 65 | phandle = <0xf>; 66 | }; 67 | tdm_ext { 68 | 69 | compatible = "fixed-clock"; 70 | #clock-cells = <0x0>; 71 | clock-frequency = <0x2ee0000>; 72 | phandle = <0x10>; 73 | }; 74 | mclk_ext { 75 | 76 | compatible = "fixed-clock"; 77 | #clock-cells = <0x0>; 78 | clock-frequency = <0xbb8000>; 79 | phandle = <0x11>; 80 | }; 81 | jtag_tck_inner { 82 | 83 | compatible = "fixed-clock"; 84 | #clock-cells = <0x0>; 85 | clock-frequency = <0x2faf080>; 86 | phandle = <0x12>; 87 | }; 88 | bist_apb { 89 | 90 | compatible = "fixed-clock"; 91 | #clock-cells = <0x0>; 92 | clock-frequency = <0x2faf080>; 93 | phandle = <0x13>; 94 | }; 95 | gmac0_rmii_refin { 96 | 97 | compatible = "fixed-clock"; 98 | #clock-cells = <0x0>; 99 | clock-frequency = <0x2faf080>; 100 | phandle = <0x15>; 101 | }; 102 | gmac0_rgmii_rxin { 103 | 104 | compatible = "fixed-clock"; 105 | #clock-cells = <0x0>; 106 | clock-frequency = <0x7735940>; 107 | phandle = <0x16>; 108 | }; 109 | clk_rtc { 110 | 111 | compatible = "fixed-clock"; 112 | #clock-cells = <0x0>; 113 | clock-frequency = <0x8000>; 114 | phandle = <0x14>; 115 | }; 116 | hdmitx0_pixelclk { 117 | 118 | compatible = "fixed-clock"; 119 | #clock-cells = <0x0>; 120 | clock-frequency = <0x11b3dc40>; 121 | phandle = <0x18>; 122 | }; 123 | mipitx_dphy_rxesc { 124 | 125 | compatible = "fixed-clock"; 126 | #clock-cells = <0x0>; 127 | clock-frequency = <0x989680>; 128 | phandle = <0x19>; 129 | }; 130 | mipitx_dphy_txbytehs { 131 | 132 | compatible = "fixed-clock"; 133 | #clock-cells = <0x0>; 134 | clock-frequency = <0x11b3dc40>; 135 | phandle = <0x1a>; 136 | }; 137 | wm8960_mclk { 138 | 139 | compatible = "fixed-clock"; 140 | #clock-cells = <0x0>; 141 | clock-frequency = <0x1770000>; 142 | }; 143 | ac108_mclk { 144 | 145 | compatible = "fixed-clock"; 146 | #clock-cells = <0x0>; 147 | clock-frequency = <0x16e3600>; 148 | }; 149 | opp-table-0 { 150 | 151 | compatible = "operating-points-v2"; 152 | opp-shared; 153 | phandle = <0x2>; 154 | opp-375000000 { 155 | 156 | opp-hz = <0x0 0x165a0bc0>; 157 | opp-microvolt = <0xc3500>; 158 | }; 159 | opp-500000000 { 160 | 161 | opp-hz = <0x0 0x1dcd6500>; 162 | opp-microvolt = <0xc3500>; 163 | }; 164 | opp-750000000 { 165 | 166 | opp-hz = <0x0 0x2cb41780>; 167 | opp-microvolt = <0xc3500>; 168 | }; 169 | opp-1500000000 { 170 | 171 | opp-hz = <0x0 0x59682f00>; 172 | opp-microvolt = <0xfde80>; 173 | }; 174 | }; 175 | cpus { 176 | 177 | #address-cells = <0x1>; 178 | #size-cells = <0x0>; 179 | timebase-frequency = <0x3d0900>; 180 | cpu@0 { 181 | 182 | compatible = "sifive,u74-mc", "riscv"; 183 | reg = <0x0>; 184 | d-cache-block-size = <0x40>; 185 | d-cache-sets = <0x40>; 186 | d-cache-size = <0x2000>; 187 | d-tlb-sets = <0x1>; 188 | d-tlb-size = <0x28>; 189 | device_type = "cpu"; 190 | i-cache-block-size = <0x40>; 191 | i-cache-sets = <0x40>; 192 | i-cache-size = <0x4000>; 193 | i-tlb-sets = <0x1>; 194 | i-tlb-size = <0x28>; 195 | mmu-type = "riscv,sv39"; 196 | next-level-cache = <0x1>; 197 | riscv,isa = "rv64imac"; 198 | tlb-split; 199 | status = "disabled"; 200 | interrupt-controller { 201 | 202 | #interrupt-cells = <0x1>; 203 | compatible = "riscv,cpu-intc"; 204 | interrupt-controller; 205 | phandle = <0x4>; 206 | }; 207 | }; 208 | cpu@1 { 209 | 210 | compatible = "sifive,u74-mc", "riscv"; 211 | reg = <0x1>; 212 | d-cache-block-size = <0x40>; 213 | d-cache-sets = <0x40>; 214 | d-cache-size = <0x8000>; 215 | d-tlb-sets = <0x1>; 216 | d-tlb-size = <0x28>; 217 | device_type = "cpu"; 218 | i-cache-block-size = <0x40>; 219 | i-cache-sets = <0x40>; 220 | i-cache-size = <0x8000>; 221 | i-tlb-sets = <0x1>; 222 | i-tlb-size = <0x28>; 223 | mmu-type = "riscv,sv39"; 224 | next-level-cache = <0x1>; 225 | riscv,isa = "rv64imafdc"; 226 | tlb-split; 227 | status = "okay"; 228 | operating-points-v2 = <0x2>; 229 | interrupt-controller { 230 | 231 | #interrupt-cells = <0x1>; 232 | compatible = "riscv,cpu-intc"; 233 | interrupt-controller; 234 | phandle = <0x5>; 235 | }; 236 | }; 237 | cpu@2 { 238 | 239 | compatible = "sifive,u74-mc", "riscv"; 240 | reg = <0x2>; 241 | d-cache-block-size = <0x40>; 242 | d-cache-sets = <0x40>; 243 | d-cache-size = <0x8000>; 244 | d-tlb-sets = <0x1>; 245 | d-tlb-size = <0x28>; 246 | device_type = "cpu"; 247 | i-cache-block-size = <0x40>; 248 | i-cache-sets = <0x40>; 249 | i-cache-size = <0x8000>; 250 | i-tlb-sets = <0x1>; 251 | i-tlb-size = <0x28>; 252 | mmu-type = "riscv,sv39"; 253 | next-level-cache = <0x1>; 254 | riscv,isa = "rv64imafdc"; 255 | tlb-split; 256 | status = "okay"; 257 | operating-points-v2 = <0x2>; 258 | interrupt-controller { 259 | 260 | #interrupt-cells = <0x1>; 261 | compatible = "riscv,cpu-intc"; 262 | interrupt-controller; 263 | phandle = <0x6>; 264 | }; 265 | }; 266 | cpu@3 { 267 | 268 | compatible = "sifive,u74-mc", "riscv"; 269 | reg = <0x3>; 270 | d-cache-block-size = <0x40>; 271 | d-cache-sets = <0x40>; 272 | d-cache-size = <0x8000>; 273 | d-tlb-sets = <0x1>; 274 | d-tlb-size = <0x28>; 275 | device_type = "cpu"; 276 | i-cache-block-size = <0x40>; 277 | i-cache-sets = <0x40>; 278 | i-cache-size = <0x8000>; 279 | i-tlb-sets = <0x1>; 280 | i-tlb-size = <0x28>; 281 | mmu-type = "riscv,sv39"; 282 | next-level-cache = <0x1>; 283 | riscv,isa = "rv64imafdc"; 284 | tlb-split; 285 | status = "okay"; 286 | operating-points-v2 = <0x2>; 287 | interrupt-controller { 288 | 289 | #interrupt-cells = <0x1>; 290 | compatible = "riscv,cpu-intc"; 291 | interrupt-controller; 292 | phandle = <0x7>; 293 | }; 294 | }; 295 | cpu@4 { 296 | 297 | compatible = "sifive,u74-mc", "riscv"; 298 | reg = <0x4>; 299 | d-cache-block-size = <0x40>; 300 | d-cache-sets = <0x40>; 301 | d-cache-size = <0x8000>; 302 | d-tlb-sets = <0x1>; 303 | d-tlb-size = <0x28>; 304 | device_type = "cpu"; 305 | i-cache-block-size = <0x40>; 306 | i-cache-sets = <0x40>; 307 | i-cache-size = <0x8000>; 308 | i-tlb-sets = <0x1>; 309 | i-tlb-size = <0x28>; 310 | mmu-type = "riscv,sv39"; 311 | next-level-cache = <0x1>; 312 | riscv,isa = "rv64imafdc"; 313 | tlb-split; 314 | status = "okay"; 315 | operating-points-v2 = <0x2>; 316 | interrupt-controller { 317 | 318 | #interrupt-cells = <0x1>; 319 | compatible = "riscv,cpu-intc"; 320 | interrupt-controller; 321 | phandle = <0x8>; 322 | }; 323 | }; 324 | }; 325 | soc { 326 | 327 | compatible = "simple-bus"; 328 | interrupt-parent = <0x3>; 329 | #address-cells = <0x2>; 330 | #size-cells = <0x2>; 331 | #clock-cells = <0x1>; 332 | ranges; 333 | cache-controller@2010000 { 334 | 335 | compatible = "sifive,fu740-c000-ccache", "cache"; 336 | reg = <0x0 0x2010000 0x0 0x4000 0x0 0x8000000 0x0 0x2000000>; 337 | reg-names = "control", "sideband"; 338 | interrupts = <0x1 0x3 0x4 0x2>; 339 | cache-block-size = <0x40>; 340 | cache-level = <0x2>; 341 | cache-sets = <0x800>; 342 | cache-size = <0x200000>; 343 | cache-unified; 344 | phandle = <0x1>; 345 | }; 346 | aon_syscon@17010000 { 347 | 348 | compatible = "syscon"; 349 | reg = <0x0 0x17010000 0x0 0x1000>; 350 | phandle = <0x2f>; 351 | }; 352 | stg_syscon@10240000 { 353 | 354 | compatible = "syscon"; 355 | reg = <0x0 0x10240000 0x0 0x1000>; 356 | phandle = <0x1e>; 357 | }; 358 | sys_syscon@13030000 { 359 | 360 | compatible = "syscon"; 361 | reg = <0x0 0x13030000 0x0 0x1000>; 362 | phandle = <0x17>; 363 | }; 364 | clint@2000000 { 365 | 366 | compatible = "riscv,clint0"; 367 | reg = <0x0 0x2000000 0x0 0x10000>; 368 | reg-names = "control"; 369 | interrupts-extended = <0x4 0x3 0x4 0x7 0x5 0x3 0x5 0x7 0x6 0x3 0x6 0x7 0x7 0x3 0x7 0x7 0x8 0x3 0x8 0x7>; 370 | #interrupt-cells = <0x1>; 371 | }; 372 | plic@c000000 { 373 | 374 | compatible = "riscv,plic0"; 375 | reg = <0x0 0xc000000 0x0 0x4000000>; 376 | reg-names = "control"; 377 | interrupts-extended = <0x4 0xb 0x5 0xb 0x5 0x9 0x6 0xb 0x6 0x9 0x7 0xb 0x7 0x9 0x8 0xb 0x8 0x9>; 378 | interrupt-controller; 379 | #interrupt-cells = <0x1>; 380 | riscv,max-priority = <0x7>; 381 | riscv,ndev = <0x88>; 382 | phandle = <0x3>; 383 | }; 384 | clock-controller { 385 | 386 | compatible = "starfive,jh7110-clkgen"; 387 | reg = <0x0 0x13020000 0x0 0x10000 0x0 0x10230000 0x0 0x10000 0x0 0x17000000 0x0 0x10000>; 388 | reg-names = "sys", "stg", "aon"; 389 | clocks = <0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x14 0x15 0x16>; 390 | clock-names = "osc", "gmac1_rmii_refin", "gmac1_rgmii_rxin", "i2stx_bclk_ext", "i2stx_lrck_ext", "i2srx_bclk_ext", "i2srx_lrck_ext", "tdm_ext", "mclk_ext", "jtag_tck_inner", "bist_apb", "clk_rtc", "gmac0_rmii_refin", "gmac0_rgmii_rxin"; 391 | #clock-cells = <0x1>; 392 | starfive,sys-syscon = <0x17 0x18 0x1c 0x20 0x24 0x28 0x2c 0x30 0x34>; 393 | status = "okay"; 394 | phandle = <0x1b>; 395 | }; 396 | clock-controller@295C0000 { 397 | 398 | compatible = "starfive,jh7110-clk-vout"; 399 | reg = <0x0 0x295c0000 0x0 0x10000>; 400 | reg-names = "vout"; 401 | clocks = <0x18 0x19 0x1a 0x1b 0x3a 0x1b 0x3d>; 402 | clock-names = "hdmitx0_pixelclk", "mipitx_dphy_rxesc", "mipitx_dphy_txbytehs", "vout_src", "vout_top_ahb"; 403 | resets = <0x1c 0x2b>; 404 | reset-names = "vout_src"; 405 | #clock-cells = <0x1>; 406 | power-domains = <0x1d 0x4>; 407 | status = "okay"; 408 | phandle = <0x45>; 409 | }; 410 | clock-controller@19810000 { 411 | 412 | compatible = "starfive,jh7110-clk-isp"; 413 | reg = <0x0 0x19810000 0x0 0x10000>; 414 | reg-names = "isp"; 415 | #clock-cells = <0x1>; 416 | clocks = <0x1b 0x10a 0x1b 0x33 0x1b 0x34 0x1b 0x35>; 417 | clock-names = "u0_dom_isp_top_clk_dom_isp_top_clk_dvp", "u0_dom_isp_top_clk_dom_isp_top_clk_ispcore_2x", "u0_dom_isp_top_clk_dom_isp_top_clk_isp_axi", "u0_sft7110_noc_bus_clk_isp_axi"; 418 | resets = <0x1c 0x29 0x1c 0x2a 0x1c 0x1c>; 419 | reset-names = "rst_isp_top_n", "rst_isp_top_axi", "rst_isp_noc_bus_n"; 420 | power-domains = <0x1d 0x5>; 421 | status = "okay"; 422 | phandle = <0x2e>; 423 | }; 424 | spi@13010000 { 425 | 426 | compatible = "cdns,qspi-nor"; 427 | #address-cells = <0x1>; 428 | #size-cells = <0x0>; 429 | reg = <0x0 0x13010000 0x0 0x10000 0x0 0x21000000 0x0 0x400000>; 430 | interrupts = <0x19>; 431 | clocks = <0x1b 0x5a 0x1b 0x58 0x1b 0xa 0x1b 0x57>; 432 | clock-names = "clk_ref", "clk_apb", "ahb1", "clk_ahb"; 433 | resets = <0x1c 0x3e 0x1c 0x3d 0x1c 0x3f>; 434 | resets-names = "rst_apb", "rst_ahb", "rst_ref"; 435 | cdns,fifo-depth = <0x100>; 436 | cdns,fifo-width = <0x4>; 437 | cdns,trigger-address = <0x0>; 438 | spi-max-frequency = <0xee6b280>; 439 | nor-flash@0 { 440 | 441 | compatible = "jedec,spi-nor"; 442 | reg = <0x0>; 443 | cdns,read-delay = <0x5>; 444 | spi-max-frequency = <0x5f5e100>; 445 | cdns,tshsl-ns = <0x1>; 446 | cdns,tsd2d-ns = <0x1>; 447 | cdns,tchsh-ns = <0x1>; 448 | cdns,tslch-ns = <0x1>; 449 | partitions { 450 | 451 | compatible = "fixed-partitions"; 452 | #address-cells = <0x1>; 453 | #size-cells = <0x1>; 454 | spl@0 { 455 | 456 | reg = <0x0 0x20000>; 457 | }; 458 | uboot@100000 { 459 | 460 | reg = <0x100000 0x300000>; 461 | }; 462 | data@f00000 { 463 | 464 | reg = <0xf00000 0x100000>; 465 | }; 466 | }; 467 | }; 468 | }; 469 | otp@17050000 { 470 | 471 | compatible = "starfive,jh7110-otp"; 472 | reg = <0x0 0x17050000 0x0 0x10000>; 473 | clock-frequency = <0x3d0900>; 474 | clocks = <0x1b 0xe4>; 475 | clock-names = "apb"; 476 | }; 477 | usbdrd { 478 | 479 | compatible = "starfive,jh7110-cdns3"; 480 | reg = <0x0 0x10210000 0x0 0x1000 0x0 0x10200000 0x0 0x1000>; 481 | clocks = <0x1b 0x5f 0x1b 0xc4 0x1b 0xc2 0x1b 0xc3 0x1b 0xbf 0x1b 0xc1 0x1b 0xc0>; 482 | clock-names = "125m", "app", "lpm", "stb", "apb", "axi", "utmi"; 483 | resets = <0x1c 0x8a 0x1c 0x88 0x1c 0x87 0x1c 0x89>; 484 | reset-names = "pwrup", "apb", "axi", "utmi"; 485 | starfive,stg-syscon = <0x1e 0x4 0xc4 0x148 0x1f4>; 486 | starfive,sys-syscon = <0x17 0x18>; 487 | status = "okay"; 488 | #address-cells = <0x2>; 489 | #size-cells = <0x2>; 490 | #interrupt-cells = <0x1>; 491 | ranges; 492 | starfive,usb2-only; 493 | dr_mode = "peripheral"; 494 | usb@10100000 { 495 | 496 | compatible = "cdns,usb3"; 497 | reg = <0x0 0x10100000 0x0 0x10000 0x0 0x10110000 0x0 0x10000 0x0 0x10120000 0x0 0x10000>; 498 | reg-names = "otg", "xhci", "dev"; 499 | interrupts = <0x64 0x6c 0x6e>; 500 | interrupt-names = "host", "peripheral", "otg"; 501 | phy-names = "cdns3,usb3-phy", "cnds3,usb2-phy"; 502 | maximum-speed = "super-speed"; 503 | }; 504 | }; 505 | timer@13050000 { 506 | 507 | compatible = "starfive,jh7110-timers"; 508 | reg = <0x0 0x13050000 0x0 0x10000>; 509 | interrupts = <0x45 0x46 0x47 0x48>; 510 | interrupt-names = "timer0", "timer1", "timer2", "timer3"; 511 | clocks = <0x1b 0x7d 0x1b 0x7e 0x1b 0x7f 0x1b 0x80 0x1b 0x7c>; 512 | clock-names = "timer0", "timer1", "timer2", "timer3", "apb_clk"; 513 | resets = <0x1c 0x76 0x1c 0x77 0x1c 0x78 0x1c 0x79 0x1c 0x75>; 514 | reset-names = "timer0", "timer1", "timer2", "timer3", "apb_rst"; 515 | clock-frequency = <0x16e3600>; 516 | status = "okay"; 517 | }; 518 | wdog@13070000 { 519 | 520 | compatible = "starfive,jh7110-wdt"; 521 | reg = <0x0 0x13070000 0x0 0x10000>; 522 | interrupts = <0x44>; 523 | interrupt-names = "wdog"; 524 | clocks = <0x1b 0x7b 0x1b 0x7a>; 525 | clock-names = "core_clk", "apb_clk"; 526 | resets = <0x1c 0x6d 0x1c 0x6e>; 527 | reset-names = "rst_apb", "rst_core"; 528 | timeout-sec = <0xf>; 529 | status = "okay"; 530 | }; 531 | rtc@17040000 { 532 | 533 | compatible = "starfive,jh7110-rtc"; 534 | reg = <0x0 0x17040000 0x0 0x10000>; 535 | interrupts = <0xa 0xb 0xc>; 536 | interrupt-names = "rtc_ms_pulse", "rtc_sec_pulse", "rtc"; 537 | clocks = <0x1b 0xe5 0x1b 0xe8>; 538 | clock-names = "pclk", "cal_clk"; 539 | resets = <0x1c 0xa7 0x1c 0xa5 0x1c 0xa6>; 540 | reset-names = "rst_osc", "rst_apb", "rst_cal"; 541 | rtc,cal-clock-freq = <0xf4240>; 542 | status = "okay"; 543 | }; 544 | power-controller@17030000 { 545 | 546 | compatible = "starfive,jh7110-pmu"; 547 | reg = <0x0 0x17030000 0x0 0x10000>; 548 | interrupts = <0x6f>; 549 | #power-domain-cells = <0x1>; 550 | status = "okay"; 551 | phandle = <0x1d>; 552 | }; 553 | serial@10000000 { 554 | 555 | compatible = "snps,dw-apb-uart"; 556 | reg = <0x0 0x10000000 0x0 0x10000>; 557 | reg-io-width = <0x4>; 558 | reg-shift = <0x2>; 559 | clocks = <0x1b 0x92 0x1b 0x91>; 560 | clock-names = "baudclk", "apb_pclk"; 561 | resets = <0x1c 0x53 0x1c 0x54>; 562 | interrupts = <0x20>; 563 | status = "okay"; 564 | pinctrl-names = "default"; 565 | pinctrl-0 = <0x1f>; 566 | }; 567 | serial@10010000 { 568 | 569 | compatible = "snps,dw-apb-uart"; 570 | reg = <0x0 0x10010000 0x0 0x10000>; 571 | reg-io-width = <0x4>; 572 | reg-shift = <0x2>; 573 | clocks = <0x1b 0x94 0x1b 0x93>; 574 | clock-names = "baudclk", "apb_pclk"; 575 | resets = <0x1c 0x55 0x1c 0x56>; 576 | interrupts = <0x21>; 577 | status = "disabled"; 578 | }; 579 | serial@10020000 { 580 | 581 | compatible = "snps,dw-apb-uart"; 582 | reg = <0x0 0x10020000 0x0 0x10000>; 583 | reg-io-width = <0x4>; 584 | reg-shift = <0x2>; 585 | clocks = <0x1b 0x96 0x1b 0x95>; 586 | clock-names = "baudclk", "apb_pclk"; 587 | resets = <0x1c 0x57 0x1c 0x58>; 588 | interrupts = <0x22>; 589 | status = "disabled"; 590 | }; 591 | serial@12000000 { 592 | 593 | compatible = "snps,dw-apb-uart"; 594 | reg = <0x0 0x12000000 0x0 0x10000>; 595 | reg-io-width = <0x4>; 596 | reg-shift = <0x2>; 597 | clocks = <0x1b 0x98 0x1b 0x97>; 598 | clock-names = "baudclk", "apb_pclk"; 599 | resets = <0x1c 0x59 0x1c 0x5a>; 600 | interrupts = <0x2d>; 601 | status = "disabled"; 602 | }; 603 | serial@12010000 { 604 | 605 | compatible = "snps,dw-apb-uart"; 606 | reg = <0x0 0x12010000 0x0 0x10000>; 607 | reg-io-width = <0x4>; 608 | reg-shift = <0x2>; 609 | clocks = <0x1b 0x9a 0x1b 0x99>; 610 | clock-names = "baudclk", "apb_pclk"; 611 | resets = <0x1c 0x5b 0x1c 0x5c>; 612 | interrupts = <0x2e>; 613 | status = "disabled"; 614 | }; 615 | serial@12020000 { 616 | 617 | compatible = "snps,dw-apb-uart"; 618 | reg = <0x0 0x12020000 0x0 0x10000>; 619 | reg-io-width = <0x4>; 620 | reg-shift = <0x2>; 621 | clocks = <0x1b 0x9c 0x1b 0x9b>; 622 | clock-names = "baudclk", "apb_pclk"; 623 | resets = <0x1c 0x5d 0x1c 0x5e>; 624 | interrupts = <0x2f>; 625 | status = "disabled"; 626 | }; 627 | dma-controller@16050000 { 628 | 629 | compatible = "starfive,jh7110-dma", "snps,axi-dma-1.01a"; 630 | reg = <0x0 0x16050000 0x0 0x10000>; 631 | clocks = <0x1b 0xd9 0x1b 0xda 0x1b 0x60>; 632 | clock-names = "core-clk", "cfgr-clk", "stg_clk"; 633 | resets = <0x1c 0x85 0x1c 0x86 0x1c 0x1e>; 634 | reset-names = "rst_axi", "rst_ahb", "rst_stg"; 635 | interrupts = <0x49>; 636 | #dma-cells = <0x2>; 637 | dma-channels = <0x4>; 638 | snps,dma-masters = <0x1>; 639 | snps,data-width = <0x3>; 640 | snps,num-hs-if = <0x38>; 641 | snps,block-size = <0x10000 0x10000 0x10000 0x10000>; 642 | snps,priority = <0x0 0x1 0x2 0x3>; 643 | snps,axi-max-burst-len = <0x10>; 644 | status = "okay"; 645 | phandle = <0x32>; 646 | }; 647 | gpio@13040000 { 648 | 649 | compatible = "starfive,jh7110-sys-pinctrl"; 650 | reg = <0x0 0x13040000 0x0 0x10000>; 651 | reg-names = "control"; 652 | clocks = <0x1b 0x70>; 653 | resets = <0x1c 0x2>; 654 | interrupts = <0x56>; 655 | interrupt-controller; 656 | #gpio-cells = <0x2>; 657 | ngpios = <0x40>; 658 | status = "okay"; 659 | phandle = <0x25>; 660 | i2c0-pins { 661 | 662 | phandle = <0x22>; 663 | i2c0-pins-scl { 664 | 665 | starfive,pins = <0x39>; 666 | starfive,pinmux = <0x2ac 0xc 0x7000 0x0>; 667 | starfive,pin-ioconfig = <0x9>; 668 | starfive,pin-gpio-dout = <0x0>; 669 | starfive,pin-gpio-doen = <0x5>; 670 | starfive,pin-gpio-din = <0x9>; 671 | }; 672 | i2c0-pins-sda { 673 | 674 | starfive,pins = <0x3a>; 675 | starfive,pinmux = <0x2ac 0xf 0x38000 0x0>; 676 | starfive,pin-ioconfig = <0x9>; 677 | starfive,pin-gpio-dout = <0x0>; 678 | starfive,pin-gpio-doen = <0x6>; 679 | starfive,pin-gpio-din = <0xa>; 680 | }; 681 | }; 682 | i2c5-pins { 683 | 684 | phandle = <0x27>; 685 | i2c5-pins-scl { 686 | 687 | starfive,pins = <0x13>; 688 | starfive,pinmux = <0x29c 0x1d 0xe0000000 0x0>; 689 | starfive,pin-ioconfig = <0x9>; 690 | starfive,pin-gpio-dout = <0x0>; 691 | starfive,pin-gpio-doen = <0x2a>; 692 | starfive,pin-gpio-din = <0x4f>; 693 | }; 694 | i2c5-pins-sda { 695 | 696 | starfive,pins = <0x14>; 697 | starfive,pinmux = <0x2a0 0x0 0x7 0x0>; 698 | starfive,pin-ioconfig = <0x9>; 699 | starfive,pin-gpio-dout = <0x0>; 700 | starfive,pin-gpio-doen = <0x2b>; 701 | starfive,pin-gpio-din = <0x50>; 702 | }; 703 | }; 704 | i2c6-pins { 705 | 706 | phandle = <0x28>; 707 | i2c6-pins-scl { 708 | 709 | starfive,pins = <0x10>; 710 | starfive,pinmux = <0x29c 0x14 0x700000 0x0>; 711 | starfive,pin-ioconfig = <0x9>; 712 | starfive,pin-gpio-dout = <0x0>; 713 | starfive,pin-gpio-doen = <0x2e>; 714 | starfive,pin-gpio-din = <0x56>; 715 | }; 716 | i2c6-pins-sda { 717 | 718 | starfive,pins = <0x11>; 719 | starfive,pinmux = <0x29c 0x17 0x3800000 0x0>; 720 | starfive,pin-ioconfig = <0x9>; 721 | starfive,pin-gpio-dout = <0x0>; 722 | starfive,pin-gpio-doen = <0x2f>; 723 | starfive,pin-gpio-din = <0x57>; 724 | }; 725 | }; 726 | csi-pins { 727 | 728 | phandle = <0x2a>; 729 | csi-pins-pwdn { 730 | 731 | starfive,pins = <0x12>; 732 | starfive,pinmux = <0x29c 0x1a 0x1c000000 0x0>; 733 | starfive,pin-ioconfig = <0x1>; 734 | starfive,pin-gpio-dout = <0x1>; 735 | starfive,pin-gpio-doen = <0x0>; 736 | }; 737 | }; 738 | pwmdac0-pins { 739 | 740 | phandle = <0x33>; 741 | pwmdac0-pins-left { 742 | 743 | starfive,pins = <0x21>; 744 | starfive,pinmux = <0x2a4 0x9 0xe00 0x0>; 745 | starfive,pin-ioconfig = <0x9>; 746 | starfive,pin-gpio-dout = <0x1c>; 747 | starfive,pin-gpio-doen = <0x0>; 748 | }; 749 | pwmdac0-pins-right { 750 | 751 | starfive,pins = <0x22>; 752 | starfive,pinmux = <0x2a4 0xc 0x7000 0x0>; 753 | starfive,pin-ioconfig = <0x9>; 754 | starfive,pin-gpio-dout = <0x1d>; 755 | starfive,pin-gpio-doen = <0x0>; 756 | }; 757 | }; 758 | pwm-pins { 759 | 760 | phandle = <0x38>; 761 | pwm_ch0-pins { 762 | 763 | starfive,pins = <0x2e>; 764 | starfive,pinmux = <0x2a8 0xf 0x38000 0x0>; 765 | starfive,pin-ioconfig = <0x1>; 766 | starfive,pin-gpio-dout = <0x18>; 767 | starfive,pin-gpio-doen = <0x9>; 768 | }; 769 | pwm_ch1-pins { 770 | 771 | starfive,pins = <0x3b>; 772 | starfive,pinmux = <0x2ac 0x12 0x1c0000 0x0>; 773 | starfive,pin-ioconfig = <0x1>; 774 | starfive,pin-gpio-dout = <0x19>; 775 | starfive,pin-gpio-doen = <0xa>; 776 | }; 777 | }; 778 | ssp0-pins { 779 | 780 | phandle = <0x39>; 781 | ssp0-pins_tx { 782 | 783 | starfive,pins = <0x34>; 784 | starfive,pinmux = <0x2ac 0x0 0x3 0x0>; 785 | starfive,pin-ioconfig = <0x1>; 786 | starfive,pin-gpio-dout = <0x20>; 787 | starfive,pin-gpio-doen = <0x0>; 788 | }; 789 | ssp0-pins_rx { 790 | 791 | starfive,pins = <0x35>; 792 | starfive,pinmux = <0x2ac 0x2 0xc 0x0>; 793 | starfive,pin-ioconfig = <0x1>; 794 | starfive,pin-gpio-doen = <0x1>; 795 | starfive,pin-gpio-din = <0x1c>; 796 | }; 797 | ssp0-pins_clk { 798 | 799 | starfive,pins = <0x30>; 800 | starfive,pinmux = <0x2a8 0x15 0xe00000 0x0>; 801 | starfive,pin-ioconfig = <0x1>; 802 | starfive,pin-gpio-dout = <0x1e>; 803 | starfive,pin-gpio-doen = <0x0>; 804 | }; 805 | ssp0-pins_cs { 806 | 807 | starfive,pins = <0x31>; 808 | starfive,pinmux = <0x2a8 0x18 0x7000000 0x0>; 809 | starfive,pin-ioconfig = <0x1>; 810 | starfive,pin-gpio-dout = <0x1f>; 811 | starfive,pin-gpio-doen = <0x0>; 812 | }; 813 | }; 814 | pcie0_perst_default { 815 | 816 | phandle = <0x3c>; 817 | perst-pins { 818 | 819 | starfive,pins = <0x1a>; 820 | starfive,pinmux = <0x2a0 0x12 0x1c0000 0x0>; 821 | starfive,pin-ioconfig = <0x1>; 822 | starfive,pin-gpio-dout = <0x1>; 823 | starfive,pin-gpio-doen = <0x0>; 824 | }; 825 | }; 826 | pcie0_perst_active { 827 | 828 | phandle = <0x3d>; 829 | perst-pins { 830 | 831 | starfive,pins = <0x1a>; 832 | starfive,pinmux = <0x2a0 0x12 0x1c0000 0x0>; 833 | starfive,pin-ioconfig = <0x1>; 834 | starfive,pin-gpio-dout = <0x0>; 835 | starfive,pin-gpio-doen = <0x0>; 836 | }; 837 | }; 838 | pcie0_wake_default { 839 | 840 | phandle = <0x3a>; 841 | wake-pins { 842 | 843 | starfive,pins = <0x20>; 844 | starfive,pinmux = <0x2a4 0x6 0x1c0 0x0>; 845 | starfive,pin-ioconfig = <0x1>; 846 | starfive,pin-gpio-doen = <0x1>; 847 | }; 848 | }; 849 | pcie0_clkreq_default { 850 | 851 | phandle = <0x3b>; 852 | clkreq-pins { 853 | 854 | starfive,pins = <0x1b>; 855 | starfive,pinmux = <0x2a0 0x15 0xe00000 0x0>; 856 | starfive,pin-ioconfig = <0x1>; 857 | starfive,pin-gpio-doen = <0x1>; 858 | }; 859 | }; 860 | pcie1_perst_default { 861 | 862 | phandle = <0x40>; 863 | perst-pins { 864 | 865 | starfive,pins = <0x1c>; 866 | starfive,pinmux = <0x2a0 0x18 0x7000000 0x0>; 867 | starfive,pin-ioconfig = <0x1>; 868 | starfive,pin-gpio-dout = <0x1>; 869 | starfive,pin-gpio-doen = <0x0>; 870 | }; 871 | }; 872 | pcie1_perst_active { 873 | 874 | phandle = <0x41>; 875 | perst-pins { 876 | 877 | starfive,pins = <0x1c>; 878 | starfive,pinmux = <0x2a0 0x18 0x7000000 0x0>; 879 | starfive,pin-ioconfig = <0x1>; 880 | starfive,pin-gpio-dout = <0x0>; 881 | starfive,pin-gpio-doen = <0x0>; 882 | }; 883 | }; 884 | pcie1_wake_default { 885 | 886 | phandle = <0x3e>; 887 | wake-pins { 888 | 889 | starfive,pins = <0x15>; 890 | starfive,pinmux = <0x2a0 0x3 0x38 0x0>; 891 | starfive,pin-ioconfig = <0x1>; 892 | starfive,pin-gpio-doen = <0x1>; 893 | }; 894 | }; 895 | pcie1_clkreq_default { 896 | 897 | phandle = <0x3f>; 898 | clkreq-pins { 899 | 900 | starfive,pins = <0x1d>; 901 | starfive,pinmux = <0x2a0 0x1b 0x38000000 0x0>; 902 | starfive,pin-ioconfig = <0x1>; 903 | starfive,pin-gpio-doen = <0x1>; 904 | }; 905 | }; 906 | usb-pins { 907 | 908 | drive-vbus-pin { 909 | 910 | starfive,pins = <0x19>; 911 | starfive,pinmux = <0x2a0 0xf 0x38000 0x0>; 912 | starfive,pin-ioconfig = <0x1>; 913 | starfive,pin-gpio-dout = <0x7>; 914 | starfive,pin-gpio-doen = <0x0>; 915 | }; 916 | }; 917 | i2srx-pins { 918 | 919 | phandle = <0x35>; 920 | i2srx-pins0 { 921 | 922 | starfive,pins = <0x3d>; 923 | starfive,pinmux = <0x2ac 0x18 0x7000000 0x0>; 924 | starfive,pin-ioconfig = <0x1>; 925 | starfive,pin-gpio-doen = <0x1>; 926 | starfive,pin-gpio-din = <0x17>; 927 | }; 928 | }; 929 | i2s-clk0 { 930 | 931 | phandle = <0x34>; 932 | i2s-clk0_bclk { 933 | 934 | starfive,pins = <0x26>; 935 | starfive,pinmux = <0x2a4 0x17 0x3800000 0x0>; 936 | starfive,pin-ioconfig = <0x1>; 937 | starfive,pin-gpio-din = <0x21 0x1f>; 938 | starfive,pin-gpio-doen = <0x1>; 939 | }; 940 | i2s-clk0_lrclk { 941 | 942 | starfive,pins = <0x3f>; 943 | starfive,pinmux = <0x2ac 0x1e 0xc0000000 0x0>; 944 | starfive,pin-ioconfig = <0x1>; 945 | starfive,pin-gpio-din = <0x22 0x20>; 946 | starfive,pin-gpio-doen = <0x1>; 947 | }; 948 | }; 949 | i2stx-pins { 950 | 951 | phandle = <0x37>; 952 | i2stx-pins0 { 953 | 954 | starfive,pins = <0x2c>; 955 | starfive,pinmux = <0x2a8 0x9 0xe00 0x0>; 956 | starfive,pin-ioconfig = <0x1>; 957 | starfive,pin-gpio-dout = <0x45>; 958 | starfive,pin-gpio-doen = <0x0>; 959 | }; 960 | }; 961 | uart0-pins { 962 | 963 | phandle = <0x1f>; 964 | uart0-pins-tx { 965 | 966 | starfive,pins = <0x5>; 967 | starfive,pin-ioconfig = <0x7>; 968 | starfive,pin-gpio-dout = <0x14>; 969 | starfive,pin-gpio-doen = <0x0>; 970 | }; 971 | uart0-pins-rx { 972 | 973 | starfive,pins = <0x6>; 974 | starfive,pinmux = <0x2b0 0x0 0x3 0x0>; 975 | starfive,pin-ioconfig = <0x9>; 976 | starfive,pin-gpio-doen = <0x1>; 977 | starfive,pin-gpio-din = <0xe>; 978 | }; 979 | }; 980 | i2c2-pins { 981 | 982 | phandle = <0x23>; 983 | i2c2-pins-scl { 984 | 985 | starfive,pins = <0x3>; 986 | starfive,pin-ioconfig = <0x9>; 987 | starfive,pin-gpio-dout = <0x0>; 988 | starfive,pin-gpio-doen = <0x1e>; 989 | starfive,pin-gpio-din = <0x3b>; 990 | }; 991 | i2c2-pins-sda { 992 | 993 | starfive,pins = <0x2>; 994 | starfive,pin-ioconfig = <0x9>; 995 | starfive,pin-gpio-dout = <0x0>; 996 | starfive,pin-gpio-doen = <0x1f>; 997 | starfive,pin-gpio-din = <0x3c>; 998 | }; 999 | }; 1000 | mmc0-pins { 1001 | 1002 | phandle = <0x2c>; 1003 | mmc0-pins-rest { 1004 | 1005 | starfive,pins = <0x3e>; 1006 | starfive,pinmux = <0x2ac 0x1b 0x38000000 0x0>; 1007 | starfive,pin-ioconfig = <0x9>; 1008 | starfive,pin-gpio-dout = <0x13>; 1009 | starfive,pin-gpio-doen = <0x0>; 1010 | }; 1011 | }; 1012 | sdcard1-pins { 1013 | 1014 | phandle = <0x2d>; 1015 | sdcard1-pins0 { 1016 | 1017 | starfive,pins = <0xa>; 1018 | starfive,pinmux = <0x29c 0x2 0x1c 0x0>; 1019 | starfive,pin-ioconfig = <0xf>; 1020 | starfive,pin-gpio-dout = <0x37>; 1021 | starfive,pin-gpio-doen = <0x0>; 1022 | }; 1023 | sdcard1-pins1 { 1024 | 1025 | starfive,pins = <0x9>; 1026 | starfive,pinmux = <0x2b0 0x8 0x700 0x0>; 1027 | starfive,pin-ioconfig = <0xf>; 1028 | starfive,pin-gpio-dout = <0x39>; 1029 | starfive,pin-gpio-doen = <0x13>; 1030 | starfive,pin-gpio-din = <0x2c>; 1031 | }; 1032 | sdcard1-pins2 { 1033 | 1034 | starfive,pins = <0xb>; 1035 | starfive,pinmux = <0x29c 0x5 0xe0 0x0>; 1036 | starfive,pin-ioconfig = <0xf>; 1037 | starfive,pin-gpio-dout = <0x3a>; 1038 | starfive,pin-gpio-doen = <0x14>; 1039 | starfive,pin-gpio-din = <0x2d>; 1040 | }; 1041 | sdcard1-pins3 { 1042 | 1043 | starfive,pins = <0xc>; 1044 | starfive,pinmux = <0x29c 0x8 0x700 0x0>; 1045 | starfive,pin-ioconfig = <0xf>; 1046 | starfive,pin-gpio-dout = <0x3b>; 1047 | starfive,pin-gpio-doen = <0x15>; 1048 | starfive,pin-gpio-din = <0x2e>; 1049 | }; 1050 | sdcard1-pins4 { 1051 | 1052 | starfive,pins = <0x7>; 1053 | starfive,pinmux = <0x2b0 0x2 0x1c 0x0>; 1054 | starfive,pin-ioconfig = <0xf>; 1055 | starfive,pin-gpio-dout = <0x3c>; 1056 | starfive,pin-gpio-doen = <0x16>; 1057 | starfive,pin-gpio-din = <0x2f>; 1058 | }; 1059 | sdcard1-pins5 { 1060 | 1061 | starfive,pins = <0x8>; 1062 | starfive,pinmux = <0x2b0 0x5 0xe0 0x0>; 1063 | starfive,pin-ioconfig = <0xf>; 1064 | starfive,pin-gpio-dout = <0x3d>; 1065 | starfive,pin-gpio-doen = <0x17>; 1066 | starfive,pin-gpio-din = <0x30>; 1067 | }; 1068 | }; 1069 | inno_hdmi-pins { 1070 | 1071 | phandle = <0x4f>; 1072 | inno_hdmi-scl { 1073 | 1074 | starfive,pins = <0x0>; 1075 | starfive,pin-ioconfig = <0x9>; 1076 | starfive,pin-gpio-dout = <0xb>; 1077 | starfive,pin-gpio-doen = <0x3>; 1078 | starfive,pin-gpio-din = <0x6>; 1079 | }; 1080 | inno_hdmi-sda { 1081 | 1082 | starfive,pins = <0x1>; 1083 | starfive,pin-ioconfig = <0x9>; 1084 | starfive,pin-gpio-dout = <0xc>; 1085 | starfive,pin-gpio-doen = <0x4>; 1086 | starfive,pin-gpio-din = <0x7>; 1087 | }; 1088 | inno_hdmi-cec-pins { 1089 | 1090 | starfive,pins = <0xe>; 1091 | starfive,pin-ioconfig = <0x9>; 1092 | starfive,pin-gpio-doen = <0x2>; 1093 | starfive,pin-gpio-dout = <0xa>; 1094 | starfive,pin-gpio-din = <0x5>; 1095 | }; 1096 | inno_hdmi-hpd-pins { 1097 | 1098 | starfive,pins = <0xf>; 1099 | starfive,pin-ioconfig = <0x1>; 1100 | starfive,pin-gpio-doen = <0x1>; 1101 | starfive,pin-gpio-din = <0x8>; 1102 | }; 1103 | }; 1104 | mclk_ext_pins { 1105 | 1106 | phandle = <0x36>; 1107 | mclk_ext_pins { 1108 | 1109 | starfive,pins = <0x4>; 1110 | starfive,pin-ioconfig = <0x1>; 1111 | starfive,pin-gpio-din = <0x1e>; 1112 | starfive,pin-gpio-doen = <0x1>; 1113 | }; 1114 | }; 1115 | }; 1116 | gpio@17020000 { 1117 | 1118 | compatible = "starfive,jh7110-aon-pinctrl"; 1119 | reg = <0x0 0x17020000 0x0 0x10000>; 1120 | reg-names = "control"; 1121 | resets = <0x1c 0xa2>; 1122 | interrupts = <0x55>; 1123 | interrupt-controller; 1124 | #gpio-cells = <0x2>; 1125 | ngpios = <0x4>; 1126 | status = "okay"; 1127 | phandle = <0x58>; 1128 | }; 1129 | tmon@120e0000 { 1130 | 1131 | compatible = "starfive,jh7110-temp"; 1132 | reg = <0x0 0x120e0000 0x0 0x10000>; 1133 | interrupts = <0x51>; 1134 | clocks = <0x1b 0x82 0x1b 0x81>; 1135 | clock-names = "sense", "bus"; 1136 | resets = <0x1c 0x7c 0x1c 0x7b>; 1137 | reset-names = "sense", "bus"; 1138 | #thermal-sensor-cells = <0x0>; 1139 | status = "okay"; 1140 | phandle = <0x20>; 1141 | }; 1142 | thermal-zones { 1143 | 1144 | cpu-thermal { 1145 | 1146 | polling-delay-passive = <0xfa>; 1147 | polling-delay = <0x3a98>; 1148 | thermal-sensors = <0x20>; 1149 | cooling-maps { 1150 | 1151 | }; 1152 | trips { 1153 | 1154 | cpu_alert0 { 1155 | 1156 | temperature = <0x124f8>; 1157 | hysteresis = <0x7d0>; 1158 | type = "passive"; 1159 | }; 1160 | cpu_crit { 1161 | 1162 | temperature = <0x15f90>; 1163 | hysteresis = <0x7d0>; 1164 | type = "critical"; 1165 | }; 1166 | }; 1167 | }; 1168 | }; 1169 | trng@1600C000 { 1170 | 1171 | compatible = "starfive,jh7110-trng"; 1172 | reg = <0x0 0x1600c000 0x0 0x4000>; 1173 | clocks = <0x1b 0xcd 0x1b 0xce>; 1174 | clock-names = "hclk", "ahb"; 1175 | resets = <0x1c 0x83>; 1176 | interrupts = <0x1e>; 1177 | status = "okay"; 1178 | }; 1179 | sec_dma@16008000 { 1180 | 1181 | compatible = "arm,pl080", "arm,primecell"; 1182 | arm,primecell-periphid = <0x41080>; 1183 | reg = <0x0 0x16008000 0x0 0x4000>; 1184 | reg-names = "sec_dma"; 1185 | interrupts = <0x1d>; 1186 | clocks = <0x1b 0xcd 0x1b 0xce>; 1187 | clock-names = "sec_hclk", "apb_pclk"; 1188 | resets = <0x1c 0x83>; 1189 | reset-names = "sec_hre"; 1190 | lli-bus-interface-ahb1; 1191 | mem-bus-interface-ahb1; 1192 | memcpy-burst-size = <0x100>; 1193 | memcpy-bus-width = <0x20>; 1194 | #dma-cells = <0x2>; 1195 | status = "okay"; 1196 | phandle = <0x21>; 1197 | }; 1198 | crypto@16000000 { 1199 | 1200 | compatible = "starfive,jh7110-sec"; 1201 | reg = <0x0 0x16000000 0x0 0x4000 0x0 0x16008000 0x0 0x4000>; 1202 | reg-names = "secreg", "secdma"; 1203 | interrupts = <0x1c 0x1d>; 1204 | interrupt-names = "secirq", "dmairq"; 1205 | clocks = <0x1b 0xcd 0x1b 0xce>; 1206 | clock-names = "sec_hclk", "sec_ahb"; 1207 | resets = <0x1c 0x83>; 1208 | reset-names = "sec_hre"; 1209 | enable-side-channel-mitigation = "true"; 1210 | enable-dma = "true"; 1211 | dmas = <0x21 0x1 0x2 0x21 0x0 0x2>; 1212 | dma-names = "sec_m", "sec_p"; 1213 | status = "okay"; 1214 | }; 1215 | i2c@10030000 { 1216 | 1217 | compatible = "snps,designware-i2c"; 1218 | reg = <0x0 0x10030000 0x0 0x10000>; 1219 | clocks = <0x1b 0x125 0x1b 0x8a>; 1220 | clock-names = "ref", "pclk"; 1221 | resets = <0x1c 0x4c>; 1222 | interrupts = <0x23>; 1223 | #address-cells = <0x1>; 1224 | #size-cells = <0x0>; 1225 | status = "okay"; 1226 | clock-frequency = <0x186a0>; 1227 | i2c-sda-hold-time-ns = <0x12c>; 1228 | i2c-sda-falling-time-ns = <0x1fe>; 1229 | i2c-scl-falling-time-ns = <0x1fe>; 1230 | auto_calc_scl_lhcnt; 1231 | pinctrl-names = "default"; 1232 | pinctrl-0 = <0x22>; 1233 | }; 1234 | i2c@10040000 { 1235 | 1236 | compatible = "snps,designware-i2c"; 1237 | reg = <0x0 0x10040000 0x0 0x10000>; 1238 | clocks = <0x1b 0x126 0x1b 0x8b>; 1239 | clock-names = "ref", "pclk"; 1240 | resets = <0x1c 0x4d>; 1241 | interrupts = <0x24>; 1242 | #address-cells = <0x1>; 1243 | #size-cells = <0x0>; 1244 | status = "disabled"; 1245 | }; 1246 | i2c@10050000 { 1247 | 1248 | compatible = "snps,designware-i2c"; 1249 | reg = <0x0 0x10050000 0x0 0x10000>; 1250 | clocks = <0x1b 0x127 0x1b 0x8c>; 1251 | clock-names = "ref", "pclk"; 1252 | resets = <0x1c 0x4e>; 1253 | interrupts = <0x25>; 1254 | #address-cells = <0x1>; 1255 | #size-cells = <0x0>; 1256 | status = "okay"; 1257 | clock-frequency = <0x186a0>; 1258 | i2c-sda-hold-time-ns = <0x12c>; 1259 | i2c-sda-falling-time-ns = <0x1fe>; 1260 | i2c-scl-falling-time-ns = <0x1fe>; 1261 | auto_calc_scl_lhcnt; 1262 | pinctrl-names = "default"; 1263 | pinctrl-0 = <0x23>; 1264 | seeed_plane_i2c@45 { 1265 | 1266 | compatible = "seeed_panel"; 1267 | reg = <0x45>; 1268 | port { 1269 | 1270 | endpoint { 1271 | 1272 | remote-endpoint = <0x24>; 1273 | phandle = <0x4c>; 1274 | }; 1275 | }; 1276 | }; 1277 | panel_radxa@19 { 1278 | 1279 | compatible = "starfive_jadard"; 1280 | reg = <0x19>; 1281 | reset-gpio = <0x25 0x17 0x0>; 1282 | enable-gpio = <0x25 0x16 0x0>; 1283 | port { 1284 | 1285 | endpoint { 1286 | 1287 | remote-endpoint = <0x26>; 1288 | phandle = <0x4d>; 1289 | }; 1290 | }; 1291 | }; 1292 | }; 1293 | i2c@12030000 { 1294 | 1295 | compatible = "snps,designware-i2c"; 1296 | reg = <0x0 0x12030000 0x0 0x10000>; 1297 | clocks = <0x1b 0x128 0x1b 0x8d>; 1298 | clock-names = "ref", "pclk"; 1299 | resets = <0x1c 0x4f>; 1300 | interrupts = <0x30>; 1301 | #address-cells = <0x1>; 1302 | #size-cells = <0x0>; 1303 | status = "disabled"; 1304 | }; 1305 | i2c@12040000 { 1306 | 1307 | compatible = "snps,designware-i2c"; 1308 | reg = <0x0 0x12040000 0x0 0x10000>; 1309 | clocks = <0x1b 0x129 0x1b 0x8e>; 1310 | clock-names = "ref", "pclk"; 1311 | resets = <0x1c 0x50>; 1312 | interrupts = <0x31>; 1313 | #address-cells = <0x1>; 1314 | #size-cells = <0x0>; 1315 | status = "disabled"; 1316 | }; 1317 | i2c@12050000 { 1318 | 1319 | compatible = "snps,designware-i2c"; 1320 | reg = <0x0 0x12050000 0x0 0x10000>; 1321 | clocks = <0x1b 0x12a 0x1b 0x8f>; 1322 | clock-names = "ref", "pclk"; 1323 | resets = <0x1c 0x51>; 1324 | interrupts = <0x32>; 1325 | #address-cells = <0x1>; 1326 | #size-cells = <0x0>; 1327 | status = "okay"; 1328 | clock-frequency = <0x186a0>; 1329 | i2c-sda-hold-time-ns = <0x12c>; 1330 | i2c-sda-falling-time-ns = <0x1fe>; 1331 | i2c-scl-falling-time-ns = <0x1fe>; 1332 | auto_calc_scl_lhcnt; 1333 | pinctrl-names = "default"; 1334 | pinctrl-0 = <0x27>; 1335 | eeprom@50 { 1336 | 1337 | compatible = "atmel,24c04"; 1338 | reg = <0x50>; 1339 | pagesize = <0x10>; 1340 | }; 1341 | axp15060_reg@36 { 1342 | 1343 | compatible = "stf,axp15060-regulator"; 1344 | reg = <0x36>; 1345 | regulators { 1346 | 1347 | ALDO1 { 1348 | 1349 | regulator-boot-on; 1350 | regulator-compatible = "mipi_0p9"; 1351 | regulator-name = "mipi_0p9"; 1352 | regulator-min-microvolt = <0xdbba0>; 1353 | regulator-max-microvolt = <0xdbba0>; 1354 | }; 1355 | ALDO5 { 1356 | 1357 | regulator-boot-on; 1358 | regulator-compatible = "hdmi_0p9"; 1359 | regulator-name = "hdmi_0p9"; 1360 | regulator-min-microvolt = <0xdbba0>; 1361 | regulator-max-microvolt = <0xdbba0>; 1362 | }; 1363 | ALDO3 { 1364 | 1365 | regulator-boot-on; 1366 | regulator-compatible = "hdmi_1p8"; 1367 | regulator-name = "hdmi_1p8"; 1368 | regulator-min-microvolt = <0x1b7740>; 1369 | regulator-max-microvolt = <0x1b7740>; 1370 | }; 1371 | DCDC2 { 1372 | 1373 | regulator-boot-on; 1374 | regulator-always-on; 1375 | regulator-compatible = "cpu_vdd"; 1376 | regulator-name = "cpu_vdd"; 1377 | regulator-min-microvolt = <0x7a120>; 1378 | regulator-max-microvolt = <0x177fa0>; 1379 | }; 1380 | }; 1381 | }; 1382 | }; 1383 | i2c@12060000 { 1384 | 1385 | compatible = "snps,designware-i2c"; 1386 | reg = <0x0 0x12060000 0x0 0x10000>; 1387 | clocks = <0x1b 0x12b 0x1b 0x90>; 1388 | clock-names = "ref", "pclk"; 1389 | resets = <0x1c 0x52>; 1390 | interrupts = <0x33>; 1391 | #address-cells = <0x1>; 1392 | #size-cells = <0x0>; 1393 | status = "okay"; 1394 | clock-frequency = <0x186a0>; 1395 | i2c-sda-hold-time-ns = <0x12c>; 1396 | i2c-sda-falling-time-ns = <0x1fe>; 1397 | i2c-scl-falling-time-ns = <0x1fe>; 1398 | auto_calc_scl_lhcnt; 1399 | pinctrl-names = "default"; 1400 | pinctrl-0 = <0x28>; 1401 | imx219@10 { 1402 | 1403 | compatible = "sony,imx219"; 1404 | reg = <0x10>; 1405 | clocks = <0x29>; 1406 | clock-names = "xclk"; 1407 | pinctrl-names = "default"; 1408 | pinctrl-0 = <0x2a>; 1409 | rotation = <0x0>; 1410 | orientation = <0x1>; 1411 | port { 1412 | 1413 | endpoint { 1414 | 1415 | remote-endpoint = <0x2b>; 1416 | bus-type = <0x4>; 1417 | clock-lanes = <0x4>; 1418 | data-lanes = <0x0 0x1>; 1419 | lane-polarities = <0x0 0x0 0x0>; 1420 | link-frequencies = <0x0 0x1b2e0200>; 1421 | phandle = <0x30>; 1422 | }; 1423 | }; 1424 | }; 1425 | }; 1426 | sdio0@16010000 { 1427 | 1428 | compatible = "starfive,jh7110-sdio"; 1429 | reg = <0x0 0x16010000 0x0 0x10000>; 1430 | clocks = <0x1b 0x5b 0x1b 0x5d>; 1431 | clock-names = "biu", "ciu"; 1432 | resets = <0x1c 0x40>; 1433 | reset-names = "reset"; 1434 | interrupts = <0x4a>; 1435 | fifo-depth = <0x20>; 1436 | fifo-watermark-aligned; 1437 | data-addr = <0x0>; 1438 | starfive,sys-syscon = <0x17 0x14 0x1a 0x7c000000>; 1439 | status = "okay"; 1440 | max-frequency = <0x5f5e100>; 1441 | card-detect-delay = <0x12c>; 1442 | bus-width = <0x8>; 1443 | cap-mmc-highspeed; 1444 | mmc-ddr-1_8v; 1445 | mmc-hs200-1_8v; 1446 | non-removable; 1447 | cap-mmc-hw-reset; 1448 | post-power-on-delay-ms = <0xc8>; 1449 | pinctrl-names = "default"; 1450 | pinctrl-0 = <0x2c>; 1451 | }; 1452 | sdio1@16020000 { 1453 | 1454 | compatible = "starfive,jh7110-sdio"; 1455 | reg = <0x0 0x16020000 0x0 0x10000>; 1456 | clocks = <0x1b 0x5c 0x1b 0x5e>; 1457 | clock-names = "biu", "ciu"; 1458 | resets = <0x1c 0x41>; 1459 | reset-names = "reset"; 1460 | interrupts = <0x4b>; 1461 | fifo-depth = <0x20>; 1462 | fifo-watermark-aligned; 1463 | data-addr = <0x0>; 1464 | starfive,sys-syscon = <0x17 0x9c 0x1 0x3e>; 1465 | status = "okay"; 1466 | max-frequency = <0x5f5e100>; 1467 | card-detect-delay = <0x12c>; 1468 | bus-width = <0x4>; 1469 | no-sdio; 1470 | no-mmc; 1471 | broken-cd; 1472 | cap-sd-highspeed; 1473 | post-power-on-delay-ms = <0xc8>; 1474 | pinctrl-names = "default"; 1475 | pinctrl-0 = <0x2d>; 1476 | }; 1477 | vin_sysctl@19800000 { 1478 | 1479 | compatible = "starfive,jh7110-vin"; 1480 | reg = <0x0 0x19800000 0x0 0x10000 0x0 0x19810000 0x0 0x10000 0x0 0x19820000 0x0 0x10000 0x0 0x19840000 0x0 0x10000 0x0 0x19870000 0x0 0x30000 0x0 0x11840000 0x0 0x10000 0x0 0x17030000 0x0 0x10000 0x0 0x13020000 0x0 0x10000>; 1481 | reg-names = "csi2rx", "vclk", "vrst", "sctrl", "isp", "trst", "pmu", "syscrg"; 1482 | clocks = <0x2e 0x0 0x2e 0x6 0x2e 0x7 0x2e 0xd 0x2e 0x2 0x2e 0xc 0x2e 0x1 0x2e 0x8 0x2e 0x9 0x2e 0xa 0x2e 0xb 0x2e 0x3 0x2e 0x4 0x2e 0x5 0x1b 0x33 0x1b 0x34>; 1483 | clock-names = "clk_apb_func", "clk_pclk", "clk_sys_clk", "clk_wrapper_clk_c", "clk_dvp_inv", "clk_axiwr", "clk_mipi_rx0_pxl", "clk_pixel_clk_if0", "clk_pixel_clk_if1", "clk_pixel_clk_if2", "clk_pixel_clk_if3", "clk_m31dphy_cfgclk_in", "clk_m31dphy_refclk_in", "clk_m31dphy_txclkesc_lan0", "clk_ispcore_2x", "clk_isp_axi"; 1484 | resets = <0x1c 0xc0 0x1c 0xc1 0x1c 0xc4 0x1c 0xc9 0x1c 0xca 0x1c 0xcb 0x1c 0xc5 0x1c 0xc6 0x1c 0xc7 0x1c 0xc8 0x1c 0xc2 0x1c 0xc3 0x1c 0x29 0x1c 0x2a>; 1485 | reset-names = "rst_wrapper_p", "rst_wrapper_c", "rst_pclk", "rst_sys_clk", "rst_axird", "rst_axiwr", "rst_pixel_clk_if0", "rst_pixel_clk_if1", "rst_pixel_clk_if2", "rst_pixel_clk_if3", "rst_m31dphy_hw", "rst_m31dphy_b09_always_on", "rst_isp_top_n", "rst_isp_top_axi"; 1486 | starfive,aon-syscon = <0x2f 0x0>; 1487 | power-domains = <0x1d 0x5>; 1488 | interrupts = <0x5c 0x57 0x58 0x59 0x5a>; 1489 | status = "okay"; 1490 | ports { 1491 | 1492 | #address-cells = <0x1>; 1493 | #size-cells = <0x0>; 1494 | port@1 { 1495 | 1496 | reg = <0x1>; 1497 | #address-cells = <0x1>; 1498 | #size-cells = <0x0>; 1499 | endpoint@0 { 1500 | 1501 | reg = <0x0>; 1502 | remote-endpoint = <0x30>; 1503 | bus-type = <0x4>; 1504 | clock-lanes = <0x4>; 1505 | data-lanes = <0x0 0x1>; 1506 | lane-polarities = <0x0 0x0 0x0>; 1507 | status = "okay"; 1508 | phandle = <0x2b>; 1509 | }; 1510 | }; 1511 | }; 1512 | }; 1513 | jpu@11900000 { 1514 | 1515 | compatible = "starfive,jpu"; 1516 | reg = <0x0 0x13090000 0x0 0x300>; 1517 | interrupts = <0xe>; 1518 | clocks = <0x1b 0x42 0x1b 0x43 0x1b 0x44 0x1b 0x4c>; 1519 | clock-names = "axi_clk", "core_clk", "apb_clk", "noc_bus"; 1520 | resets = <0x1c 0x2c 0x1c 0x2d 0x1c 0x2e>; 1521 | reset-names = "rst_axi", "rst_core", "rst_apb"; 1522 | power-domains = <0x1d 0x3>; 1523 | status = "okay"; 1524 | }; 1525 | vpu_dec@130A0000 { 1526 | 1527 | compatible = "starfive,vdec"; 1528 | reg = <0x0 0x130a0000 0x0 0x10000>; 1529 | interrupts = <0xd>; 1530 | clocks = <0x1b 0x46 0x1b 0x47 0x1b 0x48 0x1b 0x49 0x1b 0x4c>; 1531 | clock-names = "axi_clk", "bpu_clk", "vce_clk", "apb_clk", "noc_bus"; 1532 | resets = <0x1c 0x2f 0x1c 0x30 0x1c 0x31 0x1c 0x32 0x1c 0x35>; 1533 | reset-names = "rst_axi", "rst_bpu", "rst_vce", "rst_apb", "rst_sram"; 1534 | starfive,vdec_noc_ctrl; 1535 | power-domains = <0x1d 0x3>; 1536 | status = "okay"; 1537 | }; 1538 | vpu_enc@130B0000 { 1539 | 1540 | compatible = "starfive,venc"; 1541 | reg = <0x0 0x130b0000 0x0 0x10000>; 1542 | interrupts = <0xf>; 1543 | clocks = <0x1b 0x4e 0x1b 0x4f 0x1b 0x50 0x1b 0x51 0x1b 0x52>; 1544 | clock-names = "axi_clk", "bpu_clk", "vce_clk", "apb_clk", "noc_bus"; 1545 | resets = <0x1c 0x36 0x1c 0x37 0x1c 0x38 0x1c 0x39 0x1c 0x3a>; 1546 | reset-names = "rst_axi", "rst_bpu", "rst_vce", "rst_apb", "rst_sram"; 1547 | starfive,venc_noc_ctrl; 1548 | power-domains = <0x1d 0x6>; 1549 | status = "okay"; 1550 | }; 1551 | reset-controller { 1552 | 1553 | compatible = "starfive,jh7110-reset"; 1554 | reg = <0x0 0x13020000 0x0 0x10000 0x0 0x10230000 0x0 0x10000 0x0 0x17000000 0x0 0x10000 0x0 0x19810000 0x0 0x10000 0x0 0x295c0000 0x0 0x10000>; 1555 | reg-names = "syscrg", "stgcrg", "aoncrg", "ispcrg", "voutcrg"; 1556 | #reset-cells = <0x1>; 1557 | status = "okay"; 1558 | phandle = <0x1c>; 1559 | }; 1560 | stmmac-axi-config { 1561 | 1562 | snps,wr_osr_lmt = <0xf>; 1563 | snps,rd_osr_lmt = <0xf>; 1564 | snps,blen = <0x100 0x80 0x40 0x20 0x0 0x0 0x0>; 1565 | phandle = <0x31>; 1566 | }; 1567 | ethernet@16030000 { 1568 | 1569 | local-mac-address = [6c cf 39 00 1d c5]; 1570 | compatible = "starfive,dwmac", "snps,dwmac-5.10a"; 1571 | reg = <0x0 0x16030000 0x0 0x10000>; 1572 | clock-names = "gtx", "tx", "ptp_ref", "stmmaceth", "pclk", "gtxc", "rmii_rtx"; 1573 | clocks = <0x1b 0x6c 0x1b 0xe0 0x1b 0x6d 0x1b 0xdd 0x1b 0xde 0x1b 0x6f 0x1b 0xdf>; 1574 | resets = <0x1c 0xa1 0x1c 0xa0>; 1575 | reset-names = "ahb", "stmmaceth"; 1576 | interrupts = <0x7 0x6 0x5>; 1577 | interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; 1578 | max-frame-size = <0x2328>; 1579 | phy-mode = "rgmii-id"; 1580 | snps,multicast-filter-bins = <0x40>; 1581 | snps,perfect-filter-entries = <0x80>; 1582 | rx-fifo-depth = <0x800>; 1583 | tx-fifo-depth = <0x800>; 1584 | snps,fixed-burst; 1585 | snps,no-pbl-x8; 1586 | snps,force_thresh_dma_mode; 1587 | snps,axi-config = <0x31>; 1588 | snps,tso; 1589 | snps,en-tx-lpi-clockgating; 1590 | snps,en-lpi; 1591 | snps,write-requests = <0x4>; 1592 | snps,read-requests = <0x4>; 1593 | snps,burst-map = <0x7>; 1594 | snps,txpbl = <0x10>; 1595 | snps,rxpbl = <0x10>; 1596 | status = "okay"; 1597 | #address-cells = <0x1>; 1598 | #size-cells = <0x0>; 1599 | ethernet-phy@0 { 1600 | 1601 | rxc_dly_en = <0x1>; 1602 | tx_delay_sel_fe = <0x5>; 1603 | tx_delay_sel = <0xa>; 1604 | tx_inverted_10 = <0x1>; 1605 | tx_inverted_100 = <0x1>; 1606 | tx_inverted_1000 = <0x1>; 1607 | }; 1608 | }; 1609 | ethernet@16040000 { 1610 | 1611 | local-mac-address = [6c cf 39 00 1d c6]; 1612 | compatible = "starfive,dwmac", "snps,dwmac-5.10a"; 1613 | reg = <0x0 0x16040000 0x0 0x10000>; 1614 | clock-names = "gtx", "tx", "ptp_ref", "stmmaceth", "pclk", "gtxc", "rmii_rtx"; 1615 | clocks = <0x1b 0x64 0x1b 0x69 0x1b 0x66 0x1b 0x61 0x1b 0x62 0x1b 0x6b 0x1b 0x65>; 1616 | resets = <0x1c 0x43 0x1c 0x42>; 1617 | reset-names = "ahb", "stmmaceth"; 1618 | interrupts = <0x4e 0x4d 0x4c>; 1619 | interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; 1620 | max-frame-size = <0x2328>; 1621 | phy-mode = "rgmii-id"; 1622 | snps,multicast-filter-bins = <0x40>; 1623 | snps,perfect-filter-entries = <0x80>; 1624 | rx-fifo-depth = <0x800>; 1625 | tx-fifo-depth = <0x800>; 1626 | snps,fixed-burst; 1627 | snps,no-pbl-x8; 1628 | snps,force_thresh_dma_mode; 1629 | snps,axi-config = <0x31>; 1630 | snps,tso; 1631 | snps,en-tx-lpi-clockgating; 1632 | snps,en-lpi; 1633 | snps,write-requests = <0x4>; 1634 | snps,read-requests = <0x4>; 1635 | snps,burst-map = <0x7>; 1636 | snps,txpbl = <0x10>; 1637 | snps,rxpbl = <0x10>; 1638 | status = "okay"; 1639 | #address-cells = <0x1>; 1640 | #size-cells = <0x0>; 1641 | ethernet-phy@1 { 1642 | 1643 | tx_delay_sel_fe = <0x5>; 1644 | tx_delay_sel = <0x0>; 1645 | rxc_dly_en = <0x0>; 1646 | tx_inverted_10 = <0x1>; 1647 | tx_inverted_100 = <0x1>; 1648 | tx_inverted_1000 = <0x0>; 1649 | }; 1650 | }; 1651 | gpu@18000000 { 1652 | 1653 | compatible = "img-gpu"; 1654 | reg = <0x0 0x18000000 0x0 0x100000 0x0 0x130c000 0x0 0x10000>; 1655 | clocks = <0x1b 0x2d 0x1b 0x30 0x1b 0x31 0x1b 0x2e 0x1b 0x2f 0x1b 0x32>; 1656 | clock-names = "clk_bv", "clk_apb", "clk_rtc", "clk_core", "clk_sys", "clk_axi"; 1657 | resets = <0x1c 0x15 0x1c 0x16>; 1658 | reset-names = "rst_apb", "rst_doma"; 1659 | power-domains = <0x1d 0x2>; 1660 | interrupts = <0x52>; 1661 | current-clock = <0x7a1200>; 1662 | status = "okay"; 1663 | }; 1664 | can@130d0000 { 1665 | 1666 | compatible = "starfive,jh7110-can", "ipms,can"; 1667 | reg = <0x0 0x130d0000 0x0 0x1000>; 1668 | interrupts = <0x70>; 1669 | clocks = <0x1b 0x73 0x1b 0x75 0x1b 0x74>; 1670 | clock-names = "apb_clk", "core_clk", "timer_clk"; 1671 | resets = <0x1c 0x6f 0x1c 0x70 0x1c 0x71>; 1672 | reset-names = "rst_apb", "rst_core", "rst_timer"; 1673 | frequency = <0x2625a00>; 1674 | starfive,sys-syscon = <0x17 0x10 0x3 0x8>; 1675 | syscon,can_or_canfd = <0x0>; 1676 | status = "disabled"; 1677 | }; 1678 | can@130e0000 { 1679 | 1680 | compatible = "starfive,jh7110-can", "ipms,can"; 1681 | reg = <0x0 0x130e0000 0x0 0x1000>; 1682 | interrupts = <0x71>; 1683 | clocks = <0x1b 0x76 0x1b 0x78 0x1b 0x77>; 1684 | clock-names = "apb_clk", "core_clk", "timer_clk"; 1685 | resets = <0x1c 0x72 0x1c 0x73 0x1c 0x74>; 1686 | reset-names = "rst_apb", "rst_core", "rst_timer"; 1687 | frequency = <0x2625a00>; 1688 | starfive,sys-syscon = <0x17 0x88 0x12 0x40000>; 1689 | syscon,can_or_canfd = <0x1>; 1690 | status = "disabled"; 1691 | }; 1692 | tdm@10090000 { 1693 | 1694 | compatible = "starfive,jh7110-tdm"; 1695 | reg = <0x0 0x10090000 0x0 0x1000>; 1696 | reg-names = "tdm"; 1697 | clocks = <0x1b 0x9 0x1b 0xb8 0x1b 0xc 0x1b 0xb9 0x1b 0xba 0x10 0x1b 0xbb 0x1b 0x11>; 1698 | clock-names = "clk_ahb0", "clk_tdm_ahb", "clk_apb0", "clk_tdm_apb", "clk_tdm_internal", "clk_tdm_ext", "clk_tdm", "mclk_inner"; 1699 | resets = <0x1c 0x69 0x1c 0x6b 0x1c 0x6a>; 1700 | reset-names = "tdm_ahb", "tdm_apb", "tdm_rst"; 1701 | dmas = <0x32 0x14 0x1 0x32 0x15 0x1>; 1702 | dma-names = "rx", "tx"; 1703 | #sound-dai-cells = <0x0>; 1704 | status = "disabled"; 1705 | }; 1706 | spdif0@100a0000 { 1707 | 1708 | compatible = "starfive,jh7110-spdif"; 1709 | reg = <0x0 0x100a0000 0x0 0x1000>; 1710 | clocks = <0x1b 0x9f 0x1b 0xa0 0x1b 0x10 0x1b 0x11 0x11 0x1b 0x12>; 1711 | clock-names = "spdif-apb", "spdif-core", "audroot", "mclk_inner", "mclk_ext", "mclk"; 1712 | resets = <0x1c 0x5f>; 1713 | reset-names = "rst_apb"; 1714 | interrupts = <0x54>; 1715 | interrupt-names = "tx"; 1716 | #sound-dai-cells = <0x0>; 1717 | status = "disabled"; 1718 | }; 1719 | pwmdac@100b0000 { 1720 | 1721 | compatible = "starfive,jh7110-pwmdac"; 1722 | reg = <0x0 0x100b0000 0x0 0x1000>; 1723 | clocks = <0x1b 0xc 0x1b 0x9d 0x1b 0x9e>; 1724 | clock-names = "apb0", "pwmdac-apb", "pwmdac-core"; 1725 | resets = <0x1c 0x60>; 1726 | reset-names = "rst-apb"; 1727 | dmas = <0x32 0x16 0x1>; 1728 | dma-names = "tx"; 1729 | #sound-dai-cells = <0x0>; 1730 | status = "okay"; 1731 | pinctrl-names = "default"; 1732 | pinctrl-0 = <0x33>; 1733 | phandle = <0x55>; 1734 | }; 1735 | i2stx@100c0000 { 1736 | 1737 | compatible = "snps,designware-i2stx"; 1738 | reg = <0x0 0x100c0000 0x0 0x1000>; 1739 | interrupt-names = "tx"; 1740 | #sound-dai-cells = <0x0>; 1741 | dmas = <0x32 0x1c 0x1>; 1742 | dma-names = "rx"; 1743 | status = "disabled"; 1744 | }; 1745 | pdm@100d0000 { 1746 | 1747 | compatible = "starfive,jh7110-pdm"; 1748 | reg = <0x0 0x100d0000 0x0 0x1000>; 1749 | reg-names = "pdm"; 1750 | clocks = <0x1b 0xb6 0x1b 0xc 0x1b 0xb7 0x1b 0x12 0x11>; 1751 | clock-names = "pdm_mclk", "clk_apb0", "pdm_apb", "clk_mclk", "mclk_ext"; 1752 | resets = <0x1c 0x61 0x1c 0x62>; 1753 | reset-names = "pdm_dmic", "pdm_apb"; 1754 | #sound-dai-cells = <0x0>; 1755 | }; 1756 | i2srx_mst@100e0000 { 1757 | 1758 | compatible = "starfive,jh7110-i2srx-master"; 1759 | reg = <0x0 0x100e0000 0x0 0x1000>; 1760 | clocks = <0x1b 0xc 0x1b 0xaf 0x1b 0xb0 0x1b 0xb2 0x1b 0xb3 0x1b 0xb5>; 1761 | clock-names = "apb0", "i2srx_apb", "i2srx_bclk_mst", "i2srx_lrck_mst", "i2srx_bclk", "i2srx_lrck"; 1762 | resets = <0x1c 0x63 0x1c 0x64>; 1763 | reset-names = "rst_apb_rx", "rst_bclk_rx"; 1764 | dmas = <0x32 0x18 0x1>; 1765 | dma-names = "rx"; 1766 | starfive,sys-syscon = <0x17 0x18 0x34>; 1767 | #sound-dai-cells = <0x0>; 1768 | status = "disabled"; 1769 | }; 1770 | i2srx_3ch@100e0000 { 1771 | 1772 | compatible = "starfive,jh7110-i2srx", "snps,designware-i2s"; 1773 | reg = <0x0 0x100e0000 0x0 0x1000>; 1774 | clocks = <0x1b 0xc 0x1b 0xaf 0x1b 0x10 0x1b 0x11 0x1b 0xb0 0x1b 0xb2 0x1b 0xb3 0x1b 0xb5 0x1b 0x12 0xe 0xf>; 1775 | clock-names = "apb0", "3ch-apb", "audioroot", "mclk-inner", "bclk_mst", "3ch-lrck", "rx-bclk", "rx-lrck", "mclk", "bclk-ext", "lrck-ext"; 1776 | resets = <0x1c 0x63 0x1c 0x64>; 1777 | dmas = <0x32 0x18 0x1>; 1778 | dma-names = "rx"; 1779 | starfive,sys-syscon = <0x17 0x18 0x34>; 1780 | #sound-dai-cells = <0x0>; 1781 | status = "disabled"; 1782 | pinctrl-names = "default"; 1783 | pinctrl-0 = <0x34 0x35>; 1784 | }; 1785 | i2stx_4ch0@120b0000 { 1786 | 1787 | compatible = "starfive,jh7110-i2stx-4ch0", "snps,designware-i2s"; 1788 | reg = <0x0 0x120b0000 0x0 0x1000>; 1789 | clocks = <0x1b 0x11 0x1b 0xa2 0x1b 0xa4 0x1b 0x12 0x1b 0xa5 0x1b 0xa7 0x1b 0xa1 0x11>; 1790 | clock-names = "inner", "bclk-mst", "lrck-mst", "mclk", "bclk0", "lrck0", "i2s_apb", "mclk_ext"; 1791 | resets = <0x1c 0x65 0x1c 0x66>; 1792 | reset-names = "rst_apb", "rst_bclk"; 1793 | dmas = <0x32 0x2f 0x1>; 1794 | dma-names = "tx"; 1795 | #sound-dai-cells = <0x0>; 1796 | status = "okay"; 1797 | pinctrl-names = "default"; 1798 | pinctrl-0 = <0x36>; 1799 | phandle = <0x52>; 1800 | }; 1801 | i2stx_4ch1@120c0000 { 1802 | 1803 | compatible = "starfive,jh7110-i2stx-4ch1", "snps,designware-i2s"; 1804 | reg = <0x0 0x120c0000 0x0 0x1000>; 1805 | clocks = <0x1b 0x10 0x1b 0x11 0x1b 0xa9 0x1b 0xab 0x1b 0x12 0x1b 0xac 0x1b 0xae 0x1b 0x13 0x1b 0xc 0x1b 0xa8 0x11 0xc 0xd>; 1806 | clock-names = "audroot", "mclk_inner", "bclk_mst", "lrck_mst", "mclk", "4chbclk", "4chlrck", "mclk_out", "apb0", "clk_apb", "mclk_ext", "bclk_ext", "lrck_ext"; 1807 | resets = <0x1c 0x67 0x1c 0x68>; 1808 | dmas = <0x32 0x30 0x1>; 1809 | dma-names = "tx"; 1810 | #sound-dai-cells = <0x0>; 1811 | status = "disabled"; 1812 | pinctrl-names = "default"; 1813 | pinctrl-0 = <0x37>; 1814 | }; 1815 | pwm@120d0000 { 1816 | 1817 | compatible = "starfive,jh7110-pwm"; 1818 | reg = <0x0 0x120d0000 0x0 0x10000>; 1819 | reg-names = "control"; 1820 | clocks = <0x1b 0x79>; 1821 | resets = <0x1c 0x6c>; 1822 | starfive,approx-freq = <0x1e8480>; 1823 | #pwm-cells = <0x3>; 1824 | starfive,npwm = <0x8>; 1825 | status = "okay"; 1826 | pinctrl-names = "default"; 1827 | pinctrl-0 = <0x38>; 1828 | }; 1829 | spdif_transmitter { 1830 | 1831 | compatible = "linux,spdif-dit"; 1832 | #sound-dai-cells = <0x0>; 1833 | status = "disabled"; 1834 | }; 1835 | pwmdac-transmitter { 1836 | 1837 | compatible = "starfive,jh7110-pwmdac-dit"; 1838 | #sound-dai-cells = <0x0>; 1839 | status = "okay"; 1840 | phandle = <0x56>; 1841 | }; 1842 | dmic_codec { 1843 | 1844 | compatible = "dmic-codec"; 1845 | #sound-dai-cells = <0x0>; 1846 | status = "disabled"; 1847 | }; 1848 | spi@10060000 { 1849 | 1850 | compatible = "arm,pl022", "arm,primecell"; 1851 | reg = <0x0 0x10060000 0x0 0x10000>; 1852 | clocks = <0x1b 0x83>; 1853 | clock-names = "apb_pclk"; 1854 | resets = <0x1c 0x45>; 1855 | reset-names = "rst_apb"; 1856 | interrupts = <0x26>; 1857 | arm,primecell-periphid = <0x41022>; 1858 | num-cs = <0x1>; 1859 | #address-cells = <0x1>; 1860 | #size-cells = <0x0>; 1861 | status = "okay"; 1862 | pinctrl-names = "default"; 1863 | pinctrl-0 = <0x39>; 1864 | spi@0 { 1865 | 1866 | compatible = "rohm,dh2228fv"; 1867 | pl022,com-mode = <0x1>; 1868 | spi-max-frequency = <0x989680>; 1869 | reg = <0x0>; 1870 | status = "okay"; 1871 | }; 1872 | }; 1873 | spi@10070000 { 1874 | 1875 | compatible = "arm,pl022", "arm,primecell"; 1876 | reg = <0x0 0x10070000 0x0 0x10000>; 1877 | clocks = <0x1b 0x84>; 1878 | clock-names = "apb_pclk"; 1879 | resets = <0x1c 0x46>; 1880 | reset-names = "rst_apb"; 1881 | interrupts = <0x27>; 1882 | arm,primecell-periphid = <0x41022>; 1883 | num-cs = <0x1>; 1884 | #address-cells = <0x1>; 1885 | #size-cells = <0x0>; 1886 | status = "disabled"; 1887 | }; 1888 | spi@10080000 { 1889 | 1890 | compatible = "arm,pl022", "arm,primecell"; 1891 | reg = <0x0 0x10080000 0x0 0x10000>; 1892 | clocks = <0x1b 0x85>; 1893 | clock-names = "apb_pclk"; 1894 | resets = <0x1c 0x47>; 1895 | reset-names = "rst_apb"; 1896 | interrupts = <0x28>; 1897 | arm,primecell-periphid = <0x41022>; 1898 | num-cs = <0x1>; 1899 | #address-cells = <0x1>; 1900 | #size-cells = <0x0>; 1901 | status = "disabled"; 1902 | }; 1903 | spi@12070000 { 1904 | 1905 | compatible = "arm,pl022", "arm,primecell"; 1906 | reg = <0x0 0x12070000 0x0 0x10000>; 1907 | clocks = <0x1b 0x86>; 1908 | clock-names = "apb_pclk"; 1909 | resets = <0x1c 0x48>; 1910 | reset-names = "rst_apb"; 1911 | interrupts = <0x34>; 1912 | arm,primecell-periphid = <0x41022>; 1913 | num-cs = <0x1>; 1914 | #address-cells = <0x1>; 1915 | #size-cells = <0x0>; 1916 | status = "disabled"; 1917 | }; 1918 | spi@12080000 { 1919 | 1920 | compatible = "arm,pl022", "arm,primecell"; 1921 | reg = <0x0 0x12080000 0x0 0x10000>; 1922 | clocks = <0x1b 0x87>; 1923 | clock-names = "apb_pclk"; 1924 | resets = <0x1c 0x49>; 1925 | reset-names = "rst_apb"; 1926 | interrupts = <0x35>; 1927 | arm,primecell-periphid = <0x41022>; 1928 | num-cs = <0x1>; 1929 | #address-cells = <0x1>; 1930 | #size-cells = <0x0>; 1931 | status = "disabled"; 1932 | }; 1933 | spi@12090000 { 1934 | 1935 | compatible = "arm,pl022", "arm,primecell"; 1936 | reg = <0x0 0x12090000 0x0 0x10000>; 1937 | clocks = <0x1b 0x88>; 1938 | clock-names = "apb_pclk"; 1939 | resets = <0x1c 0x4a>; 1940 | reset-names = "rst_apb"; 1941 | interrupts = <0x36>; 1942 | arm,primecell-periphid = <0x41022>; 1943 | num-cs = <0x1>; 1944 | #address-cells = <0x1>; 1945 | #size-cells = <0x0>; 1946 | status = "disabled"; 1947 | }; 1948 | spi@120A0000 { 1949 | 1950 | compatible = "arm,pl022", "arm,primecell"; 1951 | reg = <0x0 0x120a0000 0x0 0x10000>; 1952 | clocks = <0x1b 0x89>; 1953 | clock-names = "apb_pclk"; 1954 | resets = <0x1c 0x4b>; 1955 | reset-names = "rst_apb"; 1956 | interrupts = <0x37>; 1957 | arm,primecell-periphid = <0x41022>; 1958 | num-cs = <0x1>; 1959 | #address-cells = <0x1>; 1960 | #size-cells = <0x0>; 1961 | status = "disabled"; 1962 | }; 1963 | pcie@2B000000 { 1964 | 1965 | compatible = "starfive,jh7110-pcie", "plda,pci-xpressrich3-axi"; 1966 | #address-cells = <0x3>; 1967 | #size-cells = <0x2>; 1968 | #interrupt-cells = <0x1>; 1969 | reg = <0x0 0x2b000000 0x0 0x1000000 0x9 0x40000000 0x0 0x10000000>; 1970 | reg-names = "reg", "config"; 1971 | device_type = "pci"; 1972 | starfive,stg-syscon = <0x1e 0xc0 0xc4 0x130 0x1b8>; 1973 | bus-range = <0x0 0xff>; 1974 | ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x8000000 0xc3000000 0x9 0x0 0x9 0x0 0x0 0x40000000>; 1975 | msi-parent = <0x3>; 1976 | interrupts = <0x38>; 1977 | interrupt-controller; 1978 | interrupt-names = "msi"; 1979 | interrupt-parent = <0x3>; 1980 | interrupt-map-mask = <0x0 0x0 0x0 0x7>; 1981 | interrupt-map = <0x0 0x0 0x0 0x1 0x3 0x1 0x0 0x0 0x0 0x2 0x3 0x2 0x0 0x0 0x0 0x3 0x3 0x3 0x0 0x0 0x0 0x4 0x3 0x4>; 1982 | resets = <0x1c 0x8b 0x1c 0x8c 0x1c 0x8d 0x1c 0x8e 0x1c 0x8f 0x1c 0x90>; 1983 | reset-names = "rst_mst0", "rst_slv0", "rst_slv", "rst_brg", "rst_core", "rst_apb"; 1984 | clocks = <0x1b 0x60 0x1b 0xc8 0x1b 0xc6 0x1b 0xc7>; 1985 | clock-names = "noc", "tl", "axi_mst0", "apb"; 1986 | status = "okay"; 1987 | pinctrl-names = "default", "perst-default", "perst-active"; 1988 | pinctrl-0 = <0x3a 0x3b>; 1989 | pinctrl-1 = <0x3c>; 1990 | pinctrl-2 = <0x3d>; 1991 | }; 1992 | pcie@2C000000 { 1993 | 1994 | compatible = "starfive,jh7110-pcie", "plda,pci-xpressrich3-axi"; 1995 | #address-cells = <0x3>; 1996 | #size-cells = <0x2>; 1997 | #interrupt-cells = <0x1>; 1998 | reg = <0x0 0x2c000000 0x0 0x1000000 0x9 0xc0000000 0x0 0x10000000>; 1999 | reg-names = "reg", "config"; 2000 | device_type = "pci"; 2001 | starfive,stg-syscon = <0x1e 0x270 0x274 0x2e0 0x368>; 2002 | bus-range = <0x0 0xff>; 2003 | ranges = <0x82000000 0x0 0x38000000 0x0 0x38000000 0x0 0x8000000 0xc3000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>; 2004 | msi-parent = <0x3>; 2005 | interrupts = <0x39>; 2006 | interrupt-controller; 2007 | interrupt-names = "msi"; 2008 | interrupt-parent = <0x3>; 2009 | interrupt-map-mask = <0x0 0x0 0x0 0x7>; 2010 | interrupt-map = <0x0 0x0 0x0 0x1 0x3 0x1 0x0 0x0 0x0 0x2 0x3 0x2 0x0 0x0 0x0 0x3 0x3 0x3 0x0 0x0 0x0 0x4 0x3 0x4>; 2011 | resets = <0x1c 0x91 0x1c 0x92 0x1c 0x93 0x1c 0x94 0x1c 0x95 0x1c 0x96>; 2012 | reset-names = "rst_mst0", "rst_slv0", "rst_slv", "rst_brg", "rst_core", "rst_apb"; 2013 | clocks = <0x1b 0x60 0x1b 0xcb 0x1b 0xc9 0x1b 0xca>; 2014 | clock-names = "noc", "tl", "axi_mst0", "apb"; 2015 | status = "okay"; 2016 | pinctrl-names = "default", "perst-default", "perst-active"; 2017 | pinctrl-0 = <0x3e 0x3f>; 2018 | pinctrl-1 = <0x40>; 2019 | pinctrl-2 = <0x41>; 2020 | }; 2021 | mailbox@0 { 2022 | 2023 | compatible = "starfive,mail_box"; 2024 | reg = <0x0 0x13060000 0x0 0x1000>; 2025 | clocks = <0x1b 0x71>; 2026 | clock-names = "clk_apb"; 2027 | resets = <0x1c 0x44>; 2028 | reset-names = "mbx_rre"; 2029 | interrupts = <0x1a 0x1b>; 2030 | #mbox-cells = <0x2>; 2031 | status = "okay"; 2032 | phandle = <0x42>; 2033 | }; 2034 | mailbox_client@0 { 2035 | 2036 | compatible = "starfive,mailbox-test"; 2037 | mbox-names = "rx", "tx"; 2038 | mboxes = <0x42 0x0 0x1 0x42 0x1 0x0>; 2039 | status = "okay"; 2040 | }; 2041 | display-subsystem { 2042 | 2043 | compatible = "starfive,jh7110-display", "verisilicon,display-subsystem"; 2044 | ports = <0x43>; 2045 | status = "okay"; 2046 | }; 2047 | dssctrl@295B0000 { 2048 | 2049 | compatible = "starfive,jh7110-dssctrl", "verisilicon,dss-ctrl", "syscon"; 2050 | reg = <0x0 0x295b0000 0x0 0x90>; 2051 | phandle = <0x44>; 2052 | }; 2053 | tda988x_pin { 2054 | 2055 | compatible = "starfive,tda998x_rgb_pin"; 2056 | status = "disabled"; 2057 | }; 2058 | rgb-output { 2059 | 2060 | compatible = "starfive,jh7110-rgb_output", "verisilicon,rgb-encoder"; 2061 | status = "disabled"; 2062 | ports { 2063 | 2064 | #address-cells = <0x1>; 2065 | #size-cells = <0x0>; 2066 | port@0 { 2067 | 2068 | #address-cells = <0x1>; 2069 | #size-cells = <0x0>; 2070 | reg = <0x0>; 2071 | endpoint@0 { 2072 | 2073 | reg = <0x0>; 2074 | remote-endpoint = <0x43>; 2075 | phandle = <0x46>; 2076 | }; 2077 | }; 2078 | }; 2079 | }; 2080 | dc8200@29400000 { 2081 | 2082 | compatible = "starfive,jh7110-dc8200", "verisilicon,dc8200"; 2083 | verisilicon,dss-syscon = <0x44>; 2084 | reg = <0x0 0x29400000 0x0 0x100 0x0 0x29400800 0x0 0x2000 0x0 0x17030000 0x0 0x1000>; 2085 | interrupts = <0x5f>; 2086 | status = "okay"; 2087 | clocks = <0x1b 0x3c 0x1b 0x3a 0x1b 0x3e 0x1b 0x3d 0x45 0x7 0x45 0x8 0x45 0x4 0x45 0x5 0x45 0x6 0x1b 0x3e 0x45 0x9 0x18 0x45 0x1 0x45 0x27 0x45 0x28>; 2088 | clock-names = "noc_disp", "vout_src", "top_vout_axi", "top_vout_ahb", "pix_clk", "vout_pix1", "axi_clk", "core_clk", "vout_ahb", "vout_top_axi", "vout_top_lcd", "hdmitx0_pixelclk", "dc8200_pix0", "dc8200_pix0_out", "dc8200_pix1_out"; 2089 | resets = <0x1c 0x2b 0x1c 0xe0 0x1c 0xe1 0x1c 0xe2 0x1c 0x1a>; 2090 | reset-names = "rst_vout_src", "rst_axi", "rst_ahb", "rst_core", "rst_noc_disp"; 2091 | port { 2092 | 2093 | #address-cells = <0x1>; 2094 | #size-cells = <0x0>; 2095 | endpoint@0 { 2096 | 2097 | reg = <0x0>; 2098 | remote-endpoint = <0x46>; 2099 | phandle = <0x43>; 2100 | }; 2101 | endpoint@1 { 2102 | 2103 | reg = <0x1>; 2104 | remote-endpoint = <0x47>; 2105 | phandle = <0x50>; 2106 | }; 2107 | endpoint@2 { 2108 | 2109 | reg = <0x2>; 2110 | remote-endpoint = <0x48>; 2111 | phandle = <0x49>; 2112 | }; 2113 | }; 2114 | }; 2115 | dsi-output { 2116 | 2117 | compatible = "starfive,jh7110-display-encoder", "verisilicon,dsi-encoder"; 2118 | status = "okay"; 2119 | ports { 2120 | 2121 | #address-cells = <0x1>; 2122 | #size-cells = <0x0>; 2123 | port@0 { 2124 | 2125 | reg = <0x0>; 2126 | endpoint { 2127 | 2128 | remote-endpoint = <0x49>; 2129 | phandle = <0x48>; 2130 | }; 2131 | }; 2132 | port@1 { 2133 | 2134 | reg = <0x1>; 2135 | endpoint { 2136 | 2137 | remote-endpoint = <0x4a>; 2138 | phandle = <0x4e>; 2139 | }; 2140 | }; 2141 | }; 2142 | }; 2143 | mipi-dphy@295e0000 { 2144 | 2145 | compatible = "starfive,jh7110-mipi-dphy-tx", "m31,mipi-dphy-tx"; 2146 | reg = <0x0 0x295e0000 0x0 0x10000>; 2147 | clocks = <0x45 0xe>; 2148 | clock-names = "dphy_txesc"; 2149 | resets = <0x1c 0xea 0x1c 0xeb>; 2150 | reset-names = "dphy_sys", "dphy_txbytehs"; 2151 | #phy-cells = <0x0>; 2152 | status = "okay"; 2153 | phandle = <0x4b>; 2154 | }; 2155 | mipi@295d0000 { 2156 | 2157 | compatible = "starfive,jh7110-mipi_dsi", "cdns,dsi"; 2158 | reg = <0x0 0x295d0000 0x0 0x10000>; 2159 | interrupts = <0x62>; 2160 | reg-names = "dsi"; 2161 | clocks = <0x45 0xb 0x45 0xa 0x45 0xd 0x45 0xc>; 2162 | clock-names = "sys", "apb", "txesc", "dpi"; 2163 | resets = <0x1c 0xe3 0x1c 0xe4 0x1c 0xe5 0x1c 0xe6 0x1c 0xe7 0x1c 0xe8>; 2164 | reset-names = "dsi_dpi", "dsi_apb", "dsi_rxesc", "dsi_sys", "dsi_txbytehs", "dsi_txesc"; 2165 | phys = <0x4b>; 2166 | phy-names = "dphy"; 2167 | status = "okay"; 2168 | ports { 2169 | 2170 | #address-cells = <0x1>; 2171 | #size-cells = <0x0>; 2172 | port@0 { 2173 | 2174 | reg = <0x0>; 2175 | #address-cells = <0x1>; 2176 | #size-cells = <0x0>; 2177 | endpoint@0 { 2178 | 2179 | reg = <0x0>; 2180 | remote-endpoint = <0x4c>; 2181 | phandle = <0x24>; 2182 | }; 2183 | endpoint@1 { 2184 | 2185 | reg = <0x1>; 2186 | remote-endpoint = <0x4d>; 2187 | phandle = <0x26>; 2188 | }; 2189 | }; 2190 | port@1 { 2191 | 2192 | reg = <0x1>; 2193 | endpoint { 2194 | 2195 | remote-endpoint = <0x4e>; 2196 | phandle = <0x4a>; 2197 | }; 2198 | }; 2199 | }; 2200 | }; 2201 | hdmi@29590000 { 2202 | 2203 | compatible = "starfive,jh7110-hdmi", "inno,hdmi"; 2204 | reg = <0x0 0x29590000 0x0 0x4000>; 2205 | interrupts = <0x63>; 2206 | status = "okay"; 2207 | clocks = <0x45 0x11 0x45 0xf 0x45 0x10 0x18>; 2208 | clock-names = "sysclk", "mclk", "bclk", "pclk"; 2209 | resets = <0x1c 0xe9>; 2210 | reset-names = "hdmi_tx"; 2211 | #sound-dai-cells = <0x0>; 2212 | pinctrl-names = "default"; 2213 | pinctrl-0 = <0x4f>; 2214 | phandle = <0x53>; 2215 | port { 2216 | 2217 | #address-cells = <0x1>; 2218 | #size-cells = <0x0>; 2219 | endpoint@0 { 2220 | 2221 | reg = <0x0>; 2222 | remote-endpoint = <0x50>; 2223 | phandle = <0x47>; 2224 | }; 2225 | }; 2226 | }; 2227 | snd-card0 { 2228 | 2229 | compatible = "simple-audio-card"; 2230 | simple-audio-card,name = "Starfive-AC108-Sound-Card"; 2231 | #address-cells = <0x1>; 2232 | #size-cells = <0x0>; 2233 | }; 2234 | snd-card1 { 2235 | 2236 | compatible = "simple-audio-card"; 2237 | simple-audio-card,name = "Starfive-HDMI-Sound-Card"; 2238 | #address-cells = <0x1>; 2239 | #size-cells = <0x0>; 2240 | simple-audio-card,dai-link@0 { 2241 | 2242 | reg = <0x0>; 2243 | format = "i2s"; 2244 | bitclock-master = <0x51>; 2245 | frame-master = <0x51>; 2246 | mclk-fs = <0x100>; 2247 | status = "okay"; 2248 | cpu { 2249 | 2250 | sound-dai = <0x52>; 2251 | phandle = <0x51>; 2252 | }; 2253 | codec { 2254 | 2255 | sound-dai = <0x53>; 2256 | }; 2257 | }; 2258 | }; 2259 | snd-card2 { 2260 | 2261 | compatible = "simple-audio-card"; 2262 | simple-audio-card,name = "Starfive-PDM-Sound-Card"; 2263 | #address-cells = <0x1>; 2264 | #size-cells = <0x0>; 2265 | }; 2266 | snd-card3 { 2267 | 2268 | compatible = "simple-audio-card"; 2269 | simple-audio-card,name = "Starfive-PWMDAC-Sound-Card"; 2270 | #address-cells = <0x1>; 2271 | #size-cells = <0x0>; 2272 | simple-audio-card,dai-link@0 { 2273 | 2274 | reg = <0x0>; 2275 | format = "left_j"; 2276 | bitclock-master = <0x54>; 2277 | frame-master = <0x54>; 2278 | status = "okay"; 2279 | cpu { 2280 | 2281 | sound-dai = <0x55>; 2282 | phandle = <0x54>; 2283 | }; 2284 | codec { 2285 | 2286 | sound-dai = <0x56>; 2287 | }; 2288 | }; 2289 | }; 2290 | snd-card4 { 2291 | 2292 | compatible = "simple-audio-card"; 2293 | simple-audio-card,name = "Starfive-SPDIF-Sound-Card"; 2294 | #address-cells = <0x1>; 2295 | #size-cells = <0x0>; 2296 | }; 2297 | snd-card5 { 2298 | 2299 | compatible = "simple-audio-card"; 2300 | simple-audio-card,name = "Starfive-TDM-Sound-Card"; 2301 | #address-cells = <0x1>; 2302 | #size-cells = <0x0>; 2303 | }; 2304 | snd-card6 { 2305 | 2306 | compatible = "simple-audio-card"; 2307 | simple-audio-card,name = "Starfive-WM8960-Sound-Card"; 2308 | #address-cells = <0x1>; 2309 | #size-cells = <0x0>; 2310 | }; 2311 | e24@0 { 2312 | 2313 | compatible = "starfive,e24"; 2314 | reg = <0x0 0xc0110000 0x0 0x1000 0x0 0xc0111000 0x0 0x1f000>; 2315 | reg-names = "ecmd", "espace"; 2316 | clocks = <0x1b 0xd6 0x1b 0xd7 0x1b 0xd8>; 2317 | clock-names = "clk_rtc", "clk_core", "clk_dbg"; 2318 | resets = <0x1c 0x84>; 2319 | reset-names = "e24_core"; 2320 | starfive,stg-syscon = <0x1e>; 2321 | interrupt-parent = <0x3>; 2322 | firmware-name = "e24_elf"; 2323 | irq-mode = <0x1>; 2324 | mbox-names = "tx", "rx"; 2325 | mboxes = <0x42 0x0 0x2 0x42 0x2 0x0>; 2326 | #address-cells = <0x1>; 2327 | #size-cells = <0x1>; 2328 | ranges = <0xc0000000 0x0 0xc0000000 0x200000>; 2329 | status = "okay"; 2330 | dsp@0 { 2331 | 2332 | }; 2333 | }; 2334 | xrp@0 { 2335 | 2336 | compatible = "cdns,xrp"; 2337 | reg = <0x0 0x10230000 0x0 0x10000 0x0 0x10240000 0x0 0x10000>; 2338 | memory-region = <0x57>; 2339 | clocks = <0x1b 0xbe>; 2340 | clock-names = "core_clk"; 2341 | resets = <0x1c 0x81 0x1c 0x82>; 2342 | reset-names = "rst_core", "rst_axi"; 2343 | starfive,stg-syscon = <0x1e>; 2344 | firmware-name = "hifi4_elf"; 2345 | #address-cells = <0x1>; 2346 | #size-cells = <0x1>; 2347 | ranges = <0x40000000 0x0 0x20000000 0x40000 0xf0000000 0x0 0xf0000000 0x3000000>; 2348 | status = "okay"; 2349 | dsp@0 { 2350 | 2351 | }; 2352 | }; 2353 | starfive,jh7110-cpufreq { 2354 | 2355 | compatible = "starfive,jh7110-cpufreq"; 2356 | clocks = <0x1b 0x1>; 2357 | clock-names = "cpu_clk"; 2358 | }; 2359 | }; 2360 | aliases { 2361 | 2362 | spi0 = "/soc/spi@13010000"; 2363 | gpio0 = "/soc/gpio@13040000"; 2364 | ethernet0 = "/soc/ethernet@16030000"; 2365 | ethernet1 = "/soc/ethernet@16040000"; 2366 | mmc0 = "/soc/sdio0@16010000"; 2367 | mmc1 = "/soc/sdio1@16020000"; 2368 | serial0 = "/soc/serial@10000000"; 2369 | serial3 = "/soc/serial@12000000"; 2370 | i2c0 = "/soc/i2c@10030000"; 2371 | i2c1 = "/soc/i2c@10040000"; 2372 | i2c2 = "/soc/i2c@10050000"; 2373 | i2c3 = "/soc/i2c@12030000"; 2374 | i2c4 = "/soc/i2c@12040000"; 2375 | i2c5 = "/soc/i2c@12050000"; 2376 | i2c6 = "/soc/i2c@12060000"; 2377 | }; 2378 | chosen { 2379 | 2380 | fixup-applied; 2381 | boot-hartid = <0x2>; 2382 | bootargs = "console=ttyS0,115200 debug rootwait earlycon=sbi"; 2383 | linux,initrd-start = <0x0 0x46100000>; 2384 | linux,initrd-end = <0x0 0x4c000000>; 2385 | stdout-path = "serial0:115200"; 2386 | #bootargs = "debug console=ttyS0 rootwait"; 2387 | }; 2388 | memory@40000000 { 2389 | 2390 | device_type = "memory"; 2391 | reg = <0x0 0x40000000 0x1 0x0>; 2392 | }; 2393 | reserved-memory { 2394 | 2395 | #address-cells = <0x2>; 2396 | #size-cells = <0x2>; 2397 | ranges; 2398 | linux,cma { 2399 | 2400 | compatible = "shared-dma-pool"; 2401 | reusable; 2402 | size = <0x0 0x20000000>; 2403 | alignment = <0x0 0x1000>; 2404 | alloc-ranges = <0x0 0x80000000 0x0 0x20000000>; 2405 | linux,cma-default; 2406 | }; 2407 | e24@c0000000 { 2408 | 2409 | no-map; 2410 | reg = <0x0 0xc0110000 0x0 0xf0000>; 2411 | }; 2412 | xrpbuffer@f0000000 { 2413 | 2414 | reg = <0x0 0xf0000000 0x0 0x1ffffff 0x0 0xf2000000 0x0 0x1000 0x0 0xf2001000 0x0 0xfff000 0x0 0xf3000000 0x0 0x1000>; 2415 | phandle = <0x57>; 2416 | }; 2417 | }; 2418 | leds { 2419 | 2420 | compatible = "gpio-leds"; 2421 | led-ack { 2422 | 2423 | gpios = <0x58 0x3 0x0>; 2424 | color = <0x2>; 2425 | function = "heartbeat"; 2426 | linux,default-trigger = "heartbeat"; 2427 | label = "ack"; 2428 | }; 2429 | }; 2430 | gpio-restart { 2431 | 2432 | compatible = "gpio-restart"; 2433 | gpios = <0x25 0x23 0x0>; 2434 | priority = <0xe0>; 2435 | }; 2436 | }; 2437 | --------------------------------------------------------------------------------