This patchset introduces Axiado HCP network model for SoC AX3000

The HCP (Header and Crypto Processing) block is the substantial part of
the series. It is the SoC's network complex, built around an Inside
Secure SafeXcel EIP-197 packet engine that acts as bus master for all
packet I/O over four command/result descriptor ring pairs. Five MACs
are demultiplexed by an "application ID" tag carried in the EIP-96
input and output tokens. Only the packet datapath is modelled; the
EIP-197 cryptographic transforms are treated as pass-through, which is
what the guest asks for when the block is used as a network interface.

Refer Axiado website for more product information
https://axiado.com/products/

Testing
-------
 The user-mode network backend is required, so configure with libslirp
 enabled (it is auto-detected, and silently absent otherwise):

  ./configure --target-list=aarch64-softmmu -Dslirp=enabled

  qemu-system-aarch64 \
    -m 4G \
    -machine axiado-scm3003 \
    -device loader,file=u-boot.bin,addr=0x3C000000,cpu-num=0 \
    -nographic \
    -serial null \
    -serial null \
    -serial null \
    -serial mon:stdio \
    -drive if=sd,file=obmc-phosphor-image-evk-axiado-qemu.wic,format=raw \
    -netdev user,id=net4,hostfwd=tcp::2222-:22 \
    -global axiado-hcp.netdev4=net4 \


In the guest, bring the interface up with DHCP:

  udhcpc -i eth0

Then from the host:

  ssh -p 2222 [email protected]

With the unmodified vendor Linux driver, the guest:

  - probes the HCP and brings eth0 up
  - obtains an address over DHCP from the SLIRP backend
  - resolves ARP and answers ping
  - sustains an SSH session and completes an SCP transfer

Not modelled
------------

  - EIP-197 cryptographic transforms. Descriptors are pass-through.
  - PCS/SerDes behaviour. The guest configures these registers and never
    reads them back, so writes are accepted and discarded; the link is
    always reported up.

Ratan Lal Dondi (2):
  hw/net: Add Axiado HCP network device model
  hw/arm: Wire up the HCP network complex in the AX3000 SoC

 hw/arm/Kconfig              |    1 +
 hw/arm/ax3000-soc.c         |   23 +
 hw/net/Kconfig              |    3 +
 hw/net/axiado_hcp.c         | 1372 +++++++++++++++++++++++++++++++++++
 hw/net/meson.build          |    2 +
 hw/net/trace-events         |    6 +
 include/hw/arm/ax3000-soc.h |   14 +
 include/hw/net/axiado_hcp.h |  172 +++++
 8 files changed, 1593 insertions(+)
 create mode 100644 hw/net/axiado_hcp.c
 create mode 100644 include/hw/net/axiado_hcp.h

-- 
2.34.1


Reply via email to