[U-Boot] [PATCH 3/5] usb: ehci: Implement V2P mapping

Marek Vasut marex at denx.de
Fri Feb 26 19:44:23 CET 2016


On 02/26/2016 07:16 PM, Stephen Warren wrote:

Hi!

[...]

>> Tom reported this to me too, sorry :-(
>> 
>> Do you have an idea how to fix this too? I am now installing arm64
>>  toolchain.
> 
> I haven't looked at it yet. I've seen similar problems in the bast 
> handled by casting between integer types before casting to pointers 
> e.g. something like the following guess:
> 
> uint32_t pa; void *p = (void *)(uintptr_t)pa;

I just tried this, it should do the trick. Can you give it a spin ?

diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 8f259be..0113c6c 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -237,7 +237,7 @@ static int ehci_shutdown(struct ehci_ctrl *ctrl)
 static int ehci_td_buffer(struct qTD *td, void *buf, size_t sz)
 {
        uint32_t delta, next;
-       uint32_t addr = (unsigned long)buf;
+       unsigned long addr = (unsigned long)buf;
        int idx;

        if (addr != ALIGN(addr, ARCH_DMA_MINALIGN))

I am a bit worried about the u32 values all around the place. If the
buffer would be above 4GiB, we might have a problem.

>> Do you know about some nice arm64 board with USB for testing?
> 
> There's always the Jetson TX1; it is the p2371-2180 that I was 
> building above:
> 
> http://www.nvidia.com/object/jetson-tx1-dev-kit.html

If you have one you don't need ... ;-)

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list