From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Ben Widawsky <bwidawsk@kernel.org>
Cc: <qemu-devel@nongnu.org>, "Michael S . Tsirkin" <mst@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
<linux-cxl@vger.kernel.org>, <linuxarm@huawei.com>,
<alex.bennee@linaro.org>, Marcel Apfelbaum <marcel@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
"Adam Manzanares" <a.manzanares@samsung.com>,
Tong Zhang <ztong0001@gmail.com>,
Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
Subject: Re: [PATCH v3] hw/cxl: Fix missing write mask for HDM decoder target list registers
Date: Tue, 7 Jun 2022 17:37:02 +0100 [thread overview]
Message-ID: <20220607173702.00005ccf@Huawei.com> (raw)
In-Reply-To: <20220607161928.364mrju2mvzcvs56@bwidawsk-mobl5>
On Tue, 7 Jun 2022 09:19:28 -0700
Ben Widawsky <bwidawsk@kernel.org> wrote:
> On 22-06-07 17:07:47, Jonathan Cameron wrote:
> > Without being able to write these registers, no interleaving is possible.
> > More refined checks of HDM register state on commit to follow.
> >
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > ---
> > v3: Actually pass the parameter to the call...
> > v2: (Ben Widawsky)
> > - Correctly set a tighter write mask for the endpoint devices where this
> > register has a different use.
> >
> > hw/cxl/cxl-component-utils.c | 11 +++++++++--
> > 1 file changed, 9 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/cxl/cxl-component-utils.c b/hw/cxl/cxl-component-utils.c
> > index 7985c9bfca..2208284ee6 100644
> > --- a/hw/cxl/cxl-component-utils.c
> > +++ b/hw/cxl/cxl-component-utils.c
> > @@ -154,7 +154,8 @@ static void ras_init_common(uint32_t *reg_state, uint32_t *write_msk)
> > reg_state[R_CXL_RAS_ERR_CAP_CTRL] = 0x00;
> > }
> >
> > -static void hdm_init_common(uint32_t *reg_state, uint32_t *write_msk)
> > +static void hdm_init_common(uint32_t *reg_state, uint32_t *write_msk,
> > + enum reg_type type)
> > {
> > int decoder_count = 1;
> > int i;
> > @@ -174,6 +175,12 @@ static void hdm_init_common(uint32_t *reg_state, uint32_t *write_msk)
> > write_msk[R_CXL_HDM_DECODER0_SIZE_LO + i * 0x20] = 0xf0000000;
> > write_msk[R_CXL_HDM_DECODER0_SIZE_HI + i * 0x20] = 0xffffffff;
> > write_msk[R_CXL_HDM_DECODER0_CTRL + i * 0x20] = 0x13ff;
> > + if (type == CXL2_DEVICE) {
> > + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * 0x20] = 0xf0000000;
> > + } else {
> > + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * 0x20] = 0xffffffff;
> > + }
> > + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_HI + i * 0x20] = 0xffffffff;
>
> Should it be (type == CXL2_DEVICE || type == CXL2_TYPE3_DEVICE) ?
Good point, but also for consistency I think we need
type == CXL2_LOGICAL_DEVICE as well.
We will only exercise the match to CXL2_TYPE3_DEVICE currently
as we don't have any emulation for MLDs (and hence LD) or type 1/2 devices
(CXL2_DEVICE).
I'll send a v4 out tomorrow.
>
> Otherwise,
> Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
>
> > }
> > }
> >
> > @@ -239,7 +246,7 @@ void cxl_component_register_init_common(uint32_t *reg_state, uint32_t *write_msk
> > }
> >
> > init_cap_reg(HDM, 5, 1);
> > - hdm_init_common(reg_state, write_msk);
> > + hdm_init_common(reg_state, write_msk, type);
> >
> > if (caps < 5) {
> > return;
> > --
> > 2.32.0
> >
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron via <qemu-devel@nongnu.org>
To: Ben Widawsky <bwidawsk@kernel.org>
Cc: <qemu-devel@nongnu.org>, "Michael S . Tsirkin" <mst@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
<linux-cxl@vger.kernel.org>, <linuxarm@huawei.com>,
<alex.bennee@linaro.org>, Marcel Apfelbaum <marcel@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
"Adam Manzanares" <a.manzanares@samsung.com>,
Tong Zhang <ztong0001@gmail.com>,
Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
Subject: Re: [PATCH v3] hw/cxl: Fix missing write mask for HDM decoder target list registers
Date: Tue, 7 Jun 2022 17:37:02 +0100 [thread overview]
Message-ID: <20220607173702.00005ccf@Huawei.com> (raw)
In-Reply-To: <20220607161928.364mrju2mvzcvs56@bwidawsk-mobl5>
On Tue, 7 Jun 2022 09:19:28 -0700
Ben Widawsky <bwidawsk@kernel.org> wrote:
> On 22-06-07 17:07:47, Jonathan Cameron wrote:
> > Without being able to write these registers, no interleaving is possible.
> > More refined checks of HDM register state on commit to follow.
> >
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > ---
> > v3: Actually pass the parameter to the call...
> > v2: (Ben Widawsky)
> > - Correctly set a tighter write mask for the endpoint devices where this
> > register has a different use.
> >
> > hw/cxl/cxl-component-utils.c | 11 +++++++++--
> > 1 file changed, 9 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/cxl/cxl-component-utils.c b/hw/cxl/cxl-component-utils.c
> > index 7985c9bfca..2208284ee6 100644
> > --- a/hw/cxl/cxl-component-utils.c
> > +++ b/hw/cxl/cxl-component-utils.c
> > @@ -154,7 +154,8 @@ static void ras_init_common(uint32_t *reg_state, uint32_t *write_msk)
> > reg_state[R_CXL_RAS_ERR_CAP_CTRL] = 0x00;
> > }
> >
> > -static void hdm_init_common(uint32_t *reg_state, uint32_t *write_msk)
> > +static void hdm_init_common(uint32_t *reg_state, uint32_t *write_msk,
> > + enum reg_type type)
> > {
> > int decoder_count = 1;
> > int i;
> > @@ -174,6 +175,12 @@ static void hdm_init_common(uint32_t *reg_state, uint32_t *write_msk)
> > write_msk[R_CXL_HDM_DECODER0_SIZE_LO + i * 0x20] = 0xf0000000;
> > write_msk[R_CXL_HDM_DECODER0_SIZE_HI + i * 0x20] = 0xffffffff;
> > write_msk[R_CXL_HDM_DECODER0_CTRL + i * 0x20] = 0x13ff;
> > + if (type == CXL2_DEVICE) {
> > + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * 0x20] = 0xf0000000;
> > + } else {
> > + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_LO + i * 0x20] = 0xffffffff;
> > + }
> > + write_msk[R_CXL_HDM_DECODER0_TARGET_LIST_HI + i * 0x20] = 0xffffffff;
>
> Should it be (type == CXL2_DEVICE || type == CXL2_TYPE3_DEVICE) ?
Good point, but also for consistency I think we need
type == CXL2_LOGICAL_DEVICE as well.
We will only exercise the match to CXL2_TYPE3_DEVICE currently
as we don't have any emulation for MLDs (and hence LD) or type 1/2 devices
(CXL2_DEVICE).
I'll send a v4 out tomorrow.
>
> Otherwise,
> Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
>
> > }
> > }
> >
> > @@ -239,7 +246,7 @@ void cxl_component_register_init_common(uint32_t *reg_state, uint32_t *write_msk
> > }
> >
> > init_cap_reg(HDM, 5, 1);
> > - hdm_init_common(reg_state, write_msk);
> > + hdm_init_common(reg_state, write_msk, type);
> >
> > if (caps < 5) {
> > return;
> > --
> > 2.32.0
> >
next prev parent reply other threads:[~2022-06-07 16:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-07 16:07 [PATCH v3] hw/cxl: Fix missing write mask for HDM decoder target list registers Jonathan Cameron
2022-06-07 16:07 ` Jonathan Cameron via
2022-06-07 16:19 ` Ben Widawsky
2022-06-07 16:37 ` Jonathan Cameron [this message]
2022-06-07 16:37 ` Jonathan Cameron via
2022-06-07 16:41 ` Ben Widawsky
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=20220607173702.00005ccf@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=a.manzanares@samsung.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=bwidawsk@kernel.org \
--cc=imammedo@redhat.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=marcel@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=ztong0001@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.