diff options
Diffstat (limited to 'package/boot/uboot-layerscape/patches/0016-ARM-asm-types-Introduce-DMA_ADDR_T_64BIT.patch')
-rw-r--r-- | package/boot/uboot-layerscape/patches/0016-ARM-asm-types-Introduce-DMA_ADDR_T_64BIT.patch | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/package/boot/uboot-layerscape/patches/0016-ARM-asm-types-Introduce-DMA_ADDR_T_64BIT.patch b/package/boot/uboot-layerscape/patches/0016-ARM-asm-types-Introduce-DMA_ADDR_T_64BIT.patch deleted file mode 100644 index 7f39efc017..0000000000 --- a/package/boot/uboot-layerscape/patches/0016-ARM-asm-types-Introduce-DMA_ADDR_T_64BIT.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 4aa3d79020aeca3780ea113a495d18662d593761 Mon Sep 17 00:00:00 2001 -From: Lokesh Vutla <lokeshvutla@ti.com> -Date: Thu, 24 Mar 2016 16:02:00 +0530 -Subject: [PATCH 16/93] ARM: asm: types: Introduce DMA_ADDR_T_64BIT - -dma_addr_t holds any valid DMA address. If the DMA API only uses 32-bit -addresses, dma_addr_t need only be 32 bits wide. Bus addresses, e.g., PCI BARs, -may be wider than 32 bits, but drivers do memory-mapped I/O to ioremapped -kernel virtual addresses, so they don't care about the size of the actual -bus addresses. -Also 32 bit ARM systems with LPAE enabled can use 64bit address space, but -DMA still use 32bit address like in case of DRA7 and Keystone platforms. - -This is inspired from the Linux kernel types implementation[1] - -[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/types.h#n142 - -Acked-by: Lukasz Majewski <l.majewski@samsung.com> -Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> -Reviewed-by: Tom Rini <trini@konsulko.com> -Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> ---- - arch/arm/Kconfig | 4 ++++ - arch/arm/include/asm/types.h | 17 +++++++++++++++-- - 2 files changed, 19 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 5c20801..b536684 100644 ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -7,6 +7,10 @@ config SYS_ARCH - config ARM64 - bool - -+config DMA_ADDR_T_64BIT -+ bool -+ default y if ARM64 -+ - config HAS_VBAR - bool - -diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h -index 388058e..d108915 100644 ---- a/arch/arm/include/asm/types.h -+++ b/arch/arm/include/asm/types.h -@@ -46,16 +46,29 @@ typedef unsigned long long u64; - #endif /* CONFIG_ARM64 */ - - #ifdef CONFIG_PHYS_64BIT --typedef unsigned long long dma_addr_t; - typedef unsigned long long phys_addr_t; - typedef unsigned long long phys_size_t; - #else - /* DMA addresses are 32-bits wide */ --typedef u32 dma_addr_t; - typedef unsigned long phys_addr_t; - typedef unsigned long phys_size_t; - #endif - -+/* -+ * A dma_addr_t can hold any valid DMA address, i.e., any address returned -+ * by the DMA API. -+ * -+ * If the DMA API only uses 32-bit addresses, dma_addr_t need only be 32 -+ * bits wide. Bus addresses, e.g., PCI BARs, may be wider than 32 bits, -+ * but drivers do memory-mapped I/O to ioremapped kernel virtual addresses, -+ * so they don't care about the size of the actual bus addresses. -+ */ -+#ifdef CONFIG_DMA_ADDR_T_64BIT -+typedef unsigned long long dma_addr_t; -+#else -+typedef u32 dma_addr_t; -+#endif -+ - #endif /* __KERNEL__ */ - - typedef unsigned long resource_size_t; --- -1.7.9.5 - |