[RFC PATCH 3/3] hw/cxl/cxl-device-utils: Allow incorrect read lengths

Jonathan Cameron posted 3 patches 5 years ago
[RFC PATCH 3/3] hw/cxl/cxl-device-utils: Allow incorrect read lengths
Posted by Jonathan Cameron 5 years ago
This is currently needed to avoid an issue in the Linux RFC
in which a read is issued that is not a multiple of DW.
On arm64 that results in byte reads being issued and a bus
error returned.

It is not yet obvious at what level this should be fixed,
so paper over it to get things working.

Not-signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 hw/cxl/cxl-device-utils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/cxl/cxl-device-utils.c b/hw/cxl/cxl-device-utils.c
index d0d0a47122..52dd03384a 100644
--- a/hw/cxl/cxl-device-utils.c
+++ b/hw/cxl/cxl-device-utils.c
@@ -181,11 +181,11 @@ static const MemoryRegionOps mailbox_ops = {
     .write = mailbox_reg_write,
     .endianness = DEVICE_LITTLE_ENDIAN,
     .valid = {
-        .min_access_size = 4,
+        .min_access_size = 1,
         .max_access_size = 8,
     },
     .impl = {
-        .min_access_size = 4,
+        .min_access_size = 1,
         .max_access_size = 8,
     },
 };
-- 
2.19.1


Re: [RFC PATCH 3/3] hw/cxl/cxl-device-utils: Allow incorrect read lengths
Posted by Ben Widawsky 5 years ago
On 21-02-01 23:26:55, Jonathan Cameron wrote:
> This is currently needed to avoid an issue in the Linux RFC
> in which a read is issued that is not a multiple of DW.
> On arm64 that results in byte reads being issued and a bus
> error returned.
> 
> It is not yet obvious at what level this should be fixed,
> so paper over it to get things working.
> 
> Not-signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
>  hw/cxl/cxl-device-utils.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/cxl/cxl-device-utils.c b/hw/cxl/cxl-device-utils.c
> index d0d0a47122..52dd03384a 100644
> --- a/hw/cxl/cxl-device-utils.c
> +++ b/hw/cxl/cxl-device-utils.c
> @@ -181,11 +181,11 @@ static const MemoryRegionOps mailbox_ops = {
>      .write = mailbox_reg_write,
>      .endianness = DEVICE_LITTLE_ENDIAN,
>      .valid = {
> -        .min_access_size = 4,
> +        .min_access_size = 1,
>          .max_access_size = 8,
>      },
>      .impl = {
> -        .min_access_size = 4,
> +        .min_access_size = 1,
>          .max_access_size = 8,
>      },
>  };

I think this is now addressed in my v3. I'm happy to carry these patches around
in my branch if it helps.

They all lgtm

Re: [RFC PATCH 3/3] hw/cxl/cxl-device-utils: Allow incorrect read lengths
Posted by Jonathan Cameron 5 years ago
On Wed, 3 Feb 2021 08:10:32 -0800
Ben Widawsky <ben@bwidawsk.net> wrote:

> On 21-02-01 23:26:55, Jonathan Cameron wrote:
> > This is currently needed to avoid an issue in the Linux RFC
> > in which a read is issued that is not a multiple of DW.
> > On arm64 that results in byte reads being issued and a bus
> > error returned.
> > 
> > It is not yet obvious at what level this should be fixed,
> > so paper over it to get things working.
> > 
> > Not-signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > ---
> >  hw/cxl/cxl-device-utils.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/hw/cxl/cxl-device-utils.c b/hw/cxl/cxl-device-utils.c
> > index d0d0a47122..52dd03384a 100644
> > --- a/hw/cxl/cxl-device-utils.c
> > +++ b/hw/cxl/cxl-device-utils.c
> > @@ -181,11 +181,11 @@ static const MemoryRegionOps mailbox_ops = {
> >      .write = mailbox_reg_write,
> >      .endianness = DEVICE_LITTLE_ENDIAN,
> >      .valid = {
> > -        .min_access_size = 4,
> > +        .min_access_size = 1,
> >          .max_access_size = 8,
> >      },
> >      .impl = {
> > -        .min_access_size = 4,
> > +        .min_access_size = 1,
> >          .max_access_size = 8,
> >      },
> >  };  
> 
> I think this is now addressed in my v3. I'm happy to carry these patches around
> in my branch if it helps.

That would be great if you don't mind.

Thanks!

> 
> They all lgtm