sunxi: Use BROM stored boot_media value to determine our boot-source
[oweals/u-boot.git] / arch / arm / include / asm / types.h
index 71dc049da625e521674a6b0cd412283ecade7305..d108915ff5c1e1accc0f4d80be10921707dea667 100644 (file)
@@ -39,15 +39,37 @@ typedef unsigned int u32;
 typedef signed long long s64;
 typedef unsigned long long u64;
 
+#ifdef CONFIG_ARM64
+#define BITS_PER_LONG 64
+#else  /* CONFIG_ARM64 */
 #define BITS_PER_LONG 32
+#endif /* CONFIG_ARM64 */
 
-/* Dma addresses are 32-bits wide.  */
-
-typedef u32 dma_addr_t;
-
+#ifdef CONFIG_PHYS_64BIT
+typedef unsigned long long phys_addr_t;
+typedef unsigned long long phys_size_t;
+#else
+/* DMA addresses are 32-bits wide */
 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;
 #endif