vexpress64: Juno: Change PCI buss addresses for IO to start from zero.
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
@@ -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
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
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! /
---------------
?\_(?)_/?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>
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
PATCH 1/1 vexpress64: Juno: Change PCI buss addresses for IO to start from zero.
In reply to Tom RiniQuoted 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
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.
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.
Signed-off-by Liviu Dudau <[email protected]>
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>