From 73acf00370274a1715c8cb6761907556ebf5ae1d Mon Sep 17 00:00:00 2001 From: Seres Ella Date: Thu, 21 May 2026 15:03:32 +0300 Subject: [PATCH 1/2] solutions/adrv9002: evaluation board docs - Added complete ADRV9002 reference design documentation structure - Quickstart guides for ZC706, ZCU102, ZED, and A10SoC platforms - User guide with IIO connections and setup instructions - Plugin documentation and prerequisites Signed-off-by: Seres Ella --- docs/conf.py | 1 + docs/software/libiio/index.rst | 2 +- .../ad-jupiter-ebz/index.rst | 6 +- .../adrv9002/adrv9002_plugin.rst | 336 ++++++ .../ADRV9002-SP-TAG-chip-illustration.png | 3 + .../images/ADRV9002TOP-evaluation-board.jpg | 3 + .../adrv9002/images/ADRV9002_FPGASettings.png | 3 + .../images/ADRV9002_Global_Settings.png | 3 + .../adrv9002/images/ADRV9002_ReciveChain.png | 3 + .../images/ADRV9002_Transmitionchain.png | 3 + .../images/ADRV9002_fourier_domain.png | 3 + .../adrv9002/images/ADRV9002_time_domain.png | 3 + .../images/Adrv9002_connection_iio_osc.png | 3 + .../adrv9002/images/a10soc_fmc_rework.jpg | 3 + .../adrv9002/images/adrv9002-fbl.png | 3 + .../images/adrv9002_a10soc_quickstart.png | 3 + .../adrv9002/images/adrv9002_b0_np_w1.png | 3 + .../adrv9002/images/adrv9002_b0_np_w2.png | 3 + .../adrv9002_dac_output_buffer_panel.png | 3 + .../images/adrv9002_iq_independent.png | 3 + .../adrv9002/images/adrv9002_noos_setup.jpeg | 3 + .../adrv9002/images/adrv9002_one_cw_tone.png | 3 + .../adrv9002/images/adrv9002_two_cw_tones.png | 3 + .../adrv9002/images/adrv9002_vadj_led.png | 3 + .../images/adrv9002_zc706_noos_setup.jpeg | 3 + .../images/adrv9002_zc706_quickstart.png | 3 + .../images/adrv9002_zcu102_noos_setup.jpeg | 3 + .../images/adrv9002_zcu102_quickstart.png | 3 + .../images/adrv9002_zed_quickstart.png | 3 + .../adrv9002/images/adrv9002xbcz_c0_np_w1.png | 3 + .../adrv9002/images/adrv9002xbcz_c0_np_w2.png | 3 + .../adrv9002/images/eval-adrv9002.gif | 3 + .../adrv9002/images/jumper_config.png | 3 + .../images/tes_diversity_settings_2.png | 3 + .../images/tes_enable_nco_correction_2.png | 3 + .../images/tes_main_configuration_4.png | 3 + .../images/tes_save_profile_and_stream_2.png | 3 + .../adrv9002/images/test_fh_enablement_2.png | 3 + .../reference-designs/adrv9002/index.rst | 235 ++++ .../adrv9002/prerequisites.rst | 10 + .../adrv9002/profile-generation.rst | 111 ++ .../adrv9002/quickstart/a10soc.rst | 212 ++++ .../adrv9002/quickstart/boot_log.rst | 563 +++++++++ .../adrv9002/quickstart/index.rst | 186 +++ .../adrv9002/quickstart/linux_setup_steps.rst | 48 + .../quickstart/no_os_console_output.rst | 9 + .../adrv9002/quickstart/no_os_setup_steps.rst | 14 + .../adrv9002/quickstart/zc706.rst | 892 ++++++++++++++ .../adrv9002/quickstart/zcu102.rst | 1063 +++++++++++++++++ .../adrv9002/quickstart/zed.rst | 42 + .../reference-designs/adrv9002/user-guide.rst | 235 ++++ .../reference-designs/adrv9371x/index.rst | 2 +- .../reference-designs/arradio/index.rst | 2 +- .../reference-designs/eval-ad9081/index.rst | 2 +- .../reference-designs/eval-adrv9009/index.rst | 2 +- .../reference-designs/eval-adrv902x/index.rst | 2 +- .../reference-designs/eval-adrv9032/index.rst | 2 +- .../reference-designs/eval-adrv904x/index.rst | 2 +- .../reference-designs/fmcomms5/index.rst | 2 +- .../reference-designs/fmcomms8/index.rst | 2 +- .../reference-designs/fmcomms8/user-guide.rst | 2 +- .../reference-designs/images/shutdown.png | 3 + .../reference-designs/template/_index.rst | 2 +- .../template/quickstart/a10soc.rst | 2 +- .../template/quickstart/zed.rst.jinja | 47 +- docs/tools/pluto/index.rst | 2 +- docs/tools/pluto/users/index.rst | 2 +- 67 files changed, 4106 insertions(+), 39 deletions(-) create mode 100644 docs/solutions/reference-designs/adrv9002/adrv9002_plugin.rst create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002-SP-TAG-chip-illustration.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002TOP-evaluation-board.jpg create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002_FPGASettings.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002_Global_Settings.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002_ReciveChain.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002_Transmitionchain.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002_fourier_domain.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/ADRV9002_time_domain.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/Adrv9002_connection_iio_osc.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/a10soc_fmc_rework.jpg create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002-fbl.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_a10soc_quickstart.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w1.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w2.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_dac_output_buffer_panel.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_iq_independent.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_noos_setup.jpeg create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_one_cw_tone.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_two_cw_tones.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_vadj_led.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_noos_setup.jpeg create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_quickstart.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_noos_setup.jpeg create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_quickstart.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002_zed_quickstart.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w1.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w2.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/eval-adrv9002.gif create mode 100644 docs/solutions/reference-designs/adrv9002/images/jumper_config.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/tes_diversity_settings_2.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/tes_enable_nco_correction_2.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/tes_main_configuration_4.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/tes_save_profile_and_stream_2.png create mode 100644 docs/solutions/reference-designs/adrv9002/images/test_fh_enablement_2.png create mode 100644 docs/solutions/reference-designs/adrv9002/index.rst create mode 100644 docs/solutions/reference-designs/adrv9002/prerequisites.rst create mode 100644 docs/solutions/reference-designs/adrv9002/profile-generation.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/a10soc.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/boot_log.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/index.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/linux_setup_steps.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/no_os_console_output.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/no_os_setup_steps.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/zc706.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/zcu102.rst create mode 100644 docs/solutions/reference-designs/adrv9002/quickstart/zed.rst create mode 100644 docs/solutions/reference-designs/adrv9002/user-guide.rst create mode 100644 docs/solutions/reference-designs/images/shutdown.png diff --git a/docs/conf.py b/docs/conf.py index c10599a053b..c1906202dd6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -54,6 +54,7 @@ 'no-OS', 'precision-converters-firmware', 'PrecisionToolbox', + 'testbenches', 'adi_ros2/humble/adi_meta', ] diff --git a/docs/software/libiio/index.rst b/docs/software/libiio/index.rst index 5651ef4eb9e..2097a3b7563 100644 --- a/docs/software/libiio/index.rst +++ b/docs/software/libiio/index.rst @@ -62,7 +62,7 @@ there are many places you can stream data to. - :dokuwiki:`MATLAB and Simulink ` - :dokuwiki:`Visual Analog ` - :ref:`iio-oscilloscope` -- :dokuwiki:`GNU Radio ` +- :ref:`GNU Radio ` - :ref:`pyadi-iio: Device Specific Python Interfaces For IIO Drivers ` Source code and releases diff --git a/docs/solutions/reference-designs/ad-jupiter-ebz/index.rst b/docs/solutions/reference-designs/ad-jupiter-ebz/index.rst index 1c0647f9bf7..e61edb6cc94 100644 --- a/docs/solutions/reference-designs/ad-jupiter-ebz/index.rst +++ b/docs/solutions/reference-designs/ad-jupiter-ebz/index.rst @@ -96,11 +96,11 @@ feel free to ask. - Software Solutions #. :ref:`iio-oscilloscope` #. :dokuwiki:`ADRV9001/2 IIO Scope View ` - #. :dokuwiki:`ADRV9001/2 Control IIO Scope Plugin ` + #. :ref:`ADRV9001/2 Control IIO Scope Plugin ` #. :dokuwiki:`ADRV9001/2 Profile Generator Plugin ` #. :external+scopy:ref:`adrv9002` #. :ref:`matlab transceiver-toolbox` - #. :dokuwiki:`GNU Radio ` + #. :ref:`GNU Radio ` #. :ref:`pyadi-iio` #. :ref:`libiio cli` - Embedded Resources @@ -109,7 +109,7 @@ feel free to ask. #. :external+linux:ref:`axi-dmac` #. :external+linux:ref:`axi-adc-hdl` #. :ref:`matlab transceiver-toolbox` - #. :dokuwiki:`GNU Radio ` + #. :ref:`GNU Radio ` #. :ref:`pyadi-iio` #. :ref:`libiio cli` #. :external+no-OS:doc:`projects/rf-transceiver/adrv9001` diff --git a/docs/solutions/reference-designs/adrv9002/adrv9002_plugin.rst b/docs/solutions/reference-designs/adrv9002/adrv9002_plugin.rst new file mode 100644 index 00000000000..d061fa3d6f6 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/adrv9002_plugin.rst @@ -0,0 +1,336 @@ +.. _adrv9002-plugin: + +ADRV9002 Plugin Description +=============================================================================== + +The ADRV9002 plugin works with the :ref:`IIO Oscilloscope `. +Always use the latest available version. Any field change is immediately written +to the ADRV9002 hardware and then read back to verify the setting is valid. +If a value you enter is changed by the GUI, it indicates either GUI rounding or +that the hardware (ADRV9002 or FPGA fabric) does not support that specific mode +or precision. + +If you modify settings directly through ``/sys/bus/iio/devices/...`` outside of +the GUI, you can refresh the displayed values by clicking the +``Reload Settings`` button at the bottom of the GUI. + +The ADRV9002 view is divided in four sections: + +- **ADRV9002 Global Settings** +- **ADRV9002 Receive Chain** +- **ADRV9002 Transmit Chain** +- **FPGA Settings** + +.. seealso:: + For more information about anything discussed in the sections below, see the + :external+linux:doc:`ADRV9002 Linux Driver Documentation `. + +ADRV9002 Global Settings +-------------------------------------------------------------------------------- + +.. image:: images/ADRV9002_Global_Settings.png + :width: 600 + +**Load Profile**: Loads device configuration settings from a JSON file that sets +filters, clock rates, and signal paths. + +**Load Stream**: Loads the stream binary file corresponding to the profile. Must +be loaded before loading the profile. + +Loading Profile and Stream Files +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To load the stream and profile configuration: + +1. Click the folder icon next to **Load Stream** and **Load Profile**. Loading + these files will configure the IIO Oscilloscope automatically, eliminating + the need for manual setup. +2. Navigate to + ``Program Files > IIO Oscilloscope > lib > osc > filters > adrv9002`` +3. Select the appropriate profile and stream pair from this directory. + +Receive Chain Configuration +-------------------------------------------------------------------------------- + +The Receive Chain section provides comprehensive control over the RX signal path +for both channels + +.. image:: images/ADRV9002_ReciveChain.png + :width: 900 + +Signal Path Parameters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Bandwidth(MHz)**: Displays the Primary Signal Bandwidth of the currently +loaded profile. This parameter defines the usable signal bandwidth for the +receive path. + +**Sampling Rate(MSPS)**:Shows the RX Sample Rate configured in the current +profile. This determines the digital sampling frequency for received signals. + +Gain Control Settings +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Gain Control**: +- SPI: Manual gain control via software interface +- PIN: Hardware pin-controlled gain adjustment +- Automatic: Automatic gain control (AGC) mode + +**Hardware Gain(dB)**: Controls the RX gain when in SPI or PIN mode. This +setting adjusts the analog gain in the receive signal path. + +Signal Monitoring +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**RSSI(dB)**: Displays the Received Signal Strength Indicator, providing +real-time measurement of input signal level. + +**Decimated Power**: Shows the decimated power measurement, useful for signal +analysis and monitoring. + +Frequency Control +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Local Oscillator**: Controls the carrier frequency for the receive chain. +This sets the center frequency for signal reception. + +.. warning:: + If you made a physical loopback between the RX and TX channels, make sure + the Local Oscillator value is the same for both channels. + +Channel Control +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Powerdown**: While off disables the receive channel. + + **Dynamic ADC Switch**: Enables dynamic ADC switching functionality for + optimized power management and performance. + + **ENSM (Enable State Machine)**: + Selects the operational mode for the Enable State Machine: + - Calibrated: Normal operation with calibrations enabled + - Primed: Standby mode ready for quick activation + - RF Enabled: Full RF operation mode + +**Port Enable**: + Configures how the port can be enabled: + - SPI: Software-controlled port enable + - PIN: Hardware pin-controlled port enable + +Digital Signal Processing +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Digital Gain Control**: Selects the digital gain control mode for fine-tuning +signal levels in the digital domain. + +**Interface Gain (dB)**: Controls the Slicer block gain for digital signal +processing optimization. + +**Tracking Calibrations**: Enable/disable various tracking calibration +algorithms: + +- Quadrature FIC: Quadrature frequency image correction +- BBDC Rejection: Baseband DC offset rejection +- HD2: Second harmonic distortion correction +- AGC: Automatic gain control calibration +- Quadrature Poly: Quadrature polynomial correction +- RSSI: RSSI calibration +- RDFC: Receive data formatting correction + +Transmit Chain Configuration +-------------------------------------------------------------------------------- + +.. image:: images/ADRV9002_Transmitionchain.png + :width: 900 + +The Transmit Chain section provides control over the TX signal path for both +channels. + +Signal Path Parameters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Bandwidth (MHz)**: Displays the Primary Signal Bandwidth for the transmit path +as defined in the current profile. + +**Sampling Rate (MSPS)**: Shows the TX Sample Rate configured in the current +profile, determining the digital sampling frequency for transmitted signals. + +Power Control +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Attenuation (dB)**: Controls the TX output power attenuation. Higher values +reduce output power. + +**Attenuation Control Mode**: Selects the attenuation control mechanism: + +- SPI: Software-controlled attenuation +- PIN: Hardware pin-controlled attenuation +- Bypass: Bypass attenuation control + +Channel Control +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Powerdown**: While off disables the transmit channel, stopping signal +transmission and reducing power consumption. + +**ENSM (Enable State Machine)**: Configures the transmit channel operational +mode similar to the receive chain. + +**Port Enable**: Selects port enable control method (SPI or PIN) for the +transmit channel. + +Frequency Control +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Local Oscillator (MHz)**: Sets the carrier frequency for signal transmission. + +.. warning:: + If you made a physical loopback between the RX and TX channels, make sure + the Local Oscillator value is the same for both channels. + +**Tracking Calibrations**: +Enable/disable transmit-specific calibration algorithms: +- Quadrature: Quadrature correction for TX path +- PA Correction: Power amplifier linearity correction +- LO Leakage: Local oscillator leakage correction +- Close Loop Gain: Closed-loop gain calibration +- Loopback Delay: Loopback delay calibration + +FPGA Settings +-------------------------------------------------------------------------------- + +.. image:: images/ADRV9002_FPGASettings.png + :width: 900 + +Transmit/DDS +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The plugin provides several options on how the transmitted data is generated. + +It is possible to either use the built-in two tone **Direct Digital Synthesizer +(DDS)** to transmit a bi-tonal signal on channels I and Q of the DAC. Or it is +possible to use the **Direct Memory Access (DMA) facility** to transmit custom +data that you have stored in a file. + +This can be achieved by selecting one of the following options listed by the +**DDS Mode**: + +One CW Tone +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: images/adrv9002_one_cw_tone.png + :align: right + +In **One CW Tone** mode one continuous wave (CW) tone will be outputted. The +plugin displays the controls to set the Frequency, Amplitude and Phase for just +one tone and makes sure that the amplitude of the other tone is set to 0. The +resulting signal will be outputted on the Channel I of the DAC and the exact +same signal but with a difference in phase of 90 degrees will be outputted on +the Channel Q of the DAC. + +Two CW Tone +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: images/adrv9002_two_cw_tones.png + :align: right + +In **Two CW Tone** mode two continuous wave (CW) tones will be outputted. +The plugin displays the controls to set the frequencies F1 and F2, +amplitudes A1 and A2, phases P1 and P2 for the two tones. The resulting +signal will be outputted on the Channel I of the DAC and the exact same +signal but with a difference in phase of 90 degrees will be outputted on +the Channel Q of the DAC. + +Independent I/Q Control +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: images/adrv9002_iq_independent.png + :align: right + +In **Independent I/Q Control** the plugin displays the controls to set the +frequencies, amplitudes and phases for the two tones that will be outputted on +channel I and additionally it allows for the two tones that will be outputted on +channel Q of the DAC to be configured independently. + +.. note:: + + Note: The bi-tonal signal (T) is defined as the sum of two tones: T(t) = A1 + \* sin(2 \* p \* F1 \* t + P1) + A2 \* sin(2 \* p \* F2 \* t + P2), where + A-amplitude, F-frequency, P-phase of a tone. + +DAC Buffer Output +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: images/adrv9002_dac_output_buffer_panel.png + :align: right + +The file selector under the **File Selection** section is used to locate and +choose the desired data file. Under the **DAC Channels** section the enabled +channels will be used to transmit the data stored in the file. To finalize the +process, a click on the **Load** button is required. + +**Restrictions:** + +- There are two types of files than can be loaded: **.txt** or **.mat**. The + IIO-Oscilloscope comes with several :git-iio-oscilloscope:`data files ` + that can be used. If you want to create your own data files please take a + look at the :ref:`Basic IQ Data Files ` documentation first. +- Due to hardware limitation only specific combinations of enabled channels are + possible. You can enable a total of 1, 2, 4, etc. channels. If 1 channel is + enabled then it can be any of them. If two channels are enabled then channels + 0, 1 or channels 2, 3 can be enabled and so on. + +Disable +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In this mode both DDS and DMA are disabled causing the DAC channels to stop +transmitting any data. + +.. note:: + + Upon pressing Reload Settings button the values will be reloaded with the + corresponding driver values. Useful in scenarios where the driver values get + changed outside this plugin and a refresh on plugin's values is needed. + +.. hint:: + + Some plugin values will be rounded to the nearest value supported by the + hardware. + +Profile Generator +-------------------------------------------------------------------------------- + +ADRV9002 device profiles configure the digital filters, analog filters, clock +rates, and signal paths. There are two ways to generate profiles: + +Using TES (Transceiver Evaluation Software) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The +:adi:`Transceiver Evaluation Software (TES) ` +is a standalone Windows application from Analog Devices dedicated to generating +ADRV9002 profiles and stream files. It provides full control over all profile +parameters including signal type selection (LTE, DMR, etc.), interface rate +configuration, NCO frequency offset, antenna diversity, and frequency hopping +settings. TES is used exclusively for profile generation and does not provide +data acquisition or device control capabilities. + +For a detailed guide, see :ref:`adrv9002 profile-generation`. + +Using the Integrated Plugin Profile Generator +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Both the :ref:`IIO Oscilloscope ` and +:external+scopy:doc:`Scopy ` ADRV9002 plugins include an integrated +Profile Generator tab that provides a graphical interface for creating and +managing device profiles. This approach allows profile generation within the same +tool used for device control and data acquisition. + +.. warning:: + The Profile Generator functionality requires the libadrv9002-iio library to + be installed. If this external tool is missing, the Profile Generator + functionality will be disabled. The library can be obtained from: + https://analogdevicesinc.github.io/libadrv9002-iio + +More information about this topic can be found in the +:external+scopy:doc:`Scopy ADRV9002 Plugin Documentation `. \ No newline at end of file diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002-SP-TAG-chip-illustration.png b/docs/solutions/reference-designs/adrv9002/images/ADRV9002-SP-TAG-chip-illustration.png new file mode 100644 index 00000000000..9e31f708d9b --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002-SP-TAG-chip-illustration.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93c7074089d1beb4cc1a8efba3d14b64198f1e6bb575db65b0fc21281f2b6783 +size 9340862 diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002TOP-evaluation-board.jpg b/docs/solutions/reference-designs/adrv9002/images/ADRV9002TOP-evaluation-board.jpg new file mode 100644 index 00000000000..80fb82db79a --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002TOP-evaluation-board.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b1fb19a8f492fae1d57fef5e008fbb894bfc56c1f61d7d6ab5004ed62d27171 +size 23467149 diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002_FPGASettings.png b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_FPGASettings.png new file mode 100644 index 00000000000..62c2e6dbef4 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_FPGASettings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66342983cfc7ad23daae03001b4a7f9a5c78352a613480944e9310835b640d28 +size 18500 diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002_Global_Settings.png b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_Global_Settings.png new file mode 100644 index 00000000000..44dec9248a4 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_Global_Settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:218c370ac03edc5a893f3915faf3522dfa3d10fe842a0e9b94061ee13690ad62 +size 40871 diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002_ReciveChain.png b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_ReciveChain.png new file mode 100644 index 00000000000..8bfe49e76c2 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_ReciveChain.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d306ece102ba316803a1c84358e3bdbf555167b6bd9ad4d607932db02744a26c +size 34261 diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002_Transmitionchain.png b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_Transmitionchain.png new file mode 100644 index 00000000000..afd25f6f8f3 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_Transmitionchain.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e09ebd9126bcab69d84505db91f672f177c4054ed350d3f444dcad573bb1b525 +size 21210 diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002_fourier_domain.png b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_fourier_domain.png new file mode 100644 index 00000000000..aa82a85f3b1 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_fourier_domain.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b24a46ba2bd898f60fcbe938879a27efe3198522966b2405ba12488ff143105a +size 103339 diff --git a/docs/solutions/reference-designs/adrv9002/images/ADRV9002_time_domain.png b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_time_domain.png new file mode 100644 index 00000000000..5a330cecb12 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/ADRV9002_time_domain.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb209d78dd0480e649dec169784c2e7d7651325e05ebf48893c33d4b8c883a03 +size 52230 diff --git a/docs/solutions/reference-designs/adrv9002/images/Adrv9002_connection_iio_osc.png b/docs/solutions/reference-designs/adrv9002/images/Adrv9002_connection_iio_osc.png new file mode 100644 index 00000000000..1de7834392d --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/Adrv9002_connection_iio_osc.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40139af54f1c50b690b3e4a75077bdd712df5815d1e39530a6c489e8382ebb7c +size 46205 diff --git a/docs/solutions/reference-designs/adrv9002/images/a10soc_fmc_rework.jpg b/docs/solutions/reference-designs/adrv9002/images/a10soc_fmc_rework.jpg new file mode 100644 index 00000000000..fce6fc94995 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/a10soc_fmc_rework.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2a9ebdf9a3dd01519cb03a0d6540d0e0ee83df23a66922c29339795f9b58085 +size 54086 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002-fbl.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002-fbl.png new file mode 100644 index 00000000000..0ec4969788c --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002-fbl.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b9715341a08c1909621dd6c5f5a5f83b1098375f110f3da0aa3382229b815e3 +size 61337 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_a10soc_quickstart.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_a10soc_quickstart.png new file mode 100644 index 00000000000..dbec28ffcf9 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_a10soc_quickstart.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d073bb7fefaad8edf5e9c78f16a12f41117f957d8ad0fe70b3c22485f95c70d0 +size 2162452 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w1.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w1.png new file mode 100644 index 00000000000..8c91ef70e94 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cba210c3d95c5f8085cee7a052e8724ef6bf8b9b0dd1541500d1b3f7647fc78 +size 5614 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w2.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w2.png new file mode 100644 index 00000000000..fec20fdd99d --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_b0_np_w2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00ff75e08159c5f70b177f4b0c6feae41a15dd887303027b84ed7ae31e1c185c +size 5115 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_dac_output_buffer_panel.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_dac_output_buffer_panel.png new file mode 100644 index 00000000000..97fbdddb4b8 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_dac_output_buffer_panel.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cc4e341cec0f18e36dfc9eeb8c05c6799e208eac102789de0369055c10ab0d8 +size 39219 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_iq_independent.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_iq_independent.png new file mode 100644 index 00000000000..bca16fa0ad8 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_iq_independent.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:228f96f963054ec9c2c5298474d23e9c6b6d0d0be05e3281bfb7a18256a843c5 +size 41543 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_noos_setup.jpeg b/docs/solutions/reference-designs/adrv9002/images/adrv9002_noos_setup.jpeg new file mode 100644 index 00000000000..1fb5e3e2a76 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_noos_setup.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad7392068d53defe0e614fa934e616dd4f980304b061a24d1cb64f259ba296b3 +size 198602 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_one_cw_tone.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_one_cw_tone.png new file mode 100644 index 00000000000..fd3058f8370 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_one_cw_tone.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c91dc79c1917fa48e6d26c674e6773306f05db97f59174d9be8f14597b61eb13 +size 13274 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_two_cw_tones.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_two_cw_tones.png new file mode 100644 index 00000000000..dc4342f0bdc --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_two_cw_tones.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:466629b563fbcb0760dc7f4bf4e875f4a1a1c20e1f2f14d56334d42c581f360f +size 26254 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_vadj_led.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_vadj_led.png new file mode 100644 index 00000000000..920c1a19a79 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_vadj_led.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00c00aa4e386e67e01b197e42803d22c5dd065a1a6636a0d9d410fe045bd3508 +size 1433377 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_noos_setup.jpeg b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_noos_setup.jpeg new file mode 100644 index 00000000000..65ee5e5808b --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_noos_setup.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f2e02977061e738e0e98d3f96b2da3875194432303f5f9aadb0f11e7847a4f5 +size 595457 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_quickstart.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_quickstart.png new file mode 100644 index 00000000000..43dd493236c --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zc706_quickstart.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7121b450c1d8869a7fe5074aa49205a39f0573ae394f80cb9feb39126fdf8427 +size 248083 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_noos_setup.jpeg b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_noos_setup.jpeg new file mode 100644 index 00000000000..0a8fd320f24 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_noos_setup.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:244477d152633ca01a49e4e14eb84e39325013431c85d682ab51faad1c4a1685 +size 584680 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_quickstart.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_quickstart.png new file mode 100644 index 00000000000..68af525401a --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zcu102_quickstart.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b46d9128fae1d82fffbaf0c1dbfedc6abb7e21c1ce07420d6f0eefc85b15760f +size 376779 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002_zed_quickstart.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zed_quickstart.png new file mode 100644 index 00000000000..55040c0fb11 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002_zed_quickstart.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae2c28b6378fae7adc71367b69f2b3c696b1ff7dacb862d867032f2eff0ef408 +size 1841233 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w1.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w1.png new file mode 100644 index 00000000000..a7c8b14f704 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69a048a52e37da0e029b1ad4aa31b1a6e9ec81b1fb73c7839272d3b97264ad55 +size 6107 diff --git a/docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w2.png b/docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w2.png new file mode 100644 index 00000000000..b4c39fe526e --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/adrv9002xbcz_c0_np_w2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c2b8b5ee03d6cdcffe92e6942a656911ae95474b72bcff7cfaba41cdc31630d +size 5871 diff --git a/docs/solutions/reference-designs/adrv9002/images/eval-adrv9002.gif b/docs/solutions/reference-designs/adrv9002/images/eval-adrv9002.gif new file mode 100644 index 00000000000..78bae29ad9e --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/eval-adrv9002.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4107d7ab40dbc9f2f4878aec1d6e06f71cbfe57aafbf919b25f7fbce2f0b5536 +size 189837 diff --git a/docs/solutions/reference-designs/adrv9002/images/jumper_config.png b/docs/solutions/reference-designs/adrv9002/images/jumper_config.png new file mode 100644 index 00000000000..0a3d26fa830 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/jumper_config.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd2a14629f1126ef6bfe91ccd2cf757520e54ce2e17c6a0b43930265562f98b4 +size 7081849 diff --git a/docs/solutions/reference-designs/adrv9002/images/tes_diversity_settings_2.png b/docs/solutions/reference-designs/adrv9002/images/tes_diversity_settings_2.png new file mode 100644 index 00000000000..62d7279d2eb --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/tes_diversity_settings_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fee574bf780e36d986b0be1a0f870b8a21b4671ce05137377cf1131aeb9c8342 +size 189843 diff --git a/docs/solutions/reference-designs/adrv9002/images/tes_enable_nco_correction_2.png b/docs/solutions/reference-designs/adrv9002/images/tes_enable_nco_correction_2.png new file mode 100644 index 00000000000..2bdffc5ed76 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/tes_enable_nco_correction_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e73d9cdefa17e78e5b1feeea4674abe7b8a63cb15d7011419282caa09b54a274 +size 202452 diff --git a/docs/solutions/reference-designs/adrv9002/images/tes_main_configuration_4.png b/docs/solutions/reference-designs/adrv9002/images/tes_main_configuration_4.png new file mode 100644 index 00000000000..5ae724da948 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/tes_main_configuration_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04bfb889d87a0d187100b57b4f21c81a7ec243670d1317f0a012a0e22725c558 +size 65818 diff --git a/docs/solutions/reference-designs/adrv9002/images/tes_save_profile_and_stream_2.png b/docs/solutions/reference-designs/adrv9002/images/tes_save_profile_and_stream_2.png new file mode 100644 index 00000000000..db5696a0d4f --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/tes_save_profile_and_stream_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f68daae261addcbf1ca7d3e99cc6a0c404af54362c7a365cff3626b26f7dfe2c +size 195694 diff --git a/docs/solutions/reference-designs/adrv9002/images/test_fh_enablement_2.png b/docs/solutions/reference-designs/adrv9002/images/test_fh_enablement_2.png new file mode 100644 index 00000000000..42a1013640e --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/images/test_fh_enablement_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb084b21300dc2ca4ee4d15303ea7775b2444bdba223fa3d12a4a83baaf4c444 +size 189384 diff --git a/docs/solutions/reference-designs/adrv9002/index.rst b/docs/solutions/reference-designs/adrv9002/index.rst new file mode 100644 index 00000000000..80cc6661db5 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/index.rst @@ -0,0 +1,235 @@ + +.. _adrv9002-eval: + +EVAL-ADRV9002 +=============================================================================== + +.. image:: images/ADRV9002-SP-TAG-chip-illustration.png + :align: left + :width: 150 + +Overview +------------------------------------------------------------------------------- + +.. important:: + + The ADRV9001 is the family designator assigned to the System Development User + Guide (UG-1828) for new ADRV9002, ADRV9003, ADRV9004, and upcoming additional + family members. Thus, throughout this document, ADRV9001 designator may be + used to refer to either ADRV9002, ADRV9003 or ADRV9004. + +The ADRV9002 is a highly integrated RF transceiver that has dual-channel +transmitters, dual-channel receivers, integrated synthesizers, and digital +signal processing functions. + +The ADRV9002 is a high performance, highly linear, high dynamic range +transceiver designed for performance vs. power consumption system +optimization. The device is configurable and ideally suited to demanding, +low power, portable and battery powered equipment. The ADRV9002 operates +from 30 MHz to 6000 MHz and covers the UHF, VHF, industrial, scientific, +and medical (ISM) bands, and cellular frequency bands in narrow-band +(kHz) and wideband operation up to 40 MHz. The ADRV9002 is capable of +both TDD and FDD operation. + +The transceiver consists of direct conversion signal paths with +state-of-the-art noise figure and linearity. Each complete receiver and +transmitter subsystem includes dc offset correction, quadrature error +correction (QEC), and programmable digital filters, which eliminate the +need for these functions in the digital baseband. In addition, several +auxiliary functions, such as auxiliary analog-to-digital converters +(ADCs), auxiliary digital-to-analog converters (DACs), and +general-purpose inputs/outputs (GPIOs), are integrated to provide +additional monitoring and control capability. + +Features: + +- 2 × 2 highly integrated transceiver +- Frequency range of 30 MHz to 6000 MHz +- Transmitter and receiver bandwidth from 12 kHz to 40 MHz +- Two fully integrated, fractional-N, RF synthesizers +- LVDS and CMOS synchronous serial data interface options +- Low power monitor and sleep modes +- Multichip synchronization capabilities +- Fast frequency hopping +- Dynamic profile switching for dynamic data rates and sample rates +- Fully integrated DPD for narrow-band and wideband waveforms +- Fully programmable via a 4-wire SPI +- 12 mm × 12 mm, 196-ball CSP_BGA + +Applications: + +- Mission critical communications +- Very high frequency (VHF), ultrahigh frequency (UHF), and cellular + to 6 GHz +- Time division duplexing (TDD) and frequency division duplexing (FDD) + applications + +:adi:`EVAL-ADRV9002` looks like this, with 2x ADCs and 2x DACs. The evaluation +boards are available in two variants: ADRV9002NP/W1/PCBZ (narrowband) and +ADRV9002NP/W2/PCBZ (wideband). + +.. image:: images/eval-adrv9002.gif + :align: center + :width: 500 + +.. toctree:: + :hidden: + + user-guide + prerequisites + quickstart/index + adrv9002_plugin + profile-generation + +Recommendation +------------------------------------------------------------------------------- + +To better understand the :adi:`ADRV9002`, we recommend to use +the :adi:`EVAL-ADRV9002` evaluation board. + +Table of contents +------------------------------------------------------------------------------- + +#. Using the evaluation board/full stack reference design that we offer: + + #. :ref:`adrv9002 user-guide` - what you need to know about the + evaluation board + #. :ref:`adrv9002 prerequisites` - what you need to get started + #. :ref:`adrv9002 quickstart`: + + #. Using the :ref:`ZedBoard ` + #. Using the :ref:`ZC706 ` + #. Using the :ref:`ZCU102 ` + #. Using the :ref:`Arria 10 SoC ` + + #. Configure an SD Card with :external+kuiper:doc:`Kuiper ` + + #. Software Solutions + + #. :ref:`iio-oscilloscope` + #. :ref:`adrv9002-plugin` + #. :ref:`Profile Generation using TES ` + #. :external+scopy:doc:`Scopy ` + #. :external+scopy:doc:`ADRV9002 Scopy Plugin ` + #. :ref:`libiio cli` + #. :ref:`Python Interfaces ` + #. :git-pyadi-iio:`ADRV9002 Python Example ` + +#. Design with the ADRV9002 + + #. :ref:`adrv9002 block-diagram` + + #. :adi:`ADRV9002 product page ` + #. :adi:`EVAL-ADRV9002 product page ` + + #. Hardware in the Loop / How to design your own custom BaseBand + + #. :ref:`GNU Radio ` + #. `Transceiver Toolbox `_ + + #. Resources for designing a custom ADRV9002-based platform software + + #. For Linux software: + + #. About the device driver: + + #. :external+linux:ref:`axi-adc-hdl` + #. :external+linux:ref:`axi-dac-dds-hdl` + #. :external+linux:ref:`axi-dmac` + #. :external+linux:ref:`adrv9002` + #. :external+linux:ref:`adrv9002-customization` + + #. About the device tree: + + #. :dokuwiki:`Customizing the device tree on the target ` + + #. For no-OS software: + + #. :external+no-OS:doc:`ADRV9001 no-OS Example Project ` + #. :external+no-OS:doc:`ADRV9002 no-OS Driver ` + #. :external+no-OS:doc:`no-OS IIO support ` + + #. FPGA Resources: + + #. :external+hdl:ref:`HDL reference design ` which you must use in your FPGA. + #. :external+hdl:ref:`axi_adrv9001` + #. :external+hdl:ref:`HDL User Guide ` + + #. Testbench: + + #. :git+testbenches:`ADRV9001 Testbench ` + #. :external+testbenches:ref:`adrv9001` + +.. _adrv9002 block-diagram: + +Block diagram +------------------------------------------------------------------------------- + +.. image:: images/adrv9002-fbl.png + :align: center + :width: 800 + +Videos +------------------------------------------------------------------------------- + +ADRV9002 RF Agile Transceiver Overview +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. video:: https://www.analog.com/en/resources/media-center/videos/6170462863001.html + +ADRV9002 Dual, Narrow and Wideband Integrated Transceiver +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. video:: https://www.analog.com/en/resources/media-center/videos/6248890375001.html + +ADI articles +------------------------------------------------------------------------------- + +MathWorks webinars +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. :mw:`Modelling and Simulating Analog Devices' RF Transceivers with MATLAB and SimRF ` +#. :mw:`Getting Started with Software-Defined Radio using MATLAB and Simulink ` + +Additional information +------------------------------------------------------------------------------- + +Four Quick Steps to Production - SDR Prototyping Platform Series: + +#. :adi:`Part 1—The Analog Devices/Xilinx SDR Rapid Prototyping Platform: Its Capabilities, Benefits, and Tools ` +#. :adi:`Part 2—Mode S Detection and Decoding Using MATLAB and Simulink ` +#. :adi:`Part 3—Mode S Signals Decoding Algorithm Validation Using Hardware in the Loop ` +#. :adi:`Part 4—Rapid Prototyping Using the Zynq SDR Kit and Simulink Code Generation Workflow ` + +SDR Signal Chains documentation - the math behind the RF: + +- :adi:`SDR Signal Chains Documentation ` + +Help and support +------------------------------------------------------------------------------- + +People who follow the flow that is outlined have a much better experience. +However, like many things, documentation is never as complete as it should be. +If you have any questions, feel free to ask on the :ez:`/` technical support +community, but before that, please make sure you read our documentation +thoroughly. + +Please use the appropriate support forum for your question: + +- For hardware technical support, please use the: + :ez:`design-support/design-support-adrv9001-adrv9007` +- For Evaluation System Software support (TES GUI, ADRV9001 API driver, + etc.), please use the: + :ez:`sw-interface-tools/tes-gui-software-support-adrv9001-adrv9007` +- For questions regarding the HDL reference design, please use the: + :ez:`fpga` +- For questions regarding the ADI Linux distribution, the Linux drivers, or + the device trees for the ADRV9001/2 based platforms, please use the: + :ez:`linux-software-drivers` +- For questions regarding the no-OS drivers for ADRV9001/2, please use + the: :ez:`microcontroller-no-os-drivers` + +Warning +------------------------------------------------------------------------------- + +.. esd-warning:: diff --git a/docs/solutions/reference-designs/adrv9002/prerequisites.rst b/docs/solutions/reference-designs/adrv9002/prerequisites.rst new file mode 100644 index 00000000000..8f28704be57 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/prerequisites.rst @@ -0,0 +1,10 @@ +.. include-template:: ../template/prerequisites.rst.jinja + + prerequisites_ref: adrv9002 prerequisites + chip_name: ADRV9002 + eval_board: EVAL-ADRV9002 + carriers_ref: adrv9002 carriers + has_linux: true + has_rf_test_equipment: true + additional_hardware: + - SMA Cables - As Needed diff --git a/docs/solutions/reference-designs/adrv9002/profile-generation.rst b/docs/solutions/reference-designs/adrv9002/profile-generation.rst new file mode 100644 index 00000000000..58a766b02be --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/profile-generation.rst @@ -0,0 +1,111 @@ +.. _adrv9002 profile-generation: + +Profile generation flow using TES +================================= + +Profiles +-------- + +:adi:`ADRV9002` uses profiles to designate different device configuration +settings for the Tx/Rx channels. The profile dictates how the digital filters, +analog filters, clock rates, and clock dividers are configured in the device. +Some specific parameters set by profiles include the IQ data rate, ADC clock +rate, analog filter corners, FIR filter coefficients, and +interpolation/decimation factors in the half-band filters. Several profiles can +be examined in the ADRV9002 Transceiver Evaluation Software for given device +clock frequencies. If the desired profile exists in the software, it is +recommended to set up the desired profile in and use the generated JSON file by +pressing the ``Generate Profile File`` button. Custom profiles can be generated +using the +:adi:`ADRV9002 transceiver evaluation software (TES) `. + +.. warning:: + + Profiles are specific to the versions of ADRV9001/2 API that the driver + uses. Therefore, they must be generated from the + :adi:`TES software ` + that coincides with that API version. Unfortunately, profiles themselves + are not versioned so it is recommended to note the API version in the + generated profile filenames when created. The driver will print the API + version during boot for reference. + +For more information about profiles and how to load please see here: +:external+linux:ref:`adrv9002` + +Installation and Configuration +------------------------------ + +Detailed installation and configuration instructions can be found under section +``TRANSCEIVER EVALUATION SOFTWARE (TES)`` in the +:adi:`UG-1828:ADRV9001 system development user guide ` + +Download: + +- :adi:`TRANSCEIVER EVALUATION SOFTWARE (TES) ` + +Worked example +-------------- + +In the following picture we can see the base controls for the profile: + +.. figure:: images/tes_main_configuration_4.png + :align: center + +In here, one can change the main profile type (LTE, DMR, etc), interface rate, +disabling ports and so on… + +.. caution:: + + Special care for the fields highlighted in channel 2 (also applies for + channel 1) that must be set like in the image. The LVDS enforcement is + specific to **jupiter**. + +Once we are done with the settings, time to generate the stream and the profiles +files: + +.. figure:: images/tes_save_profile_and_stream_2.png + :align: center + +In the next subsections, we can see some extra and useful settings that one +might want to set before generating the stream and the profile files. + +Enable NCO Frequency offset +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: images/tes_enable_nco_correction_2.png + :align: center + +.. note:: + + Enabling this setting, enables the IIO attribute + :external+linux:ref:`adrv9002`. + These settings are on by default on **jupiter** default profile. + +Enable Antenna Diversity +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: images/tes_diversity_settings_2.png + :align: center + +.. note:: + + This setting affects the LO mapping (which ports each LO drives). + Basically having this on, means that all ports are mapped into + the same LO. + +.. warning:: + + This setting is only available if TDD is set in the **Device + Configuration** tab. + +Enable Frequency hopping +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: images/test_fh_enablement_2.png + :align: center + +.. note:: + + The only thing needed to do in TES is to enable Frequency hopping + as highlighted. All the other settings do not map to any profile + setting. diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/a10soc.rst b/docs/solutions/reference-designs/adrv9002/quickstart/a10soc.rst new file mode 100644 index 00000000000..1c2ebf0386a --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/a10soc.rst @@ -0,0 +1,212 @@ +.. _adrv9002-a10soc: + +A10SoC Quick start +=============================================================================== + +.. image:: ../../images/a10soc_marked.png + :width: 800 + +This guide provides quick instructions on how to setup the +:adi:`EVAL-ADRV9002` on: + +- :intel:`Arria 10 SoC ` + (Rev. C or later) on FMCA + +Using Linux as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. note:: + + For Intel SoC-FPGA boards, one boot file must be written to the third SD + card partition, which is not accessible from Windows. You will need either + a native Linux system or WSL to properly configure the SD card. For detailed + file placement instructions, refer to + :external+hdl:ref:`Using Kuiper Linux pre-built images `. + + On the Kuiper image, the ``zImage file`` and the ``extlinux.conf`` file can be found + in the carrier-specific folder, which is common to all projects that use this + carrier. All remaining boot files are located in the project-specific folder. + The extlinux directory is not provided and must be created by the user. + +The following files are needed for the system to boot: + +- HDL boot image: ``fit_spl_fpga.itb`` +- Linux Kernel image: ``zImage`` +- Linux device tree: ``socfpga_arria10_socdk_sdmmc.dtb`` +- U-Boot image: ``u-boot.img`` +- ``extlinux.conf`` in the **extlinux** folder from SD Card +- Write ``u-boot-splx4.sfp`` on **third** SD Card partition: + +Instructions on how to manually build the boot files from source can be found +here: + +- :external+hdl:ref:`Building the Intel SoC-FPGA kernel and devicetrees from source ` +- :external+hdl:ref:`adrv9001` build documentation. + More HDL build details at :external+hdl:ref:`build_hdl`. + +Required software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` +- A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) + +Required hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :intel:`Arria 10 SoC ` + (Rev. C or later) FPGA board and its power supply +- :adi:`EVAL-ADRV9002` FMC evaluation board +- MicroSD card with at least 16GB of memory +- Mini-USB cable (UART) +- LAN cable (Ethernet) +- Signal generator +- Signal analyzer +- Signal synthesizer (required only if using external clock source) +- 1x SMA cable for signal generator +- 1x SMA cable for signal analyzer +- 1x SMA cable for signal synthesizer (if using external clock) +- (Optional) USB keyboard & mouse and a HDMI compatible monitor + +More details as to why you need these, can be found at +:ref:`adrv9002 prerequisites`. + +.. _adrv9002-a10soc-changes: + +A10SoC required hardware changes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. warning:: + + The following rework is required on the A10SoC FPGA: + + To avoid using an external clock source and fully rely on the + :adi:`HMC7044` clock chip, rotate the C6D/C4D caps in C5D/C3D position. + (Please note: In the latest version of the board, this is now the default + configuration, so this configuration step might not be needed anymore). + + If LEDS V1P0_LED and VINT_LED are not on please depopulate R22M and + populate R2M. + +In the default configuration of the +:intel:`Arria10 SoC Development Kit `, +some of the FMC header pins are connected to a dedicated clock chip. +To be compatible with the :adi:`EVAL-ADRV9002`, these pins need to be connected +directly to the FPGA. + +The connection of those pins can be changed by moving the position of +four zero Ohm resistors: + +- R612 to R610 +- R613 to R611 +- R621 to R620 +- R633 to R632 + +These resistors can be found on the backside of the A10SoC, underneath the +FMCA connector (J29). The following picture shows the required configuration +to be compatible with the :adi:`EVAL-ADRV9002`. + +.. image:: ../images/a10soc_fmc_rework.jpg + :width: 900 + +Testing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: ../images/adrv9002_a10soc_quickstart.png + :width: 900 + +.. esd-warning:: + +.. warning:: + + Before executing the steps below, **VADJ for FMCA must be set to 1.8V**. + Short pins 9 and 10 on J32 (default position). + +On the ADRV9002 card, there is a red LED close to the FMC connector. This LED +indicates if VADJ voltage exceeded 2.0V. If the LED does not turn off after a +few seconds after boot, VADJ is exceeding the recommended level, decreasing +board lifetime and potentially causing permanent damage to the IC. + +.. image:: ../images/adrv9002_vadj_led.png + :width: 900 + +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`EVAL-ADRV9002` FMC board to the FMCA carrier socket (G14). +#. On the FMC card, set the switch to select clock source between: + + #. an on-board 38.4 MHz VCTCXO (default) + #. external (via J501) 10 MHz to 1000 MHz / +13 dBm + +#. Connect USB UART (Mini-USB) to your host PC (J10). +#. Insert MicroSD card into socket. +#. Configure the Arria 10 SoC Development Kit for SD card booting (set the + jumpers and switches accordingly). +#. Connect the power supply for the FPGA. +#. Turn on the power switch on the FPGA board. +#. Observe kernel and serial console messages on your terminal. + +.. seealso:: + For more detailed information on a10soc jumper configuration, check the + *A10SoC Hardware User Guide* (chapter "Default Switch and Jumper Settings") + `here `__. + +.. Boot messages +.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. +.. The following is what is printed in the serial console, after you have +.. connected to the proper ttyUSB or COM port. +.. +.. Configuring the FPGA will take a few seconds. Once the FPGA has been configured +.. the green D18 LED will turn on and the boot process will continue. +.. +.. .. collapsible:: Complete boot log +.. +.. .. TODO: Add boot log + +Useful commands for the serial terminal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The below commands are to be run in the serial terminal connected to the FPGA. + +To find out the IP of the FPGA board, run the following command and take the +IP specified at "eth0 inet": + +.. shell:: + + $ifconfig + +If the A10Soc is connected to a network with a DHCP server, the IP address +assigned to the board appears on the LCD. +To manually assign an IP address, run `ifconfig eth0 IP_ADDR`. + +To see the IIO devices detected, run: + +.. shell:: + + $iio_info | grep iio:device + +To power off the system, run the following command, and wait for the final +message to be printed, then power off the FPGA board from the switch as well. + +.. shell:: + + $poweroff + +To reboot the system, run: + +.. shell:: + + $reboot + +.. important:: + + Even though this is Linux, this is a persistent file system. Care should + be taken not to corrupt the file system -- please shut down properly, don't + just turn off the power switch. Depending on your monitor, the standard + power off could be hiding. You can do this from the terminal as well with + :code:`sudo shutdown -h now` or the above-mentioned command for powering off. diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/boot_log.rst b/docs/solutions/reference-designs/adrv9002/quickstart/boot_log.rst new file mode 100644 index 00000000000..796a48c4912 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/boot_log.rst @@ -0,0 +1,563 @@ + :: + + U-Boot 2018.01-21442-gf06dec3cab (Oct 17 2024 - 08:59:33 +0300), Build: jenkins-development-build_uboot-35 + + Model: Zynq Zed Development Board + Board: Xilinx Zynq + Silicon: v3.1 + DRAM: ECC disabled 512 MiB + MMC: sdhci@e0100000: 0 (SD) + SF: Detected s25fl256s_64k with page size 256 Bytes, erase size 64 KiB, total 32 MiB + In: serial@e0001000 + Out: serial@e0001000 + Err: serial@e0001000 + Net: ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id + eth0: ethernet@e000b000 + reading uEnv.txt + 407 bytes read in 25 ms (15.6 KiB/s) + Importing environment from SD ... + Hit any key to stop autoboot: 0 + Device: sdhci@e0100000 + Manufacturer ID: 3 + OEM: 5344 + Name: SS16G + Tran Speed: 50000000 + Rd Block Len: 512 + SD version 3.0 + High Capacity: Yes + Capacity: 14.8 GiB + Bus Width: 4-bit + Erase Group Size: 512 Bytes + reading uEnv.txt + 407 bytes read in 25 ms (15.6 KiB/s) + Loaded environment from uEnv.txt + Importing environment from SD ... + Running uenvcmd ... + Copying Linux from SD to RAM... + reading uImage + 8412448 bytes read in 489 ms (16.4 MiB/s) + reading devicetree.dtb + 24518 bytes read in 32 ms (748 KiB/s) + ** Unable to read file uramdisk.image.gz ** + ## Booting kernel from Legacy Image at 03000000 ... + Image Name: Linux-6.1.70-284114-g2e8908932df + Image Type: ARM Linux Kernel Image (uncompressed) + Data Size: 8412384 Bytes = 8 MiB + Load Address: 00008000 + Entry Point: 00008000 + Verifying Checksum ... OK + ## Flattened Device Tree blob at 02a00000 + Booting using the fdt blob at 0x2a00000 + Loading Kernel Image ... OK + Loading Device Tree to 1eb11000, end 1eb19fc5 ... OK + + Starting kernel ... + + Booting Linux on physical CPU 0x0 + Linux version 6.1.70-284114-g2e8908932dfd (jenkins@romlxbuild1) (arm-xilinx-linux-gnueabi-gcc.real (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39.0.20220819) #1060 SMP PREEMPT Tue Mar 18 16:11:24 EET 2025 + CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d + CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache + OF: fdt: Machine model: Xilinx Zynq ZED + OF: fdt: earlycon: stdout-path /amba@0/uart@E0001000 not found + Memory policy: Data cache writealloc + cma: Reserved 128 MiB at 0x16800000 + Zone ranges: + Normal [mem 0x0000000000000000-0x000000001fffffff] + HighMem empty + Movable zone start for each node + Early memory node ranges + node 0: [mem 0x0000000000000000-0x000000001fffffff] + Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff] + percpu: Embedded 11 pages/cpu s14420 r8192 d22444 u45056 + Built 1 zonelists, mobility grouping on. Total pages: 130048 + Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlycon rootfstype=ext4 rootwait clk_ignore_unused cpuidle.off=1 + Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear) + Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear) + mem auto-init: stack:all(zero), heap alloc:off, heap free:off + Memory: 361880K/524288K available (12288K kernel code, 818K rwdata, 10376K rodata, 1024K init, 470K bss, 31336K reserved, 131072K cma-reserved, 0K highmem) + rcu: Preemptible hierarchical RCU implementation. + rcu: RCU event tracing is enabled. + rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. + rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. + rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 + NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 + efuse mapped to (ptrval) + slcr mapped to (ptrval) + L2C: platform modifies aux control register: 0x72360000 -> 0x72760000 + L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000 + L2C-310 erratum 769419 enabled + L2C-310 enabling early BRESP for Cortex-A9 + L2C-310 full line of zeros enabled for Cortex-A9 + L2C-310 ID prefetch enabled, offset 1 lines + L2C-310 dynamic clock gating enabled, standby mode enabled + L2C-310 cache controller enabled, 8 ways, 512 kB + L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001 + rcu: srcu_init: Setting srcu_struct sizes based on contention. + zynq_clock_init: clkc starts at (ptrval) + Zynq clock init + sched_clock: 64 bits at 167MHz, resolution 6ns, wraps every 4398046511103ns + clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x26703d7dd8, max_idle_ns: 440795208065 ns + Switching to timer-based delay loop, resolution 6ns + clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns + timer #0 at (ptrval), irq=25 + Console: colour dummy device 80x30 + Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666) + CPU: Testing write buffer coherency: ok + CPU0: Spectre v2: using BPIALL workaround + pid_max: default: 32768 minimum: 301 + Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) + Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) + CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 + Setting up static identity map for 0x100000 - 0x100060 + rcu: Hierarchical SRCU implementation. + rcu: Max phase no-delay instances is 1000. + smp: Bringing up secondary CPUs ... + CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 + CPU1: Spectre v2: using BPIALL workaround + smp: Brought up 1 node, 2 CPUs + SMP: Total of 2 processors activated (666.66 BogoMIPS). + CPU: All CPU(s) started in SVC mode. + devtmpfs: initialized + VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 + clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns + futex hash table entries: 512 (order: 3, 32768 bytes, linear) + pinctrl core: initialized pinctrl subsystem + NET: Registered PF_NETLINK/PF_ROUTE protocol family + DMA: preallocated 256 KiB pool for atomic coherent allocations + thermal_sys: Registered thermal governor 'step_wise' + platform axi: Fixed dependency cycle(s) with /axi/interrupt-controller@f8f01000 + amba f8801000.etb: Fixed dependency cycle(s) with /replicator/out-ports/port@1/endpoint + amba f8803000.tpiu: Fixed dependency cycle(s) with /replicator/out-ports/port@0/endpoint + amba f8804000.funnel: Fixed dependency cycle(s) with /replicator/in-ports/port/endpoint + amba f889c000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000/in-ports/port@0/endpoint + amba f889d000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000/in-ports/port@1/endpoint + hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. + hw-breakpoint: maximum watchpoint size is 4 bytes. + e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps + printk: console [ttyPS0] enabled + SCSI subsystem initialized + usbcore: registered new interface driver usbfs + usbcore: registered new interface driver hub + usbcore: registered new device driver usb + mc: Linux media interface: v0.10 + videodev: Linux video capture interface: v2.00 + pps_core: LinuxPPS API ver. 1 registered + pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti + PTP clock support registered + jesd204: found 0 devices and 0 topologies + FPGA manager framework + Advanced Linux Sound Architecture Driver Initialized. + clocksource: Switched to clocksource arm_global_timer + NET: Registered PF_INET protocol family + IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear) + tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) + Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) + TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear) + TCP bind hash table entries: 4096 (order: 4, 65536 bytes, linear) + TCP: Hash tables configured (established 4096 bind 4096) + UDP hash table entries: 256 (order: 1, 8192 bytes, linear) + UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) + NET: Registered PF_UNIX/PF_LOCAL protocol family + RPC: Registered named UNIX socket transport module. + RPC: Registered udp transport module. + RPC: Registered tcp transport module. + RPC: Registered tcp NFSv4.1 backchannel transport module. + armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing. + hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available + workingset: timestamp_bits=30 max_order=17 bucket_order=0 + NFS: Registering the id_resolver key type + Key type id_resolver registered + Key type id_legacy registered + nfs4filelayout_init: NFSv4 File Layout Driver Registering... + nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... + fuse: init (API version 7.37) + io scheduler mq-deadline registered + io scheduler kyber registered + zynq-pinctrl 700.pinctrl: zynq pinctrl initialized + dma-pl330 f8003000.dma-controller: Loaded driver for PL330 DMAC-241330 + dma-pl330 f8003000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 + brd: module loaded + loop: module loaded + Registered mathworks_ip class + SPI driver spidev has no spi_device_id for adi,swspi + spi-nor spi1.0: found s25fl256s1, expected n25q128a11 + spi-nor spi1.0: s25fl256s1 (32768 Kbytes) + 5 fixed-partitions partitions found on MTD device spi1.0 + Creating 5 MTD partitions on "spi1.0": + 0x000000000000-0x000000500000 : "boot" + 0x000000500000-0x000000520000 : "bootenv" + 0x000000520000-0x000000540000 : "config" + 0x000000540000-0x000000fc0000 : "image" + 0x000000fc0000-0x000002000000 : "spare" + MACsec IEEE 802.1AE + tun: Universal TUN/TAP device driver, 1.6 + hwmon hwmon0: temp1_input not attached to any thermal zone + macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 47 (00:e0:22:02:be:d7) + usbcore: registered new interface driver asix + usbcore: registered new interface driver ax88179_178a + usbcore: registered new interface driver cdc_ether + usbcore: registered new interface driver net1080 + usbcore: registered new interface driver cdc_subset + usbcore: registered new interface driver zaurus + usbcore: registered new interface driver cdc_ncm + usbcore: registered new interface driver r8153_ecm + usbcore: registered new interface driver uas + usbcore: registered new interface driver usb-storage + usbcore: registered new interface driver usbserial_generic + usbserial: USB Serial support registered for generic + usbcore: registered new interface driver ftdi_sio + usbserial: USB Serial support registered for FTDI USB Serial Device + usbcore: registered new interface driver upd78f0730 + usbserial: USB Serial support registered for upd78f0730 + ULPI transceiver vendor/product ID 0x0451/0x1507 + Found TI TUSB1210 ULPI transceiver. + ULPI integrity check: passed. + ci_hdrc ci_hdrc.0: EHCI Host Controller + ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 + ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 + usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01 + usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 + usb usb1: Product: EHCI Host Controller + usb usb1: Manufacturer: Linux 6.1.70-284114-g2e8908932dfd ehci_hcd + usb usb1: SerialNumber: ci_hdrc.0 + hub 1-0:1.0: USB hub found + hub 1-0:1.0: 1 port detected + SPI driver ads7846 has no spi_device_id for ti,tsc2046 + SPI driver ads7846 has no spi_device_id for ti,ads7843 + SPI driver ads7846 has no spi_device_id for ti,ads7845 + SPI driver ads7846 has no spi_device_id for ti,ads7873 + i2c_dev: i2c /dev entries driver + i2c 0-0039: Fixed dependency cycle(s) with /fpga-axi@0/axi_hdmi@70e00000/port/endpoint + adv7511 0-0039: supply avdd not found, using dummy regulator + adv7511 0-0039: supply dvdd not found, using dummy regulator + adv7511 0-0039: supply pvdd not found, using dummy regulator + adv7511 0-0039: supply bgvdd not found, using dummy regulator + adv7511 0-0039: supply dvdd-3v not found, using dummy regulator + at24 1-0050: supply vcc not found, using dummy regulator + at24 1-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write + gspca_main: v2.14.0 registered + usbcore: registered new interface driver uvcvideo + cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s + Xilinx Zynq CpuIdle Driver started + failed to register cpuidle driver + sdhci: Secure Digital Host Controller Interface driver + sdhci: Copyright(c) Pierre Ossman + sdhci-pltfm: SDHCI platform and OF driver helper + ledtrig-cpu: registered to indicate activity on CPUs + hid: raw HID events driver (C) Jiri Kosina + usbcore: registered new interface driver usbhid + usbhid: USB HID core driver + SPI driver fb_seps525 has no spi_device_id for syncoam,seps525 + mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA + SPI driver adis16475 has no spi_device_id for adi,adis16470 + SPI driver adis16475 has no spi_device_id for adi,adis16475-1 + SPI driver adis16475 has no spi_device_id for adi,adis16475-2 + SPI driver adis16475 has no spi_device_id for adi,adis16475-3 + SPI driver adis16475 has no spi_device_id for adi,adis16477-1 + SPI driver adis16475 has no spi_device_id for adi,adis16477-2 + mmc0: new high speed SDHC card at address e624 + SPI driver adis16475 has no spi_device_id for adi,adis16477-3 + mmcblk0: mmc0:e624 SS16G 14.8 GiB + SPI driver adis16475 has no spi_device_id for adi,adis16465-1 + SPI driver adis16475 has no spi_device_id for adi,adis16465-2 + SPI driver adis16475 has no spi_device_id for adi,adis16465-3 + mmcblk0: p1 p2 p3 + SPI driver adis16475 has no spi_device_id for adi,adis16467-1 + SPI driver adis16475 has no spi_device_id for adi,adis16467-2 + SPI driver adis16475 has no spi_device_id for adi,adis16467-3 + SPI driver adis16475 has no spi_device_id for adi,adis16500 + SPI driver adis16475 has no spi_device_id for adi,adis16501 + SPI driver adis16475 has no spi_device_id for adi,adis16505-1 + SPI driver adis16475 has no spi_device_id for adi,adis16505-2 + SPI driver adis16475 has no spi_device_id for adi,adis16505-3 + SPI driver adis16475 has no spi_device_id for adi,adis16507-1 + SPI driver adis16475 has no spi_device_id for adi,adis16507-2 + SPI driver adis16475 has no spi_device_id for adi,adis16507-3 + SPI driver adis16475 has no spi_device_id for adi,adis16575-2 + SPI driver adis16475 has no spi_device_id for adi,adis16575-3 + SPI driver adis16475 has no spi_device_id for adi,adis16576-2 + SPI driver adis16475 has no spi_device_id for adi,adis16576-3 + SPI driver adis16475 has no spi_device_id for adi,adis16577-2 + SPI driver adis16475 has no spi_device_id for adi,adis16577-3 + axi_sysid 45000000.axi-sysid-0: AXI System ID core version (1.01.a) found + axi_sysid 45000000.axi-sysid-0: [adrv9001] [CMOS] on [zed] git branch git <2156ac7e874a1dc321d9f64a325009fafe563419> clean [2024-11-01 09:22:49] UTC + fpga_manager fpga0: Xilinx Zynq FPGA Manager registered + usbcore: registered new interface driver snd-usb-audio + axi-i2s 77600000.axi-i2s: probed, capture enabled, playback enabled + NET: Registered PF_INET6 protocol family + Segment Routing with IPv6 + In-situ OAM (IOAM) with IPv6 + sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver + NET: Registered PF_PACKET protocol family + NET: Registered PF_IEEE802154 protocol family + Key type dns_resolver registered + zynq_pm_remap_ocm: OCM pool is not available + zynq_pm_suspend_init: Unable to map OCM. + Registering SWP/SWPB emulation handler + of-fpga-region fpga-full: FPGA Region probed + [drm] Initialized axi_hdmi_drm 1.0.0 20120930 for 70e00000.axi_hdmi on minor 0 + axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes + axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes + axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes + random: crng init done + adrv9002 spi0.0: adrv9002-phy Rev 12.0, Firmware 0.22.39, Stream 0.7.15.0, API version: 68.14.10 successfully initialized + cf_axi_adc 44a00000.axi-adrv9002-rx-lpc: ADI AIM (10.03.) at 0x44A00000 mapped to 0x25449c81 probed ADC ADRV9002 as MASTER + cf_axi_tdd 44a0c800.axi-adrv9002-core-tdd1-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a) + cf_axi_tdd 44a0cc00.axi-adrv9002-core-tdd2-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a) + cf_axi_dds 44a0a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.02.b) at 0x44A0A000 mapped to 0x3be021a4, probed DDS ADRV9002 + cf_axi_dds 44a0c000.axi-adrv9002-tx2-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.02.b) at 0x44A0C000 mapped to 0x3a02b350, probed DDS ADRV9002 + debugfs: File 'Capture' in directory 'dapm' already present! + of_cfs_init + of_cfs_init: OK + clk: Not disabling unused clocks + ALSA device list: + #0: HDMI monitor + #1: ZED ADAU1761 + EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled. + VFS: Mounted root (ext4 filesystem) on device 179:2. + devtmpfs: mounted + Freeing unused kernel image (initmem) memory: 1024K + Run /sbin/init as init process + systemd[1]: System time before build time, advancing clock. + systemd[1]: systemd 247.3-7+rpi1+deb11u6 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified) + systemd[1]: Detected architecture arm. + + Welcome to Kuiper GNU/Linux 11.2 (bullseye)! + + systemd[1]: Set hostname to . + systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. + systemd[1]: Queued start job for default target Graphical Interface. + systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling. + systemd[1]: (This warning is only shown for the first unit using IP firewalling.) + systemd[1]: Created slice system-getty.slice. + [ OK ] Created slice system-getty.slice. + systemd[1]: Created slice system-modprobe.slice. + [ OK ] Created slice system-modprobe.slice. + systemd[1]: Created slice system-serial\x2dgetty.slice. + [ OK ] Created slice system-serial\x2dgetty.slice. + systemd[1]: Created slice system-systemd\x2dfsck.slice. + [ OK ] Created slice system-systemd\x2dfsck.slice. + systemd[1]: Created slice User and Session Slice. + [ OK ] Created slice User and Session Slice. + systemd[1]: Started Forward Password Requests to Wall Directory Watch. + [ OK ] Started Forward Password R…uests to Wall Directory Watch. + systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. + systemd[1]: Reached target Slices. + [ OK ] Reached target Slices. + systemd[1]: Reached target Swap. + [ OK ] Reached target Swap. + systemd[1]: Listening on Syslog Socket. + [ OK ] Listening on Syslog Socket. + systemd[1]: Listening on fsck to fsckd communication Socket. + [ OK ] Listening on fsck to fsckd communication Socket. + systemd[1]: Listening on initctl Compatibility Named Pipe. + [ OK ] Listening on initctl Compatibility Named Pipe. + systemd[1]: Condition check resulted in Journal Audit Socket being skipped. + systemd[1]: Listening on Journal Socket (/dev/log). + [ OK ] Listening on Journal Socket (/dev/log). + systemd[1]: Listening on Journal Socket. + [ OK ] Listening on Journal Socket. + systemd[1]: Listening on udev Control Socket. + [ OK ] Listening on udev Control Socket. + systemd[1]: Listening on udev Kernel Socket. + [ OK ] Listening on udev Kernel Socket. + systemd[1]: Condition check resulted in Huge Pages File System being skipped. + systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped. + systemd[1]: Mounting RPC Pipe File System... + Mounting RPC Pipe File System... + systemd[1]: Mounting Kernel Debug File System... + Mounting Kernel Debug File System... + systemd[1]: Condition check resulted in Kernel Trace File System being skipped. + systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped. + systemd[1]: Starting Restore / save the current clock... + Starting Restore / save the current clock... + systemd[1]: Starting Set the console keyboard layout... + Starting Set the console keyboard layout... + systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped. + systemd[1]: Starting Load Kernel Module configfs... + Starting Load Kernel Module configfs... + systemd[1]: Starting Load Kernel Module drm... + Starting Load Kernel Module drm... + systemd[1]: Starting Load Kernel Module fuse... + Starting Load Kernel Module fuse... + systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. + systemd[1]: Condition check resulted in File System Check on Root Device being skipped. + systemd[1]: Starting Journal Service... + Starting Journal Service... + systemd[1]: Starting Load Kernel Modules... + Starting Load Kernel Modules... + systemd[1]: Starting Remount Root and Kernel File Systems... + Starting Remount Root and Kernel File Systems... + systemd[1]: Starting Coldplug All udev Devices... + Starting Coldplug All udev Devices... + systemd[1]: Mounted RPC Pipe File System. + [ OK ] Mounted RPC Pipe File System. + systemd[1]: Mounted Kernel Debug File System. + [ OK ] Mounted Kernel Debug File System. + systemd[1]: Finished Restore / save the current clock. + [ OK ] Finished Restore / save the current clock. + systemd[1]: modprobe@configfs.service: Succeeded. + systemd[1]: Finished Load Kernel Module configfs. + [ OK ] Finished Load Kernel Module configfs. + systemd[1]: modprobe@drm.service: Succeeded. + systemd[1]: Finished Load Kernel Module drm. + [ OK ] Finished Load Kernel Module drm. + systemd[1]: modprobe@fuse.service: Succeeded. + systemd[1]: Finished Load Kernel Module fuse. + [ OK ] Finished Load Kernel Module fuse. + systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE + systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'. + systemd[1]: Failed to start Load Kernel Modules. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + systemd[1]: Mounting FUSE Control File System... + Mounting FUSE Control File System... + systemd[1]: Mounting Kernel Configuration File System... + Mounting Kernel Configuration File System... + systemd[1]: Starting Apply Kernel Variables... + Starting Apply Kernel Variables... + systemd[1]: Started Journal Service. + [ OK ] Started Journal Service. + [ OK ] Finished Set the console keyboard layout. + [ OK ] Mounted FUSE Control File System. + [ OK ] Finished Remount Root and Kernel File Systems. + [ OK ] Mounted Kernel Configuration File System. + [ OK ] Finished Apply Kernel Variables. + Starting Flush Journal to Persistent Storage... + Starting Load/Save Random Seed... + Starting Create System Users... + [ OK ] Finished Load/Save Random Seed. + [ OK ] Finished Create System Users. + [ OK ] Finished Coldplug All udev Devices. + Starting Helper to synchronize boot up for ifupdown... + Starting Create Static Device Nodes in /dev... + Starting Wait for udev To …plete Device Initialization... + [ OK ] Finished Helper to synchronize boot up for ifupdown. + [ OK ] Finished Flush Journal to Persistent Storage. + [ OK ] Finished Create Static Device Nodes in /dev. + [ OK ] Reached target Local File Systems (Pre). + Starting Rule-based Manage…for Device Events and Files... + [ OK ] Started Rule-based Manager for Device Events and Files. + Starting Show Plymouth Boot Screen... + [ OK ] Started Show Plymouth Boot Screen. + [ OK ] Started Forward Password R…s to Plymouth Directory Watch. + [ OK ] Reached target Local Encrypted Volumes. + [ OK ] Found device /dev/ttyPS0. + [ OK ] Found device /dev/disk/by-partuuid/a22286d2-01. + [ OK ] Finished Wait for udev To Complete Device Initialization. + Starting File System Check…isk/by-partuuid/a22286d2-01... + Starting Load Kernel Modules... + [ OK ] Started File System Check Daemon to report status. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ OK ] Finished File System Check…/disk/by-partuuid/a22286d2-01. + Mounting /boot... + [ OK ] Mounted /boot. + [ OK ] Reached target Local File Systems. + Starting Set console font and keymap... + Starting Raise network interfaces... + Starting Preprocess NFS configuration... + Starting Tell Plymouth To Write Out Runtime Data... + Starting Create Volatile Files and Directories... + [ OK ] Finished Set console font and keymap. + [ OK ] Finished Preprocess NFS configuration. + [ OK ] Finished Tell Plymouth To Write Out Runtime Data. + [ OK ] Reached target NFS client services. + [ OK ] Reached target Remote File Systems (Pre). + [ OK ] Reached target Remote File Systems. + [ OK ] Finished Create Volatile Files and Directories. + Starting Network Time Synchronization... + Starting Update UTMP about System Boot/Shutdown... + [ OK ] Finished Update UTMP about System Boot/Shutdown. + [ OK ] Started Network Time Synchronization. + [ OK ] Reached target System Time Set. + [ OK ] Reached target System Time Synchronized. + Starting Load Kernel Modules... + [ OK ] Finished Raise network interfaces. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ OK ] Reached target System Initialization. + [ OK ] Started CUPS Scheduler. + [ OK ] Started Daily apt download activities. + [ OK ] Started Daily apt upgrade and clean activities. + [ OK ] Started Periodic ext4 Onli…ata Check for All Filesystems. + [ OK ] Started Discard unused blocks once a week. + [ OK ] Started Daily rotation of log files. + [ OK ] Started Daily man-db regeneration. + [ OK ] Started Daily Cleanup of Temporary Directories. + [ OK ] Reached target Paths. + [ OK ] Reached target Timers. + [ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. + [ OK ] Listening on CUPS Scheduler. + [ OK ] Listening on D-Bus System Message Bus Socket. + [ OK ] Listening on Erlang Port Mapper Daemon Activation Socket. + [ OK ] Listening on GPS (Global P…ioning System) Daemon Sockets. + [ OK ] Listening on triggerhappy.socket. + [ OK ] Reached target Sockets. + [ OK ] Reached target Basic System. + Starting Analog Devices power up/down sequence... + Starting Save/Restore Sound Card State... + Starting Avahi mDNS/DNS-SD Stack... + [ OK ] Started Regular background program processing daemon. + [ OK ] Started D-Bus System Message Bus. + Starting dphys-swapfile - …unt, and delete a swap file... + Starting Remove Stale Onli…t4 Metadata Check Snapshots... + [ OK ] Started fan-control. + Starting Fix DP audio and X11 for Jupiter... + Starting Creating IIOD Context Attributes...... + Starting Authorization Manager... + Starting DHCP Client Daemon... + Starting LSB: Switch to on…nless shift key is pressed)... + Starting LSB: rng-tools (Debian variant)... + Starting System Logging Service... + Starting User Login Management... + Starting triggerhappy global hotkey daemon... + Starting Disk Manager... + Starting WPA supplicant... + [ OK ] Started System Logging Service. + [ OK ] Finished Save/Restore Sound Card State. + [ OK ] Started triggerhappy global hotkey daemon. + [ OK ] Finished Fix DP audio and X11 for Jupiter. + [ OK ] Started DHCP Client Daemon. + [ OK ] Started LSB: Switch to ond…(unless shift key is pressed). + [ OK ] Finished dphys-swapfile - …mount, and delete a swap file. + [ OK ] Started Avahi mDNS/DNS-SD Stack. + [ OK ] Started Authorization Manager. + [ OK ] Started WPA supplicant. + [ OK ] Reached target Network. + [ OK ] Reached target Network is Online. + [ OK ] Reached target Sound Card. + Starting Modem Manager... + Starting CUPS Scheduler... + [ OK ] Started Erlang Port Mapper Daemon. + Starting HTTP based time synchronization tool... + Starting Internet superserver... + Starting /etc/rc.local Compatibility... + Starting OpenBSD Secure Shell server... + Starting Permit User Sessions... + [ OK ] Started LSB: rng-tools (Debian variant). + [ OK ] Started User Login Management. + [ OK ] Started Unattended Upgrades Shutdown. + [ OK ] Started /etc/rc.local Compatibility. + [ OK ] Started Internet superserver. + [ OK ] Finished Permit User Sessions. + Starting Light Display Manager... + Starting Hold until boot process finishes up... + [ OK ] Started HTTP based time synchronization tool. + [ OK ] Started Modem Manager. + Starting Manage, Install and Generate Color Profiles... + [ OK ] Finished Analog Devices power up/down sequence. + + Raspbian GNU/Linux 11 analog ttyPS0 + + analog login: root (automatic login) + + Linux analog 6.1.70-284114-g2e8908932dfd #1060 SMP PREEMPT Tue Mar 18 16:11:24 EET 2025 armv7l + + The programs included with the Debian GNU/Linux system are free software; + the exact distribution terms for each program are described in the + individual files in /usr/share/doc/*/copyright. + + Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent + permitted by applicable law. + Last login: Mon Mar 9 17:20:57 GMT 2026 on ttyPS0 diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/index.rst b/docs/solutions/reference-designs/adrv9002/quickstart/index.rst new file mode 100644 index 00000000000..0354b99d188 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/index.rst @@ -0,0 +1,186 @@ +.. _adrv9002 quickstart: + +ADRV9001/2 Quick Start Guides +================================================================================ + +The Quick Start Guides provide a simple step by step instruction on how to do an +initial system setup for the :adi:`ADRV9002NP/W1/PCBZ ` +and :adi:`ADRV9002NP/W2/PCBZ ` boards on various FPGA +development boards. They will discuss how to program the bitstream, run a +no-OS program or boot a Linux distribution. + +.. note:: + + The ADRV9002 evaluation boards come in two variants: + + - **W1**: Narrowband variant + - **W2**: Wideband variant + +.. toctree:: + zcu102 + zc706 + zed + a10soc + +.. _adrv9002 carriers: + +Supported Carriers +-------------------------------------------------------------------------------- + +The :adi:`ADRV9002NP/W1/PCBZ ` and +:adi:`ADRV9002NP/W2/PCBZ ` is, by definition a "FPGA +mezzanine card" (FMC), that means it needs a carrier to plug into. The +carriers we support are: + +.. list-table:: + :header-rows: 2 + :widths: 40 15 15 15 + + * - Board + - ADRV9002/* + - + - + * - + - **FMC Connector** + - **CMOS interface** + - **LVDS interface** + * - `ZCU102 `_ + - HPC0 + - Yes + - Yes + * - `ZC706 `_ + - LPC + - Yes **VADJ 1.8V**\ ¹ + - N/A² + * - `Zed Board `_ + - LPC + - Yes **VADJ 1.8V** + - N/A² + * - `Arria 10 SoC `_ + - FMCA + - Yes + - N/A³ + +| ¹ Instruction for reprogramming the VADJ can be found in the `official guide `_ and in this `forum thread `_ +| ² Cmos only operation +| ³ Not supported due sub-optimal mapping of the clock pins from the + source synchronous interfaces. + +CMOS only operation +-------------------------------------------------------------------------------- + +On the ZC706 / ZedBoard platforms the FMC connectors map to HR IO banks. +The HR banks have a limitation that when using LVDS I/O standard you must +set the bank VCCO voltage to 2.5V, however the ADRV9001 evaluation board +is using IO supplies of 1.8V and does not have level shifters for the +single ended lines. Therefore the VCCO of the banks must be set to 1.8 V +(VADJ) and limiting the operation to CMOS mode only. More information on +the limitation see `7 Series Select IO guide `_ +section 'LVDS and LVDS_25' and Table 1-43 + +Supported Environments +-------------------------------------------------------------------------------- + +The supported OS are: + +.. list-table:: + :header-rows: 1 + :widths: 50 10 15 15 10 + + * - Board + - HDL + - Linux Software + - No-OS Software + - Required Minimum Release + * - `ZCU102 `_ + - Yes + - Yes + - Yes + - 2019-R2 + * - `ZC706 `_ + - Yes + - Yes + - Yes + - 2020-R1 + * - `Zed Board `_ + - Yes + - Yes + - Yes + - 2019-R2 + * - `Arria 10 SoC `_ + - Yes + - Yes + - --- + - 2020-R1 + +Hardware Setup +-------------------------------------------------------------------------------- + +The carrier setup requires power, UART (115200), ethernet (Linux), DisplayPort +or HDMI (if available) or JTAG (no-OS) connections. A few typical setups are +shown below. + +ZedBoard + EVAL-ADRV9002 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../images/adrv9002_zed_quickstart.png + :align: center + :width: 900 + +ZCU102 + EVAL-ADRV9002 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../images/adrv9002_zcu102_quickstart.png + :align: center + :width: 900 + +ZC706 + EVAL-ADRV9002 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../images/adrv9002_zc706_quickstart.png + :align: center + :width: 900 + +A10SOC + EVAL-ADRV9002 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../images/adrv9002_a10soc_quickstart.png + :align: center + :width: 900 + +Identify your hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Evaluation boards were equipped with different silicon revisions. All +boards built since the middle of December 2020 have C0 silicon, older ones +use B0 silicon these are no longer shipped. You can identify the board you +have based on its label. + +.. list-table:: + :header-rows: 1 + :widths: 50 25 25 + + * - Label + - Silicon Revision + - Variant + * - .. image:: ../images/adrv9002_b0_np_w1.png + :width: 100 + - **B0** + - **W1** (Narrowband) + * - .. image:: ../images/adrv9002_b0_np_w2.png + :width: 100 + - **B0** + - **W2** (Wideband) + * - .. image:: ../images/adrv9002xbcz_c0_np_w1.png + :width: 100 + - **C0** + - **W1** (Narrowband) + * - .. image:: ../images/adrv9002xbcz_c0_np_w2.png + :width: 100 + - **C0** + - **W2** (Wideband) + +.. tip:: + + Each revision of silicon requires its corresponding software support + files in the later steps. diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/linux_setup_steps.rst b/docs/solutions/reference-designs/adrv9002/quickstart/linux_setup_steps.rst new file mode 100644 index 00000000000..49f4839441b --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/linux_setup_steps.rst @@ -0,0 +1,48 @@ +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`EVAL-ADRV9002` FMC board to the FPGA carrier FMC socket. +#. On the FMC card, set the switch to select clock source between: + + - an on-board 38.4 MHz VCTCXO (default) + - external (via J501) 10 MHz to 1000 MHz / +13 dBm + +#. Connect the UART port of ZedBoard to a PC via Micro-USB (J14). +#. Insert the SD card into the slot, located on the underside of + ZedBoard (J12). +#. Configure ZedBoard for SD BOOT: boot (JP7-JP11) and MIO0 (JP6) jumpers set + to SD card mode, in accordance with the picture shown below. + + .. image:: ../images/jumper_config.png + :align: center + :width: 500 + +#. Connect 12V power supply to barrel jack. +#. Turn on the power switch (SW8) on the FPGA board. Green Power LED (LD13) + should illuminate. +#. Wait approximately 15 seconds. The blue Done LED (LD12) should illuminate. +#. Observe kernel and serial console messages on your terminal. + +.. collapsible:: Optional: Local display connection (keyboard, mouse, monitor) + + You can also connect a monitor, keyboard and mouse directly to the board + for a local connection. The UART connection is still recommended for + debugging purposes. For the local connection, follow these additional + steps: + + - Plug your HDMI display device into the HDMI Video Connector (J9). + - Plug your USB mouse/keyboard into the USB OTG Micro-B Connector (J13). + You will have to use a USB hub to connect both mouse and + keyboard. Some keyboards have a mouse or touch pad sharing the same USB + connection or wireless dongle. This can be used to eliminate the use of a + USB hub. + - Wait another ~30 seconds for the HDMI display device to start showing + signs of life. + + .. note:: + + The USB OTG circuit requires specific jumper settings for Host mode. + Ensure the following jumper settings on the ZedBoard + (these are the defaults; verify them if USB is not working): + + * JP2 → Short (enables 5V output to USB OTG connector) + * JP3 → Short (Host mode) diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/no_os_console_output.rst b/docs/solutions/reference-designs/adrv9002/quickstart/no_os_console_output.rst new file mode 100644 index 00000000000..8961b06db0c --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/no_os_console_output.rst @@ -0,0 +1,9 @@ + :: + + Hello + ADRV9002 Rev 12.0, Firmware 0.22.39, Stream 0.7.15.0, API version: 68.14.13 successfully initialized + axi-adrv9002-rx-lpc: Successfully inititalized (61437988 Hz) + axi-adrv9002-tx-lpc: Successfully inititalized (61437988 Hz) + axi-adrv9002-rx2-lpc: Successfully inititalized (61437988 Hz) + axi-adrv9002-tx2-lpc: Successfully inititalized (61437988 Hz) + Bye diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/no_os_setup_steps.rst b/docs/solutions/reference-designs/adrv9002/quickstart/no_os_setup_steps.rst new file mode 100644 index 00000000000..812c0fa0be5 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/no_os_setup_steps.rst @@ -0,0 +1,14 @@ +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`EVAL-ADRV9002` FMC board to the + FPGA carrier FMC socket. +#. Configure :xilinx:`ZedBoard` for JTAG boot mode (mode MIO[5:2] jumpers in + the position **0,0,0,0**). +#. Connect USB UART (Micro-USB) to your host PC (J14). +#. Connect USB JTAG (Micro-USB) to your host PC (J17). +#. Connect 12V power supply to barrel jack. +#. Turn on the power switch (SW8) on the FPGA board. +#. Build and run the project using the steps shown in + :external+no-OS:doc:`here `. +#. Observe console output messages on your terminal (use the first ttyUSB or + COM port registered). diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/zc706.rst b/docs/solutions/reference-designs/adrv9002/quickstart/zc706.rst new file mode 100644 index 00000000000..63c87771b55 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/zc706.rst @@ -0,0 +1,892 @@ +.. _adrv9002-zc706: + +ZC706 Quick start +=============================================================================== + +.. image:: ../../images/zc706.png + :width: 800 + +This guide provides quick instructions on how to setup the +:adi:`EVAL-ADRV9002` on: + +- :xilinx:`ZC706` The revision that is supported is 1.2 or higher. + +LVDS Support +-------------------------------------------------------------------------------- + +According to the +`7 Series SelectIO guide `__ +section 'LVDS and LVDS_25' and Table 1-43, the LVDS I/O standard (VADJ 1.8V) is +not supported on High Range banks. + +Since the evaluation board can only operate with **VADJ set to 1.8V** and the +FMC connector on the ZC706 is mapped to HR banks, the **LVDS interface is not +supported**. Only CMOS operation is possible. + +Using Linux as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. note:: + + The SD card includes several folders in the root directory of the BOOT + partition. In order to configure the SD card to work with a specific FPGA + board and ADI hardware, several files must be copied onto the root directory. + Using the host PC, drag and drop the required files onto the BOOT partition, + and use the EJECT function when removing the SD card from the reader. + +The following files are needed for the system to boot: + +- HDL boot image: ``BOOT.bin`` +- Linux Kernel image: ``uImage`` +- Linux device tree: ``devicetree.dtb`` + +They can either be taken from the SD card -- already generated by us, or you +can build them manually: + +- Instructions on how to choose the boot files from the SD card can be found + in the **Platform-Specific Manual Steps** section from here :external+kuiper:ref:`hardware-configuration`. +- Instructions on how to manually build the boot files from source can be + found here: + + - :ref:`linux-kernel zynq` + - :external+hdl:ref:`adrv9001` build documentation. More HDL build + details at :external+hdl:ref:`build_hdl`. + +.. important:: + + Some projects provide multiple devicetree files in the SD card's boot + folders. Make sure you select the devicetree that matches your specific use + case. + +Required software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` +- A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1) + +Required hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :xilinx:`ZC706 ` Rev 1.2 or later + board and its power supply +- :adi:`EVAL-ADRV9002` FMC board +- SD card with at least 16GB of memory +- Mini-USB cable +- Ethernet cable +- Hardware for setting VADJ to 1.8V +- Signal generator +- Signal analyzer +- Signal synthesizer (required only if using external clock source) +- 1x SMA cable for signal generator +- 1x SMA cable for signal analyzer +- 1x SMA cable for signal synthesizer (if using external clock) +- (Optional) USB keyboard & mouse and a HDMI compatible monitor + +More details as to why you need these, can be found at +:ref:`adrv9002 prerequisites`. + +Testing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: ../images/adrv9002_zc706_quickstart.png + :align: center + :width: 600px + +.. esd-warning:: + +.. warning:: + + Before executing below steps, **VADJ must be set to 1.8V**. Instructions + for reprogramming the VADJ on the ZC706 can be found in the + `Xilinx support article `__. + +On the ADRV9002 card, there is a red LED close to the FMC connector. This LED +indicates if VADJ voltage exceeded 2.0V. If the LED does not turn off after a +few seconds after boot, VADJ is exceeding the recommended level, decreasing +board lifetime and potentially causing permanent damage to the IC. + +.. image:: ../images/adrv9002_vadj_led.png + :align: center + :width: 200 + +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`EVAL-ADRV9002` FMC board to the FPGA carrier **LPC FMC** + socket (J5). +#. On the FMC card, set the switch to select clock source between: + + #. an on-board 38.4 MHz VCTCXO (default) + #. external (via J501) 10 MHz to 1000 MHz / +13 dBm + +#. Connect USB UART (Mini-USB) to your host PC (J21). +#. Insert SD card into socket (J30). +#. Configure ZC706 for SD BOOT (SW11: **1-Down, 2-Down, 3-Up, 4-Up, 5-Down**). +#. Plug the Power Supply into 12V Power input connector (J22) +#. Turn on the power switch on the FPGA board. +#. Observe kernel and serial console messages on your terminal. + +.. collapsible:: Optional: Local display connection (keyboard, mouse, monitor) + + You can also connect a monitor, keyboard and mouse directly to the board + for a local connection. The UART connection is still recommended for + debugging purposes. For the local connection, follow these additional + steps: + + - Plug your HDMI display device into the HDMI Video Connector (P1). + - Plug your USB mouse/keyboard into the USB 2.0 ULPI Controller, w/ Micro-B + Connector (J49). You will have to use a USB hub to connect both mouse and + keyboard. Some keyboards have a mouse or touch pad sharing the same USB + connection or wireless dongle. This can be used to eliminate the use of a + USB hub. + - Wait another ~30 seconds for the HDMI display device to start showing + signs of life. + + .. note:: + + The USB 2.0 circuit requires specific jumper settings for OTG mode. + Ensure the following jumper settings on the ZC706 board + (these are the defaults; verify them if USB is not working): + + * Shunt J10 + * J11 → open (no shunt) + * J48 → Shunt pins 2–3 + * J49 → Shunt pins 1–2 + * J50 → Shunt pins 1–2 + * J51 → Shunt pins 1–2 + +.. seealso:: + For more detailed information on ZC706 switch configuration, check the + *ZC706 Hardware User Guide* (chapter "Device Configuration") + `here `__. + +Boot messages +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following is what is printed in the serial console, after you have +connected to the proper ttyUSB or COM port: + +.. note:: + + If you are using a local connection (keyboard, mouse, monitor), you can + view the boot log by opening a terminal and running the ``dmesg`` command. + +.. collapsible:: Complete boot log + + :: + + U-Boot 2018.01-21442-gf06dec3cab (Oct 17 2024 - 08:58:28 +0300) Xilinx Zynq ZC706, Build: jenkins-development-build_uboot-35 + + Model: Zynq ZC706 Development Board + Board: Xilinx Zynq + Silicon: v3.1 + I2C: ready + DRAM: ECC disabled 1 GiB + MMC: sdhci@e0100000: 0 (SD) + SF: Detected s25fl128s_64k with page size 512 Bytes, erase size 128 KiB, total 32 MiB + In: serial@e0001000 + Out: serial@e0001000 + Err: serial@e0001000 + Net: ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id + eth0: ethernet@e000b000 + reading uEnv.txt + 407 bytes read in 24 ms (15.6 KiB/s) + Importing environment from SD ... + Hit any key to stop autoboot: 0 + Device: sdhci@e0100000 + Manufacturer ID: 3 + OEM: 5344 + Name: SS16G + Tran Speed: 50000000 + Rd Block Len: 512 + SD version 3.0 + High Capacity: Yes + Capacity: 14.8 GiB + Bus Width: 4-bit + Erase Group Size: 512 Bytes + reading uEnv.txt + 407 bytes read in 25 ms (15.6 KiB/s) + Loaded environment from uEnv.txt + Importing environment from SD ... + Running uenvcmd ... + Copying Linux from SD to RAM... + reading uImage + 8412448 bytes read in 487 ms (16.5 MiB/s) + reading devicetree.dtb + 24314 bytes read in 34 ms (698.2 KiB/s) + ** Unable to read file uramdisk.image.gz ** + ## Booting kernel from Legacy Image at 03000000 ... + Image Name: Linux-6.1.70-284114-g2e8908932df + Image Type: ARM Linux Kernel Image (uncompressed) + Data Size: 8412384 Bytes = 8 MiB + Load Address: 00008000 + Entry Point: 00008000 + Verifying Checksum ... OK + ## Flattened Device Tree blob at 02a00000 + Booting using the fdt blob at 0x2a00000 + Loading Kernel Image ... OK + Loading Device Tree to 1fff7000, end 1ffffef9 ... OK + + Starting kernel ... + + Booting Linux on physical CPU 0x0 + Linux version 6.1.70-284114-g2e8908932dfd (jenkins@romlxbuild1) (arm-xilinx-linux-gnueabi-gcc.real (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39.0.20220819) #1060 SMP PREEMPT Tue Mar 18 16:11:24 EET 2025 + CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d + CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache + OF: fdt: Machine model: Xilinx Zynq ZC706 + OF: fdt: earlycon: stdout-path /amba@0/uart@E0001000 not found + Memory policy: Data cache writealloc + cma: Reserved 128 MiB at 0x38000000 + Zone ranges: + Normal [mem 0x0000000000000000-0x000000002fffffff] + HighMem [mem 0x0000000030000000-0x000000003fffffff] + Movable zone start for each node + Early memory node ranges + node 0: [mem 0x0000000000000000-0x000000003fffffff] + Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff] + percpu: Embedded 11 pages/cpu s14420 r8192 d22444 u45056 + Built 1 zonelists, mobility grouping on. Total pages: 260608 + Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlycon rootfstype=ext4 rootwait clk_ignore_unused cpuidle.off=1 + Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear) + Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear) + mem auto-init: stack:all(zero), heap alloc:off, heap free:off + Memory: 881944K/1048576K available (12288K kernel code, 818K rwdata, 10376K rodata, 1024K init, 470K bss, 35560K reserved, 131072K cma-reserved, 131072K highmem) + rcu: Preemptible hierarchical RCU implementation. + rcu: RCU event tracing is enabled. + rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2. + rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. + rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 + NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 + efuse mapped to (ptrval) + slcr mapped to (ptrval) + L2C: platform modifies aux control register: 0x72360000 -> 0x72760000 + L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000 + L2C-310 erratum 769419 enabled + L2C-310 enabling early BRESP for Cortex-A9 + L2C-310 full line of zeros enabled for Cortex-A9 + L2C-310 ID prefetch enabled, offset 1 lines + L2C-310 dynamic clock gating enabled, standby mode enabled + L2C-310 cache controller enabled, 8 ways, 512 kB + L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001 + rcu: srcu_init: Setting srcu_struct sizes based on contention. + zynq_clock_init: clkc starts at (ptrval) + Zynq clock init + sched_clock: 64 bits at 167MHz, resolution 6ns, wraps every 4398046511103ns + clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x26703d7dd8, max_idle_ns: 440795208065 ns + Switching to timer-based delay loop, resolution 6ns + clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns + timer #0 at (ptrval), irq=25 + Console: colour dummy device 80x30 + Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666) + CPU: Testing write buffer coherency: ok + CPU0: Spectre v2: using BPIALL workaround + pid_max: default: 32768 minimum: 301 + Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) + Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) + CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 + Setting up static identity map for 0x100000 - 0x100060 + rcu: Hierarchical SRCU implementation. + rcu: Max phase no-delay instances is 1000. + smp: Bringing up secondary CPUs ... + CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 + CPU1: Spectre v2: using BPIALL workaround + smp: Brought up 1 node, 2 CPUs + SMP: Total of 2 processors activated (666.66 BogoMIPS). + CPU: All CPU(s) started in SVC mode. + devtmpfs: initialized + VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4 + clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns + futex hash table entries: 512 (order: 3, 32768 bytes, linear) + pinctrl core: initialized pinctrl subsystem + NET: Registered PF_NETLINK/PF_ROUTE protocol family + DMA: preallocated 256 KiB pool for atomic coherent allocations + thermal_sys: Registered thermal governor 'step_wise' + platform axi: Fixed dependency cycle(s) with /axi/interrupt-controller@f8f01000 + amba f8801000.etb: Fixed dependency cycle(s) with /replicator/out-ports/port@1/endpoint + amba f8803000.tpiu: Fixed dependency cycle(s) with /replicator/out-ports/port@0/endpoint + amba f8804000.funnel: Fixed dependency cycle(s) with /replicator/in-ports/port/endpoint + amba f889c000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000/in-ports/port@0/endpoint + amba f889d000.ptm: Fixed dependency cycle(s) with /axi/funnel@f8804000/in-ports/port@1/endpoint + hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers. + hw-breakpoint: maximum watchpoint size is 4 bytes. + e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps + printk: console [ttyPS0] enabled + SCSI subsystem initialized + usbcore: registered new interface driver usbfs + usbcore: registered new interface driver hub + usbcore: registered new device driver usb + mc: Linux media interface: v0.10 + videodev: Linux video capture interface: v2.00 + pps_core: LinuxPPS API ver. 1 registered + pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti + PTP clock support registered + jesd204: found 0 devices and 0 topologies + FPGA manager framework + Advanced Linux Sound Architecture Driver Initialized. + clocksource: Switched to clocksource arm_global_timer + NET: Registered PF_INET protocol family + IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear) + tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) + Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) + TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear) + TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear) + TCP: Hash tables configured (established 8192 bind 8192) + UDP hash table entries: 512 (order: 2, 16384 bytes, linear) + UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) + NET: Registered PF_UNIX/PF_LOCAL protocol family + RPC: Registered named UNIX socket transport module. + RPC: Registered udp transport module. + RPC: Registered tcp transport module. + RPC: Registered tcp NFSv4.1 backchannel transport module. + armv7-pmu f8891000.pmu: hw perfevents: no interrupt-affinity property, guessing. + hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available + workingset: timestamp_bits=30 max_order=18 bucket_order=0 + NFS: Registering the id_resolver key type + Key type id_resolver registered + Key type id_legacy registered + nfs4filelayout_init: NFSv4 File Layout Driver Registering... + nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... + fuse: init (API version 7.37) + bounce: pool size: 64 pages + io scheduler mq-deadline registered + io scheduler kyber registered + zynq-pinctrl 700.pinctrl: zynq pinctrl initialized + dma-pl330 f8003000.dma-controller: Loaded driver for PL330 DMAC-241330 + dma-pl330 f8003000.dma-controller: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16 + brd: module loaded + loop: module loaded + Registered mathworks_ip class + SPI driver spidev has no spi_device_id for adi,swspi + spi-nor spi1.0: found s25fl128s1, expected n25q128a11 + spi-nor spi1.0: s25fl128s1 (16384 Kbytes) + 5 fixed-partitions partitions found on MTD device spi1.0 + Creating 5 MTD partitions on "spi1.0": + 0x000000000000-0x000000500000 : "boot" + 0x000000500000-0x000000520000 : "bootenv" + 0x000000520000-0x000000540000 : "config" + 0x000000540000-0x000000fc0000 : "image" + 0x000000fc0000-0x000001000000 : "spare" + MACsec IEEE 802.1AE + tun: Universal TUN/TAP device driver, 1.6 + macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 47 (00:0a:35:ab:01:22) + usbcore: registered new interface driver asix + usbcore: registered new interface driver ax88179_178a + usbcore: registered new interface driver cdc_ether + usbcore: registered new interface driver net1080 + usbcore: registered new interface driver cdc_subset + usbcore: registered new interface driver zaurus + usbcore: registered new interface driver cdc_ncm + usbcore: registered new interface driver r8153_ecm + usbcore: registered new interface driver uas + usbcore: registered new interface driver usb-storage + usbcore: registered new interface driver usbserial_generic + usbserial: USB Serial support registered for generic + usbcore: registered new interface driver ftdi_sio + usbserial: USB Serial support registered for FTDI USB Serial Device + usbcore: registered new interface driver upd78f0730 + usbserial: USB Serial support registered for upd78f0730 + ULPI transceiver vendor/product ID 0x0424/0x0007 + Found SMSC USB3320 ULPI transceiver. + ULPI integrity check: passed. + ci_hdrc ci_hdrc.0: EHCI Host Controller + ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 + ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 + usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01 + usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 + usb usb1: Product: EHCI Host Controller + usb usb1: Manufacturer: Linux 6.1.70-284114-g2e8908932dfd ehci_hcd + usb usb1: SerialNumber: ci_hdrc.0 + hub 1-0:1.0: USB hub found + hub 1-0:1.0: 1 port detected + SPI driver ads7846 has no spi_device_id for ti,tsc2046 + SPI driver ads7846 has no spi_device_id for ti,ads7843 + SPI driver ads7846 has no spi_device_id for ti,ads7845 + SPI driver ads7846 has no spi_device_id for ti,ads7873 + i2c_dev: i2c /dev entries driver + si570: probe of 1-005d failed with error -5 + i2c i2c-0: Added multiplexed i2c bus 1 + i2c 2-0039: Fixed dependency cycle(s) with /fpga-axi@0/axi_hdmi@70e00000/port/endpoint + adv7511 2-0039: supply avdd not found, using dummy regulator + adv7511 2-0039: supply dvdd not found, using dummy regulator + adv7511 2-0039: supply pvdd not found, using dummy regulator + adv7511 2-0039: supply bgvdd not found, using dummy regulator + adv7511 2-0039: supply dvdd-3v not found, using dummy regulator + i2c i2c-0: Added multiplexed i2c bus 2 + at24 3-0054: supply vcc not found, using dummy regulator + at24 3-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write + i2c i2c-0: Added multiplexed i2c bus 3 + pca953x 4-0021: supply vcc not found, using dummy regulator + pca953x 4-0021: using no AI + i2c i2c-0: Added multiplexed i2c bus 4 + rtc-pcf8563 5-0051: registered as rtc0 + rtc-pcf8563 5-0051: setting system clock to 2026-03-16T15:16:20 UTC (1773674180) + i2c i2c-0: Added multiplexed i2c bus 5 + i2c i2c-0: Added multiplexed i2c bus 6 + i2c i2c-0: Added multiplexed i2c bus 7 + i2c i2c-0: Added multiplexed i2c bus 8 + pca954x 0-0074: registered 8 multiplexed busses for I2C switch pca9548 + gspca_main: v2.14.0 registered + usbcore: registered new interface driver uvcvideo + cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s + Xilinx Zynq CpuIdle Driver started + failed to register cpuidle driver + sdhci: Secure Digital Host Controller Interface driver + sdhci: Copyright(c) Pierre Ossman + sdhci-pltfm: SDHCI platform and OF driver helper + ledtrig-cpu: registered to indicate activity on CPUs + hid: raw HID events driver (C) Jiri Kosina + usbcore: registered new interface driver usbhid + usbhid: USB HID core driver + SPI driver fb_seps525 has no spi_device_id for syncoam,seps525 + mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA + SPI driver adis16475 has no spi_device_id for adi,adis16470 + SPI driver adis16475 has no spi_device_id for adi,adis16475-1 + SPI driver adis16475 has no spi_device_id for adi,adis16475-2 + SPI driver adis16475 has no spi_device_id for adi,adis16475-3 + SPI driver adis16475 has no spi_device_id for adi,adis16477-1 + SPI driver adis16475 has no spi_device_id for adi,adis16477-2 + SPI driver adis16475 has no spi_device_id for adi,adis16477-3 + SPI driver adis16475 has no spi_device_id for adi,adis16465-1 + SPI driver adis16475 has no spi_device_id for adi,adis16465-2 + SPI driver adis16475 has no spi_device_id for adi,adis16465-3 + SPI driver adis16475 has no spi_device_id for adi,adis16467-1 + SPI driver adis16475 has no spi_device_id for adi,adis16467-2 + SPI driver adis16475 has no spi_device_id for adi,adis16467-3 + SPI driver adis16475 has no spi_device_id for adi,adis16500 + SPI driver adis16475 has no spi_device_id for adi,adis16501 + SPI driver adis16475 has no spi_device_id for adi,adis16505-1 + SPI driver adis16475 has no spi_device_id for adi,adis16505-2 + SPI driver adis16475 has no spi_device_id for adi,adis16505-3 + SPI driver adis16475 has no spi_device_id for adi,adis16507-1 + SPI driver adis16475 has no spi_device_id for adi,adis16507-2 + SPI driver adis16475 has no spi_device_id for adi,adis16507-3 + SPI driver adis16475 has no spi_device_id for adi,adis16575-2 + SPI driver adis16475 has no spi_device_id for adi,adis16575-3 + SPI driver adis16475 has no spi_device_id for adi,adis16576-2 + SPI driver adis16475 has no spi_device_id for adi,adis16576-3 + SPI driver adis16475 has no spi_device_id for adi,adis16577-2 + SPI driver adis16475 has no spi_device_id for adi,adis16577-3 + mmc0: new high speed SDHC card at address e624 + axi_sysid 45000000.axi-sysid-0: AXI System ID core version (1.01.a) found + mmcblk0: mmc0:e624 SS16G 14.8 GiB + axi_sysid 45000000.axi-sysid-0: [adrv9001] [CMOS] on [zc706] git branch git <2156ac7e874a1dc321d9f64a325009fafe563419> clean [2024-11-01 13:51:24] UTC + fpga_manager fpga0: Xilinx Zynq FPGA Manager registered + mmcblk0: p1 p2 p3 + usbcore: registered new interface driver snd-usb-audio + NET: Registered PF_INET6 protocol family + Segment Routing with IPv6 + In-situ OAM (IOAM) with IPv6 + sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver + NET: Registered PF_PACKET protocol family + NET: Registered PF_IEEE802154 protocol family + Key type dns_resolver registered + zynq_pm_remap_ocm: OCM pool is not available + zynq_pm_suspend_init: Unable to map OCM. + Registering SWP/SWPB emulation handler + of-fpga-region fpga-full: FPGA Region probed + [drm] Initialized axi_hdmi_drm 1.0.0 20120930 for 70e00000.axi_hdmi on minor 0 + axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes + axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes + axi-hdmi 70e00000.axi_hdmi: [drm] Cannot find any crtc or sizes + random: crng init done + adrv9002 spi0.0: adrv9002-phy Rev 12.0, Firmware 0.22.39, Stream 0.7.15.0, API version: 68.14.10 successfully initialized + cf_axi_adc 44a00000.axi-adrv9002-rx-lpc: ADI AIM (10.03.) at 0x44A00000 mapped to 0xbfa4842d probed ADC ADRV9002 as MASTER + cf_axi_tdd 44a0c800.axi-adrv9002-core-tdd1-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a) + cf_axi_tdd 44a0cc00.axi-adrv9002-core-tdd2-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a) + cf_axi_dds 44a0a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.02.b) at 0x44A0A000 mapped to 0x198228e7, probed DDS ADRV9002 + cf_axi_dds 44a0c000.axi-adrv9002-tx2-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.02.b) at 0x44A0C000 mapped to 0x36d7443b, probed DDS ADRV9002 + debugfs: File 'Capture' in directory 'dapm' already present! + input: gpio_keys as /devices/soc0/gpio_keys/input/input0 + of_cfs_init + of_cfs_init: OK + clk: Not disabling unused clocks + ALSA device list: + #0: HDMI monitor + EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled. + VFS: Mounted root (ext4 filesystem) on device 179:2. + devtmpfs: mounted + Freeing unused kernel image (initmem) memory: 1024K + Run /sbin/init as init process + systemd[1]: systemd 247.3-7+rpi1+deb11u6 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified) + systemd[1]: Detected architecture arm. + + Welcome to Kuiper GNU/Linux 11.2 (bullseye)! + + systemd[1]: Set hostname to . + systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. + systemd[1]: Queued start job for default target Graphical Interface. + systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling. + systemd[1]: (This warning is only shown for the first unit using IP firewalling.) + systemd[1]: Created slice system-getty.slice. + [ OK ] Created slice system-getty.slice. + systemd[1]: Created slice system-modprobe.slice. + [ OK ] Created slice system-modprobe.slice. + systemd[1]: Created slice system-serial\x2dgetty.slice. + [ OK ] Created slice system-serial\x2dgetty.slice. + systemd[1]: Created slice system-systemd\x2dfsck.slice. + [ OK ] Created slice system-systemd\x2dfsck.slice. + systemd[1]: Created slice User and Session Slice. + [ OK ] Created slice User and Session Slice. + systemd[1]: Started Forward Password Requests to Wall Directory Watch. + [ OK ] Started Forward Password R…uests to Wall Directory Watch. + systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. + systemd[1]: Reached target Slices. + [ OK ] Reached target Slices. + systemd[1]: Reached target Swap. + [ OK ] Reached target Swap. + systemd[1]: Listening on Syslog Socket. + [ OK ] Listening on Syslog Socket. + systemd[1]: Listening on fsck to fsckd communication Socket. + [ OK ] Listening on fsck to fsckd communication Socket. + systemd[1]: Listening on initctl Compatibility Named Pipe. + [ OK ] Listening on initctl Compatibility Named Pipe. + systemd[1]: Condition check resulted in Journal Audit Socket being skipped. + systemd[1]: Listening on Journal Socket (/dev/log). + [ OK ] Listening on Journal Socket (/dev/log). + systemd[1]: Listening on Journal Socket. + [ OK ] Listening on Journal Socket. + systemd[1]: Listening on udev Control Socket. + [ OK ] Listening on udev Control Socket. + systemd[1]: Listening on udev Kernel Socket. + [ OK ] Listening on udev Kernel Socket. + systemd[1]: Condition check resulted in Huge Pages File System being skipped. + systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped. + systemd[1]: Mounting RPC Pipe File System... + Mounting RPC Pipe File System... + systemd[1]: Mounting Kernel Debug File System... + Mounting Kernel Debug File System... + systemd[1]: Condition check resulted in Kernel Trace File System being skipped. + systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped. + systemd[1]: Starting Restore / save the current clock... + Starting Restore / save the current clock... + systemd[1]: Starting Set the console keyboard layout... + Starting Set the console keyboard layout... + systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped. + systemd[1]: Starting Load Kernel Module configfs... + Starting Load Kernel Module configfs... + systemd[1]: Starting Load Kernel Module drm... + Starting Load Kernel Module drm... + systemd[1]: Starting Load Kernel Module fuse... + Starting Load Kernel Module fuse... + systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. + systemd[1]: Condition check resulted in File System Check on Root Device being skipped. + systemd[1]: Starting Journal Service... + Starting Journal Service... + systemd[1]: Starting Load Kernel Modules... + Starting Load Kernel Modules... + systemd[1]: Starting Remount Root and Kernel File Systems... + Starting Remount Root and Kernel File Systems... + systemd[1]: Starting Coldplug All udev Devices... + Starting Coldplug All udev Devices... + systemd[1]: Mounted RPC Pipe File System. + [ OK ] Mounted RPC Pipe File System. + systemd[1]: Mounted Kernel Debug File System. + [ OK ] Mounted Kernel Debug File System. + systemd[1]: Finished Restore / save the current clock. + [ OK ] Finished Restore / save the current clock. + systemd[1]: modprobe@configfs.service: Succeeded. + systemd[1]: Finished Load Kernel Module configfs. + [ OK ] Finished Load Kernel Module configfs. + systemd[1]: modprobe@drm.service: Succeeded. + systemd[1]: Finished Load Kernel Module drm. + [ OK ] Finished Load Kernel Module drm. + systemd[1]: modprobe@fuse.service: Succeeded. + systemd[1]: Finished Load Kernel Module fuse. + [ OK ] Finished Load Kernel Module fuse. + systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE + systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'. + systemd[1]: Failed to start Load Kernel Modules. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + systemd[1]: Started Journal Service. + [ OK ] Started Journal Service. + Mounting FUSE Control File System... + EXT4-fs (mmcblk0p2): re-mounted. Quota mode: disabled. + Mounting Kernel Configuration File System... + Starting Apply Kernel Variables... + [ OK ] Finished Set the console keyboard layout. + [ OK ] Finished Remount Root and Kernel File Systems. + [ OK ] Mounted FUSE Control File System. + [ OK ] Mounted Kernel Configuration File System. + [ OK ] Finished Apply Kernel Variables. + Starting Flush Journal to Persistent Storage... + Starting Load/Save Random Seed... + Starting Create System Users... + [ OK ] Finished Load/Save Random Seed. + [ OK ] Finished Create System Users. + [ OK ] Finished Coldplug All udev Devices. + Starting Helper to synchronize boot up for ifupdown... + Starting Create Static Device Nodes in /dev... + Starting Wait for udev To …plete Device Initialization... + [ OK ] Finished Flush Journal to Persistent Storage. + [ OK ] Finished Helper to synchronize boot up for ifupdown. + [ OK ] Finished Create Static Device Nodes in /dev. + [ OK ] Reached target Local File Systems (Pre). + Starting Rule-based Manage…for Device Events and Files... + [ OK ] Started Rule-based Manager for Device Events and Files. + Starting Show Plymouth Boot Screen... + [ OK ] Started Show Plymouth Boot Screen. + [ OK ] Started Forward Password R…s to Plymouth Directory Watch. + [ OK ] Reached target Local Encrypted Volumes. + [ OK ] Found device /dev/ttyPS0. + [ OK ] Found device /dev/disk/by-partuuid/a22286d2-01. + [ OK ] Finished Wait for udev To Complete Device Initialization. + Starting File System Check…isk/by-partuuid/a22286d2-01... + Starting Load Kernel Modules... + [ OK ] Started File System Check Daemon to report status. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ OK ] Finished File System Check…/disk/by-partuuid/a22286d2-01. + Mounting /boot... + [ OK ] Mounted /boot. + [ OK ] Reached target Local File Systems. + Starting Set console font and keymap... + Starting Raise network interfaces... + Starting Preprocess NFS configuration... + Starting Tell Plymouth To Write Out Runtime Data... + Starting Create Volatile Files and Directories... + [ OK ] Finished Set console font and keymap. + [ OK ] Finished Tell Plymouth To Write Out Runtime Data. + [ OK ] Finished Preprocess NFS configuration. + [ OK ] Reached target NFS client services. + [ OK ] Reached target Remote File Systems (Pre). + [ OK ] Reached target Remote File Systems. + [ OK ] Finished Create Volatile Files and Directories. + Starting Network Time Synchronization... + Starting Update UTMP about System Boot/Shutdown... + [ OK ] Finished Update UTMP about System Boot/Shutdown. + Starting Load Kernel Modules... + [ OK ] Started Network Time Synchronization. + [ OK ] Finished Raise network interfaces. + [ OK ] Reached target System Time Set. + [ OK ] Reached target System Time Synchronized. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ OK ] Reached target System Initialization. + [ OK ] Started CUPS Scheduler. + [ OK ] Started Daily apt download activities. + [ OK ] Started Daily apt upgrade and clean activities. + [ OK ] Started Periodic ext4 Onli…ata Check for All Filesystems. + [ OK ] Started Discard unused blocks once a week. + [ OK ] Started Daily rotation of log files. + [ OK ] Started Daily man-db regeneration. + [ OK ] Started Daily Cleanup of Temporary Directories. + [ OK ] Reached target Paths. + [ OK ] Reached target Timers. + [ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. + [ OK ] Listening on CUPS Scheduler. + [ OK ] Listening on D-Bus System Message Bus Socket. + [ OK ] Listening on Erlang Port Mapper Daemon Activation Socket. + [ OK ] Listening on GPS (Global P…ioning System) Daemon Sockets. + [ OK ] Listening on triggerhappy.socket. + [ OK ] Reached target Sockets. + [ OK ] Reached target Basic System. + Starting Analog Devices power up/down sequence... + Starting Save/Restore Sound Card State... + Starting Avahi mDNS/DNS-SD Stack... + [ OK ] Started Regular background program processing daemon. + [ OK ] Started D-Bus System Message Bus. + Starting dphys-swapfile - …unt, and delete a swap file... + Starting Remove Stale Onli…t4 Metadata Check Snapshots... + [ OK ] Started fan-control. + Starting Fix DP audio and X11 for Jupiter... + Starting Creating IIOD Context Attributes...... + Starting Authorization Manager... + Starting DHCP Client Daemon... + Starting LSB: Switch to on…nless shift key is pressed)... + Starting LSB: rng-tools (Debian variant)... + Starting System Logging Service... + Starting User Login Management... + Starting triggerhappy global hotkey daemon... + Starting Disk Manager... + Starting WPA supplicant... + [ OK ] Started triggerhappy global hotkey daemon. + [ OK ] Finished Save/Restore Sound Card State. + [ OK ] Finished Fix DP audio and X11 for Jupiter. + [ OK ] Started System Logging Service. + [ OK ] Started DHCP Client Daemon. + [ OK ] Finished dphys-swapfile - …mount, and delete a swap file. + [ OK ] Started Avahi mDNS/DNS-SD Stack. + [ OK ] Started Authorization Manager. + [ OK ] Started WPA supplicant. + [ OK ] Reached target Network. + [ OK ] Reached target Network is Online. + [ OK ] Reached target Sound Card. + Starting Modem Manager... + Starting CUPS Scheduler... + [ OK ] Started Erlang Port Mapper Daemon. + Starting HTTP based time synchronization tool... + Starting Internet superserver... + Starting /etc/rc.local Compatibility... + Starting OpenBSD Secure Shell server... + Starting Permit User Sessions... + [ OK ] Started LSB: rng-tools (Debian variant). + [ OK ] Finished Permit User Sessions. + Starting Light Display Manager... + [ OK ] Started Internet superserver. + [ OK ] Started User Login Management. + [ OK ] Started Unattended Upgrades Shutdown. + [ OK ] Finished Analog Devices power up/down sequence. + [FAILED] Failed to start VNC Server for X11. + + Raspbian GNU/Linux 11 analog ttyPS0 + + analog login: root (automatic login) + + Linux analog 6.1.70-284114-g2e8908932dfd #1060 SMP PREEMPT Tue Mar 18 16:11:24 EET 2025 armv7l + + The programs included with the Debian GNU/Linux system are free software; + the exact distribution terms for each program are described in the + individual files in /usr/share/doc/*/copyright. + + Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent + permitted by applicable law. + Last login: Mon Mar 16 15:17:43 GMT 2026 on ttyPS0 + root@analog:~# + +Useful commands for the serial terminal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The below commands are to be run in the serial terminal connected to the FPGA. + +To find out the IP of the FPGA board, run the following command and take the +IP specified at "eth0 inet": + +.. shell:: + + $ifconfig + +To see the IIO devices detected, run: + +.. shell:: + + $iio_info | grep iio:device + +To power off the system, run the following command, and wait for the final +message to be printed, then power off the FPGA board from the switch as well. + +.. shell:: + + $poweroff + +To reboot the system, run: + +.. shell:: + + $reboot + +.. important:: + + Even though this is Linux, this is a persistent file system. Care should + be taken not to corrupt the file system -- always shut down properly, don't + just turn off the power switch. You can do this from the terminal with + :code:`sudo shutdown -h now` or the above-mentioned :code:`poweroff` command. + If you are using a local display connection, you can also use the GUI + shut down button: + + .. image:: ../../images/shutdown.png + :width: 300 + +Using no-OS as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following files are needed for the system to boot: + +- HDL boot file: ``system_top.xsa`` +- no-OS project: :git-no-os:`projects/adrv9001` + +Instructions on how to build the boot files from source can be found below: + + - :external+no-OS:doc:`projects/rf-transceiver/adrv9001`. More no-OS build + details at :external+no-OS:doc:`build_guide`. + + - :external+hdl:ref:`adrv9001`. More HDL build details at + :external+hdl:ref:`build_hdl`. + +Required software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx Vivado and Vitis (downloading Vitis from + `here `_ + will include Vivado as well) +- An UART terminal (Putty/Tera Term/Minicom, etc.), Baud rate 115200 (8N1) + +Required hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx :xilinx:`ZC706` Rev 1.2 or later FPGA board and its power supply +- :adi:`EVAL-ADRV9002` FMC evaluation board +- SD card with at least 16GB of memory +- 1x Mini-USB for UART +- 1x Micro-USB for JTAG +- 2x SMA cable for loopback + +More details as to why you need these, can be found at +:ref:`adrv9002 prerequisites`. + +Testing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: ../images/adrv9002_zc706_noos_setup.jpeg + :width: 900 + +.. esd-warning:: + +.. note:: + This setup is made by creating a physical loopback between the RX and the TX + channel. + +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`EVAL-ADRV9002` FMC board to the FPGA carrier **LPC FMC** + socket (J5). +#. On the FMC card, set the switch to select clock source between: + + #. an on-board 38.4 MHz VCTCXO (default) + #. external (via J501) 10 MHz to 1000 MHz / +13 dBm + +#. Configure :xilinx:`ZC706` for JTAG boot mode (SW11: **1-Down, 2-Down, 3-Down, + 4-Down, 5-Down**) +#. Connect USB UART (Mini-USB) to your host PC (J21). +#. Connect USB JTAG (Micro USB) to your host PC (J2). +#. Plug the Power Supply into 12V Power input connector (J22) +#. Turn on the power switch on the FPGA board +#. Build and run the project using the steps shown in + :external+no-OS:doc:`here `. +#. Observe console output messages on your terminal (use the first ttyUSB or + COM port registered) + +.. seealso:: + For more detailed information on ZC706 switch configuration, check the + *ZC706 Hardware User Guide* (chapter "Device Configuration") + `here `__. + +Console output +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following is what is printed in the serial console, after you have +connected to the proper ttyUSB or COM port: + +.. Replace here the complete boot log from the setup +.. collapsible:: Complete boot log + + :: + + Hello + ADRV9002 Rev 12.0, Firmware 0.22.39, Stream 0.7.15.0, API version: 68.14.13 successfully initialized + axi-adrv9002-rx-lpc: Successfully inititalized (61437988 Hz) + axi-adrv9002-tx-lpc: Successfully inititalized (61437988 Hz) + axi-adrv9002-rx2-lpc: Successfully inititalized (61437988 Hz) + axi-adrv9002-tx2-lpc: Successfully inititalized (61437988 Hz) + Bye diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/zcu102.rst b/docs/solutions/reference-designs/adrv9002/quickstart/zcu102.rst new file mode 100644 index 00000000000..837ea772c37 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/zcu102.rst @@ -0,0 +1,1063 @@ +.. _adrv9002-zcu102: + +ZCU102 Quick start +=============================================================================== + +.. image:: ../../images/zcu102.jpg + :width: 800 + +This guide provides quick instructions on how to setup the +:adi:`EVAL-ADRV9002` on: + +- :xilinx:`ZCU102` on FMC HPC0 + +Instructions on how to build the ZynqMP / MPSoC Linux kernel and device trees +from source can be found at +:git-linux:`arch/arm64/boot/dts/xilinx` and in the +:ref:`linux-kernel zynqmp`. + +Using Linux as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. note:: + + The SD card includes several folders in the root directory of the BOOT + partition. In order to configure the SD card to work with a specific FPGA + board and ADI hardware, several files must be copied onto the root + directory. Using the host PC, drag and drop the required files onto the + BOOT partition, and use the EJECT function when removing the SD card from + the reader. + +The following files are needed for the system to boot: + +- HDL boot image: ``BOOT.bin`` +- Linux Kernel image: ``Image`` +- Linux device tree: ``system.dtb`` + +They can either be taken from the SD card -- already generated by us, or you +can build them manually: + +- Instructions on how to choose the boot files from the SD card can be found + in the **Platform-Specific Manual Steps** section from here :external+kuiper:ref:`hardware-configuration`. +- Instructions on how to manually build the boot files from source can be + found here: + +- :ref:`linux-kernel zynqmp` +- :external+hdl:ref:`adrv9001` build documentation. More HDL build + details at :external+hdl:ref:`build_hdl`. + +.. important:: + + Some projects provide multiple devicetree files in the SD card's boot + folders. Make sure you select the devicetree that matches your specific + use case. + +Required software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- SD Card 16GB imaged with :external+kuiper:doc:`Kuiper ` +- A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 + (8N1) + +Required hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- :xilinx:`ZCU102 ` Rev 1.0 or + later board and its power supply +- :adi:`EVAL-ADRV9002` FMC board +- SD card with at least 16GB of memory +- Micro-USB cable +- Ethernet cable +- Signal generator +- Signal analyzer +- Signal synthesizer (required only if using external clock source) +- 1x SMA cable for signal generator +- 1x SMA cable for signal analyzer +- 1x SMA cable for signal synthesizer (if using external clock) +- (Optional) USB keyboard & mouse and a HDMI compatible monitor + +More details as to why you need these, can be found at +:ref:`adrv9002 prerequisites`. + +Testing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: ../images/adrv9002_zcu102_quickstart.png + :width: 900 + +.. esd-warning:: + +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`EVAL-ADRV9002` FMC board to the FPGA carrier **HPC0** FMC + socket (J5). +#. On the FMC card, set the switch to select clock source between: + + #. an on-board 38.4 MHz VCTCXO (default) + #. external (via J501) 10 MHz to 1000 MHz / +13 dBm + +#. Connect USB UART (Micro-USB) to your host PC (J83). +#. Insert SD card into socket (J100). + + .. image:: ../../images/zcu102_1p0_bootmode.jpg + :width: 400 + +#. Configure ZCU102 for SD BOOT (mode SW6[4:1] switch in the position + **4-OFF, 3-OFF, 2-OFF, 1-ON**). +#. Connect the power supply for the FPGA +#. Turn on the power switch on the FPGA board. +#. Observe kernel and serial console messages on your terminal (use the first + ttyUSB or COM port registered). + +.. collapsible:: Optional: Local display connection (keyboard, mouse, monitor) + + You can also connect a monitor, keyboard and mouse directly to the board + for a local connection. The UART connection is still recommended for + debugging purposes. For the local connection, follow these additional + steps: + + - Plug your HDMI display device into the HDMI Video Connector (P7). + - Plug your USB mouse/keyboard into the USB 2.0 ULPI Controller, w/ Micro-B + Connector (J96). You will have to use a USB hub to connect both mouse and + keyboard. Some keyboards have a mouse or touch pad sharing the same USB + connection or wireless dongle. This can be used to eliminate the use of a + USB hub. + - Wait another ~30 seconds for the HDMI display device to start showing + signs of life. + + .. note:: + + The USB 2.0 circuit requires specific jumper settings for OTG mode. + Ensure the following jumper settings on the ZCU102 board + (these are the defaults; verify them if USB is not working): + + * J7 → ON + * J109 → Shunt pins 1–2 + * J110 → Shunt pins 1–2 + * J112 → Shunt pins 1–2 + * J113 → Shunt pins 2–3 + +.. seealso:: + For more detailed information on ZCU102 switch configuration, check the + *ZCU102 Hardware User Guide* (chapter "MPSoC Device Configuration") + `here `__. + +Boot messages +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following is what is printed in the serial console, after you have +connected to the proper ttyUSB or COM port: + +.. note:: + + If you are using a local connection (keyboard, mouse, monitor), you can + view the boot log by opening a terminal and running the ``dmesg`` command. + +.. collapsible:: Complete boot log + + .. code-block:: text + + Zynq MP First Stage Boot Loader + Release 2023.2 Nov 1 2024 - 10:14:10 + NOTICE: BL31: Non secure code at 0x8000000 + NOTICE: BL31: v2.8(release):xilinx-v2023.2 + NOTICE: BL31: Built : 10:57:16, Feb 7 2024 + PMUFW: v1.1 + + + U-Boot 2018.01-21442-gf06dec3cab (May 22 2024 - 17:46:13 +0300) Xilinx ZynqMP ZCU102 revA, Build: jenkins-development-build_uboot-31 + + I2C: ready + DRAM: 4 GiB + EL Level: EL2 + Chip ID: zu9eg + MMC: sdhci@ff170000: 0 (SD) + *** Warning - bad CRC, using default environment + + In: serial@ff000000 + Out: serial@ff000000 + Err: serial@ff000000 + Bootmode: LVL_SHFT_SD_MODE1 + Net: ZYNQ GEM: ff0e0000, phyaddr 15, interface rgmii-id + + Warning: ethernet@ff0e0000 using MAC address from ROM + eth0: ethernet@ff0e0000 + Hit any key to stop autoboot: 0 + switch to partitions #0, OK + mmc0 is current device + Device: sdhci@ff170000 + Manufacturer ID: 3 + OEM: 5344 + Name: SS16G + Tran Speed: 50000000 + Rd Block Len: 512 + SD version 3.0 + High Capacity: Yes + Capacity: 14.8 GiB + Bus Width: 4-bit + Erase Group Size: 512 Bytes + reading uEnv.txt + 407 bytes read in 24 ms (15.6 KiB/s) + Loaded environment from uEnv.txt + Importing environment from SD ... + Running uenvcmd ... + Copying Linux from SD to RAM... + ** No boot file defined ** + reading system.dtb + 56316 bytes read in 33 ms (1.6 MiB/s) + reading Image + 38605312 bytes read in 2557 ms (14.4 MiB/s) + ## Flattened Device Tree blob at 04000000 + Booting using the fdt blob at 0x4000000 + Loading Device Tree to 000000000ffef000, end 000000000ffffbfb ... OK + + Starting kernel ... + + [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] + [ 0.000000] Linux version 6.1.70-284114-g2e8908932dfd (jenkins@romlxbuild1) (aarch64-xilinx-linux-gcc.real (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39.0.20220819) #1061 SMP Tue Mar 18 16:40:12 EET 2025 + [ 0.000000] Machine model: ZynqMP ZCU102 Rev1.0 + [ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8') + [ 0.000000] printk: bootconsole [cdns0] enabled + [ 0.000000] efi: UEFI not found. + [ 0.000000] Zone ranges: + [ 0.000000] DMA [mem 0x0000000000000000-0x00000000ffffffff] + [ 0.000000] DMA32 empty + [ 0.000000] Normal [mem 0x0000000100000000-0x000000087fffffff] + [ 0.000000] Movable zone start for each node + [ 0.000000] Early memory node ranges + [ 0.000000] node 0: [mem 0x0000000000000000-0x000000007fffffff] + [ 0.000000] node 0: [mem 0x0000000800000000-0x000000087fffffff] + [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000087fffffff] + [ 0.000000] cma: Reserved 256 MiB at 0x0000000070000000 + [ 0.000000] psci: probing for conduit method from DT. + [ 0.000000] psci: PSCIv1.1 detected in firmware. + [ 0.000000] psci: Using standard PSCI v0.2 function IDs + [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. + [ 0.000000] psci: SMC Calling Convention v1.2 + [ 0.000000] percpu: Embedded 18 pages/cpu s34536 r8192 d31000 u73728 + [ 0.000000] Detected VIPT I-cache on CPU0 + [ 0.000000] CPU features: detected: ARM erratum 845719 + [ 0.000000] alternatives: applying boot alternatives + [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1034240 + [ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlycon rootfstype=ext4 rootwait clk_ignore_unused cpuidle.off=1 root=/dev/mmcblk0p2 rw rootwait + [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) + [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) + [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off + [ 0.000000] software IO TLB: area num 4. + [ 0.000000] software IO TLB: mapped [mem 0x000000006c000000-0x0000000070000000] (64MB) + [ 0.000000] Memory: 3755128K/4194304K available (17408K kernel code, 1732K rwdata, 15684K rodata, 2752K init, 658K bss, 177032K reserved, 262144K cma-reserved) + [ 0.000000] rcu: Hierarchical RCU implementation. + [ 0.000000] rcu: RCU event tracing is enabled. + [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4. + [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. + [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 + [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 + [ 0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000 + [ 0.000000] Root IRQ handler: gic_handle_irq + [ 0.000000] GIC: Using split EOI/Deactivate mode + [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. + [ 0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys). + [ 0.000000] clocksource: arch_sys_counter: mask: 0x1ffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns + [ 0.000001] sched_clock: 57 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns + [ 0.008428] Console: colour dummy device 80x25 + [ 0.012486] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000) + [ 0.022840] pid_max: default: 32768 minimum: 301 + [ 0.027563] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) + [ 0.034788] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) + [ 0.043540] rcu: Hierarchical SRCU implementation. + [ 0.047322] rcu: Max phase no-delay instances is 1000. + [ 0.052775] EFI services will not be available. + [ 0.057164] smp: Bringing up secondary CPUs ... + [ 0.061910] Detected VIPT I-cache on CPU1 + [ 0.061984] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] + [ 0.062396] Detected VIPT I-cache on CPU2 + [ 0.062451] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] + [ 0.062845] Detected VIPT I-cache on CPU3 + [ 0.062901] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] + [ 0.062948] smp: Brought up 1 node, 4 CPUs + [ 0.096969] SMP: Total of 4 processors activated. + [ 0.101641] CPU features: detected: 32-bit EL0 Support + [ 0.106744] CPU features: detected: CRC32 instructions + [ 0.111902] CPU: All CPU(s) started at EL2 + [ 0.115915] alternatives: applying system-wide alternatives + [ 0.122507] devtmpfs: initialized + [ 0.130812] Registered cp15_barrier emulation handler + [ 0.130865] Registered setend emulation handler + [ 0.134839] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns + [ 0.144428] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) + [ 0.157257] pinctrl core: initialized pinctrl subsystem + [ 0.158171] NET: Registered PF_NETLINK/PF_ROUTE protocol family + [ 0.163565] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations + [ 0.169836] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations + [ 0.177585] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations + [ 0.185352] audit: initializing netlink subsys (disabled) + [ 0.190757] audit: type=2000 audit(0.120:1): state=initialized audit_enabled=0 res=1 + [ 0.191146] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. + [ 0.205172] ASID allocator initialised with 65536 entries + [ 0.230457] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages + [ 0.231612] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page + [ 0.237836] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages + [ 0.244580] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page + [ 0.250809] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages + [ 0.257555] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page + [ 0.263785] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages + [ 0.270530] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page + [ 0.344824] raid6: neonx8 gen() 2261 MB/s + [ 0.412889] raid6: neonx4 gen() 2217 MB/s + [ 0.480948] raid6: neonx2 gen() 2121 MB/s + [ 0.549009] raid6: neonx1 gen() 1813 MB/s + [ 0.617071] raid6: int64x8 gen() 1390 MB/s + [ 0.685133] raid6: int64x4 gen() 1567 MB/s + [ 0.753185] raid6: int64x2 gen() 1372 MB/s + [ 0.821245] raid6: int64x1 gen() 1033 MB/s + [ 0.821284] raid6: using algorithm neonx8 gen() 2261 MB/s + [ 0.889296] raid6: .... xor() 1654 MB/s, rmw enabled + [ 0.889341] raid6: using neon recovery algorithm + [ 0.893616] iommu: Default domain type: Translated + [ 0.898047] iommu: DMA domain TLB invalidation policy: strict mode + [ 0.904473] SCSI subsystem initialized + [ 0.908139] usbcore: registered new interface driver usbfs + [ 0.913467] usbcore: registered new interface driver hub + [ 0.918739] usbcore: registered new device driver usb + [ 0.923899] mc: Linux media interface: v0.10 + [ 0.928002] videodev: Linux video capture interface: v2.00 + [ 0.933476] pps_core: LinuxPPS API ver. 1 registered + [ 0.938355] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti + [ 0.947450] PTP clock support registered + [ 0.951351] EDAC MC: Ver: 3.0.0 + [ 0.954775] zynqmp-ipi-mbox mailbox@ff9905c0: Registered ZynqMP IPI mbox with TX/RX channels. + [ 0.963360] jesd204: found 0 devices and 0 topologies + [ 0.967987] FPGA manager framework + [ 0.971340] Advanced Linux Sound Architecture Driver Initialized. + [ 0.977810] Bluetooth: Core ver 2.22 + [ 0.980923] NET: Registered PF_BLUETOOTH protocol family + [ 0.986190] Bluetooth: HCI device and connection manager initialized + [ 0.992507] Bluetooth: HCI socket layer initialized + [ 0.997349] Bluetooth: L2CAP socket layer initialized + [ 1.002374] Bluetooth: SCO socket layer initialized + [ 1.007729] clocksource: Switched to clocksource arch_sys_counter + [ 1.013413] VFS: Disk quotas dquot_6.6.0 + [ 1.017195] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) + [ 1.028899] NET: Registered PF_INET protocol family + [ 1.029095] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear) + [ 1.038916] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear) + [ 1.044695] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) + [ 1.052369] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear) + [ 1.060440] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear) + [ 1.068427] TCP: Hash tables configured (established 32768 bind 32768) + [ 1.074147] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear) + [ 1.080807] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear) + [ 1.087975] NET: Registered PF_UNIX/PF_LOCAL protocol family + [ 1.093840] RPC: Registered named UNIX socket transport module. + [ 1.099337] RPC: Registered udp transport module. + [ 1.104007] RPC: Registered tcp transport module. + [ 1.108674] RPC: Registered tcp NFSv4.1 backchannel transport module. + [ 1.115743] PCI: CLS 0 bytes, default 64 + [ 1.119747] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available + [ 1.127616] Initialise system trusted keyrings + [ 1.131192] workingset: timestamp_bits=62 max_order=20 bucket_order=0 + [ 1.138048] NFS: Registering the id_resolver key type + [ 1.142521] Key type id_resolver registered + [ 1.146648] Key type id_legacy registered + [ 1.150641] nfs4filelayout_init: NFSv4 File Layout Driver Registering... + [ 1.157288] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... + [ 1.164657] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. + [ 1.171810] fuse: init (API version 7.37) + [ 1.212515] NET: Registered PF_ALG protocol family + [ 1.212564] xor: measuring software checksum speed + [ 1.220334] 8regs : 2521 MB/sec + [ 1.224649] 32regs : 2522 MB/sec + [ 1.229249] arm64_neon : 2356 MB/sec + [ 1.229396] xor: using function: 32regs (2522 MB/sec) + [ 1.234422] Key type asymmetric registered + [ 1.238485] Asymmetric key parser 'x509' registered + [ 1.243359] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246) + [ 1.250686] io scheduler mq-deadline registered + [ 1.255180] io scheduler kyber registered + [ 1.292530] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled + [ 1.300071] brd: module loaded + [ 1.303316] loop: module loaded + [ 1.303674] Registered mathworks_ip class + [ 1.305340] mtdoops: mtd device (mtddev=name/number) must be supplied + [ 1.314054] tun: Universal TUN/TAP device driver, 1.6 + [ 1.316321] CAN device driver interface + [ 1.320780] SPI driver wl1271_spi has no spi_device_id for ti,wl1271 + [ 1.326350] SPI driver wl1271_spi has no spi_device_id for ti,wl1273 + [ 1.332658] SPI driver wl1271_spi has no spi_device_id for ti,wl1281 + [ 1.338970] SPI driver wl1271_spi has no spi_device_id for ti,wl1283 + [ 1.345284] SPI driver wl1271_spi has no spi_device_id for ti,wl1285 + [ 1.351600] SPI driver wl1271_spi has no spi_device_id for ti,wl1801 + [ 1.357914] SPI driver wl1271_spi has no spi_device_id for ti,wl1805 + [ 1.364229] SPI driver wl1271_spi has no spi_device_id for ti,wl1807 + [ 1.370542] SPI driver wl1271_spi has no spi_device_id for ti,wl1831 + [ 1.376857] SPI driver wl1271_spi has no spi_device_id for ti,wl1835 + [ 1.383172] SPI driver wl1271_spi has no spi_device_id for ti,wl1837 + [ 1.389594] usbcore: registered new interface driver asix + [ 1.394886] usbcore: registered new interface driver ax88179_178a + [ 1.400925] usbcore: registered new interface driver cdc_ether + [ 1.406721] usbcore: registered new interface driver net1080 + [ 1.412343] usbcore: registered new interface driver cdc_subset + [ 1.418226] usbcore: registered new interface driver zaurus + [ 1.423776] usbcore: registered new interface driver cdc_ncm + [ 1.429384] usbcore: registered new interface driver r8153_ecm + [ 1.436376] usbcore: registered new interface driver uas + [ 1.440469] usbcore: registered new interface driver usb-storage + [ 1.446466] usbcore: registered new interface driver usbserial_generic + [ 1.452910] usbserial: USB Serial support registered for generic + [ 1.458881] usbcore: registered new interface driver ftdi_sio + [ 1.464582] usbserial: USB Serial support registered for FTDI USB Serial Device + [ 1.471853] usbcore: registered new interface driver upd78f0730 + [ 1.477728] usbserial: USB Serial support registered for upd78f0730 + [ 1.484982] SPI driver ads7846 has no spi_device_id for ti,tsc2046 + [ 1.490090] SPI driver ads7846 has no spi_device_id for ti,ads7843 + [ 1.496229] SPI driver ads7846 has no spi_device_id for ti,ads7845 + [ 1.502370] SPI driver ads7846 has no spi_device_id for ti,ads7873 + [ 1.509087] rtc_zynqmp ffa60000.rtc: registered as rtc0 + [ 1.513716] rtc_zynqmp ffa60000.rtc: setting system clock to 2026-03-16T13:10:39 UTC (1773666639) + [ 1.522589] i2c_dev: i2c /dev entries driver + [ 1.528675] usbcore: registered new interface driver uvcvideo + [ 1.534068] Bluetooth: HCI UART driver ver 2.3 + [ 1.536886] Bluetooth: HCI UART protocol H4 registered + [ 1.541987] Bluetooth: HCI UART protocol BCSP registered + [ 1.547279] Bluetooth: HCI UART protocol LL registered + [ 1.552367] Bluetooth: HCI UART protocol ATH3K registered + [ 1.557744] Bluetooth: HCI UART protocol Three-wire (H5) registered + [ 1.563996] Bluetooth: HCI UART protocol Intel registered + [ 1.569334] Bluetooth: HCI UART protocol QCA registered + [ 1.574535] usbcore: registered new interface driver bcm203x + [ 1.580162] usbcore: registered new interface driver bpa10x + [ 1.585695] usbcore: registered new interface driver bfusb + [ 1.591143] usbcore: registered new interface driver btusb + [ 1.596603] usbcore: registered new interface driver ath3k + [ 1.602101] EDAC MC: ECC not enabled + [ 1.605730] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT) + [ 1.618057] sdhci: Secure Digital Host Controller Interface driver + [ 1.623822] sdhci: Copyright(c) Pierre Ossman + [ 1.628143] sdhci-pltfm: SDHCI platform and OF driver helper + [ 1.634219] ledtrig-cpu: registered to indicate activity on CPUs + [ 1.639780] SMCCC: SOC_ID: ID = jep106:0049:0000 Revision = 0x24738093 + [ 1.646291] zynqmp_firmware_probe Platform Management API v1.1 + [ 1.652062] zynqmp_firmware_probe Trustzone version v1.0 + [ 1.687402] zynqmp-aes zynqmp-aes.0: will run requests pump with realtime priority + [ 1.689640] usbcore: registered new interface driver usbhid + [ 1.694870] usbhid: USB HID core driver + [ 1.698849] SPI driver fb_seps525 has no spi_device_id for syncoam,seps525 + [ 1.711406] SPI driver adis16475 has no spi_device_id for adi,adis16470 + [ 1.712379] SPI driver adis16475 has no spi_device_id for adi,adis16475-1 + [ 1.719122] SPI driver adis16475 has no spi_device_id for adi,adis16475-2 + [ 1.725869] SPI driver adis16475 has no spi_device_id for adi,adis16475-3 + [ 1.732615] SPI driver adis16475 has no spi_device_id for adi,adis16477-1 + [ 1.739362] SPI driver adis16475 has no spi_device_id for adi,adis16477-2 + [ 1.746110] SPI driver adis16475 has no spi_device_id for adi,adis16477-3 + [ 1.752857] SPI driver adis16475 has no spi_device_id for adi,adis16465-1 + [ 1.759603] SPI driver adis16475 has no spi_device_id for adi,adis16465-2 + [ 1.766350] SPI driver adis16475 has no spi_device_id for adi,adis16465-3 + [ 1.773097] SPI driver adis16475 has no spi_device_id for adi,adis16467-1 + [ 1.779844] SPI driver adis16475 has no spi_device_id for adi,adis16467-2 + [ 1.786591] SPI driver adis16475 has no spi_device_id for adi,adis16467-3 + [ 1.793338] SPI driver adis16475 has no spi_device_id for adi,adis16500 + [ 1.799915] SPI driver adis16475 has no spi_device_id for adi,adis16501 + [ 1.806486] SPI driver adis16475 has no spi_device_id for adi,adis16505-1 + [ 1.813233] SPI driver adis16475 has no spi_device_id for adi,adis16505-2 + [ 1.819980] SPI driver adis16475 has no spi_device_id for adi,adis16505-3 + [ 1.826727] SPI driver adis16475 has no spi_device_id for adi,adis16507-1 + [ 1.833478] SPI driver adis16475 has no spi_device_id for adi,adis16507-2 + [ 1.840222] SPI driver adis16475 has no spi_device_id for adi,adis16507-3 + [ 1.846969] SPI driver adis16475 has no spi_device_id for adi,adis16575-2 + [ 1.853715] SPI driver adis16475 has no spi_device_id for adi,adis16575-3 + [ 1.860462] SPI driver adis16475 has no spi_device_id for adi,adis16576-2 + [ 1.867209] SPI driver adis16475 has no spi_device_id for adi,adis16576-3 + [ 1.873956] SPI driver adis16475 has no spi_device_id for adi,adis16577-2 + [ 1.880703] SPI driver adis16475 has no spi_device_id for adi,adis16577-3 + [ 1.888549] axi_sysid 85000000.axi-sysid-0: AXI System ID core version (1.01.a) found + [ 1.895417] axi_sysid 85000000.axi-sysid-0: [adrv9001] [CMOS] on [zcu102] git branch git <2156ac7e874a1dc321d9f64a325009fafe563419> clean [2024-11-01 09:41:03] UTC + [ 1.911586] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered + [ 1.917758] usbcore: registered new interface driver snd-usb-audio + [ 1.925392] pktgen: Packet Generator for packet performance testing. Version: 2.75 + [ 1.931475] Initializing XFRM netlink socket + [ 1.935353] NET: Registered PF_INET6 protocol family + [ 1.940742] Segment Routing with IPv6 + [ 1.943880] In-situ OAM (IOAM) with IPv6 + [ 1.947792] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver + [ 1.953982] NET: Registered PF_PACKET protocol family + [ 1.958653] NET: Registered PF_KEY protocol family + [ 1.963496] can: controller area network core + [ 1.967749] NET: Registered PF_CAN protocol family + [ 1.972481] can: raw protocol + [ 1.975419] can: broadcast manager protocol + [ 1.979577] can: netlink gateway - max_hops=1 + [ 1.983971] Bluetooth: RFCOMM TTY layer initialized + [ 1.988749] Bluetooth: RFCOMM socket layer initialized + [ 1.993856] Bluetooth: RFCOMM ver 1.11 + [ 1.997570] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 + [ 2.002841] Bluetooth: BNEP filters: protocol multicast + [ 2.008034] Bluetooth: BNEP socket layer initialized + [ 2.012961] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 + [ 2.018847] Bluetooth: HIDP socket layer initialized + [ 2.023902] 9pnet: Installing 9P2000 support + [ 2.028023] NET: Registered PF_IEEE802154 protocol family + [ 2.033404] Key type dns_resolver registered + [ 2.037925] registered taskstats version 1 + [ 2.041683] Loading compiled-in X.509 certificates + [ 2.046859] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no + [ 2.053112] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa) + [ 2.462621] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 23, base_baud = 6249999) is a xuartps + [ 2.471654] printk: console [ttyPS0] enabled + [ 2.471654] printk: console [ttyPS0] enabled + [ 2.475956] printk: bootconsole [cdns0] disabled + [ 2.475956] printk: bootconsole [cdns0] disabled + [ 2.485576] ff010000.serial: ttyPS1 at MMIO 0xff010000 (irq = 24, base_baud = 6249999) is a xuartps + [ 2.499920] nwl-pcie fd0e0000.pcie: host bridge /axi/pcie@fd0e0000 ranges: + [ 2.506820] nwl-pcie fd0e0000.pcie: MEM 0x00e0000000..0x00efffffff -> 0x00e0000000 + [ 2.514823] nwl-pcie fd0e0000.pcie: MEM 0x0600000000..0x07ffffffff -> 0x0600000000 + [ 2.522923] nwl-pcie fd0e0000.pcie: Link is DOWN + [ 2.527747] nwl-pcie fd0e0000.pcie: PCI host bridge to bus 0000:00 + [ 2.533923] pci_bus 0000:00: root bus resource [bus 00-ff] + [ 2.539406] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff] + [ 2.546271] pci_bus 0000:00: root bus resource [mem 0x600000000-0x7ffffffff pref] + [ 2.553774] pci 0000:00:00.0: [10ee:d021] type 01 class 0x060400 + [ 2.559837] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot + [ 2.567987] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring + [ 2.576108] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01 + [ 2.582731] pci 0000:00:00.0: PCI bridge to [bus 01] + [ 2.590575] xilinx-zynqmp-dpdma fd4c0000.dma-controller: Xilinx DPDMA engine is probed + [ 2.600437] spi-nor spi0.0: SPI-NOR-UniqueID 4a960c00191f0016007c7bc4aaf2 + [ 2.607231] spi-nor spi0.0: found mt25qu512a, expected m25p80 + [ 2.613232] spi-nor spi0.0: mt25qu512a (131072 Kbytes) + [ 2.618480] 4 fixed-partitions partitions found on MTD device spi0.0 + [ 2.624827] Creating 4 MTD partitions on "spi0.0": + [ 2.629611] 0x000000000000-0x000000100000 : "qspi-fsbl-uboot" + [ 2.636208] 0x000000100000-0x000000600000 : "qspi-linux" + [ 2.642234] 0x000000600000-0x000000620000 : "qspi-device-tree" + [ 2.648765] 0x000000620000-0x000000c00000 : "qspi-rootfs" + [ 2.657486] macb ff0e0000.ethernet: Not enabling partial store and forward + [ 2.684700] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM + [ 2.691246] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM + [ 2.697728] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM + [ 2.704215] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM + [ 2.711475] i2c i2c-0: using pinctrl states for GPIO recovery + [ 2.717412] i2c i2c-0: using generic GPIOs for recovery + [ 2.723017] pca953x 0-0020: supply vcc not found, using dummy regulator + [ 2.729706] pca953x 0-0020: using no AI + [ 2.734271] gpio-318 (sel0): hogged as output/low + [ 2.739172] gpio-319 (sel1): hogged as output/high + [ 2.744163] gpio-320 (sel2): hogged as output/high + [ 2.749153] gpio-321 (sel3): hogged as output/high + [ 2.754319] pca953x 0-0021: supply vcc not found, using dummy regulator + [ 2.760999] pca953x 0-0021: using no AI + [ 2.766550] ina2xx 2-0040: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.773536] ina2xx 2-0041: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.780527] ina2xx 2-0042: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.787519] ina2xx 2-0043: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.794508] ina2xx 2-0044: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.801504] ina2xx 2-0045: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.808515] ina2xx 2-0046: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.815507] ina2xx 2-0047: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.822499] ina2xx 2-004a: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.829505] ina2xx 2-004b: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.835916] i2c i2c-0: Added multiplexed i2c bus 2 + [ 2.841468] ina2xx 3-0040: power monitor ina226 (Rshunt = 2000 uOhm) + [ 2.848455] ina2xx 3-0041: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.855447] ina2xx 3-0042: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.862441] ina2xx 3-0043: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.869432] ina2xx 3-0044: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.876426] ina2xx 3-0045: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.883424] ina2xx 3-0046: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.890418] ina2xx 3-0047: power monitor ina226 (Rshunt = 5000 uOhm) + [ 2.896827] i2c i2c-0: Added multiplexed i2c bus 3 + [ 2.969049] i2c i2c-0: Added multiplexed i2c bus 4 + [ 2.974007] i2c i2c-0: Added multiplexed i2c bus 5 + [ 2.978802] pca954x 0-0075: registered 4 multiplexed busses for I2C mux pca9544 + [ 2.986187] cdns-i2c ff020000.i2c: 400 kHz mmio ff020000 irq 49 + [ 2.993140] i2c i2c-1: using pinctrl states for GPIO recovery + [ 2.999068] i2c i2c-1: using generic GPIOs for recovery + [ 3.005040] at24 6-0054: supply vcc not found, using dummy regulator + [ 3.011947] at24 6-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write + [ 3.018720] i2c i2c-1: Added multiplexed i2c bus 6 + [ 3.024103] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.031412] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.038720] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.046025] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.053324] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.060625] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.067923] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.075222] si5341 7-0036: no regulator set, defaulting vdd_sel to 2.5V for out + [ 3.083618] si5341 7-0036: Chip: 5341 Grade: 1 Rev: 3 + [ 3.121695] i2c i2c-1: Added multiplexed i2c bus 7 + [ 3.129341] si570 8-005d: registered, current frequency 300000000 Hz + [ 3.135751] i2c i2c-1: Added multiplexed i2c bus 8 + [ 3.155510] si570 9-005d: registered, current frequency 148500000 Hz + [ 3.161916] i2c i2c-1: Added multiplexed i2c bus 9 + [ 3.166951] si5324 10-0069: si5328 probed + [ 3.231983] si5324 10-0069: si5328 probe successful + [ 3.236911] i2c i2c-1: Added multiplexed i2c bus 10 + [ 3.241952] i2c i2c-1: Added multiplexed i2c bus 11 + [ 3.246995] i2c i2c-1: Added multiplexed i2c bus 12 + [ 3.252042] i2c i2c-1: Added multiplexed i2c bus 13 + [ 3.256919] pca954x 1-0074: registered 8 multiplexed busses for I2C switch pca9548 + [ 3.265004] at24 14-0050: supply vcc not found, using dummy regulator + [ 3.271803] at24 14-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write + [ 3.278557] i2c i2c-1: Added multiplexed i2c bus 14 + [ 3.283606] i2c i2c-1: Added multiplexed i2c bus 15 + [ 3.288655] i2c i2c-1: Added multiplexed i2c bus 16 + [ 3.293703] i2c i2c-1: Added multiplexed i2c bus 17 + [ 3.298757] i2c i2c-1: Added multiplexed i2c bus 18 + [ 3.303816] i2c i2c-1: Added multiplexed i2c bus 19 + [ 3.308871] i2c i2c-1: Added multiplexed i2c bus 20 + [ 3.313921] i2c i2c-1: Added multiplexed i2c bus 21 + [ 3.318799] pca954x 1-0075: registered 8 multiplexed busses for I2C switch pca9548 + [ 3.326414] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 50 + [ 3.335815] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s + [ 3.377144] mmc0: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit + [ 3.422468] mmc0: new high speed SDHC card at address e624 + [ 3.428325] mmcblk0: mmc0:e624 SS16G 14.8 GiB + [ 3.435775] random: crng init done + [ 3.439358] mmcblk0: p1 p2 p3 + [ 8.407515] adrv9002 spi1.0: adrv9002-phy Rev 12.0, Firmware 0.22.39, Stream 0.7.15.0, API version: 68.14.10 successfully initialized + [ 8.421215] cf_axi_adc 84a00000.axi-adrv9002-rx-lpc: ADI AIM (10.03.) at 0x84A00000 mapped to 0x00000000633b1567 probed ADC ADRV9002 as MASTER + [ 8.435188] cf_axi_tdd 84a0c800.axi-adrv9002-core-tdd1-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a) + [ 8.444899] cf_axi_tdd 84a0cc00.axi-adrv9002-core-tdd2-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a) + [ 8.472095] cf_axi_dds 84a0a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.02.b) at 0x84A0A000 mapped to 0x0000000099debda9, probed DDS ADRV9002 + [ 8.504053] cf_axi_dds 84a0c000.axi-adrv9002-tx2-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.02.b) at 0x84A0C000 mapped to 0x00000000da118caa, probed DDS ADRV9002 + [ 8.519761] zynqmp-display fd4a0000.display: vtc bridge property not present + [ 8.530185] xilinx-dp-snd-codec fd4a0000.display:zynqmp-dp-snd-codec0: Failed to get required clock freq + [ 8.539686] xilinx-dp-snd-codec: probe of fd4a0000.display:zynqmp-dp-snd-codec0 failed with error -22 + [ 8.549184] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed + [ 8.557260] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed + [ 8.565415] OF: graph: no port node found in /axi/display@fd4a0000 + [ 8.571918] xlnx-drm xlnx-drm.0: bound fd4a0000.display (ops 0xffffffc0091e3e98) + [ 9.655753] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes + [ 9.663396] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.display on minor 0 + [ 9.670898] zynqmp-display fd4a0000.display: ZynqMP DisplayPort Subsystem driver probed + [ 9.679115] ahci-ceva fd0c0000.ahci: supply ahci not found, using dummy regulator + [ 9.686676] ahci-ceva fd0c0000.ahci: supply phy not found, using dummy regulator + [ 9.694145] ahci-ceva fd0c0000.ahci: supply target not found, using dummy regulator + [ 9.712076] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode + [ 9.721034] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst + [ 9.731472] scsi host0: ahci-ceva + [ 9.735062] scsi host1: ahci-ceva + [ 9.738488] ata1: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x100 irq 54 + [ 9.746403] ata2: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x180 irq 54 + [ 9.756015] macb ff0e0000.ethernet: Not enabling partial store and forward + [ 9.764883] macb ff0e0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 46 (00:0a:35:07:fe:31) + [ 9.855972] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller + [ 9.861474] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1 + [ 9.869222] xhci-hcd xhci-hcd.1.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000002010810 + [ 9.878635] xhci-hcd xhci-hcd.1.auto: irq 55, io mem 0xfe200000 + [ 9.884654] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller + [ 9.890140] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2 + [ 9.897797] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed + [ 9.904433] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01 + [ 9.912695] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 + [ 9.919920] usb usb1: Product: xHCI Host Controller + [ 9.924794] usb usb1: Manufacturer: Linux 6.1.70-284114-g2e8908932dfd xhci-hcd + [ 9.932015] usb usb1: SerialNumber: xhci-hcd.1.auto + [ 9.937196] hub 1-0:1.0: USB hub found + [ 9.940963] hub 1-0:1.0: 1 port detected + [ 9.945182] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.01 + [ 9.953447] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 + [ 9.960673] usb usb2: Product: xHCI Host Controller + [ 9.965546] usb usb2: Manufacturer: Linux 6.1.70-284114-g2e8908932dfd xhci-hcd + [ 9.972761] usb usb2: SerialNumber: xhci-hcd.1.auto + [ 9.977943] hub 2-0:1.0: USB hub found + [ 9.981708] hub 2-0:1.0: 1 port detected + [ 9.995109] input: gpio-keys as /devices/platform/gpio-keys/input/input0 + [ 10.002194] of_cfs_init + [ 10.004655] of_cfs_init: OK + [ 10.007501] cfg80211: Loading compiled-in X.509 certificates for regulatory database + [ 10.053387] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' + [ 10.060673] cfg80211: Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600' + [ 10.068790] ata2: SATA link down (SStatus 0 SControl 330) + [ 10.068802] clk: Not disabling unused clocks + [ 10.074210] ata1: SATA link down (SStatus 0 SControl 330) + [ 10.078728] ALSA device list: + [ 10.086794] No soundcards found. + [ 10.090474] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 + [ 10.099086] cfg80211: failed to load regulatory.db + [ 10.117608] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none. + [ 10.126157] VFS: Mounted root (ext4 filesystem) on device 179:2. + [ 10.141873] devtmpfs: mounted + [ 10.145662] Freeing unused kernel memory: 2752K + [ 10.150286] Run /sbin/init as init process + [ 10.674255] systemd[1]: systemd 247.3-7+rpi1+deb11u6 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified) + [ 10.698213] systemd[1]: Detected architecture arm64. + + Welcome to Kuiper GNU/Linux 11.2 (bullseye)! + + [ 10.735433] systemd[1]: Set hostname to . + [ 10.775763] zynqmp-display fd4a0000.display: [drm] Cannot find any crtc or sizes + [ 12.060575] systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. + [ 12.285317] systemd[1]: Queued start job for default target Graphical Interface. + [ 12.294183] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling. + [ 12.306538] systemd[1]: (This warning is only shown for the first unit using IP firewalling.) + [ 12.315605] systemd[1]: Created slice system-getty.slice. + [ OK ] Created slice system-getty.slice. + [ 12.336228] systemd[1]: Created slice system-modprobe.slice. + [ OK ] Created slice system-modprobe.slice. + [ 12.356150] systemd[1]: Created slice system-serial\x2dgetty.slice. + [ OK ] Created slice system-serial\x2dgetty.slice. + [ 12.380137] systemd[1]: Created slice system-systemd\x2dfsck.slice. + [ OK ] Created slice system-systemd\x2dfsck.slice. + [ 12.404034] systemd[1]: Created slice User and Session Slice. + [ OK ] Created slice User and Session Slice. + [ 12.424187] systemd[1]: Started Forward Password Requests to Wall Directory Watch. + [ OK ] Started Forward Password R…uests to Wall Directory Watch. + [ 12.448090] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. + [ 12.460526] systemd[1]: Reached target Slices. + [ OK ] Reached target Slices. + [ 12.475902] systemd[1]: Reached target Swap. + [ OK ] Reached target Swap. + [ 12.503378] systemd[1]: Listening on Syslog Socket. + [ OK ] Listening on Syslog Socket. + [ 12.520172] systemd[1]: Listening on fsck to fsckd communication Socket. + [ OK ] Listening on fsck to fsckd communication Socket. + [ 12.543988] systemd[1]: Listening on initctl Compatibility Named Pipe. + [ OK ] Listening on initctl Compatibility Named Pipe. + [ 12.568492] systemd[1]: Listening on Journal Audit Socket. + [ OK ] Listening on Journal Audit Socket. + [ 12.592184] systemd[1]: Listening on Journal Socket (/dev/log). + [ OK ] Listening on Journal Socket (/dev/log). + [ 12.616239] systemd[1]: Listening on Journal Socket. + [ OK ] Listening on Journal Socket. + [ 12.642001] systemd[1]: Listening on udev Control Socket. + [ OK ] Listening on udev Control Socket. + [ 12.664157] systemd[1]: Listening on udev Kernel Socket. + [ OK ] Listening on udev Kernel Socket. + [ 12.699924] systemd[1]: Mounting Huge Pages File System... + Mounting Huge Pages File System... + [ 12.717818] systemd[1]: Mounting POSIX Message Queue File System... + Mounting POSIX Message Queue File System... + [ 12.741579] systemd[1]: Mounting RPC Pipe File System... + Mounting RPC Pipe File System... + [ 12.757791] systemd[1]: Mounting Kernel Debug File System... + Mounting Kernel Debug File System... + [ 12.776281] systemd[1]: Condition check resulted in Kernel Trace File System being skipped. + [ 12.785032] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped. + [ 12.800534] systemd[1]: Starting Restore / save the current clock... + Starting Restore / save the current clock... + [ 12.826453] systemd[1]: Starting Set the console keyboard layout... + Starting Set the console keyboard layout... + [ 12.848724] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped. + [ 12.880190] systemd[1]: Starting Load Kernel Module configfs... + Starting Load Kernel Module configfs... + [ 12.898203] systemd[1]: Starting Load Kernel Module drm... + Starting Load Kernel Module drm... + [ 12.918126] systemd[1]: Starting Load Kernel Module fuse... + Starting Load Kernel Module fuse... + [ 12.941446] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. + [ 12.950746] systemd[1]: Condition check resulted in File System Check on Root Device being skipped. + [ 12.984118] systemd[1]: Starting Journal Service... + Starting Journal Service... + [ 13.006766] systemd[1]: Starting Load Kernel Modules... + Starting Load Kernel Modules... + [ 13.026050] systemd[1]: Starting Remount Root and Kernel File Systems... + Starting Remount Root and Kernel File Systems... + [ 13.050076] systemd[1]: Starting Coldplug All udev Devices... + Starting Coldplug All udev Devices... + [ 13.073201] systemd[1]: Mounted Huge Pages File System. + [ OK ] Mounted Huge Pages File System. + [ 13.097679] systemd[1]: Mounted POSIX Message Queue File System. + [ OK ] Mounted POSIX Message Queue File System. + [ 13.120363] systemd[1]: Mounted RPC Pipe File System. + [ OK ] Mounted RPC Pipe File System. + [ 13.136486] systemd[1]: Mounted Kernel Debug File System. + [ OK ] Mounted Kernel Debug File System. + [ 13.160759] systemd[1]: Finished Restore / save the current clock. + [ OK ] Finished Restore / save the current clock. + [ 13.184452] systemd[1]: Started Journal Service. + [ OK ] Started Journal Service. + [ OK ] Finished Set the console keyboard layout. + [ OK ] Finished Load Kernel Module configfs. + [ OK ] Finished Load Kernel Module drm. + [ OK ] Finished Load Kernel Module fuse. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ 13.348728] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none. + Mounting FUSE Control File System... + Mounting Kernel Configuration File System... + Starting Apply Kernel Variables... + [ OK ] Finished Remount Root and Kernel File Systems. + [ OK ] Mounted FUSE Control File System. + [ OK ] Mounted Kernel Configuration File System. + [ OK ] Finished Apply Kernel Variables. + Starting Flush Journal to Persistent Storage... + Starting Load/Save Random Seed... + Starting Create System Users... + [ OK ] Finished Load/Save Random Seed. + [ OK ] Finished Create System Users. + Starting Create Static Device Nodes in /dev... + [ OK ] Finished Coldplug All udev Devices. + [ OK ] Finished Create Static Device Nodes in /dev. + [ OK ] Reached target Local File Systems (Pre). + Starting Helper to synchronize boot up for ifupdown... + Starting Wait for udev To …plete Device Initialization... + Starting Rule-based Manage…for Device Events and Files... + [ OK ] Finished Helper to synchronize boot up for ifupdown. + [ OK ] Finished Flush Journal to Persistent Storage. + [ OK ] Started Rule-based Manager for Device Events and Files. + Starting Show Plymouth Boot Screen... + [ OK ] Started Show Plymouth Boot Screen. + [ OK ] Started Forward Password R…s to Plymouth Directory Watch. + [ OK ] Reached target Local Encrypted Volumes. + [ OK ] Found device /dev/ttyPS0. + [ OK ] Found device /dev/disk/by-partuuid/a22286d2-01. + [ OK ] Found device /dev/ttyS0. + [ OK ] Finished Wait for udev To Complete Device Initialization. + [ OK ] Listening on Load/Save RF …itch Status /dev/rfkill Watch. + Starting File System Check…isk/by-partuuid/a22286d2-01... + [ OK ] Started File System Check Daemon to report status. + [ OK ] Finished File System Check…/disk/by-partuuid/a22286d2-01. + Mounting /boot... + [ OK ] Mounted /boot. + [ OK ] Reached target Local File Systems. + Starting Set console font and keymap... + Starting Raise network interfaces... + Starting Preprocess NFS configuration... + Starting Tell Plymouth To Write Out Runtime Data... + Starting Create Volatile Files and Directories... + [ OK ] Finished Set console font and keymap. + [ OK ] Finished Preprocess NFS configuration. + [ OK ] Reached target NFS client services. + [ OK ] Reached target Remote File Systems (Pre). + [ OK ] Reached target Remote File Systems. + [ OK ] Finished Tell Plymouth To Write Out Runtime Data. + [ OK ] Finished Create Volatile Files and Directories. + Starting Network Time Synchronization... + Starting Update UTMP about System Boot/Shutdown... + [ OK ] Finished Update UTMP about System Boot/Shutdown. + Starting Load Kernel Modules... + [ OK ] Started Network Time Synchronization. + [ OK ] Reached target System Time Set. + [ OK ] Reached target System Time Synchronized. + [ OK ] Finished Raise network interfaces. + [FAILED] Failed to start Load Kernel Modules. + See 'systemctl status systemd-modules-load.service' for details. + [ OK ] Reached target System Initialization. + [ OK ] Started CUPS Scheduler. + [ OK ] Started Daily apt download activities. + [ OK ] Started Daily apt upgrade and clean activities. + [ OK ] Started Periodic ext4 Onli…ata Check for All Filesystems. + [ OK ] Started Discard unused blocks once a week. + [ OK ] Started Daily rotation of log files. + [ OK ] Started Daily man-db regeneration. + [ OK ] Started Daily Cleanup of Temporary Directories. + [ OK ] Reached target Paths. + [ OK ] Reached target Timers. + [ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. + [ OK ] Listening on CUPS Scheduler. + [ OK ] Listening on D-Bus System Message Bus Socket. + [ OK ] Listening on Erlang Port Mapper Daemon Activation Socket. + [ OK ] Listening on GPS (Global P…ioning System) Daemon Sockets. + [ OK ] Listening on triggerhappy.socket. + [ OK ] Reached target Sockets. + [ OK ] Reached target Basic System. + Starting Analog Devices power up/down sequence... + Starting Avahi mDNS/DNS-SD Stack... + [ OK ] Started Regular background program processing daemon. + [ OK ] Started D-Bus System Message Bus. + Starting dphys-swapfile - …unt, and delete a swap file... + Starting Remove Stale Onli…t4 Metadata Check Snapshots... + [ OK ] Started fan-control. + Starting Fix DP audio and X11 for Jupiter... + Starting Creating IIOD Context Attributes...... + Starting Authorization Manager... + Starting DHCP Client Daemon... + Starting LSB: Switch to on…nless shift key is pressed)... + Starting LSB: rng-tools (Debian variant)... + Starting System Logging Service... + Starting User Login Management... + Starting triggerhappy global hotkey daemon... + Starting Disk Manager... + Starting WPA supplicant... + [ OK ] Started triggerhappy global hotkey daemon. + [ OK ] Started DHCP Client Daemon. + [ OK ] Finished Fix DP audio and X11 for Jupiter. + [ OK ] Started System Logging Service. + [ OK ] Started LSB: rng-tools (Debian variant). + [ OK ] Finished dphys-swapfile - …mount, and delete a swap file. + [ OK ] Finished Remove Stale Onli…ext4 Metadata Check Snapshots. + [ OK ] Started User Login Management. + [ OK ] Started Avahi mDNS/DNS-SD Stack. + [ OK ] Started WPA supplicant. + [ OK ] Reached target Network. + [ OK ] Reached target Network is Online. + Starting CUPS Scheduler... + [ OK ] Started Erlang Port Mapper Daemon. + Starting HTTP based time synchronization tool... + Starting Internet superserver... + Starting /etc/rc.local Compatibility... + Starting OpenBSD Secure Shell server... + Starting Permit User Sessions... + [ OK ] Started Unattended Upgrades Shutdown. + [ OK ] Started /etc/rc.local Compatibility. + [ OK ] Started Authorization Manager. + Starting Modem Manager... + [ OK ] Finished Permit User Sessions. + Starting Light Display Manager... + Starting Hold until boot process finishes up... + [ OK ] Started Internet superserver. + [ OK ] Started HTTP based time synchronization tool. + [ OK ] Finished Creating IIOD Context Attributes.... + [ OK ] Started IIO Daemon. + [ OK ] Started OpenBSD Secure Shell server. + [FAILED] Failed to start VNC Server for X11. + + Raspbian GNU/Linux 11 analog ttyPS0 + + analog login: root (automatic login) + + Linux analog 6.1.70-284114-g2e8908932dfd #1061 SMP Tue Mar 18 16:40:12 EET 2025 aarch64 + + The programs included with the Debian GNU/Linux system are free software; + the exact distribution terms for each program are described in the + individual files in /usr/share/doc/*/copyright. + + Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent + permitted by applicable law. + Last login: Mon Mar 16 13:09:39 GMT 2026 on ttyPS0 + root@analog:~# + +Useful commands for the serial terminal +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The below commands are to be run in the serial terminal connected to the FPGA. + +To find out the IP of the FPGA board, run the following command and take the +IP specified at "eth0 inet": + +.. shell:: + + $ifconfig + +To see the IIO devices detected, run: + +.. shell:: + + $iio_info | grep iio:device + +To power off the system, run the following command, and wait for the final +message to be printed, then power off the FPGA board from the switch as well. + +.. shell:: + + $poweroff + +To reboot the system, run: + +.. shell:: + + $reboot + +.. important:: + + Even though this is Linux, this is a persistent file system. Care should + be taken not to corrupt the file system -- always shut down properly, don't + just turn off the power switch. You can do this from the terminal with + :code:`sudo shutdown -h now` or the above-mentioned :code:`poweroff` command. + If you are using a local display connection, you can also use the GUI + power off button: + + .. image:: ../../images/shutdown.png + :width: 300 + +Using no-OS as software +------------------------------------------------------------------------------- + +Necessary files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following files are needed for the system to boot: + +- HDL boot file: ``system_top.xsa`` +- no-OS project: :git-no-os:`projects/adrv9001` + +Instructions on how to build the boot files from source can be found below: + + - :external+no-OS:doc:`projects/rf-transceiver/adrv9001`. More no-OS build + details at :external+no-OS:doc:`build_guide`. + + - :external+hdl:ref:`adrv9001`. More HDL build details at + :external+hdl:ref:`build_hdl`. + +Required software +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx Vivado and Vitis (downloading Vitis from + `here `__ + will include Vivado as well) +- An UART terminal (Putty/Tera Term/Minicom, etc.), Baud rate 115200 (8N1) + +Required hardware +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- AMD Xilinx :xilinx:`ZCU102` Rev 1.0 FPGA board and its power supply +- :adi:`EVAL-ADRV9002` FMC evaluation board +- 2x Micro-USB cables, one for UART and one for JTAG +- 2x SMA cable for loopback + +More details as to why you need these, can be found at +:ref:`adrv9002 prerequisites`. + +Testing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating the setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: ../images/adrv9002_zcu102_noos_setup.jpeg + :width: 900 + +.. esd-warning:: + +.. note:: + This setup is made by creating a physical loopback between the RX and the TX + channel. + +Follow the steps in this order, to avoid damaging the components: + +#. Connect the :adi:`EVAL-ADRV9002` FMC board to the + FPGA carrier **HPC0** FMC socket (J5). +#. Configure :xilinx:`ZCU102` for JTAG boot mode (mode SW6[4:1] switch in + the position **ON,ON,ON,ON**). +#. Connect USB UART (Micro-USB) to your host PC (J83). +#. Connect USB JTAG (Micro-USB) to your host PC (J2). +#. Connect the power supply for the FPGA. +#. Turn on the power switch on the FPGA board. +#. Build and run the project using the steps shown in + :external+no-OS:doc:`here `. +#. Observe console output messages on your terminal (use the first ttyUSB or + COM port registered). + +.. seealso:: + For more detailed information on ZCU102 switch configuration, check the + *ZCU102 Hardware User Guide* (chapter "MPSoC Device Configuration") + `here `__. + +Console output +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following is what is printed in the serial console, after you have +connected to the proper ttyUSB or COM port: + +.. Replace here the complete boot log from the setup +.. collapsible:: Complete boot log + + :: + + Terminal ready + Zynq MP First Stage Boot Loader + Release 2023.2 Mar 16 2026 - 13:33:14 + PMU-FW is not running, certain applications may not be supported. + Hello + ADRV9002 Rev 12.0, Firmware 0.22.39, Stream 0.7.15.0, API version: 68.14.13 successfully initialized + axi-adrv9002-rx-lpc: Successfully initialized (61437988 Hz) + axi-adrv9002-tx-lpc: Successfully initialized (61437988 Hz) + axi-adrv9002-rx2-lpc: Successfully initialized (61437988 Hz) + axi-adrv9002-tx2-lpc: Successfully initialized (61437988 Hz) + Bye diff --git a/docs/solutions/reference-designs/adrv9002/quickstart/zed.rst b/docs/solutions/reference-designs/adrv9002/quickstart/zed.rst new file mode 100644 index 00000000000..04b458fc1a4 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/quickstart/zed.rst @@ -0,0 +1,42 @@ +.. include-template:: ../../template/quickstart/zed.rst.jinja + + # General configuration + quickstart_ref: adrv9002-zed + eval_board: EVAL-ADRV9002 + hdl_project_doc: adrv9001 + prerequisites_ref: adrv9002 prerequisites + + # Feature flags + has_linux: true + has_no_os: true + has_lvds_support: true + has_vadj_warning: true + has_vadj_led: true + has_local_display: true + + # General/shared images + quickstart_image: ../images/adrv9002_zed_quickstart.png + vadj_led_image: ../images/adrv9002_vadj_led.png + jumper_config_image: ../images/jumper_config.png + + # Linux-specific configuration + linux_setup_steps_file: linux_setup_steps.rst + boot_log_file: boot_log.rst + linux_additional_hardware: + - Signal generator + - Signal analyzer + - Signal synthesizer (required only if using external clock source) + - 1x SMA cable for signal generator + - 1x SMA cable for signal analyzer + - 1x SMA cable for signal synthesizer (if using external clock) + - (Optional) USB keyboard & mouse and a HDMI compatible monitor + + # No-OS specific configuration + no_os_project_path: projects/adrv9001 + no_os_project_specific_doc: projects/rf-transceiver/adrv9001 + no_os_setup_image: ../images/adrv9002_noos_setup.jpeg + no_os_has_loopback: true + no_os_additional_hardware: + - 2x SMA cable for loopback + no_os_setup_steps_file: no_os_setup_steps.rst + no_os_console_output_file: no_os_console_output.rst diff --git a/docs/solutions/reference-designs/adrv9002/user-guide.rst b/docs/solutions/reference-designs/adrv9002/user-guide.rst new file mode 100644 index 00000000000..98b68fd6718 --- /dev/null +++ b/docs/solutions/reference-designs/adrv9002/user-guide.rst @@ -0,0 +1,235 @@ +.. _adrv9002 user-guide: + +User guide +=============================================================================== + +The complete user guide of the evaluation board can be found at +:adi:`ADRV9001/ADRV9002 System Development User Guide (UG-1828) `. + +.. image:: images/ADRV9002TOP-evaluation-board.jpg + :align: center + :width: 600 + +Hardware guide +------------------------------------------------------------------------------- + +Power supply +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The power supply comes from the FMC connector, given by the FPGA carrier +board. + +The ADRV9002 evaluation board uses the ADP5056 power management IC to +generate the required internal power domains. The board requires **1.8V** +on the VADJ supply for the transmitter/receiver DACs/ADCs and GPIO signals. + +The VADJ configuration for each FPGA carrier board can be found in the +README.md file at: :git-hdl:`projects/adrv9002`. + +Clock configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ADRV9002 evaluation board supports multiple clock configuration +options: + +Clock source selection +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +On the FMC card, set the "DEV_CLK Source Sel." switch to select clock +source between: + +#. **Internal** (default): On-board 38.4 MHz VCTCXO + + - Low phase noise crystal oscillator + - Suitable for most applications + - No external clock generator required + +#. **External**: Via J501 connector + + - Frequency range: 10 MHz to 1000 MHz + - Input power level: +13 dBm + - Allows use of high-quality external reference clock for optimal + performance + +.. note:: + + The quality of the clock source used to generate the DEV_CLK directly + impacts the overall system performance. Use a high-quality, stable, and + low-phase noise clock source. + +Internal synthesizers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ADRV9002 employs four PLL synthesizers for flexible clock +generation: + +- **Clock PLL**: Generates digital clocks for ADC/DAC and LVDS interface +- **RF PLL 1**: Generates LO1 for transmitter/receiver channel 1 +- **RF PLL 2**: Generates LO2 for transmitter/receiver channel 2 +- **Auxiliary PLL**: Generates auxiliary LO for calibration + +Each PLL features: + +- Fractional-N architecture for flexible frequency synthesis +- Integrated VCO with tuning range of 6.5 GHz to 13 GHz +- RF LO frequency range: 30 MHz to 6000 MHz +- Programmable loop filter bandwidth for phase noise optimization + +External LO mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ADRV9002 supports external LO input for advanced applications: + +- **Differential external LO**: 60 MHz to 12 GHz with 100 Ω differential + impedance +- **Single-ended external LO**: 500 MHz to 1 GHz with 50 Ω impedance +- Programmable signal level: ±6 dBm typical +- Can be configured independently for each RF channel + +RF and data interfaces +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The evaluation board provides: + +- **RF ports**: SMA connectors for: + + - Dual receiver channels: RX1A±, RX1B±, RX2A±, RX2B± + - Dual transmitter channels: TX1±, TX2± + +- **Frequency range**: 30 MHz to 6000 MHz covering VHF, UHF, ISM, and + cellular bands +- **Bandwidth**: 12 kHz to 40 MHz (configurable via profile) +- **Data interface**: CMOS or LVDS synchronous-serial interface to FPGA +- **Control interface**: 4-wire SPI for device configuration + +Data interface modes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ADRV9002 supports both CMOS and LVDS synchronous serial interfaces. +The mode is selected at HDL build time (``CMOS_LVDS_N`` parameter), +producing **separate boot files** for each mode. + +On carriers that support both interfaces (e.g., ZCU102), two BOOT.bin +files are provided --- select the one matching your desired mode. + +However, not all carriers support LVDS. Refer to the +:ref:`supported carriers table ` for details on +per-carrier interface availability. + +.. seealso:: + + :external+hdl:doc:`AXI ADRV9001 HDL Library ` + for full details on supported configurations per mode. + +Device modes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ADRV9002 HDL design supports two device modes, each requiring a +different devicetree: + +- **Independent mode** (``adi,adrv9002``): Both channels are treated + separately by the HDL core, each with its own DMA buffer. Suitable + for TDD implementations. +- **MIMO mode** (``adi,adrv9002-rx2tx2``): A single DMA buffer is used + and both RX1/RX2 physical ports are mapped into the RX1 channel in + the HDL AXI core. Suitable for diversity applications requiring + identical baseband sample rates across channels. + +When setting up the SD card, select the devicetree file that matches +your desired mode. + +.. seealso:: + + :external+linux:ref:`adrv9002` + for more details on device modes and devicetree configuration. + +Analog inputs +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Connect RF signals to the SMA connectors on the evaluation board: + +- Use appropriate RF signal generators or antennas for the receiver + inputs +- Ensure signal levels are within the specified input range +- For transmitter testing, connect to spectrum analyzers or RF power + meters +- Maintain proper impedance matching (typically 50 Ω) for optimal + performance + +Schematic, PCB Layout, Bill of Materials +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Design files for the ADRV9002 evaluation board including schematics, PCB +layout, bill of materials, and reference designs are available at: + +`ADRV9002 Integrated RF Agile Transceiver Design Resources `_ + +Software guide +------------------------------------------------------------------------------- + +The ADRV9002 evaluation board is supported with the +:git-libiio:`libiio library `. This library is cross-platform +(Windows, Linux, Mac) with language bindings for C, C#, Python, MATLAB, +and others. + +.. include-template:: ../common/using-iio-osc.rst.jinja + + has_linux: true + has_no_os: true + show_connection_image: true + connection_image: images/Adrv9002_connection_iio_osc.png + iio_has_plugin: true + iio_plugin_ref: adrv9002-plugin + iio_show_data_capture: true + iio_show_time_domain: true + iio_time_domain_image: images/ADRV9002_time_domain.png + iio_show_frequency_domain: true + iio_frequency_domain_image: images/ADRV9002_fourier_domain.png + +.. include-template:: ../common/using-scopy.rst.jinja + + scopy_has_plugin: true + scopy_plugin_path: plugins/adrv9002/adrv9002 + +PyADI-IIO +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:git-pyadi-iio:`PyADI-IIO ` is a Python abstraction module for ADI +hardware with IIO drivers. An ADRV9002 example can be found +:git-pyadi-iio:`here `. + +MATLAB +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +ADRV9002 support through `Transceiver Toolbox `_ + +GNU Radio +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +ADRV9002 integration with :ref:`GNU Radio ` + +Linux Driver +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ADRV9002 Linux kernel driver provides device initialization, profile +configuration, dynamic profile switching, tracking calibrations, ENSM control, +GPIO/AuxDAC/AuxADC access, and power management. + +.. seealso:: + :external+linux:ref:`adrv9002` + +No-OS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +ADRV9002 bare-metal driver for embedded applications. + +.. seealso:: + :external+no-OS:doc:`projects/rf-transceiver/adrv9001` + +HDL Testbench +------------------------------------------------------------------------------- + +The :external+testbenches:ref:`adrv9001` +provides a simulation environment for verifying the HDL reference design +using SystemVerilog and the Xilinx toolchain. The testbench source can be +found :git+testbenches:`here `. diff --git a/docs/solutions/reference-designs/adrv9371x/index.rst b/docs/solutions/reference-designs/adrv9371x/index.rst index 868fe94250e..ece96390971 100644 --- a/docs/solutions/reference-designs/adrv9371x/index.rst +++ b/docs/solutions/reference-designs/adrv9371x/index.rst @@ -81,7 +81,7 @@ Table of Contents #. Hardware in the Loop / How to design your own custom Baseband - #. :dokuwiki:`GNU Radio ` + #. :ref:`GNU Radio ` #. :ref:`matlab transceiver-toolbox` #. Design a custom AD9371/AD9375 based platform diff --git a/docs/solutions/reference-designs/arradio/index.rst b/docs/solutions/reference-designs/arradio/index.rst index a61c3b1a0a9..cb1b84266d0 100644 --- a/docs/solutions/reference-designs/arradio/index.rst +++ b/docs/solutions/reference-designs/arradio/index.rst @@ -111,7 +111,7 @@ Table of Contents - :dokuwiki:`QPSK Transmit and Receive Example ` - :dokuwiki:`LTE Transmit and Receive Example ` - - :dokuwiki:`GNU Radio ` + - :ref:`GNU Radio ` - :dokuwiki:`FM Radio/Tuner ` (listen to FM signals on the HDMI monitor) - :dokuwiki:`C example ` diff --git a/docs/solutions/reference-designs/eval-ad9081/index.rst b/docs/solutions/reference-designs/eval-ad9081/index.rst index 228034d170e..3bbe7cae614 100644 --- a/docs/solutions/reference-designs/eval-ad9081/index.rst +++ b/docs/solutions/reference-designs/eval-ad9081/index.rst @@ -119,7 +119,7 @@ Table of contents - Hardware in the Loop / How to design your own custom BaseBand - - :dokuwiki:`GNU Radio ` + - :ref:`GNU Radio ` - :dokuwiki:`Transceiver Toolbox ` - Resources for designing a custom AD9081/AD9082-based platform software diff --git a/docs/solutions/reference-designs/eval-adrv9009/index.rst b/docs/solutions/reference-designs/eval-adrv9009/index.rst index 17e6a80481e..8f963d4dbf9 100644 --- a/docs/solutions/reference-designs/eval-adrv9009/index.rst +++ b/docs/solutions/reference-designs/eval-adrv9009/index.rst @@ -71,7 +71,7 @@ If you have any questions, feel free to :ref:`ask `. #. Hardware in the Loop / How to design your own custom BaseBand - #. :dokuwiki:`GNU Radio ` + #. :ref:`GNU Radio ` #. :dokuwiki:`Transceiver Toolbox ` #. Design a custom ADRV9009/ADRV9008 based platform diff --git a/docs/solutions/reference-designs/eval-adrv902x/index.rst b/docs/solutions/reference-designs/eval-adrv902x/index.rst index 3056e92d127..f9962163913 100644 --- a/docs/solutions/reference-designs/eval-adrv902x/index.rst +++ b/docs/solutions/reference-designs/eval-adrv902x/index.rst @@ -104,7 +104,7 @@ Table of contents - Hardware in the Loop / How to design your own custom BaseBand - - :dokuwiki:`GNU Radio ` + - :ref:`GNU Radio ` - :dokuwiki:`Transceiver Toolbox ` - Resources for designing a custom ADRV9026/ADRV9029-based platform software diff --git a/docs/solutions/reference-designs/eval-adrv9032/index.rst b/docs/solutions/reference-designs/eval-adrv9032/index.rst index cdeddcea946..fffa9faf69c 100644 --- a/docs/solutions/reference-designs/eval-adrv9032/index.rst +++ b/docs/solutions/reference-designs/eval-adrv9032/index.rst @@ -100,7 +100,7 @@ Table of contents - Hardware in the Loop / How to design your own custom BaseBand - - :dokuwiki:`GNU Radio ` + - :ref:`GNU Radio ` - :dokuwiki:`Transceiver Toolbox ` - Resources for designing a custom ADRV9032/ADRV9032R-based platform software diff --git a/docs/solutions/reference-designs/eval-adrv904x/index.rst b/docs/solutions/reference-designs/eval-adrv904x/index.rst index 4e96ac70cfc..be5b3c14b29 100644 --- a/docs/solutions/reference-designs/eval-adrv904x/index.rst +++ b/docs/solutions/reference-designs/eval-adrv904x/index.rst @@ -114,7 +114,7 @@ Table of contents #. Hardware in the Loop / How to design your own custom BaseBand - #. :dokuwiki:`GNU Radio ` + #. :ref:`GNU Radio ` #. :ref:`Transceiver Toolbox ` #. Resources for designing a custom ADRV9040/ADRV9044-based platform software diff --git a/docs/solutions/reference-designs/fmcomms5/index.rst b/docs/solutions/reference-designs/fmcomms5/index.rst index aa38456fb30..67bff34fbe4 100644 --- a/docs/solutions/reference-designs/fmcomms5/index.rst +++ b/docs/solutions/reference-designs/fmcomms5/index.rst @@ -128,7 +128,7 @@ Table of Contents #. :dokuwiki:`QPSK Transmit and Receive Example ` #. :dokuwiki:`LTE Transmit and Receive Example ` - #. :dokuwiki:`GNU Radio ` + #. :ref:`GNU Radio ` #. :dokuwiki:`FM Radio/Tuner ` (listen to FM signals on the HDMI monitor) #. :dokuwiki:`C example ` diff --git a/docs/solutions/reference-designs/fmcomms8/index.rst b/docs/solutions/reference-designs/fmcomms8/index.rst index d2044abb2e7..36aab043c08 100644 --- a/docs/solutions/reference-designs/fmcomms8/index.rst +++ b/docs/solutions/reference-designs/fmcomms8/index.rst @@ -97,7 +97,7 @@ Table of contents #. :download:`MATLAB Filter Wizard / Profile Generator for ADRV9009 ` #. Hardware in the Loop / How to design your own custom BaseBand - - :dokuwiki:`GNU Radio ` + - :ref:`GNU Radio ` - :ref:`Transceiver Toolbox ` #. Resources for designing a custom ADRV9009-based platform diff --git a/docs/solutions/reference-designs/fmcomms8/user-guide.rst b/docs/solutions/reference-designs/fmcomms8/user-guide.rst index 8fd55853540..071a9c46a70 100644 --- a/docs/solutions/reference-designs/fmcomms8/user-guide.rst +++ b/docs/solutions/reference-designs/fmcomms8/user-guide.rst @@ -75,7 +75,7 @@ Data streaming - :ref:`Basic IQ Datafiles ` - :dokuwiki:`Stream data into/out of MATLAB ` -- :dokuwiki:`GNU Radio ` +- :ref:`GNU Radio ` - :ref:`Transceiver Toolbox ` Other tools diff --git a/docs/solutions/reference-designs/images/shutdown.png b/docs/solutions/reference-designs/images/shutdown.png new file mode 100644 index 00000000000..b93385b866f --- /dev/null +++ b/docs/solutions/reference-designs/images/shutdown.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fdc564f0d6edb94d0ec751c9cb56d726a3749a2ba7a8196100fc8cfdf7a685e +size 12415 diff --git a/docs/solutions/reference-designs/template/_index.rst b/docs/solutions/reference-designs/template/_index.rst index 354bfafc29c..b2b35337954 100644 --- a/docs/solutions/reference-designs/template/_index.rst +++ b/docs/solutions/reference-designs/template/_index.rst @@ -83,7 +83,7 @@ Table of contents - Hardware in the Loop / How to design your own custom BaseBand - - :dokuwiki:`GNU Radio ` + - :ref:`GNU Radio ` - :dokuwiki:`Transceiver Toolbox ` - Resources for designing a custom CHIP1/CHIP2-based platform software diff --git a/docs/solutions/reference-designs/template/quickstart/a10soc.rst b/docs/solutions/reference-designs/template/quickstart/a10soc.rst index de0d0225ded..c2b5923f753 100644 --- a/docs/solutions/reference-designs/template/quickstart/a10soc.rst +++ b/docs/solutions/reference-designs/template/quickstart/a10soc.rst @@ -95,7 +95,7 @@ Required hardware - Micro-USB cable (UART) - LAN cable (Ethernet) - 4x SMA cables (optional, but recommended) -- (Optional) USB keyboard & mouse and a HDMI compatible monitor + .. More details as to why you need these, can be found at .. :ref:`template prerequisites`. diff --git a/docs/solutions/reference-designs/template/quickstart/zed.rst.jinja b/docs/solutions/reference-designs/template/quickstart/zed.rst.jinja index d2d201f1628..fee6b1e74fb 100644 --- a/docs/solutions/reference-designs/template/quickstart/zed.rst.jinja +++ b/docs/solutions/reference-designs/template/quickstart/zed.rst.jinja @@ -1,23 +1,20 @@ .. _{{ quickstart_ref }}: -ZedBoard Quick Start +ZedBoard Quick Start Guide ================================================================================ +This guide provides step by step instructions on how to set up the +:adi:`{{ eval_board }}` on: + + - `ZedBoard `__ + The supported revision is C or higher. .. image:: ../../images/ZedBoard.png :align: center :width: 600 - .. esd-warning:: - -This guide provides step by step instructions on how to set up the -:adi:`{{ eval_board }}` on: - -- `ZedBoard `__ - The supported revision is C or higher. - {% if has_lvds_support %} LVDS Support -------------------------------------------------------------------------------- @@ -81,7 +78,7 @@ Required Hardware ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - `ZedBoard `__ - Rev C or later + Rev C or later and its power supply - :adi:`{{ eval_board }}` FMC board - SD card with at least 16GB of memory - Micro-USB cable @@ -143,11 +140,6 @@ board lifetime and potentially causing permanent damage to the IC. .. include:: {{ linux_setup_steps_file }} {% endif %} -.. note:: - - *USB-OTG* feature: To use USB peripheral devices with ZedBoard, install - jumpers JP2 and JP3. - .. seealso:: For more detailed information on ZedBoard jumper settings, check the *ZedBoard Hardware User Guide* (chapter "Configuration modes") @@ -159,6 +151,13 @@ Boot messages The following is what is printed in the serial console, after you have connected to the proper ttyUSB or COM port: +{% if has_local_display is defined and has_local_display %} +.. note:: + + If you are using a local connection (keyboard, mouse, monitor), you can + view the boot log by opening a terminal and running the ``dmesg`` command. +{% endif %} + {% if boot_log_file is defined and boot_log_file %} .. collapsible:: Complete boot log @@ -213,11 +212,17 @@ To reboot the system, run: .. important:: - Even thought this is Linux, this is a persistent file systems. Care should - be taken not to corrupt the file system -- please shut down things, don't - just turn off the power switch. Depending on your monitor, the standard - power off could be hiding. You can do this from the terminal as well with - :code:`sudo shutdown -h now` or the above-mentioned command for powering off. + Even though this is Linux, this is a persistent file system. Care should + be taken not to corrupt the file system -- always shut down properly, don't + just turn off the power switch. You can do this from the terminal with + :code:`sudo shutdown -h now` or the above-mentioned :code:`poweroff` command. +{% if has_local_display is defined and has_local_display %} + If you are using a local display connection, you can also use the GUI + power off button: + + .. image:: ../../images/shutdown.png + :width: 300 +{% endif %} {% endif %} @@ -253,7 +258,7 @@ Required hardware ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - `ZedBoard `__ - Rev C or later + Rev C or later and its power supply - :adi:`{{ eval_board }}` FMC evaluation board - 2x Micro-USB cables, one for UART and one for JTAG {% if no_os_additional_hardware is defined and no_os_additional_hardware %} diff --git a/docs/tools/pluto/index.rst b/docs/tools/pluto/index.rst index 0fe47e88223..70fe70b6eb7 100644 --- a/docs/tools/pluto/index.rst +++ b/docs/tools/pluto/index.rst @@ -75,7 +75,7 @@ use the ADALM-PLUTO. - PlutoSDR users normally interact with RF signals with :mw:`MATLAB, Simulink `, - :dokuwiki:`GNU Radio ` or + :ref:`GNU Radio ` or :ref:`custom C, C++ `, :git-libiio:`C# `, or :ref:`Python environment ` on a diff --git a/docs/tools/pluto/users/index.rst b/docs/tools/pluto/users/index.rst index 4cff65d36d6..89ec202a7f8 100644 --- a/docs/tools/pluto/users/index.rst +++ b/docs/tools/pluto/users/index.rst @@ -58,7 +58,7 @@ Contents (SDR) powered by the GNU Radio #. :mw:`Official support for MATLAB and Simulink ` #. :dokuwiki:`MATLAB IIO Bindings ` - #. :dokuwiki:`GNU Radio ` + #. :ref:`GNU Radio ` #. `SDRangel `__, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware. #. `SDR# `__. The PlutoSDR frontend for From 2911ba47f618b1086c5090dc777b1b25e70ab323 Mon Sep 17 00:00:00 2001 From: Jorge Marques Date: Mon, 29 Jun 2026 16:37:01 +0200 Subject: [PATCH 2/2] solutions/reference-designs: doc -> ref Use proper references. Signed-off-by: Jorge Marques --- .../reference-designs/adrv9371x/index.rst | 24 +++++++++---------- .../adrv9371x/quickstart/a10gx.rst | 2 ++ .../adrv9371x/quickstart/a10soc.rst | 2 ++ .../adrv9371x/quickstart/index.rst | 2 ++ .../adrv9371x/quickstart/kcu105.rst | 2 ++ .../adrv9371x/quickstart/zc706.rst | 2 ++ .../adrv9371x/quickstart/zcu102.rst | 2 ++ .../user-guide/ad9371_advanced_plugin.rst | 2 +- .../adrv9371x/user-guide/ad9371_osc_main.rst | 2 ++ .../adrv9371x/user-guide/ad9371_plugin.rst | 2 +- .../adrv9371x/user-guide/filters.rst | 2 ++ .../adrv9371x/user-guide/index.rst | 2 ++ .../reference-designs/arradio/index.rst | 2 +- .../reference-designs/fmcomms5/user-guide.rst | 17 ++++++------- 14 files changed, 42 insertions(+), 23 deletions(-) diff --git a/docs/solutions/reference-designs/adrv9371x/index.rst b/docs/solutions/reference-designs/adrv9371x/index.rst index ece96390971..107ce708731 100644 --- a/docs/solutions/reference-designs/adrv9371x/index.rst +++ b/docs/solutions/reference-designs/adrv9371x/index.rst @@ -45,28 +45,28 @@ Table of Contents #. Use the evaluation board to better understand the AD9371/AD9375 #. :doc:`/solutions/reference-designs/adrv9371x/prerequisites` - #. :doc:`Quick Start Guides `: + #. :ref:`Quick Start Guides `: - #. :doc:`On ZCU102 ` - #. :doc:`On KCU105 ` - #. :doc:`On ZC706 ` - #. :doc:`On Arria 10 SoC ` - #. :doc:`On Arria 10 GX ` + #. :ref:`On ZCU102 ` + #. :ref:`On KCU105 ` + #. :ref:`On ZC706 ` + #. :ref:`On Arria 10 SoC ` + #. :ref:`On Arria 10 GX ` - #. :doc:`/solutions/reference-designs/adrv9371x/user-guide/index` + #. :ref:`adrv9371x user-guide` #. Linux Applications #. :ref:`iio-oscilloscope` - #. :doc:`/solutions/reference-designs/adrv9371x/user-guide/ad9371_osc_main` - #. :doc:`/solutions/reference-designs/adrv9371x/user-guide/ad9371_plugin` - #. :doc:`/solutions/reference-designs/adrv9371x/user-guide/ad9371_advanced_plugin` + #. :ref:`adrv9371x iio-oscilloscope` + #. :ref:`adrv9371x plugin` + #. :ref:`adrv9371x advanced-plugin` #. :dokuwiki:`FRU EEPROM Utility ` #. Push custom data into/out of the AD9371/AD9375 - #. :doc:`/solutions/reference-designs/adrv9371x/user-guide/basic_iq_datafiles` + #. :ref:`adrv9371x iq datafiles` #. :ref:`matlab transceiver-toolbox` #. :ref:`pyadi-iio` @@ -77,7 +77,7 @@ Table of Contents #. :adi:`AD9371 Product page ` #. :adi:`AD9375 Product page ` #. :adi:`Full Datasheet and chip design package ` - #. :doc:`MATLAB Filter Wizard / Profile Generator for AD9371 ` + #. :ref:`MATLAB Filter Wizard / Profile Generator for AD9371 ` #. Hardware in the Loop / How to design your own custom Baseband diff --git a/docs/solutions/reference-designs/adrv9371x/quickstart/a10gx.rst b/docs/solutions/reference-designs/adrv9371x/quickstart/a10gx.rst index c358f6881c9..e208e5135b5 100644 --- a/docs/solutions/reference-designs/adrv9371x/quickstart/a10gx.rst +++ b/docs/solutions/reference-designs/adrv9371x/quickstart/a10gx.rst @@ -1,3 +1,5 @@ +.. _adrv9371x quickstart a10gx: + Arria10 GX Quick Start Guide ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/quickstart/a10soc.rst b/docs/solutions/reference-designs/adrv9371x/quickstart/a10soc.rst index 237677cb017..140bb921999 100644 --- a/docs/solutions/reference-designs/adrv9371x/quickstart/a10soc.rst +++ b/docs/solutions/reference-designs/adrv9371x/quickstart/a10soc.rst @@ -1,3 +1,5 @@ +.. _adrv9371x quickstart a10soc: + Arria10 SoC Quick Start Guide ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/quickstart/index.rst b/docs/solutions/reference-designs/adrv9371x/quickstart/index.rst index cb7d8eb8f5a..30ab6d3878b 100644 --- a/docs/solutions/reference-designs/adrv9371x/quickstart/index.rst +++ b/docs/solutions/reference-designs/adrv9371x/quickstart/index.rst @@ -1,3 +1,5 @@ +.. _adrv9371x quickstart: + Quick Start ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/quickstart/kcu105.rst b/docs/solutions/reference-designs/adrv9371x/quickstart/kcu105.rst index 771eb462dd3..f23a360f915 100644 --- a/docs/solutions/reference-designs/adrv9371x/quickstart/kcu105.rst +++ b/docs/solutions/reference-designs/adrv9371x/quickstart/kcu105.rst @@ -1,3 +1,5 @@ +.. _adrv9371x quickstart kcu105: + KCU105 Quick Start Guide ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/quickstart/zc706.rst b/docs/solutions/reference-designs/adrv9371x/quickstart/zc706.rst index 6b6e5c52a58..58f4879ceaa 100644 --- a/docs/solutions/reference-designs/adrv9371x/quickstart/zc706.rst +++ b/docs/solutions/reference-designs/adrv9371x/quickstart/zc706.rst @@ -1,3 +1,5 @@ +.. _adrv9371x quickstart zc706: + ZC706 Quick Start Guide ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/quickstart/zcu102.rst b/docs/solutions/reference-designs/adrv9371x/quickstart/zcu102.rst index c8161d454f2..e406709fdd1 100644 --- a/docs/solutions/reference-designs/adrv9371x/quickstart/zcu102.rst +++ b/docs/solutions/reference-designs/adrv9371x/quickstart/zcu102.rst @@ -1,3 +1,5 @@ +.. _adrv9371x quickstart zcu102: + ZCU102 Quick Start Guide ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_advanced_plugin.rst b/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_advanced_plugin.rst index 5298620b949..95f1180097b 100644 --- a/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_advanced_plugin.rst +++ b/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_advanced_plugin.rst @@ -1,4 +1,4 @@ -.. _adrv9371x advanced plugin: +.. _adrv9371x advanced-plugin: AD9371/AD9375 Advanced Plugin ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_osc_main.rst b/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_osc_main.rst index c3270d2e9cf..448428040c9 100644 --- a/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_osc_main.rst +++ b/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_osc_main.rst @@ -1,3 +1,5 @@ +.. _adrv9371x iio-oscilloscope: + AD9371/AD9375 IIO Oscilloscope -------------------------------------------------------------------------------- diff --git a/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_plugin.rst b/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_plugin.rst index a0cfa1dd1c7..1a888ee3c39 100644 --- a/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_plugin.rst +++ b/docs/solutions/reference-designs/adrv9371x/user-guide/ad9371_plugin.rst @@ -17,7 +17,7 @@ devices behind the back of the GUI, it's still possible to see the settings by clicking the "refresh" button at the bottom of the GUI. If you think the device has a setting that isn't managed by this tab, check out -the :ref:`adrv9371x advanced plugin` for the IIO Oscilloscope. +the :ref:`adrv9371x advanced-plugin` for the IIO Oscilloscope. The AD9371 view is divided in four sections: diff --git a/docs/solutions/reference-designs/adrv9371x/user-guide/filters.rst b/docs/solutions/reference-designs/adrv9371x/user-guide/filters.rst index d8158beab1c..82c376e04a2 100644 --- a/docs/solutions/reference-designs/adrv9371x/user-guide/filters.rst +++ b/docs/solutions/reference-designs/adrv9371x/user-guide/filters.rst @@ -1,3 +1,5 @@ +.. _adrv9371x filters: + MATLAB Profile Generator for AD9371 ================================================================================ diff --git a/docs/solutions/reference-designs/adrv9371x/user-guide/index.rst b/docs/solutions/reference-designs/adrv9371x/user-guide/index.rst index 178e1f78e38..76d67c27f3f 100644 --- a/docs/solutions/reference-designs/adrv9371x/user-guide/index.rst +++ b/docs/solutions/reference-designs/adrv9371x/user-guide/index.rst @@ -1,3 +1,5 @@ +.. _adrv9371x user-guide: + User Guide ================================================================================ diff --git a/docs/solutions/reference-designs/arradio/index.rst b/docs/solutions/reference-designs/arradio/index.rst index cb1b84266d0..faff5262442 100644 --- a/docs/solutions/reference-designs/arradio/index.rst +++ b/docs/solutions/reference-designs/arradio/index.rst @@ -72,7 +72,7 @@ Table of Contents - :doc:`What you need to get started ` - :ref:`arradio quick-start` - - :doc:`Linux on Altera SoCKit ` + - :ref:`Linux on Altera SoCKit ` - :ref:`kuiper` - :ref:`kuiper` diff --git a/docs/solutions/reference-designs/fmcomms5/user-guide.rst b/docs/solutions/reference-designs/fmcomms5/user-guide.rst index bc64da12051..1991e3fc8ee 100644 --- a/docs/solutions/reference-designs/fmcomms5/user-guide.rst +++ b/docs/solutions/reference-designs/fmcomms5/user-guide.rst @@ -12,23 +12,24 @@ operate the two devices as a coherent 4x4 MIMO system. .. tip:: If you have not set up your board yet, start with the - :doc:`prerequisites` and :doc:`quickstart/index` pages first, + :ref:`fmcomms5-prerequisites` and :ref:`fmcomms5-quickstart` pages first, then return here for in-depth configuration. The pages below follow the typical workflow — from understanding the hardware, through configuring the RF parameters, to synchronizing and phase-aligning the two AD9361 devices: -- :doc:`hardware` — schematics, PCB layout, bill of materials, and - configuration options for the AD-FMCOMMS5-EBZ board. -- :doc:`fmcomms5_plugin` — overview of the FMCOMMS5 plugin for the +- :ref:`ad-fmcomms5-ebz-hardware` — schematics, PCB layout, bill of materials, + and configuration options for the AD-FMCOMMS5-EBZ board. +- :ref:`fmcomms5-plugin` — overview of the FMCOMMS5 plugin for the IIO Oscilloscope, including channel configuration rules and control of the dual :adi:`AD9361` transceiver pair. -- :doc:`multi-chip-sync` — explains how baseband sampling and data - clocks are synchronized across the two AD9361 devices, and the RF +- :ref:`ad-fmcomms5-ebz-multi-chip-sync` — explains how baseband sampling and + data clocks are synchronized across the two AD9361 devices, and the RF synchronization limitations that motivate phase calibration. -- :doc:`phase-sync` — describes the phase synchronization calibration - procedure and how it is implemented in IIO Oscilloscope and ``libad9361``. +- :ref:`ad-fmcomms5-ebz-phase-sync` — describes the phase synchronization + calibration procedure and how it is implemented in IIO Oscilloscope and + ``libad9361``. .. toctree:: :titlesonly: