Message ID | 20230608164542.3675619-1-tommy.wu@sifive.com (mailing list archive) |
---|---|
Headers | show |
Series | Implement the watchdog timer of HiFive 1 rev b. | expand |
On Fri, Jun 9, 2023 at 2:46 AM Tommy Wu <tommy.wu@sifive.com> wrote: > > The HiFive 1 rev b includes a watchdog module based on a 32-bit > counter. The watchdog timer is in the always-on domain device of > HiFive 1 rev b, so this patch added the AON device to the sifive_e > machine. This patch only implemented the functionality of the > watchdog timer, not all the functionality of the AON device. > > You can test the patchset by the QTest tests/qtest/sifive-e-aon-watchdog-test.c > > Changes since v1 ( Thank Alistair for the feedback ): > - Use the register field macro. > - Delete the public create function. The board creates the aon device itself. > - Keep all variable declarations at the top of the code block. > > Changes since v2 ( Thank Alistair for the feedback ): > - Delete the declaration and definition of the create function. > > Changes since v3 ( Thank Alistair and Thomas for the feedback ): > - Use `device_class_set_props()` for the properties in sifive_e_aon device. > - Add SPDX identifier in QTEST. > - Use libqtest.h in QTEST. > - Let the statements on one line as long as they still fit into 80 columns. > > Changes since v4 ( Thank Phil for the feedback ): > - Improve code style consistency. > - Move the timer create function to the sifive_e_aon_init. > - Allocate the sifive_e_aon device state in the SoC. > > Tommy Wu (3): > hw/misc: sifive_e_aon: Support the watchdog timer of HiFive 1 rev b. > hw/riscv: sifive_e: Support the watchdog timer of HiFive 1 rev b. > tests/qtest: sifive-e-aon-watchdog-test.c: Add QTest of watchdog of > sifive_e Do you mind rebasing this on https://github.com/alistair23/qemu/tree/riscv-to-apply.next ? Then I will apply it Alistair > > hw/misc/Kconfig | 3 + > hw/misc/meson.build | 1 + > hw/misc/sifive_e_aon.c | 319 ++++++++++++++++ > hw/riscv/Kconfig | 1 + > hw/riscv/sifive_e.c | 17 +- > include/hw/misc/sifive_e_aon.h | 60 +++ > include/hw/riscv/sifive_e.h | 9 +- > tests/qtest/meson.build | 3 + > tests/qtest/sifive-e-aon-watchdog-test.c | 450 +++++++++++++++++++++++ > 9 files changed, 858 insertions(+), 5 deletions(-) > create mode 100644 hw/misc/sifive_e_aon.c > create mode 100644 include/hw/misc/sifive_e_aon.h > create mode 100644 tests/qtest/sifive-e-aon-watchdog-test.c > > -- > 2.27.0 > >
Hi Alistair, Thanks for the suggestion! I've rebased and sent patch v6. Best Regards, Tommy On Thu, Jun 22, 2023 at 10:10 AM Alistair Francis <alistair23@gmail.com> wrote: > On Fri, Jun 9, 2023 at 2:46 AM Tommy Wu <tommy.wu@sifive.com> wrote: > > > > The HiFive 1 rev b includes a watchdog module based on a 32-bit > > counter. The watchdog timer is in the always-on domain device of > > HiFive 1 rev b, so this patch added the AON device to the sifive_e > > machine. This patch only implemented the functionality of the > > watchdog timer, not all the functionality of the AON device. > > > > You can test the patchset by the QTest > tests/qtest/sifive-e-aon-watchdog-test.c > > > > Changes since v1 ( Thank Alistair for the feedback ): > > - Use the register field macro. > > - Delete the public create function. The board creates the aon device > itself. > > - Keep all variable declarations at the top of the code block. > > > > Changes since v2 ( Thank Alistair for the feedback ): > > - Delete the declaration and definition of the create function. > > > > Changes since v3 ( Thank Alistair and Thomas for the feedback ): > > - Use `device_class_set_props()` for the properties in sifive_e_aon > device. > > - Add SPDX identifier in QTEST. > > - Use libqtest.h in QTEST. > > - Let the statements on one line as long as they still fit into 80 > columns. > > > > Changes since v4 ( Thank Phil for the feedback ): > > - Improve code style consistency. > > - Move the timer create function to the sifive_e_aon_init. > > - Allocate the sifive_e_aon device state in the SoC. > > > > Tommy Wu (3): > > hw/misc: sifive_e_aon: Support the watchdog timer of HiFive 1 rev b. > > hw/riscv: sifive_e: Support the watchdog timer of HiFive 1 rev b. > > tests/qtest: sifive-e-aon-watchdog-test.c: Add QTest of watchdog of > > sifive_e > > Do you mind rebasing this on > https://github.com/alistair23/qemu/tree/riscv-to-apply.next ? Then I > will apply it > > Alistair > > > > > hw/misc/Kconfig | 3 + > > hw/misc/meson.build | 1 + > > hw/misc/sifive_e_aon.c | 319 ++++++++++++++++ > > hw/riscv/Kconfig | 1 + > > hw/riscv/sifive_e.c | 17 +- > > include/hw/misc/sifive_e_aon.h | 60 +++ > > include/hw/riscv/sifive_e.h | 9 +- > > tests/qtest/meson.build | 3 + > > tests/qtest/sifive-e-aon-watchdog-test.c | 450 +++++++++++++++++++++++ > > 9 files changed, 858 insertions(+), 5 deletions(-) > > create mode 100644 hw/misc/sifive_e_aon.c > > create mode 100644 include/hw/misc/sifive_e_aon.h > > create mode 100644 tests/qtest/sifive-e-aon-watchdog-test.c > > > > -- > > 2.27.0 > > > > >