[PATCH v6 0/3] Support RISC-V IOPMP

Ethan Chen via posted 3 patches 9 months, 3 weeks ago
Failed in applying to current master (apply log)
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Bin Meng <bin.meng@windriver.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>
There is a newer version of this series
docs/system/riscv/virt.rst                    |   12 +
hw/Kconfig                                    |    1 +
hw/core/Kconfig                               |    3 +
hw/core/meson.build                           |    2 +-
hw/misc/Kconfig                               |    4 +
hw/misc/meson.build                           |    1 +
hw/misc/riscv_iopmp.c                         | 1202 +++++++++++++++++
hw/misc/trace-events                          |    4 +
hw/riscv/Kconfig                              |    1 +
hw/riscv/virt.c                               |  110 +-
include/hw/misc/riscv_iopmp.h                 |  187 +++
.../hw/misc/riscv_iopmp_transaction_info.h    |   28 +
include/hw/riscv/virt.h                       |    8 +-
13 files changed, 1559 insertions(+), 4 deletions(-)
create mode 100644 hw/misc/riscv_iopmp.c
create mode 100644 include/hw/misc/riscv_iopmp.h
create mode 100644 include/hw/misc/riscv_iopmp_transaction_info.h
[PATCH v6 0/3] Support RISC-V IOPMP
Posted by Ethan Chen via 9 months, 3 weeks ago
This series implements IOPMP specification v1.0.0-draft4 rapid-k model and add
IOPMP device to RISC-V virt machine.

Patch 1 add config STREAM make other device can reuse /hw/core/stream.c, IOPMP
implementation will use it. Patch 2 implement IOPMP deivce. Patch 3 add IOPMP
device to RISC-V virt machine.

The IOPMP specification url:
https://github.com/riscv-non-isa/iopmp-spec/blob/main/riscv_iopmp_specification.pdf

Changes for v6:
  - Rebased
  - IOPMP: Fix MDLCK_MD and ENTRYLCK_F did not lock correspond registers
           Fix iopmp_write for ENTRY_ADDRH and ENTRYLCK_L
  - Refine coding style (Daniel Henrique Barboza)

Thanks,
Ethan Chen

Ethan Chen (3):
  hw/core: Add config stream
  Add RISC-V IOPMP support
  hw/riscv/virt: Add IOPMP support

 docs/system/riscv/virt.rst                    |   12 +
 hw/Kconfig                                    |    1 +
 hw/core/Kconfig                               |    3 +
 hw/core/meson.build                           |    2 +-
 hw/misc/Kconfig                               |    4 +
 hw/misc/meson.build                           |    1 +
 hw/misc/riscv_iopmp.c                         | 1202 +++++++++++++++++
 hw/misc/trace-events                          |    4 +
 hw/riscv/Kconfig                              |    1 +
 hw/riscv/virt.c                               |  110 +-
 include/hw/misc/riscv_iopmp.h                 |  187 +++
 .../hw/misc/riscv_iopmp_transaction_info.h    |   28 +
 include/hw/riscv/virt.h                       |    8 +-
 13 files changed, 1559 insertions(+), 4 deletions(-)
 create mode 100644 hw/misc/riscv_iopmp.c
 create mode 100644 include/hw/misc/riscv_iopmp.h
 create mode 100644 include/hw/misc/riscv_iopmp_transaction_info.h

-- 
2.34.1
Re: [PATCH v6 0/3] Support RISC-V IOPMP
Posted by Daniel Henrique Barboza 6 months ago
Hi Ethan,


Did you send v7 already and I somehow missed it? This is the latest version I
have for this IOPMP work in my inbox.

If this is the latest, do you plan to send a new version? Most of the comments
made in patche 2 are simple code style changes and there's no technical reason to
not get this work merged for this release.


Thanks,

Daniel

On 2/7/24 06:34, Ethan Chen wrote:
> This series implements IOPMP specification v1.0.0-draft4 rapid-k model and add
> IOPMP device to RISC-V virt machine.
> 
> Patch 1 add config STREAM make other device can reuse /hw/core/stream.c, IOPMP
> implementation will use it. Patch 2 implement IOPMP deivce. Patch 3 add IOPMP
> device to RISC-V virt machine.
> 
> The IOPMP specification url:
> https://github.com/riscv-non-isa/iopmp-spec/blob/main/riscv_iopmp_specification.pdf
> 
> Changes for v6:
>    - Rebased
>    - IOPMP: Fix MDLCK_MD and ENTRYLCK_F did not lock correspond registers
>             Fix iopmp_write for ENTRY_ADDRH and ENTRYLCK_L
>    - Refine coding style (Daniel Henrique Barboza)
> 
> Thanks,
> Ethan Chen
> 
> Ethan Chen (3):
>    hw/core: Add config stream
>    Add RISC-V IOPMP support
>    hw/riscv/virt: Add IOPMP support
> 
>   docs/system/riscv/virt.rst                    |   12 +
>   hw/Kconfig                                    |    1 +
>   hw/core/Kconfig                               |    3 +
>   hw/core/meson.build                           |    2 +-
>   hw/misc/Kconfig                               |    4 +
>   hw/misc/meson.build                           |    1 +
>   hw/misc/riscv_iopmp.c                         | 1202 +++++++++++++++++
>   hw/misc/trace-events                          |    4 +
>   hw/riscv/Kconfig                              |    1 +
>   hw/riscv/virt.c                               |  110 +-
>   include/hw/misc/riscv_iopmp.h                 |  187 +++
>   .../hw/misc/riscv_iopmp_transaction_info.h    |   28 +
>   include/hw/riscv/virt.h                       |    8 +-
>   13 files changed, 1559 insertions(+), 4 deletions(-)
>   create mode 100644 hw/misc/riscv_iopmp.c
>   create mode 100644 include/hw/misc/riscv_iopmp.h
>   create mode 100644 include/hw/misc/riscv_iopmp_transaction_info.h
>
Re: [PATCH v6 0/3] Support RISC-V IOPMP
Posted by Ethan Chen via 5 months, 3 weeks ago
Hi Dainel,

Sorry for the delayed response. I've been busy over the past two months.
I plan to submit the next version of the patch within two weeks.

Thanks,
Ethan Chen

On Mon, May 27, 2024 at 09:09:49AM -0300, Daniel Henrique Barboza wrote:
> Hi Ethan,
> 
> 
> Did you send v7 already and I somehow missed it? This is the latest version I
> have for this IOPMP work in my inbox.
> 
> If this is the latest, do you plan to send a new version? Most of the comments
> made in patche 2 are simple code style changes and there's no technical reason to
> not get this work merged for this release.
> 
> 
> Thanks,
> 
> Daniel
> 
> On 2/7/24 06:34, Ethan Chen wrote:
> > This series implements IOPMP specification v1.0.0-draft4 rapid-k model and add
> > IOPMP device to RISC-V virt machine.
> > 
> > Patch 1 add config STREAM make other device can reuse /hw/core/stream.c, IOPMP
> > implementation will use it. Patch 2 implement IOPMP deivce. Patch 3 add IOPMP
> > device to RISC-V virt machine.
> > 
> > The IOPMP specification url:
> > https://github.com/riscv-non-isa/iopmp-spec/blob/main/riscv_iopmp_specification.pdf
> > 
> > Changes for v6:
> >    - Rebased
> >    - IOPMP: Fix MDLCK_MD and ENTRYLCK_F did not lock correspond registers
> >             Fix iopmp_write for ENTRY_ADDRH and ENTRYLCK_L
> >    - Refine coding style (Daniel Henrique Barboza)
> > 
> > Thanks,
> > Ethan Chen
> > 
> > Ethan Chen (3):
> >    hw/core: Add config stream
> >    Add RISC-V IOPMP support
> >    hw/riscv/virt: Add IOPMP support
> > 
> >   docs/system/riscv/virt.rst                    |   12 +
> >   hw/Kconfig                                    |    1 +
> >   hw/core/Kconfig                               |    3 +
> >   hw/core/meson.build                           |    2 +-
> >   hw/misc/Kconfig                               |    4 +
> >   hw/misc/meson.build                           |    1 +
> >   hw/misc/riscv_iopmp.c                         | 1202 +++++++++++++++++
> >   hw/misc/trace-events                          |    4 +
> >   hw/riscv/Kconfig                              |    1 +
> >   hw/riscv/virt.c                               |  110 +-
> >   include/hw/misc/riscv_iopmp.h                 |  187 +++
> >   .../hw/misc/riscv_iopmp_transaction_info.h    |   28 +
> >   include/hw/riscv/virt.h                       |    8 +-
> >   13 files changed, 1559 insertions(+), 4 deletions(-)
> >   create mode 100644 hw/misc/riscv_iopmp.c
> >   create mode 100644 include/hw/misc/riscv_iopmp.h
> >   create mode 100644 include/hw/misc/riscv_iopmp_transaction_info.h
> > 
>