From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Hao Wu <wuhaotsh@google.com>, peter.maydell@linaro.org
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org, venture@google.com,
Avi.Fishman@nuvoton.com, kfting@nuvoton.com,
hskinnemoen@google.com, titusr@google.com,
chli30@nuvoton.corp-partner.google.com
Subject: Re: [PATCH v3 07/17] hw/misc: Add support for NPCM8XX GCR
Date: Thu, 6 Feb 2025 10:13:53 +0100 [thread overview]
Message-ID: <cd16b620-2611-402f-ba2c-e1ebe0745c2d@linaro.org> (raw)
In-Reply-To: <20250206013105.3228344-8-wuhaotsh@google.com>
Hi Hao,
On 6/2/25 02:30, Hao Wu wrote:
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Hao Wu <wuhaotsh@google.com>
> ---
> hw/misc/npcm_gcr.c | 131 ++++++++++++++++++++++++++++++++++++-
> include/hw/misc/npcm_gcr.h | 6 +-
> 2 files changed, 134 insertions(+), 3 deletions(-)
> + NPCM8XX_GCR_WD0RCRBLK,
> + NPCM8XX_GCR_WD1RCRBLK,
> + NPCM8XX_GCR_WD2RCRBLK,
> + NPCM8XX_GCR_SWRSTC1BLK,
> + NPCM8XX_GCR_SWRSTC2BLK,
> + NPCM8XX_GCR_SWRSTC3BLK,
> + NPCM8XX_GCR_TIPRSTCBLK,
> + NPCM8XX_GCR_CORSTCBLK,
> + /* 64 scratch pad registers start here. 0xe00 ~ 0xefc */
> + NPCM8XX_GCR_SCRPAD_00 = 0xe00 / sizeof(uint32_t),
> + /* 32 semaphore registers start here. 0xf00 ~ 0xf7c */
> + NPCM8XX_GCR_GP_SEMFR_00 = 0xf00 / sizeof(uint32_t),
Alternatively:
NPCM8XX_GCR_GP_SEMFR_31 = 0xf7c ...
> + NPCM8XX_GCR_REGS_END = 0xf80 / sizeof(uint32_t),
Then no need for NPCM8XX_GCR_REGS_END, we have NPCM8XX_GCR_NR_REGS.
> +};
> +
> +static const uint32_t npcm8xx_cold_reset_values[NPCM8XX_GCR_NR_REGS] = {
> + [NPCM8XX_GCR_PDID] = 0x04a35850, /* Arbel A1 */
> + [NPCM8XX_GCR_MISCPE] = 0x0000ffff,
> + [NPCM8XX_GCR_A35_MODE] = 0xfff4ff30,
> + [NPCM8XX_GCR_SPSWC] = 0x00000003,
> + [NPCM8XX_GCR_INTCR] = 0x0010035e,
> + [NPCM8XX_GCR_HIFCR] = 0x0000004e,
> + [NPCM8XX_GCR_SD2SUR1] = 0xfdc80000,
> + [NPCM8XX_GCR_SD2SUR2] = 0x5200b130,
> + [NPCM8XX_GCR_INTCR2] = (1U << 19), /* DDR initialized */
> + [NPCM8XX_GCR_RESSR] = 0x80000000,
> + [NPCM8XX_GCR_DAVCLVLR] = 0x5a00f3cf,
> + [NPCM8XX_GCR_INTCR3] = 0x5e001002,
> + [NPCM8XX_GCR_VSRCR] = 0x00004800,
> + [NPCM8XX_GCR_SCRPAD] = 0x00000008,
> + [NPCM8XX_GCR_USB1PHYCTL] = 0x034730e4,
> + [NPCM8XX_GCR_USB2PHYCTL] = 0x034730e4,
> + [NPCM8XX_GCR_USB3PHYCTL] = 0x034730e4,
> + /* All 32 semaphores should be initialized to 1. */
> + [NPCM8XX_GCR_GP_SEMFR_00...NPCM8XX_GCR_REGS_END - 1] = 0x00000001,
[NPCM8XX_GCR_GP_SEMFR_00 ...
NPCM8XX_GCR_GP_SEMFR_31] = 1;
> +};
> +
> static uint64_t npcm_gcr_read(void *opaque, hwaddr offset, unsigned size)
> {
> uint32_t reg = offset / sizeof(uint32_t);
> @@ -263,6 +375,18 @@ static void npcm7xx_gcr_class_init(ObjectClass *klass, void *data)
> c->cold_reset_values = npcm7xx_cold_reset_values;
> }
>
> +static void npcm8xx_gcr_class_init(ObjectClass *klass, void *data)
> +{
> + NPCMGCRClass *c = NPCM_GCR_CLASS(klass);
> + DeviceClass *dc = DEVICE_CLASS(klass);
> +
> + QEMU_BUILD_BUG_ON(NPCM8XX_GCR_REGS_END > NPCM_GCR_MAX_NR_REGS);
> + QEMU_BUILD_BUG_ON(NPCM8XX_GCR_REGS_END != NPCM8XX_GCR_NR_REGS);
Not sure these checks are useful, but as you prefer.
> + dc->desc = "NPCM8xx System Global Control Registers";
> + c->nr_regs = NPCM8XX_GCR_NR_REGS;
> + c->cold_reset_values = npcm8xx_cold_reset_values;
> +}
> @@ -54,8 +54,9 @@
> * Number of registers in our device state structure. Don't change this without
> * incrementing the version_id in the vmstate.
> */
> -#define NPCM_GCR_MAX_NR_REGS NPCM7XX_GCR_NR_REGS
> +#define NPCM_GCR_MAX_NR_REGS NPCM8XX_GCR_NR_REGS
> #define NPCM7XX_GCR_NR_REGS (0x148 / sizeof(uint32_t))
> +#define NPCM8XX_GCR_NR_REGS (0xf80 / sizeof(uint32_t))
>
> typedef struct NPCMGCRState {
> SysBusDevice parent;
> @@ -78,6 +79,7 @@ typedef struct NPCMGCRClass {
>
> #define TYPE_NPCM_GCR "npcm-gcr"
> #define TYPE_NPCM7XX_GCR "npcm7xx-gcr"
> +#define TYPE_NPCM8XX_GCR "npcm8xx-gcr"
> OBJECT_DECLARE_TYPE(NPCMGCRState, NPCMGCRClass, NPCM_GCR)
>
> #endif /* NPCM_GCR_H */
next prev parent reply other threads:[~2025-02-06 9:14 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-06 1:30 [PATCH v3 00/17] hw/arm: Add NPCM8XX Support Hao Wu
2025-02-06 1:30 ` [PATCH v3 01/17] roms: Update vbootrom to 1287b6e Hao Wu
2025-02-06 1:30 ` [PATCH v3 02/17] pc-bios: Add NPCM8XX vBootrom Hao Wu
2025-02-06 1:30 ` [PATCH v3 03/17] hw/ssi: Make flash size a property in NPCM7XX FIU Hao Wu
2025-02-06 9:06 ` Philippe Mathieu-Daudé
2025-02-06 1:30 ` [PATCH v3 04/17] hw/misc: Rename npcm7xx_gcr to npcm_gcr Hao Wu
2025-02-06 1:30 ` [PATCH v3 05/17] hw/misc: Move NPCM7XX GCR to NPCM GCR Hao Wu
2025-02-06 1:30 ` [PATCH v3 06/17] hw/misc: Add nr_regs and cold_reset_values " Hao Wu
2025-02-06 1:30 ` [PATCH v3 07/17] hw/misc: Add support for NPCM8XX GCR Hao Wu
2025-02-06 9:13 ` Philippe Mathieu-Daudé [this message]
2025-02-06 1:30 ` [PATCH v3 08/17] hw/misc: Store DRAM size in NPCM8XX GCR Module Hao Wu
2025-02-06 1:30 ` [PATCH v3 09/17] hw/misc: Support 8-bytes memop in NPCM GCR module Hao Wu
2025-02-06 9:19 ` Philippe Mathieu-Daudé
2025-02-06 1:30 ` [PATCH v3 10/17] hw/misc: Rename npcm7xx_clk to npcm_clk Hao Wu
2025-02-06 1:30 ` [PATCH v3 11/17] hw/misc: Move NPCM7XX CLK to NPCM CLK Hao Wu
2025-02-06 1:31 ` [PATCH v3 12/17] hw/misc: Add nr_regs and cold_reset_values " Hao Wu
2025-02-06 9:22 ` Philippe Mathieu-Daudé
2025-02-06 1:31 ` [PATCH v3 13/17] hw/misc: Support NPCM8XX CLK Module Registers Hao Wu
2025-02-06 9:24 ` Philippe Mathieu-Daudé
2025-02-06 1:31 ` [PATCH v3 14/17] hw/net: Add NPCM8XX PCS Module Hao Wu
2025-02-06 1:31 ` [PATCH v3 15/17] hw/arm: Add NPCM8XX SoC Hao Wu
2025-02-06 1:31 ` [PATCH v3 16/17] hw/arm: Add NPCM845 Evaluation board Hao Wu
2025-02-06 9:27 ` Philippe Mathieu-Daudé
2025-02-06 1:31 ` [PATCH v3 17/17] docs/system/arm: Add Description for NPCM8XX SoC Hao Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cd16b620-2611-402f-ba2c-e1ebe0745c2d@linaro.org \
--to=philmd@linaro.org \
--cc=Avi.Fishman@nuvoton.com \
--cc=chli30@nuvoton.corp-partner.google.com \
--cc=hskinnemoen@google.com \
--cc=kfting@nuvoton.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=titusr@google.com \
--cc=venture@google.com \
--cc=wuhaotsh@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).