[PATCH v5 15/15] docs/system/arm: Add support for Beckhoff CX7200

Corvin Köhne posted 15 patches 2 months, 1 week ago
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Alistair Francis <alistair@alistair23.me>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
[PATCH v5 15/15] docs/system/arm: Add support for Beckhoff CX7200
Posted by Corvin Köhne 2 months, 1 week ago
From: YannickV <Y.Vossen@beckhoff.com>

This commit offers some documentation on the Beckhoff CX7200
qemu emulation.

Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
---
 docs/system/arm/beckhoff-cx7200.rst | 57 +++++++++++++++++++++++++++++
 docs/system/target-arm.rst          |  1 +
 2 files changed, 58 insertions(+)
 create mode 100644 docs/system/arm/beckhoff-cx7200.rst

diff --git a/docs/system/arm/beckhoff-cx7200.rst b/docs/system/arm/beckhoff-cx7200.rst
new file mode 100644
index 0000000000..f060319b0f
--- /dev/null
+++ b/docs/system/arm/beckhoff-cx7200.rst
@@ -0,0 +1,57 @@
+Beckhoff CX7200 (``beckhoff-cx7200``)
+======================================
+The Beckhoff CX7200 is based on the same architecture as the Xilinx Zynq A9.
+The Zynq 7000 family is based on the AMD SoC architecture. These products
+integrate a feature-rich dual or single-core Arm Cortex-A9 MPCore based
+processing system (PS) and AMD programmable logic (PL) in a single device.
+The Beckhoff Communication Controller (CCAT) can be found in the PL of Zynq.
+
+More details here:
+https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/Zynq-7000-SoC-Technical-Reference-Manual
+https://www.beckhoff.com/de-de/produkte/ipc/embedded-pcs/cx7000-arm-r-cortex-r/cx7293.html
+
+The CX7200 supports following devices:
+    - A9 MPCORE
+        - cortex-a9
+        - GIC v1
+        - Generic timer
+        - wdt
+    - OCM 256KB
+    - SMC SRAM@0xe2000000 64MB
+    - Zynq SLCR
+    - SPI x2
+    - QSPI
+    - UART
+    - TTC x2
+    - Gigabit Ethernet Controller
+    - SD Controller
+    - XADC
+    - Arm PrimeCell DMA Controller
+    - DDR Memory
+    - DDR Controller
+    - Beckhoff Communication Controller (CCAT)
+        - EEPROM Interface
+        - DMA Controller
+
+Following devices are not supported:
+    - I2C
+
+Running
+"""""""
+Directly loading an ELF file to the CPU of the CX7200 to run f.e. TC/RTOS (based on FreeRTOS):
+
+.. code-block:: bash
+
+  $ qemu-system-arm -M beckhoff-cx7200 \
+        -device loader,file=CX7200_Zynq_Fsbl.elf \
+        -display none \
+        -icount shift=auto \
+
+
+For setting the EEPROM content of the CCAT provide the following on the command line:
+
+.. code-block:: bash
+
+        -drive file=eeprom.bin,format=raw,id=ccat-eeprom
+
+The size of eeprom.bin must be aligned to a power of 2 and bigger than 256 bytes.
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
index a96d1867df..e634872b97 100644
--- a/docs/system/target-arm.rst
+++ b/docs/system/target-arm.rst
@@ -82,6 +82,7 @@ Board-specific documentation
    arm/aspeed
    arm/bananapi_m2u.rst
    arm/b-l475e-iot01a.rst
+   arm/beckhoff-cx7200
    arm/sabrelite
    arm/highbank
    arm/digic
-- 
2.47.3
Re: [PATCH v5 15/15] docs/system/arm: Add support for Beckhoff CX7200
Posted by Peter Maydell 3 weeks, 4 days ago
On Thu, 4 Dec 2025 at 09:35, Corvin Köhne <corvin.koehne@gmail.com> wrote:
>
> From: YannickV <Y.Vossen@beckhoff.com>
>
> This commit offers some documentation on the Beckhoff CX7200
> qemu emulation.
>
> Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
> ---
>  docs/system/arm/beckhoff-cx7200.rst | 57 +++++++++++++++++++++++++++++
>  docs/system/target-arm.rst          |  1 +
>  2 files changed, 58 insertions(+)
>  create mode 100644 docs/system/arm/beckhoff-cx7200.rst
>
> diff --git a/docs/system/arm/beckhoff-cx7200.rst b/docs/system/arm/beckhoff-cx7200.rst
> new file mode 100644
> index 0000000000..f060319b0f
> --- /dev/null
> +++ b/docs/system/arm/beckhoff-cx7200.rst
> @@ -0,0 +1,57 @@
> +Beckhoff CX7200 (``beckhoff-cx7200``)
> +======================================
> +The Beckhoff CX7200 is based on the same architecture as the Xilinx Zynq A9.
> +The Zynq 7000 family is based on the AMD SoC architecture. These products
> +integrate a feature-rich dual or single-core Arm Cortex-A9 MPCore based
> +processing system (PS) and AMD programmable logic (PL) in a single device.
> +The Beckhoff Communication Controller (CCAT) can be found in the PL of Zynq.
> +
> +More details here:
> +https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/Zynq-7000-SoC-Technical-Reference-Manual
> +https://www.beckhoff.com/de-de/produkte/ipc/embedded-pcs/cx7000-arm-r-cortex-r/cx7293.html

This doesn't render very nicely in the HTML documentation,
because it comes out as two bare URLs with no line break
between them. Can you write this as something which uses
the rST syntax for links, please, e.g:

You can find more detail about this board on
`the manufacturer's product page <https://....>`__.
The SoC is documented in the
`Zynq 7000 Technical Reference manual <https://...>`__.

Also, is there an English language version of the product
page? Since QEMU's documentation is in English that would
be the better link if it exists. Otherwise we should warn
the reader by adding "(in German)" when we point them at it.

> +
> +The CX7200 supports following devices:

"the following"

> +    - A9 MPCORE
> +        - cortex-a9
> +        - GIC v1
> +        - Generic timer
> +        - wdt
> +    - OCM 256KB
> +    - SMC SRAM@0xe2000000 64MB

The "SRAM@0xe2000000" renders as an email address hyperlink,
which probably isn't what you intended. I don't think the
address of the RAM is particularly important to the reader
of the docs, so we could just omit it.

For docs changes, I recommend making sure your build
is building the docs by passing --enable-docs to configure.
Then you can look at the HTML that is generated in your
build directory under docs/manual/ to check that it hasn't
come out with any unintentional markup issues

> +    - Zynq SLCR
> +    - SPI x2
> +    - QSPI
> +    - UART
> +    - TTC x2
> +    - Gigabit Ethernet Controller
> +    - SD Controller
> +    - XADC
> +    - Arm PrimeCell DMA Controller
> +    - DDR Memory
> +    - DDR Controller
> +    - Beckhoff Communication Controller (CCAT)
> +        - EEPROM Interface
> +        - DMA Controller
> +
> +Following devices are not supported:

"The following"

> +    - I2C

thanks
-- PMM
Re: [PATCH v5 15/15] docs/system/arm: Add support for Beckhoff CX7200
Posted by Peter Maydell 3 weeks, 4 days ago
On Thu, 15 Jan 2026 at 11:57, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Thu, 4 Dec 2025 at 09:35, Corvin Köhne <corvin.koehne@gmail.com> wrote:
> >
> > From: YannickV <Y.Vossen@beckhoff.com>
> >
> > This commit offers some documentation on the Beckhoff CX7200
> > qemu emulation.
> >
> > Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
> > ---
> >  docs/system/arm/beckhoff-cx7200.rst | 57 +++++++++++++++++++++++++++++
> >  docs/system/target-arm.rst          |  1 +

> This doesn't render very nicely in the HTML documentation,

I noticed also that the nested bulleted lists in this
file come out a bit odd, and so I checked the existing
xlnx-zynq docs, which also have that issue. I just sent
this patch to docs/system/arm/xlnx-zynq.rst which fixes
various minor rendering issues:

https://patchew.org/QEMU/20260115142629.665319-1-peter.maydell@linaro.org/20260115142629.665319-2-peter.maydell@linaro.org/

You might find it useful to refer to in updating your
patch here.

-- PMM
Re: [PATCH v5 15/15] docs/system/arm: Add support for Beckhoff CX7200
Posted by Alex Bennée 3 weeks, 4 days ago
Corvin Köhne <corvin.koehne@gmail.com> writes:

> From: YannickV <Y.Vossen@beckhoff.com>
>
> This commit offers some documentation on the Beckhoff CX7200
> qemu emulation.
>
> Signed-off-by: YannickV <Y.Vossen@beckhoff.com>
> ---
>  docs/system/arm/beckhoff-cx7200.rst | 57 +++++++++++++++++++++++++++++
>  docs/system/target-arm.rst          |  1 +
>  2 files changed, 58 insertions(+)
>  create mode 100644 docs/system/arm/beckhoff-cx7200.rst
>
> diff --git a/docs/system/arm/beckhoff-cx7200.rst b/docs/system/arm/beckhoff-cx7200.rst
> new file mode 100644
> index 0000000000..f060319b0f
> --- /dev/null
> +++ b/docs/system/arm/beckhoff-cx7200.rst
> @@ -0,0 +1,57 @@
> +Beckhoff CX7200 (``beckhoff-cx7200``)
> +======================================
> +The Beckhoff CX7200 is based on the same architecture as the Xilinx Zynq A9.
> +The Zynq 7000 family is based on the AMD SoC architecture. These products
> +integrate a feature-rich dual or single-core Arm Cortex-A9 MPCore based
> +processing system (PS) and AMD programmable logic (PL) in a single device.
> +The Beckhoff Communication Controller (CCAT) can be found in the PL of Zynq.
> +
> +More details here:
> +https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/Zynq-7000-SoC-Technical-Reference-Manual
> +https://www.beckhoff.com/de-de/produkte/ipc/embedded-pcs/cx7000-arm-r-cortex-r/cx7293.html
> +
> +The CX7200 supports following devices:
> +    - A9 MPCORE
> +        - cortex-a9
> +        - GIC v1
> +        - Generic timer
> +        - wdt
> +    - OCM 256KB
> +    - SMC SRAM@0xe2000000 64MB
> +    - Zynq SLCR
> +    - SPI x2
> +    - QSPI
> +    - UART
> +    - TTC x2
> +    - Gigabit Ethernet Controller
> +    - SD Controller
> +    - XADC
> +    - Arm PrimeCell DMA Controller
> +    - DDR Memory
> +    - DDR Controller
> +    - Beckhoff Communication Controller (CCAT)
> +        - EEPROM Interface
> +        - DMA Controller
> +
> +Following devices are not supported:
> +    - I2C
> +
> +Running
> +"""""""
> +Directly loading an ELF file to the CPU of the CX7200 to run f.e. TC/RTOS (based on FreeRTOS):
> +
> +.. code-block:: bash
> +
> +  $ qemu-system-arm -M beckhoff-cx7200 \
> +        -device loader,file=CX7200_Zynq_Fsbl.elf \
> +        -display none \
> +        -icount shift=auto \
> +

Is icount actually required for running? Or does it just affect the
fidelity of performance counters?

> +
> +For setting the EEPROM content of the CCAT provide the following on the command line:
> +
> +.. code-block:: bash
> +
> +        -drive file=eeprom.bin,format=raw,id=ccat-eeprom
> +
> +The size of eeprom.bin must be aligned to a power of 2 and bigger than 256 bytes.
> diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
> index a96d1867df..e634872b97 100644
> --- a/docs/system/target-arm.rst
> +++ b/docs/system/target-arm.rst
> @@ -82,6 +82,7 @@ Board-specific documentation
>     arm/aspeed
>     arm/bananapi_m2u.rst
>     arm/b-l475e-iot01a.rst
> +   arm/beckhoff-cx7200
>     arm/sabrelite
>     arm/highbank
>     arm/digic

Otherwise:

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro