[PATCH v6 0/8] Add Axiado SoC AX3000 and EVK board

Kuan-Jui Chiu posted 8 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260622060507.83195-1-kchiu@axiado.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Kuan-Jui Chiu <kchiu@axiado.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Alistair Francis <alistair@alistair23.me>
There is a newer version of this series
MAINTAINERS                    |   9 +
hw/arm/Kconfig                 |  15 ++
hw/arm/ax3000-boards.c         |  56 +++++++
hw/arm/ax3000-evk.c            |  27 +++
hw/arm/ax3000-soc.c            | 238 +++++++++++++++++++++++++++
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/misc/Kconfig                |   3 +
hw/misc/axiado_clk.c           |  77 +++++++++
hw/misc/meson.build            |   3 +
hw/sd/Kconfig                  |   4 +
hw/sd/axiado_sdhci.c           | 117 +++++++++++++
hw/sd/meson.build              |   1 +
include/hw/arm/ax3000-boards.h |  28 ++++
include/hw/arm/ax3000-soc.h    |  98 +++++++++++
include/hw/gpio/cadence_gpio.h |  55 +++++++
include/hw/misc/axiado_clk.h   |  26 +++
include/hw/sd/axiado_sdhci.h   |  21 +++
21 files changed, 1085 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/misc/axiado_clk.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/misc/axiado_clk.h
create mode 100644 include/hw/sd/axiado_sdhci.h
[PATCH v6 0/8] Add Axiado SoC AX3000 and EVK board
Posted by Kuan-Jui Chiu 1 month 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 v6:
  1. Add qemu_log_mask(LOG_UNIMP) into axiado_clk and axiado_sdhci for
     unimplemented registers
  2. Revise header of axiado_sdhci
  3. Add "const" to temporary data structures

Changes in v5:
  1. Include Reviewed-by tag in reviewed patches
  2. Add arm_load_kernel() in ax3000-boards
  3. Add axiado_clk to support AXIADO_CLK

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 (8):
  hw/arm: Add Axiado SoC AX3000
  hw/misc: Add AX3000 clock control
  hw/arm: ax3000-soc: Enable Ax3000 clock control
  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                 |  15 ++
 hw/arm/ax3000-boards.c         |  56 +++++++
 hw/arm/ax3000-evk.c            |  27 +++
 hw/arm/ax3000-soc.c            | 238 +++++++++++++++++++++++++++
 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/misc/Kconfig                |   3 +
 hw/misc/axiado_clk.c           |  77 +++++++++
 hw/misc/meson.build            |   3 +
 hw/sd/Kconfig                  |   4 +
 hw/sd/axiado_sdhci.c           | 117 +++++++++++++
 hw/sd/meson.build              |   1 +
 include/hw/arm/ax3000-boards.h |  28 ++++
 include/hw/arm/ax3000-soc.h    |  98 +++++++++++
 include/hw/gpio/cadence_gpio.h |  55 +++++++
 include/hw/misc/axiado_clk.h   |  26 +++
 include/hw/sd/axiado_sdhci.h   |  21 +++
 21 files changed, 1085 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/misc/axiado_clk.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/misc/axiado_clk.h
 create mode 100644 include/hw/sd/axiado_sdhci.h

-- 
2.34.1
Re: [PATCH v6 0/8] Add Axiado SoC AX3000 and EVK board
Posted by Peter Maydell 3 weeks, 2 days ago
On Mon, 22 Jun 2026 at 07:05, 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

This causes 'make check' to fail. Please test this kind of
thing before submission.

Hint: running QEMU without any other arguments crashes:
 qemu-system-aarch64 -machine axiado-scm3003

thanks
-- PMM
Re: [PATCH v6 0/8] Add Axiado SoC AX3000 and EVK board
Posted by Kuan-Jui Chiu 2 weeks, 6 days ago
Peter Maydell 於 2026/7/3 下午 07:38 寫道:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
>
> On Mon, 22 Jun 2026 at 07:05, 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
> This causes 'make check' to fail. Please test this kind of
> thing before submission.
>
> Hint: running QEMU without any other arguments crashes:
>   qemu-system-aarch64 -machine axiado-scm3003

Hi PMM

Does you mean this patch set is not buildable or it must be passed 
without any other arguments?

QEMU would crash without -drive argument which SoC created an eMMC 
device by default

If the machine must be able to run without any other argument, I will 
fix it in v7

> thanks
> -- PMM

Re: [PATCH v6 0/8] Add Axiado SoC AX3000 and EVK board
Posted by Peter Maydell 2 weeks, 6 days ago
On Mon, 6 Jul 2026 at 03:38, Kuan-Jui Chiu <kchiu@axiado.com> wrote:
>
>
> Peter Maydell 於 2026/7/3 下午 07:38 寫道:
> > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
> >
> >
> > On Mon, 22 Jun 2026 at 07:05, 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
> > This causes 'make check' to fail. Please test this kind of
> > thing before submission.
> >
> > Hint: running QEMU without any other arguments crashes:
> >   qemu-system-aarch64 -machine axiado-scm3003
>
> Hi PMM
>
> Does you mean this patch set is not buildable or it must be passed
> without any other arguments?

I mean that the code you add must not cause our standard
test suite (which you can run with "make check" and
"make check-functional") to fail. One of the things it does
involves running every board model with no extra arguments.

More generally, regardless of what command line arguments the
user gives, QEMU should not crash. If the arguments don't
make sense, report an error message.

-- PMM
Re: [PATCH v6 0/8] Add Axiado SoC AX3000 and EVK board
Posted by Kuan-Jui Chiu 2 weeks, 6 days ago
Peter Maydell 於 2026/7/6 下午 05:23 寫道:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
>
> On Mon, 6 Jul 2026 at 03:38, Kuan-Jui Chiu <kchiu@axiado.com> wrote:
>>
>> Peter Maydell 於 2026/7/3 下午 07:38 寫道:
>>> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>>>
>>>
>>> On Mon, 22 Jun 2026 at 07:05, 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
>>> This causes 'make check' to fail. Please test this kind of
>>> thing before submission.
>>>
>>> Hint: running QEMU without any other arguments crashes:
>>>    qemu-system-aarch64 -machine axiado-scm3003
>> Hi PMM
>>
>> Does you mean this patch set is not buildable or it must be passed
>> without any other arguments?
> I mean that the code you add must not cause our standard
> test suite (which you can run with "make check" and
> "make check-functional") to fail. One of the things it does
> involves running every board model with no extra arguments.
>
> More generally, regardless of what command line arguments the
> user gives, QEMU should not crash. If the arguments don't
> make sense, report an error message.
>
> -- PMM
Got it.
I will run the "make check" and "make check-functional" then fix all of 
the problems in v7 to pass the test