From 89e3e0fbdab78538b43e6492287ee2afd4e86b52 Mon Sep 17 00:00:00 2001 From: Xianjun Jiao Date: Wed, 15 Jan 2020 18:14:50 +0100 Subject: [PATCH] add support of adrv9361z7035 SOM --- README.md | 59 +- .../boards/adrv9361z7035/devicetree.dts | 942 +++++++++++++ kernel_boot/boards/adrv9361z7035/u-boot.elf | Bin 0 -> 1837207 bytes .../boards/adrv9361z7035_fmc/devicetree.dts | 1212 +++++++++++++++++ .../boards/adrv9361z7035_fmc/u-boot.elf | Bin 0 -> 1837207 bytes .../{ => boards/zc706_fmcs2}/devicetree.dts | 0 .../zc706_fmcs2/u-boot.elf} | Bin user_space/rf_init_adrv9361z7035.sh | 100 ++ .../{rf_init.sh => rf_init_zc706_fmcs2.sh} | 0 9 files changed, 2282 insertions(+), 31 deletions(-) create mode 100644 kernel_boot/boards/adrv9361z7035/devicetree.dts create mode 100644 kernel_boot/boards/adrv9361z7035/u-boot.elf create mode 100644 kernel_boot/boards/adrv9361z7035_fmc/devicetree.dts create mode 100644 kernel_boot/boards/adrv9361z7035_fmc/u-boot.elf rename kernel_boot/{ => boards/zc706_fmcs2}/devicetree.dts (100%) rename kernel_boot/{u-boot-zc70x.elf => boards/zc706_fmcs2/u-boot.elf} (100%) create mode 100755 user_space/rf_init_adrv9361z7035.sh rename user_space/{rf_init.sh => rf_init_zc706_fmcs2.sh} (100%) diff --git a/README.md b/README.md index a421ebc..235a06a 100644 --- a/README.md +++ b/README.md @@ -36,33 +36,32 @@ Openwifi was born in [ORCA project](https://www.orca-project.eu/) (EU's Horizon2 board_name|actual boards used|status -------|-------|---- zc706_fmcs2|Xilinx ZC706 dev board + FMCOMMS2/3/4|done -adrv9361z7035|ADRV9361Z7035 SOM + ADRV1CRR-BOB carrier board|ongoing -adrv9361z7035_fmc|ADRV9361Z7035 SOM + ADRV1CRR-FMC carrier board|ongoing +adrv9361z7035|ADRV9361Z7035 SOM + ADRV1CRR-BOB carrier board|done. wait for test +adrv9361z7035_fmc|ADRV9361Z7035 SOM + ADRV1CRR-FMC carrier board|done adrv9364z7020|ADRV9364Z7020 SOM + ADRV1CRR-BOB carrier board|future zcu102_fmcs2|Xilinx ZCU102 dev board + FMCOMMS2/3/4|future zcu102_9371|Xilinx ZCU102 dev board + ADRV9371|future -* board_name is used to identify FPGA design in openwifi-hw/boards/ +* board_name is used to identify FPGA design in openwifi-hw/boards/ and rf script in user_space/rf_init_board_name.sh * Don't have any boards? Or you like JTAG boot instead of SD card? Check our test bed [w-iLab.t](https://doc.ilabt.imec.be/ilabt/wilab/tutorials/openwifi.html) tutorial. -* zc706_fmcs2 is taken as example for following operations. **Quick start:** (Example instructions are verified on Ubuntu 16/18) -* Download pre-built [openwifi Linux img file](https://users.ugent.be/~xjiao/openwifi-1.0.0-ghent.zip). Burn the img file to a 16G SD card: - +* Download pre-built [openwifi Linux img file](https://users.ugent.be/~xjiao/openwifi-1.0.0-ghent.zip) (depends on board_name as well). Burn the img file to a 16G SD card: ``` sudo dd bs=4M if=openwifi-1.0.0-ghent.img of=/dev/mmcblk0 (mmcblk0 is the dev name of sdcard in Linux. Make sure you use the correct one in your situation!) (Above command takes a while) ``` -* Connect RX/TX antenna to RX1A/TX2A ports of fmcomms2/3(For fmcomms4/ad9364, you may connect antennas to TXA/RXA), and make two antennas orthogonal to each other for good isolation. Config the board to SD card boot mode by switches (Read the board spec on internet). Insert the SD card to the board. +* Connect RX/TX antenna to RX1A/TX2A ports(For fmcomms4/ad9364, you may connect antennas to TXA/RXA), and make two antennas orthogonal to each other for good isolation. Config the board to SD card boot mode by switches (Read the board spec on internet). Insert the SD card to the board. * Connect the board to PC. (PC IP address should be 192.168.10.1). Power on the board. Then from PC: - ``` ssh root@192.168.10.122 (password: openwifi) cd openwifi +cp rf_init_board_name.sh rf_init.sh +(If there isn't rf_init.sh, rename your board rf script, such as rf_init_adrv9361z7035.sh, to rf_init.sh for wgd.sh to call) service network-manager stop ./wgd.sh (For fmcomms4, you need an extra command: ./set_ant.sh rx1 tx1) @@ -93,7 +92,7 @@ iwlist sdr0 scan dhclient sdr0 (Wait for its done, then you should have connection) -* Real-time control/config via sdrctl (time slice config, etc), please go to openwifi/doc. +* Real-time control/config via "sdrctl" (register, time slice config, etc), please go to openwifi/doc. * ***Note***: The files (BOOT.BIN, drivers, etc) in pre-built SD card img might not have the latest bug-fixes/features. Check related section in this README on how to generate them and update them if needed. @@ -108,7 +107,6 @@ iwlist sdr0 scan * Install Vivado/SDK 2017.4.1 (If you don't need to re-compile FPGA, WebPack version without license is enough) * Get pre-built FPGA files from openwifi-hw repository. - ``` git submodule init openwifi-hw git submodule update openwifi-hw @@ -117,7 +115,6 @@ git checkout master git pull ``` * Build Linux kernel and modules: - ``` export XILINX_DIR=your_Xilinx_directory cd openwifi @@ -135,32 +132,37 @@ make -j12 UIMAGE_LOADADDR=0x8000 uImage make modules ``` * Build openwifi Linux driver modules: - ``` export OPENWIFI_DIR=your_openwifi_directory cd $OPENWIFI_DIR/driver ./make_all.sh $XILINX_DIR/SDK/2017.4/ $OPENWIFI_DIR/adi-linux/ ``` * Build openwifi Linux devicetree: - ``` -cd $OPENWIFI_DIR/kernel_boot +export BOARD_NAME=your_board_name +(Check the board_name in the table of supported SDR platforms) +cd $OPENWIFI_DIR/kernel_boot/boards/$BOARD_NAME dtc -I dts -O dtb -o devicetree.dtb devicetree.dts +cp devicetree.dtb $OPENWIFI_DIR/kernel_boot/ ``` * Build openwifi BOOT.BIN based on FPGA files generated in openwifi-hw: - ``` cd $OPENWIFI_DIR/kernel_boot source $XILINX_DIR/SDK/2017.4/settings64.sh -./build_boot_bin.sh ../openwifi-hw/boards/zc706_fmcs2/sdk/system_top_hw_platform_0/system.hdf u-boot-zc70x.elf -(u-boot-zc70x.elf is included in the original Analog Devices Linux img) +./build_boot_bin.sh ../openwifi-hw/boards/$BOARD_NAME/sdk/system_top_hw_platform_0/system.hdf ./boards/$BOARD_NAME/u-boot.elf +(u-boot.elf is renamed from the compressed file in the board directory of original Analog Devices SD card boot partition) +``` +* Prepare correct rf_init.sh in host openwifi/user_space +``` +cd $OPENWIFI_DIR/user_space +cp rf_init_board_name.sh rf_init.sh +(If there isn't rf_init.sh, rename your board rf script, such as rf_init_adrv9361z7035.sh, to rf_init.sh for "wgd.sh remote" to download) ``` * Download [2017_R1-2018_01_29.img.xz](http://swdownloads.analog.com/cse/2017_R1-2018_01_29.img.xz) from [Analog Devices Wiki](https://wiki.analog.com/resources/tools-software/linux-software/zynq_images). Burn it into a SD card via your PC. * Mount SD card BOOT/rootfs partitions to SDCARD_DIR directory of your PC (If it is mounted automatically, find the directory). Then copy built files to SD card via your PC. (You can also update files over ftp/ssh after your full system runs. Please check next section. Read carefully user_space/sdcard_boot_update.sh and set your ftp root directory to $OPENWIFI_DIR in your PC): - ``` export SDCARD_DIR=sdcard_mount_point -cp $OPENWIFI_DIR/kernel_boot/devicetree.dtb $SDCARD_DIR/BOOT +cp $OPENWIFI_DIR/kernel_boot/boards/$BOARD_NAME/devicetree.dtb $SDCARD_DIR/BOOT cp $OPENWIFI_DIR/kernel_boot/output_boot_bin/BOOT.BIN $SDCARD_DIR/BOOT cp $OPENWIFI_DIR/adi-linux/arch/arm/boot/uImage $SDCARD_DIR/BOOT cd $SDCARD_DIR/BOOT @@ -168,12 +170,12 @@ sync sudo mkdir $SDCARD_DIR/rootfs/root/openwifi sudo find $OPENWIFI_DIR/driver -name \*.ko -exec cp {} $SDCARD_DIR/rootfs/root/openwifi/ \; -sudo cp $OPENWIFI_DIR/user_space/* $SDCARD_DIR/rootfs/root/openwifi/ +sudo cp $OPENWIFI_DIR/user_space/* $SDCARD_DIR/rootfs/root/openwifi/ -rf sudo mkdir $SDCARD_DIR/rootfs/lib/modules -sudo mkdir $SDCARD_DIR/rootfs/lib/modules/4.14.0-g4220d5d24c6c -sudo find $OPENWIFI_DIR/adi-linux -name \*.ko -exec cp {} $SDCARD_DIR/rootfs/lib/modules/4.14.0-g4220d5d24c6c/ \; -sudo rm $SDCARD_DIR/rootfs/lib/modules/4.14.0-g4220d5d24c6c/{axidmatest.ko,xilinx_dma.ko,adi_axi_hdmi.ko,ad9361_drv.ko} -f +sudo mkdir $SDCARD_DIR/rootfs/lib/modules/4.14.0-g4220d5d +sudo find $OPENWIFI_DIR/adi-linux -name \*.ko -exec cp {} $SDCARD_DIR/rootfs/lib/modules/4.14.0-g4220d5d/ \; +sudo rm $SDCARD_DIR/rootfs/lib/modules/4.14.0-g4220d5d/{axidmatest.ko,xilinx_dma.ko,adi_axi_hdmi.ko,ad9361_drv.ko} -f sudo rm $SDCARD_DIR/rootfs/etc/udev/rules.d/70-persistent-net.rules sudo cp $OPENWIFI_DIR/kernel_boot/70-persistent-net.rules $SDCARD_DIR/rootfs/etc/udev/rules.d/ @@ -184,17 +186,18 @@ sync **Run Linux and do some post-config:** * Insert the SD card to the board, power on and run serial console (such as minicom) from a PC via USB-UART cable to the board. After booting completes, in the PC serial console: - ``` depmod (Ignore the error messages) modprobe mac80211 (if you get error like: could not open moddep file 'lib/modules/4.14.0XXXYYYZZZ/modules.dep.bin', you could make a symbol link and modprobe again) -ln -s /lib/modules/4.14.0-g4220d5d24c6c /lib/modules/4.14.0XXXYYYZZZ +ln -s /lib/modules/4.14.0-g4220d5d /lib/modules/4.14.0XXXYYYZZZ depmod modprobe mac80211 cd openwifi +cp rf_init_board_name.sh rf_init.sh +(rename your board rf script, such as rf_init_adrv9361z7035.sh, to rf_init.sh for wgd.sh to call) ./wgd.sh (For fmcomms4, you need an extra command: ./set_ant.sh rx1 tx1) (Wait for the completion) @@ -204,7 +207,6 @@ iwlist sdr0 scan (You should see the Wi-Fi scan results) ``` * Config ssh server and ethernet IP address of the board. In the PC serial console: - ``` passwd (ssh server needs a password, such as "openwifi") @@ -248,7 +250,6 @@ ssh roo@192.168.10.122 (For fmcomms4, you need an extra command: ./set_ant.sh rx1 tx1) **Compile sdrctl on the board** ("On the board" means that you login to the board via ssh) - ``` sudo apt-get install libnl-3-dev sudo apt-get install libnl-genl-3-dev @@ -275,7 +276,6 @@ make ``` * Setup AP for Wi-Fi client. Topology: client -- (sdr0)|board|(eth0) -- (***ethX***)|PC|(***ethY***) -- internet * On board: Install dhcp server preparing for serving your openwifi clients via hostapd. - ``` sudo apt-get install isc-dhcp-server sudo apt-get install Haveged @@ -283,7 +283,6 @@ make ``` * Put user_space/dhcpd.conf into (overwrite) /etc/dhcp/dhcpd.conf on board. * On board: - ``` cd openwifi service network-manager stop @@ -296,7 +295,6 @@ make hostapd hostapd-openwifi.conf ``` * On PC: - ``` sudo ip route add 192.168.13.0/24 via 192.168.10.122 dev ethX ``` @@ -311,7 +309,6 @@ As a solution to this problem, openwifi can be fully controlled only if communic For hostapd program, 802.11b rates can be suppressed using configuration commands (i.e. supported_rates, basic_rates) and an example configuration file is provided (i.e. hostapd-openwifi.conf). One small caveat to this one comes from fullMAC Wi-Fi cards as they must implement the *NL80211_TXRATE_LEGACY* NetLink handler at the device driver level. On the other hand, the wpa_supplicant program on the client side (commercial Wi-Fi dongle/board) cannot suppress 802.11b rates out of the box in 2.4GHz band, so there will be an issue when connecting openwifi (OFDM only). A patched wpa_supplicant should be used at the client side. - ``` cd openwifi/user_space wget http://w1.fi/releases/wpa_supplicant-2.1.tar.gz diff --git a/kernel_boot/boards/adrv9361z7035/devicetree.dts b/kernel_boot/boards/adrv9361z7035/devicetree.dts new file mode 100644 index 0000000..fc2c915 --- /dev/null +++ b/kernel_boot/boards/adrv9361z7035/devicetree.dts @@ -0,0 +1,942 @@ +/dts-v1/; + +/ { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "xlnx,zynq-7000"; + interrupt-parent = <0x1>; + model = "Analog Devices ADRV9361-Z7035 (Z7035/AD9361)"; + + cpus { + #address-cells = <0x1>; + #size-cells = <0x0>; + + cpu@0 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x0>; + clocks = <0x2 0x3>; + clock-latency = <0x3e8>; + cpu0-supply = <0x3>; + operating-points = <0xa2c2b 0xf4240 0x51616 0xf4240>; + }; + + cpu@1 { + compatible = "arm,cortex-a9"; + device_type = "cpu"; + reg = <0x1>; + clocks = <0x2 0x3>; + }; + }; + + fpga-full { + compatible = "fpga-region"; + fpga-mgr = <0x4>; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + }; + + pmu@f8891000 { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>; + interrupt-parent = <0x1>; + reg = <0xf8891000 0x1000 0xf8893000 0x1000>; + }; + + fixedregulator { + compatible = "regulator-fixed"; + regulator-name = "VCCPINT"; + regulator-min-microvolt = <0xf4240>; + regulator-max-microvolt = <0xf4240>; + regulator-boot-on; + regulator-always-on; + linux,phandle = <0x3>; + phandle = <0x3>; + }; + + amba { + u-boot,dm-pre-reloc; + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + interrupt-parent = <0x1>; + ranges; + + adc@f8007100 { + compatible = "xlnx,zynq-xadc-1.00.a"; + reg = <0xf8007100 0x20>; + interrupts = <0x0 0x7 0x4>; + interrupt-parent = <0x1>; + clocks = <0x2 0xc>; + }; + + can@e0008000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x2 0x13 0x2 0x24>; + clock-names = "can_clk", "pclk"; + reg = <0xe0008000 0x1000>; + interrupts = <0x0 0x1c 0x4>; + interrupt-parent = <0x1>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + }; + + can@e0009000 { + compatible = "xlnx,zynq-can-1.0"; + status = "disabled"; + clocks = <0x2 0x14 0x2 0x25>; + clock-names = "can_clk", "pclk"; + reg = <0xe0009000 0x1000>; + interrupts = <0x0 0x33 0x4>; + interrupt-parent = <0x1>; + tx-fifo-depth = <0x40>; + rx-fifo-depth = <0x40>; + }; + + gpio@e000a000 { + compatible = "xlnx,zynq-gpio-1.0"; + #gpio-cells = <0x2>; + clocks = <0x2 0x2a>; + gpio-controller; + interrupt-controller; + #interrupt-cells = <0x2>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x14 0x4>; + reg = <0xe000a000 0x1000>; + linux,phandle = <0x6>; + phandle = <0x6>; + }; + + i2c@e0004000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x2 0x26>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x19 0x4>; + reg = <0xe0004000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + }; + + i2c@e0005000 { + compatible = "cdns,i2c-r1p10"; + status = "disabled"; + clocks = <0x2 0x27>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x30 0x4>; + reg = <0xe0005000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + }; + + interrupt-controller@f8f01000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <0x3>; + interrupt-controller; + reg = <0xf8f01000 0x1000 0xf8f00100 0x100>; + linux,phandle = <0x1>; + phandle = <0x1>; + }; + + cache-controller@f8f02000 { + compatible = "arm,pl310-cache"; + reg = <0xf8f02000 0x1000>; + interrupts = <0x0 0x2 0x4>; + arm,data-latency = <0x3 0x2 0x2>; + arm,tag-latency = <0x2 0x2 0x2>; + cache-unified; + cache-level = <0x2>; + }; + + memory-controller@f8006000 { + compatible = "xlnx,zynq-ddrc-a05"; + reg = <0xf8006000 0x1000>; + }; + + ocmc@f800c000 { + compatible = "xlnx,zynq-ocmc-1.0"; + interrupt-parent = <0x1>; + interrupts = <0x0 0x3 0x4>; + reg = <0xf800c000 0x1000>; + }; + + serial@e0000000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "disabled"; + clocks = <0x2 0x17 0x2 0x28>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0000000 0x1000>; + interrupts = <0x0 0x1b 0x4>; + }; + + serial@e0001000 { + compatible = "xlnx,xuartps", "cdns,uart-r1p8"; + status = "okay"; + clocks = <0x2 0x18 0x2 0x29>; + clock-names = "uart_clk", "pclk"; + reg = <0xe0001000 0x1000>; + interrupts = <0x0 0x32 0x4>; + }; + + spi@e0006000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0006000 0x1000>; + status = "okay"; + interrupt-parent = <0x1>; + interrupts = <0x0 0x1a 0x4>; + clocks = <0x2 0x19 0x2 0x22>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + + ad9361-phy@0 { + #address-cells = <0x1>; + #size-cells = <0x0>; + #clock-cells = <0x1>; + compatible = "adi,ad9361"; + reg = <0x0>; + spi-cpha; + spi-max-frequency = <0x989680>; + clocks = <0x5 0x0>; + clock-names = "ad9361_ext_refclk"; + clock-output-names = "rx_sampl_clk", "tx_sampl_clk"; + adi,digital-interface-tune-skip-mode = <0x0>; + adi,pp-tx-swap-enable; + adi,pp-rx-swap-enable; + adi,rx-frame-pulse-mode-enable; + adi,lvds-mode-enable; + adi,lvds-bias-mV = <0x96>; + adi,lvds-rx-onchip-termination-enable; + adi,rx-data-delay = <0x4>; + adi,tx-fb-clock-delay = <0x7>; + adi,xo-disable-use-ext-refclk-enable; + adi,2rx-2tx-mode-enable; + adi,frequency-division-duplex-mode-enable; + adi,rx-rf-port-input-select = <0x0>; + adi,tx-rf-port-input-select = <0x0>; + adi,tx-attenuation-mdB = <0x2710>; + adi,rf-rx-bandwidth-hz = <0x112a880>; + adi,rf-tx-bandwidth-hz = <0x112a880>; + adi,rx-synthesizer-frequency-hz = <0x0 0x8f0d1800>; + adi,tx-synthesizer-frequency-hz = <0x0 0x92080880>; + adi,rx-path-clock-frequencies = <0x3a980000 0xea60000 0x7530000 0x3a98000 0x1d4c000 0x1d4c000>; + adi,tx-path-clock-frequencies = <0x3a980000 0x7530000 0x7530000 0x3a98000 0x1d4c000 0x1d4c000>; + adi,gc-rx1-mode = <0x2>; + adi,gc-rx2-mode = <0x2>; + adi,gc-adc-ovr-sample-size = <0x4>; + adi,gc-adc-small-overload-thresh = <0x2f>; + adi,gc-adc-large-overload-thresh = <0x3a>; + adi,gc-lmt-overload-high-thresh = <0x320>; + adi,gc-lmt-overload-low-thresh = <0x2c0>; + adi,gc-dec-pow-measurement-duration = <0x2000>; + adi,gc-low-power-thresh = <0x18>; + adi,mgc-inc-gain-step = <0x2>; + adi,mgc-dec-gain-step = <0x2>; + adi,mgc-split-table-ctrl-inp-gain-mode = <0x0>; + adi,agc-attack-delay-extra-margin-us = <0x1>; + adi,agc-outer-thresh-high = <0x5>; + adi,agc-outer-thresh-high-dec-steps = <0x2>; + adi,agc-inner-thresh-high = <0xa>; + adi,agc-inner-thresh-high-dec-steps = <0x1>; + adi,agc-inner-thresh-low = <0xc>; + adi,agc-inner-thresh-low-inc-steps = <0x1>; + adi,agc-outer-thresh-low = <0x12>; + adi,agc-outer-thresh-low-inc-steps = <0x2>; + adi,agc-adc-small-overload-exceed-counter = <0xa>; + adi,agc-adc-large-overload-exceed-counter = <0xa>; + adi,agc-adc-large-overload-inc-steps = <0x2>; + adi,agc-lmt-overload-large-exceed-counter = <0xa>; + adi,agc-lmt-overload-small-exceed-counter = <0xa>; + adi,agc-lmt-overload-large-inc-steps = <0x2>; + adi,agc-gain-update-interval-us = <0x3e8>; + adi,fagc-dec-pow-measurement-duration = <0x40>; + adi,fagc-lp-thresh-increment-steps = <0x1>; + adi,fagc-lp-thresh-increment-time = <0x5>; + adi,fagc-energy-lost-stronger-sig-gain-lock-exit-cnt = <0x8>; + adi,fagc-final-overrange-count = <0x3>; + adi,fagc-gain-index-type-after-exit-rx-mode = <0x0>; + adi,fagc-lmt-final-settling-steps = <0x1>; + adi,fagc-lock-level = <0xa>; + adi,fagc-lock-level-gain-increase-upper-limit = <0x5>; + adi,fagc-lock-level-lmt-gain-increase-enable; + adi,fagc-lpf-final-settling-steps = <0x1>; + adi,fagc-optimized-gain-offset = <0x5>; + adi,fagc-power-measurement-duration-in-state5 = <0x40>; + adi,fagc-rst-gla-engergy-lost-goto-optim-gain-enable; + adi,fagc-rst-gla-engergy-lost-sig-thresh-below-ll = <0xa>; + adi,fagc-rst-gla-engergy-lost-sig-thresh-exceeded-enable; + adi,fagc-rst-gla-if-en-agc-pulled-high-mode = <0x0>; + adi,fagc-rst-gla-large-adc-overload-enable; + adi,fagc-rst-gla-large-lmt-overload-enable; + adi,fagc-rst-gla-stronger-sig-thresh-above-ll = <0xa>; + adi,fagc-rst-gla-stronger-sig-thresh-exceeded-enable; + adi,fagc-state-wait-time-ns = <0x104>; + adi,fagc-use-last-lock-level-for-set-gain-enable; + adi,rssi-restart-mode = <0x3>; + adi,rssi-delay = <0x1>; + adi,rssi-wait = <0x1>; + adi,rssi-duration = <0x3e8>; + adi,ctrl-outs-index = <0x0>; + adi,ctrl-outs-enable-mask = <0xff>; + adi,temp-sense-measurement-interval-ms = <0x3e8>; + adi,temp-sense-offset-signed = <0xce>; + adi,temp-sense-periodic-measurement-enable; + adi,aux-dac-manual-mode-enable; + adi,aux-dac1-default-value-mV = <0x0>; + adi,aux-dac1-rx-delay-us = <0x0>; + adi,aux-dac1-tx-delay-us = <0x0>; + adi,aux-dac2-default-value-mV = <0x0>; + adi,aux-dac2-rx-delay-us = <0x0>; + adi,aux-dac2-tx-delay-us = <0x0>; + en_agc-gpios = <0x6 0x62 0x0>; + sync-gpios = <0x6 0x63 0x0>; + reset-gpios = <0x6 0x64 0x0>; + enable-gpios = <0x6 0x65 0x0>; + txnrx-gpios = <0x6 0x66 0x0>; + linux,phandle = <0xc>; + phandle = <0xc>; + }; + }; + + spi@e0007000 { + compatible = "xlnx,zynq-spi-r1p6"; + reg = <0xe0007000 0x1000>; + status = "disabled"; + interrupt-parent = <0x1>; + interrupts = <0x0 0x31 0x4>; + clocks = <0x2 0x1a 0x2 0x23>; + clock-names = "ref_clk", "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + }; + + spi@e000d000 { + clock-names = "ref_clk", "pclk"; + clocks = <0x2 0xa 0x2 0x2b>; + compatible = "xlnx,zynq-qspi-1.0"; + status = "okay"; + interrupt-parent = <0x1>; + interrupts = <0x0 0x13 0x4>; + reg = <0xe000d000 0x1000>; + #address-cells = <0x1>; + #size-cells = <0x0>; + is-dual = <0x0>; + num-cs = <0x1>; + + ps7-qspi@0 { + #address-cells = <0x1>; + #size-cells = <0x1>; + spi-tx-bus-width = <0x1>; + spi-rx-bus-width = <0x4>; + compatible = "n25q256a", "jedec,spi-nor"; + reg = <0x0>; + spi-max-frequency = <0x2faf080>; + + partition@qspi-fsbl-uboot { + label = "qspi-fsbl-uboot"; + reg = <0x0 0xe0000>; + }; + + partition@qspi-uboot-env { + label = "qspi-uboot-env"; + reg = <0xe0000 0x20000>; + }; + + partition@qspi-linux { + label = "qspi-linux"; + reg = <0x100000 0x500000>; + }; + + partition@qspi-device-tree { + label = "qspi-device-tree"; + reg = <0x600000 0x20000>; + }; + + partition@qspi-rootfs { + label = "qspi-rootfs"; + reg = <0x620000 0xce0000>; + }; + + partition@qspi-bitstream { + label = "qspi-bitstream"; + reg = <0x1300000 0xd00000>; + }; + }; + }; + + memory-controller@e000e000 { + #address-cells = <0x1>; + #size-cells = <0x1>; + status = "disabled"; + clock-names = "memclk", "aclk"; + clocks = <0x2 0xb 0x2 0x2c>; + compatible = "arm,pl353-smc-r2p1"; + interrupt-parent = <0x1>; + interrupts = <0x0 0x12 0x4>; + ranges; + reg = <0xe000e000 0x1000>; + + flash@e1000000 { + status = "disabled"; + compatible = "arm,pl353-nand-r2p1"; + reg = <0xe1000000 0x1000000>; + #address-cells = <0x1>; + #size-cells = <0x1>; + }; + + flash@e2000000 { + status = "disabled"; + compatible = "cfi-flash"; + reg = <0xe2000000 0x2000000>; + #address-cells = <0x1>; + #size-cells = <0x1>; + }; + }; + + ethernet@e000b000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000b000 0x1000>; + status = "okay"; + interrupts = <0x0 0x16 0x4>; + clocks = <0x2 0x1e 0x2 0x1e 0x2 0xd>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + phy-handle = <0x7>; + phy-mode = "rgmii-id"; + + phy@0 { + device_type = "ethernet-phy"; + reg = <0x0>; + marvell,reg-init = <0x3 0x10 0xff00 0x1e 0x3 0x11 0xfff0 0x0>; + linux,phandle = <0x7>; + phandle = <0x7>; + }; + }; + + ethernet@e000c000 { + compatible = "cdns,zynq-gem", "cdns,gem"; + reg = <0xe000c000 0x1000>; + status = "disabled"; + interrupts = <0x0 0x2d 0x4>; + clocks = <0x2 0x1f 0x2 0x1f 0x2 0xe>; + clock-names = "pclk", "hclk", "tx_clk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + }; + + sdhci@e0100000 { + compatible = "arasan,sdhci-8.9a"; + status = "okay"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x2 0x15 0x2 0x20>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x18 0x4>; + reg = <0xe0100000 0x1000>; + broken-adma2; + disable-wp; + }; + + sdhci@e0101000 { + compatible = "arasan,sdhci-8.9a"; + status = "disabled"; + clock-names = "clk_xin", "clk_ahb"; + clocks = <0x2 0x16 0x2 0x21>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x2f 0x4>; + reg = <0xe0101000 0x1000>; + broken-adma2; + }; + + slcr@f8000000 { + #address-cells = <0x1>; + #size-cells = <0x1>; + compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd"; + reg = <0xf8000000 0x1000>; + ranges; + linux,phandle = <0x8>; + phandle = <0x8>; + + clkc@100 { + #clock-cells = <0x1>; + compatible = "xlnx,ps7-clkc"; + fclk-enable = <0xf>; + clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb"; + reg = <0x100 0x100>; + ps-clk-frequency = <0x1fca055>; + linux,phandle = <0x2>; + phandle = <0x2>; + }; + + rstc@200 { + compatible = "xlnx,zynq-reset"; + reg = <0x200 0x48>; + #reset-cells = <0x1>; + syscon = <0x8>; + }; + + pinctrl@700 { + compatible = "xlnx,pinctrl-zynq"; + reg = <0x700 0x200>; + syscon = <0x8>; + }; + }; + + dmac@f8003000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0xf8003000 0x1000>; + interrupt-parent = <0x1>; + interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7"; + interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>; + #dma-cells = <0x1>; + #dma-channels = <0x8>; + #dma-requests = <0x4>; + clocks = <0x2 0x1b>; + clock-names = "apb_pclk"; + }; + + devcfg@f8007000 { + compatible = "xlnx,zynq-devcfg-1.0"; + interrupt-parent = <0x1>; + interrupts = <0x0 0x8 0x4>; + reg = <0xf8007000 0x100>; + clocks = <0x2 0xc 0x2 0xf 0x2 0x10 0x2 0x11 0x2 0x12>; + clock-names = "ref_clk", "fclk0", "fclk1", "fclk2", "fclk3"; + syscon = <0x8>; + linux,phandle = <0x4>; + phandle = <0x4>; + }; + + efuse@f800d000 { + compatible = "xlnx,zynq-efuse"; + reg = <0xf800d000 0x20>; + }; + + timer@f8f00200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xf8f00200 0x20>; + interrupts = <0x1 0xb 0x301>; + interrupt-parent = <0x1>; + clocks = <0x2 0x4>; + }; + + timer@f8001000 { + interrupt-parent = <0x1>; + interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>; + compatible = "cdns,ttc"; + clocks = <0x2 0x6>; + reg = <0xf8001000 0x1000>; + }; + + timer@f8002000 { + interrupt-parent = <0x1>; + interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>; + compatible = "cdns,ttc"; + clocks = <0x2 0x6>; + reg = <0xf8002000 0x1000>; + }; + + timer@f8f00600 { + interrupt-parent = <0x1>; + interrupts = <0x1 0xd 0x301>; + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xf8f00600 0x20>; + clocks = <0x2 0x4>; + }; + + usb@e0002000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "okay"; + clocks = <0x2 0x1c>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x15 0x4>; + reg = <0xe0002000 0x1000>; + phy_type = "ulpi"; + dr_mode = "host"; + xlnx,phy-reset-gpio = <0x6 0x7 0x0>; + }; + + usb@e0003000 { + compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2"; + status = "disabled"; + clocks = <0x2 0x1d>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x2c 0x4>; + reg = <0xe0003000 0x1000>; + phy_type = "ulpi"; + }; + + watchdog@f8005000 { + clocks = <0x2 0x2d>; + compatible = "cdns,wdt-r1p2"; + interrupt-parent = <0x1>; + interrupts = <0x0 0x9 0x1>; + reg = <0xf8005000 0x1000>; + timeout-sec = <0xa>; + }; + }; + + aliases { + ethernet0 = "/amba/ethernet@e000b000"; + serial0 = "/amba/serial@e0001000"; + }; + + memory { + device_type = "memory"; + reg = <0x0 0x40000000>; + }; + + chosen { + linux,stdout-path = "/amba@0/uart@E0001000"; + }; + + clocks { + + clock@0 { + #clock-cells = <0x0>; + compatible = "adjustable-clock"; + clock-frequency = <0x2625a00>; + clock-accuracy = <0x30d40>; + clock-output-names = "XO_40MHz"; + linux,phandle = <0x9>; + phandle = <0x9>; + }; + + clock@2 { + #clock-cells = <0x0>; + compatible = "fixed-clock"; + clock-frequency = <0x16e3600>; + clock-output-names = "24MHz"; + linux,phandle = <0xa>; + phandle = <0xa>; + }; + }; + + ad9361-refclk-gpio-gate@0 { + #clock-cells = <0x0>; + compatible = "gpio-gate-clock"; + clocks = <0x9>; + enable-gpios = <0x6 0x69 0x0>; + clk-set-rate-parent-enable; + clock-output-names = "ad9361_ext_refclk"; + linux,phandle = <0x5>; + phandle = <0x5>; + }; + + usb-ulpe-gpio-gate@0 { + #clock-cells = <0x0>; + compatible = "gpio-gate-clock"; + clocks = <0xa>; + enable-gpios = <0x6 0x9 0x1>; + }; + + fpga-axi@0 { + compatible = "simple-bus"; + #address-cells = <0x1>; + #size-cells = <0x1>; + ranges; + + i2c@41600000 { + compatible = "xlnx,axi-iic-1.02.a", "xlnx,xps-iic-2.00.a"; + reg = <0x41600000 0x10000>; + interrupt-parent = <0x1>; + interrupts = <0x0 0x3a 0x4>; + clocks = <0x2 0xf>; + clock-names = "pclk"; + #address-cells = <0x1>; + #size-cells = <0x0>; + + adm1166@68 { + compatible = "adi,adm1166"; + reg = <0x68>; + }; + + ad7291-bob@2f { + compatible = "adi,ad7291"; + reg = <0x2f>; + }; + + eeprom@50 { + compatible = "at24,24c32"; + reg = <0x50>; + }; + }; + + dma@7c400000 { + compatible = "adi,axi-dmac-1.00.a"; + reg = <0x7c400000 0x10000>; + #dma-cells = <0x1>; + interrupts = <0 57 4>; + clocks = <0x2 0xf 0xf>; + linux,phandle = <0xb>; + phandle = <0xb>; + + adi,channels { + #size-cells = <0x0>; + #address-cells = <0x1>; + + dma-channel@0 { + reg = <0x0>; + adi,source-bus-width = <0x40>; + adi,source-bus-type = <0x2>; + adi,destination-bus-width = <0x40>; + adi,destination-bus-type = <0x0>; + adi,length-width = <0x18>; + }; + }; + }; + + dma@7c420000 { + compatible = "adi,axi-dmac-1.00.a"; + reg = <0x7c420000 0x10000>; + #dma-cells = <0x1>; + interrupts = <0 56 4>; + clocks = <0x2 0xf 0xf>; + linux,phandle = <0xd>; + phandle = <0xd>; + + adi,channels { + #size-cells = <0x0>; + #address-cells = <0x1>; + + dma-channel@0 { + reg = <0x0>; + adi,source-bus-width = <0x40>; + adi,source-bus-type = <0x0>; + adi,destination-bus-width = <0x40>; + adi,destination-bus-type = <0x2>; + adi,length-width = <0x18>; + adi,cyclic; + }; + }; + }; + + sdr: sdr { + compatible ="sdr,sdr"; + dmas = <&rx_dma 0 + &rx_dma 1 + &tx_dma 0 + &tx_dma 1>; + dma-names = "rx_dma_mm2s", "rx_dma_s2mm", "tx_dma_mm2s", "tx_dma_s2mm"; + interrupt-names = "not_valid_anymore", "rx_pkt_intr", "tx_itrpt0", "tx_itrpt1"; + interrupt-parent = <1>; + interrupts = <0 29 1 0 30 1 0 33 1 0 34 1>; + } ; + + axidmatest_1: axidmatest@1 { + compatible ="xlnx,axi-dma-test-1.00.a"; + dmas = <&rx_dma 0 + &rx_dma 1>; + dma-names = "axidma0", "axidma1"; + } ; + + tx_dma: dma@80400000 { + #dma-cells = <1>; + clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk"; + clocks = <0x2 0x10>, <0x2 0x10>, <0x2 0x10>, <0x2 0x10>; + compatible = "xlnx,axi-dma-1.00.a"; + interrupt-names = "mm2s_introut", "s2mm_introut"; + interrupt-parent = <1>; + interrupts = <0 35 4 0 36 4>; + reg = <0x80400000 0x10000>; + xlnx,addrwidth = <0x20>; + xlnx,include-sg ; + xlnx,sg-length-width = <0xe>; + dma-channel@80400000 { + compatible = "xlnx,axi-dma-mm2s-channel"; + dma-channels = <0x1>; + interrupts = <0 35 4>; + xlnx,datawidth = <0x40>; + xlnx,device-id = <0x0>; + }; + dma-channel@80400030 { + compatible = "xlnx,axi-dma-s2mm-channel"; + dma-channels = <0x1>; + interrupts = <0 36 4>; + xlnx,datawidth = <0x40>; + xlnx,device-id = <0x0>; + }; + }; + + rx_dma: dma@80410000 { + #dma-cells = <1>; + clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk"; + clocks = <0x2 0x10>, <0x2 0x10>, <0x2 0x10>, <0x2 0x10>; + compatible = "xlnx,axi-dma-1.00.a"; + //dma-coherent ; + interrupt-names = "mm2s_introut", "s2mm_introut"; + interrupt-parent = <1>; + interrupts = <0 31 4 0 32 4>; + reg = <0x80410000 0x10000>; + xlnx,addrwidth = <0x20>; + xlnx,include-sg ; + xlnx,sg-length-width = <0xe>; + dma-channel@80410000 { + compatible = "xlnx,axi-dma-mm2s-channel"; + dma-channels = <0x1>; + interrupts = <0 31 4>; + xlnx,datawidth = <0x40>; + xlnx,device-id = <0x1>; + }; + dma-channel@80410030 { + compatible = "xlnx,axi-dma-s2mm-channel"; + dma-channels = <0x1>; + interrupts = <0 32 4>; + xlnx,datawidth = <0x40>; + xlnx,device-id = <0x1>; + }; + }; + + tx_intf_0: tx_intf@83c00000 { + clock-names = "s00_axi_aclk", "s00_axis_aclk", "s01_axis_aclk", "m00_axis_aclk"; + clocks = <0x2 0x10>, <0x2 0x10>, <0x2 0x10>, <0x2 0x10>; + compatible = "sdr,tx_intf"; + interrupt-names = "tx_itrpt0", "tx_itrpt1"; + interrupt-parent = <1>; + interrupts = <0 33 1 0 34 1>; + reg = <0x83c00000 0x10000>; + xlnx,s00-axi-addr-width = <0x7>; + xlnx,s00-axi-data-width = <0x20>; + }; + + rx_intf_0: rx_intf@83c20000 { + clock-names = "s00_axi_aclk", "s00_axis_aclk", "m00_axis_aclk"; + clocks = <0x2 0x10>, <0x2 0x10>, <0x2 0x10>; + compatible = "sdr,rx_intf"; + interrupt-names = "not_valid_anymore", "rx_pkt_intr"; + interrupt-parent = <1>; + interrupts = <0 29 1 0 30 1>; + reg = <0x83c20000 0x10000>; + xlnx,s00-axi-addr-width = <0x7>; + xlnx,s00-axi-data-width = <0x20>; + }; + + openofdm_tx_0: openofdm_tx@83c10000 { + clock-names = "clk"; + clocks = <0x2 0x10>; + compatible = "sdr,openofdm_tx"; + reg = <0x83c10000 0x10000>; + }; + + openofdm_rx_0: openofdm_rx@83c30000 { + clock-names = "clk"; + clocks = <0x2 0x10>; + compatible = "sdr,openofdm_rx"; + reg = <0x83c30000 0x10000>; + }; + + xpu_0: xpu@83c40000 { + clock-names = "s00_axi_aclk"; + clocks = <0x2 0x10>; + compatible = "sdr,xpu"; + reg = <0x83c40000 0x10000>; + }; + + cf-ad9361-lpc@79020000 { + compatible = "adi,axi-ad9361-6.00.a"; + reg = <0x79020000 0x6000>; + dmas = <0xb 0x0>; + dma-names = "rx"; + spibus-connected = <0xc>; + }; + + cf-ad9361-dds-core-lpc@79024000 { + compatible = "adi,axi-ad9361-dds-6.00.a"; + reg = <0x79024000 0x1000>; + clocks = <0xc 0xd>; + clock-names = "sampl_clk"; + dmas = <0xd 0x0>; + dma-names = "tx"; + }; + + mwipcore@43c00000 { + compatible = "mathworks,mwipcore-axi4lite-v1.00"; + reg = <0x43c00000 0xffff>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led0 { + label = "led0:green"; + gpios = <0x6 0x3a 0x0>; + }; + + led1 { + label = "led1:green"; + gpios = <0x6 0x3b 0x0>; + }; + + led2 { + label = "led2:green"; + gpios = <0x6 0x3c 0x0>; + }; + + led3 { + label = "led3:green"; + gpios = <0x6 0x3d 0x0>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <0x1>; + #size-cells = <0x0>; + autorepeat; + + pb0 { + label = "Left"; + linux,code = <0x69>; + gpios = <0x6 0x36 0x0>; + }; + + pb1 { + label = "Right"; + linux,code = <0x6a>; + gpios = <0x6 0x37 0x0>; + }; + + pb2 { + label = "Up"; + linux,code = <0x67>; + gpios = <0x6 0x38 0x0>; + }; + + pb3 { + label = "Down"; + linux,code = <0x6c>; + gpios = <0x6 0x39 0x0>; + }; + + sw0 { + label = "SW0"; + linux,input-type = <0x5>; + linux,code = <0x0>; + gpios = <0x6 0x3e 0x0>; + }; + + sw1 { + label = "SW1"; + linux,input-type = <0x5>; + linux,code = <0x1>; + gpios = <0x6 0x3f 0x0>; + }; + + sw2 { + label = "SW2"; + linux,input-type = <0x5>; + linux,code = <0x2>; + gpios = <0x6 0x40 0x0>; + }; + + sw3 { + label = "SW3"; + linux,input-type = <0x5>; + linux,code = <0x3>; + gpios = <0x6 0x41 0x0>; + }; + }; +}; diff --git a/kernel_boot/boards/adrv9361z7035/u-boot.elf b/kernel_boot/boards/adrv9361z7035/u-boot.elf new file mode 100644 index 0000000000000000000000000000000000000000..d07429340c6ed0986ab73a4e02e19d7421b2f4d3 GIT binary patch literal 1837207 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