[PATCH v4 0/6] Add Axiado SoC AX3000 and EVK board

Kuan-Jui Chiu posted 6 patches 1 month, 1 week ago
Only 5 patches received!
There is a newer version of this series
MAINTAINERS                    |   9 +
hw/arm/Kconfig                 |  14 ++
hw/arm/ax3000-boards.c         |  47 ++++++
hw/arm/ax3000-evk.c            |  27 +++
hw/arm/ax3000-soc.c            | 267 ++++++++++++++++++++++++++++++
hw/arm/meson.build             |   6 +
hw/gpio/Kconfig                |   3 +
hw/gpio/cadence_gpio.c         | 292 +++++++++++++++++++++++++++++++++
hw/gpio/meson.build            |   1 +
hw/gpio/trace-events           |   5 +
hw/sd/Kconfig                  |   4 +
hw/sd/axiado_sdhci.c           | 114 +++++++++++++
hw/sd/meson.build              |   1 +
include/hw/arm/ax3000-boards.h |  28 ++++
include/hw/arm/ax3000-soc.h    |  99 +++++++++++
include/hw/gpio/cadence_gpio.h |  55 +++++++
include/hw/sd/axiado_sdhci.h   |  21 +++
17 files changed, 993 insertions(+)
create mode 100644 hw/arm/ax3000-boards.c
create mode 100644 hw/arm/ax3000-evk.c
create mode 100644 hw/arm/ax3000-soc.c
create mode 100644 hw/gpio/cadence_gpio.c
create mode 100644 hw/sd/axiado_sdhci.c
create mode 100644 include/hw/arm/ax3000-boards.h
create mode 100644 include/hw/arm/ax3000-soc.h
create mode 100644 include/hw/gpio/cadence_gpio.h
create mode 100644 include/hw/sd/axiado_sdhci.h
[PATCH v4 0/6] Add Axiado SoC AX3000 and EVK board
Posted by Kuan-Jui Chiu 1 month, 1 week ago
This patchset introduces Axiado SoC AX3000 and a EVK SCM3003 for emulation
The model for Axiado SoC AX3000 supports
  4 Cortex-A53 CPUs
  Arm Generic Interrupt Controller v3
  4 Cadence UARTs
  1 SDHCI controller with PHY
  8 Cadence GPIOs

Verified the machine "axiado-scm3003" with following command

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

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

Changes in v4:
  1. Remove ERRP_GUARD from axiado_sdhci
  2. Optimize ISR update function of cadence_gpio with logical operation

Changes in v3:
  1. Add a new patch for Axiado SD host controller
  2. Fill in valid/impl parameters of MemoryRegionOps in
     ax3000-soc/cadence_gpio/axiado_sdhci
  3. Follow C99 standard to declare variable in for-loop
  4. Remove comment "TBD" from empty function
  5. Define marco for bit definition in axiado_sdhci
  6. Move object_initialize_child() to instance_init() from realize() in
     axiado_sdhci
  7. Remove callback of get_default_cpu_type() from ax3000-soc and set
     type of CPU to A53
  8. Update the command to run "axiado-scm3003" in QEMU

Changes in v2:
  1. Move axiado-* to ax3000-* in hw/arm and include/hw/arm
  2. Add axiado_sdhci to support AXIADO_SDHCI
  3. Move implementation for eMMC PHY device to axiado_sdhci
  4. Use UNIMP to create dummy device "timerctrl"
  5. Add cadence_gpio to support CADENCE_GPIO
  6. Enable Cadence GPIO controllers on AX3000 SoC

Kuan-Jui Chiu (6):
  hw/arm: Add Axiado SoC AX3000
  hw/sd: Add Axiado SD host controller with eMMC PHY
  hw/arm: ax3000-soc: Enable Axiado SD host controller
  hw/arm: Add Axiado EVK SCM3003
  hw/gpio: Add Cadence GPIO controller
  hw/arm: ax3000-soc: Enable Cadence GPIO controllers

 MAINTAINERS                    |   9 +
 hw/arm/Kconfig                 |  14 ++
 hw/arm/ax3000-boards.c         |  47 ++++++
 hw/arm/ax3000-evk.c            |  27 +++
 hw/arm/ax3000-soc.c            | 267 ++++++++++++++++++++++++++++++
 hw/arm/meson.build             |   6 +
 hw/gpio/Kconfig                |   3 +
 hw/gpio/cadence_gpio.c         | 292 +++++++++++++++++++++++++++++++++
 hw/gpio/meson.build            |   1 +
 hw/gpio/trace-events           |   5 +
 hw/sd/Kconfig                  |   4 +
 hw/sd/axiado_sdhci.c           | 114 +++++++++++++
 hw/sd/meson.build              |   1 +
 include/hw/arm/ax3000-boards.h |  28 ++++
 include/hw/arm/ax3000-soc.h    |  99 +++++++++++
 include/hw/gpio/cadence_gpio.h |  55 +++++++
 include/hw/sd/axiado_sdhci.h   |  21 +++
 17 files changed, 993 insertions(+)
 create mode 100644 hw/arm/ax3000-boards.c
 create mode 100644 hw/arm/ax3000-evk.c
 create mode 100644 hw/arm/ax3000-soc.c
 create mode 100644 hw/gpio/cadence_gpio.c
 create mode 100644 hw/sd/axiado_sdhci.c
 create mode 100644 include/hw/arm/ax3000-boards.h
 create mode 100644 include/hw/arm/ax3000-soc.h
 create mode 100644 include/hw/gpio/cadence_gpio.h
 create mode 100644 include/hw/sd/axiado_sdhci.h

-- 
2.34.1
Re: [PATCH v4 0/6] Add Axiado SoC AX3000 and EVK board
Posted by Kuan-Jui Chiu 1 month, 1 week ago
Please ignore this patch set , I will add more fixes in v5

Kuan-Jui Chiu 於 2026/6/17 下午 04:50 寫道:
> This patchset introduces Axiado SoC AX3000 and a EVK SCM3003 for emulation
> The model for Axiado SoC AX3000 supports
>    4 Cortex-A53 CPUs
>    Arm Generic Interrupt Controller v3
>    4 Cadence UARTs
>    1 SDHCI controller with PHY
>    8 Cadence GPIOs
>
> Verified the machine "axiado-scm3003" with following command
>
> 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
>
> Refer Axiado website for more product information
> https://axiado.com/products/
>
> Changes in v4:
>    1. Remove ERRP_GUARD from axiado_sdhci
>    2. Optimize ISR update function of cadence_gpio with logical operation
>
> Changes in v3:
>    1. Add a new patch for Axiado SD host controller
>    2. Fill in valid/impl parameters of MemoryRegionOps in
>       ax3000-soc/cadence_gpio/axiado_sdhci
>    3. Follow C99 standard to declare variable in for-loop
>    4. Remove comment "TBD" from empty function
>    5. Define marco for bit definition in axiado_sdhci
>    6. Move object_initialize_child() to instance_init() from realize() in
>       axiado_sdhci
>    7. Remove callback of get_default_cpu_type() from ax3000-soc and set
>       type of CPU to A53
>    8. Update the command to run "axiado-scm3003" in QEMU
>
> Changes in v2:
>    1. Move axiado-* to ax3000-* in hw/arm and include/hw/arm
>    2. Add axiado_sdhci to support AXIADO_SDHCI
>    3. Move implementation for eMMC PHY device to axiado_sdhci
>    4. Use UNIMP to create dummy device "timerctrl"
>    5. Add cadence_gpio to support CADENCE_GPIO
>    6. Enable Cadence GPIO controllers on AX3000 SoC
>
> Kuan-Jui Chiu (6):
>    hw/arm: Add Axiado SoC AX3000
>    hw/sd: Add Axiado SD host controller with eMMC PHY
>    hw/arm: ax3000-soc: Enable Axiado SD host controller
>    hw/arm: Add Axiado EVK SCM3003
>    hw/gpio: Add Cadence GPIO controller
>    hw/arm: ax3000-soc: Enable Cadence GPIO controllers
>
>   MAINTAINERS                    |   9 +
>   hw/arm/Kconfig                 |  14 ++
>   hw/arm/ax3000-boards.c         |  47 ++++++
>   hw/arm/ax3000-evk.c            |  27 +++
>   hw/arm/ax3000-soc.c            | 267 ++++++++++++++++++++++++++++++
>   hw/arm/meson.build             |   6 +
>   hw/gpio/Kconfig                |   3 +
>   hw/gpio/cadence_gpio.c         | 292 +++++++++++++++++++++++++++++++++
>   hw/gpio/meson.build            |   1 +
>   hw/gpio/trace-events           |   5 +
>   hw/sd/Kconfig                  |   4 +
>   hw/sd/axiado_sdhci.c           | 114 +++++++++++++
>   hw/sd/meson.build              |   1 +
>   include/hw/arm/ax3000-boards.h |  28 ++++
>   include/hw/arm/ax3000-soc.h    |  99 +++++++++++
>   include/hw/gpio/cadence_gpio.h |  55 +++++++
>   include/hw/sd/axiado_sdhci.h   |  21 +++
>   17 files changed, 993 insertions(+)
>   create mode 100644 hw/arm/ax3000-boards.c
>   create mode 100644 hw/arm/ax3000-evk.c
>   create mode 100644 hw/arm/ax3000-soc.c
>   create mode 100644 hw/gpio/cadence_gpio.c
>   create mode 100644 hw/sd/axiado_sdhci.c
>   create mode 100644 include/hw/arm/ax3000-boards.h
>   create mode 100644 include/hw/arm/ax3000-soc.h
>   create mode 100644 include/hw/gpio/cadence_gpio.h
>   create mode 100644 include/hw/sd/axiado_sdhci.h
>

Re: [PATCH v4 0/6] Add Axiado SoC AX3000 and EVK board
Posted by Peter Maydell 1 month, 1 week ago
On Wed, 17 Jun 2026 at 09:50, Kuan-Jui Chiu <kchiu@axiado.com> wrote:
>
> This patchset introduces Axiado SoC AX3000 and a EVK SCM3003 for emulation
> The model for Axiado SoC AX3000 supports
>   4 Cortex-A53 CPUs
>   Arm Generic Interrupt Controller v3
>   4 Cadence UARTs
>   1 SDHCI controller with PHY
>   8 Cadence GPIOs
>
> Verified the machine "axiado-scm3003" with following command
>
> 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
>
> Refer Axiado website for more product information
> https://axiado.com/products/
>
> Changes in v4:
>   1. Remove ERRP_GUARD from axiado_sdhci
>   2. Optimize ISR update function of cadence_gpio with logical operation

You still are not calling arm_load_kernel() in your machine init.
This is *not* optional, you *must* call that function.

thanks
-- PMM