[PATCH] pci: When disabling pref MEM set all base bits

Pali Rohár pali at kernel.org
Thu Dec 2 00:12:22 CET 2021


On Tuesday 30 November 2021 07:10:37 Stefan Roese wrote:
> On 11/25/21 11:34, Pali Rohár wrote:
> > It is common to set all base address bits to one and all limit address bits
> > to zero for disabling address forwarding. Forwarding is disabled when base
> > address is higher than limit address, so this change should not have any
> > effect.
> > 
> > Signed-off-by: Pali Rohár <pali at kernel.org>
> > ---
> >   drivers/pci/pci_auto.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/pci/pci_auto.c b/drivers/pci/pci_auto.c
> > index 6e5ed194f247..c0acf331398d 100644
> > --- a/drivers/pci/pci_auto.c
> > +++ b/drivers/pci/pci_auto.c
> > @@ -243,7 +243,7 @@ void dm_pciauto_prescan_setup_bridge(struct udevice *dev, int sub_bus)
> >   		cmdstat |= PCI_COMMAND_MEMORY;
> >   	} else {
> >   		/* We don't support prefetchable memory for now, so disable */
> > -		dm_pci_write_config16(dev, PCI_PREF_MEMORY_BASE, 0x1000 |
> > +		dm_pci_write_config16(dev, PCI_PREF_MEMORY_BASE, 0xfff0 |
> >   								prefechable_64);
> 
> Again, does it make sense to add / use a macro for this 0xfff0 above?

This is again setting all range bits in this register to ones. So
(~0 & PCI_PREF_RANGE_MASK) or (0xffff & PCI_PREF_RANGE_MASK).

> Other than this:
> 
> Reviewed-by: Stefan Roese <sr at denx.de>
> 
> Thanks,
> Stefan
> 
> 
> >   		dm_pci_write_config16(dev, PCI_PREF_MEMORY_LIMIT, 0x0 |
> >   								prefechable_64);

And then 0x0 here can be expressed similarly via that macro by:
(0x0 & PCI_PREF_RANGE_MASK)

It is verbose, but would follow style if want to use macros for values.

> > 
> 
> Viele Grüße,
> Stefan Roese
> 
> -- 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list