Skip to contentSkip to conversation

vexpress64: Juno: Change PCI buss addresses for IO to start from zero.

PATCH In review Liviu Dudau 5 participants 8 messages Nov 22, 2016 – Nov 29, 2016 Arm/versatile express platform

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.

Juno uses a 1:1 mapping between CPU and PCI addresses for IO. First, that will trip devices that cannot use more than 16 bits of addresses for IO, second it is un-necessary as the system can handle zero-based PCI addresses just fine.

Change the mapping to start IO bus addresses from zero.

---
 board/armltd/vexpress64/pcie.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
board/armltd/vexpress64/pcie.c +1 -1
index b3fb09c..0608a5a 100644
@@ -123,7 +123,7 @@ void xr3pci_setup_atr(void)
 	base += XR3PCI_ATR_TABLE_SIZE;
 
 	/* setup IO space translation */
-	xr3pci_set_atr_entry(base, XR3_PCI_IOSPACE_START, XR3_PCI_IOSPACE_START,
+	xr3pci_set_atr_entry(base, XR3_PCI_IOSPACE_START, 0,
 			     XR3_PCI_IOSPACE_SIZE, XR3PCI_ATR_TRSLID_PCIE_IO);
 
 	base += XR3PCI_ATR_TABLE_SIZE;
Signature · 1 line
2.10.2
#1 lore raw

PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.

Hi Liviu,

Quoted 7 lines · Liviu Dudau

Juno uses a 1:1 mapping between CPU and PCI addresses for IO. First, that will trip devices that cannot use more than 16 bits of addresses for IO, second it is un-necessary as the system can handle zero-based PCI addresses just fine.

Change the mapping to start IO bus addresses from zero.

I assume this require corresponding DT change, shout if that's not true. If that's true, then does this patch not require patching of DT so that systems not
running Uboot with this patch continue to work and we retain the mainline DT as is ?

--
Regards,
Sudeep

#2 lore raw

PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.

Quoted 8 lines · Sudeep Holla

Hi Liviu,

Quoted 5 lines · Liviu Dudau

Juno uses a 1:1 mapping between CPU and PCI addresses for IO. First, that will trip devices that cannot use more than 16 bits of addresses for IO, second it is un-necessary as the system can handle zero-based PCI addresses just fine.

Quoted 8 lines
Quoted 2 lines

Change the mapping to start IO bus addresses from zero.

I assume this require corresponding DT change, shout if that's not true. If that's true, then does this patch not require patching of DT so that systems not
running Uboot with this patch continue to work and we retain the mainline DT as is ?

Yes, it does require DT changes, Jeremy Linton has a patch

Quoted 4 lines

--
Regards,
Sudeep

Signature · 8 lines
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ?\_(?)_/?
#3 lore raw

PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.

Quoted 12 lines · Liviu Dudau
Quoted 11 lines · Sudeep Holla

Hi Liviu,

Quoted 7 lines · Liviu Dudau

Juno uses a 1:1 mapping between CPU and PCI addresses for IO. First, that will trip devices that cannot use more than 16 bits of addresses for IO, second it is un-necessary as the system can handle zero-based PCI addresses just fine.

Change the mapping to start IO bus addresses from zero.

Quoted 7 lines
Quoted 5 lines

I assume this require corresponding DT change, shout if that's not true. If that's true, then does this patch not require patching of DT so that systems not
running Uboot with this patch continue to work and we retain the mainline DT as is ?

Yes, it does require DT changes, Jeremy Linton has a patch

So to be clear, what level of coordination do we need between the two parts being merged? It would not be ideal to have combinations of U-Boot and Linux not work. Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161122/5b02da57/attachment.sig>
#4 lore raw

PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.

Quoted 19 lines · Tom Rini
Quoted 18 lines · Liviu Dudau
Quoted 16 lines · Sudeep Holla

Hi Liviu,

Quoted 7 lines · Liviu Dudau

Juno uses a 1:1 mapping between CPU and PCI addresses for IO. First, that will trip devices that cannot use more than 16 bits of addresses for IO, second it is un-necessary as the system can handle zero-based PCI addresses just fine.

Change the mapping to start IO bus addresses from zero.

I assume this require corresponding DT change, shout if that's not true. If that's true, then does this patch not require patching of DT so that systems not
running Uboot with this patch continue to work and we retain the mainline DT as is ?

Quoted 6 lines
Quoted 1 line

Yes, it does require DT changes, Jeremy Linton has a patch

So to be clear, what level of coordination do we need between the two parts being merged? It would not be ideal to have combinations of U-Boot and Linux not work. Thanks!

I was wondering that too.

However, I just tested the patch in my setup and everything still seems to work for me. I'll admit though that I only use the PCIe network port, I don't have any extra PCIe devices and don't use SATA drives in my setup.

Quoted 8 lines

--
Tom

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#5 lore raw

PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.

In reply to Tom Rini
Quoted 19 lines · Tom Rini
Quoted 18 lines · Liviu Dudau
Quoted 16 lines · Sudeep Holla

Hi Liviu,

Quoted 7 lines · Liviu Dudau

Juno uses a 1:1 mapping between CPU and PCI addresses for IO. First, that will trip devices that cannot use more than 16 bits of addresses for IO, second it is un-necessary as the system can handle zero-based PCI addresses just fine.

Change the mapping to start IO bus addresses from zero.

I assume this require corresponding DT change, shout if that's not true. If that's true, then does this patch not require patching of DT so that systems not
running Uboot with this patch continue to work and we retain the mainline DT as is ?

Quoted 6 lines
Quoted 1 line

Yes, it does require DT changes, Jeremy Linton has a patch

So to be clear, what level of coordination do we need between the two parts being merged? It would not be ideal to have combinations of U-Boot and Linux not work. Thanks!

What I had in mind is U-Boot modifying/fixing up the DT to adapt to this change so that we maintain compatibility and don't break anything. But I was not sure how feasible is that solution with other bootloaders like UEFI.

Signature · 2 lines
Regards,
Sudeep
#6 lore raw

PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.


|-----Original Message-----
|From: Sudeep Holla [mailto:sudeep.holla at arm.com]
|Sent: Tuesday, November 22, 2016 10:11 AM
|To: Tom Rini; Liviu Dudau
|Cc: Sudeep Holla; Lorenzo Pieralisi; Jeremy Linton; U-Boot ML
|Subject: Re: [U-Boot] [PATCH] vexpress64: Juno: Change PCI buss addresses
|for IO to start from zero.
|
|
|
|On 22/11/16 15:08, Tom Rini wrote:
|> On Tue, Nov 22, 2016 at 12:08:49PM +0000, Liviu Dudau wrote:
|>> On Tue, Nov 22, 2016 at 11:29:20AM +0000, Sudeep Holla wrote:
|>>> Hi Liviu,
|>>>
|>>> On Tue, Nov 22, 2016 at 11:19 AM, Liviu Dudau
|<[email protected]> wrote:
|>>>> Juno uses a 1:1 mapping between CPU and PCI addresses for IO.
|>>>> First, that will trip devices that cannot use more than 16 bits of
|>>>> addresses for IO, second it is un-necessary as the system can
|>>>> handle zero-based PCI addresses just fine.
|>>>>
|>>>> Change the mapping to start IO bus addresses from zero.
|>>>>
|>>>
|>>> I assume this require corresponding DT change, shout if that's not true.
|>>> If that's true, then does this patch not require patching of DT so
|>>> that systems not running Uboot with this patch continue to work and
|>>> we retain the mainline DT as is ?
|>>
|>> Yes, it does require DT changes, Jeremy Linton has a patch
|>
|> So to be clear, what level of coordination do we need between the two
|> parts being merged?  It would not be ideal to have combinations of
|> U-Boot and Linux not work.  Thanks!
|>
|
|What I had in mind is U-Boot modifying/fixing up the DT to adapt to this
|change so that we maintain compatibility and don't break anything. But I was
|not sure how feasible is that solution with other bootloaders like UEFI.

Hi,

UEFI already has the 0 based PIO in place, so in theory its broken with the current DT.

Put another way, I suspect that there are few (if any) juno's running out there, making use of PCIe PIO. Most of the boards people are likely to plug into the machine don't use PIO.

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

#7 lore raw
In reply to Liviu Dudau
Quoted 8 lines · Liviu Dudau

Juno uses a 1:1 mapping between CPU and PCI addresses for IO. First, that will trip devices that cannot use more than 16 bits of addresses for IO, second it is un-necessary as the system can handle zero-based PCI addresses just fine.

Change the mapping to start IO bus addresses from zero.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161129/e3cf97f2/attachment.sig>