[PATCH v2] MIPS: add virt_to_phys() and phys_to_virt()

2017-08-11 Thread Oleksij Rempel
From: Antony Pavlov 

Signed-off-by: Antony Pavlov 
Signed-off-by: Peter Mamonov 
Signed-off-by: Oleksij Rempel 
---
changes.
v2:
 - make use of use CPHYSADDR and CKSEG0ADDR

 arch/mips/include/asm/io.h | 35 +++
 1 file changed, 35 insertions(+)

diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 4bee5913a..d4eb623c3 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -12,11 +12,46 @@
 
 #include 
 #include 
+#include 
 #include 
 
 void dma_flush_range(unsigned long, unsigned long);
 void dma_inv_range(unsigned long, unsigned long);
 
+/*
+ * virt_to_phys-   map virtual addresses to physical
+ * @address: address to remap
+ *
+ * The returned physical address is the physical (CPU) mapping for
+ * the memory address given. It is only valid to use this function on
+ * addresses directly mapped or allocated via kmalloc.
+ *
+ * This function does not give bus mappings for DMA transfers. In
+ * almost all conceivable cases a device driver should not be using
+ * this function
+ */
+static inline unsigned long virt_to_phys(const void *address)
+{
+   return (unsigned long)CPHYSADDR(address);
+}
+
+/*
+ * phys_to_virt-   map physical address to virtual
+ * @address: address to remap
+ *
+ * The returned virtual address is a current CPU mapping for
+ * the memory address given. It is only valid to use this function on
+ * addresses that have a kernel mapping
+ *
+ * This function does not handle bus mappings for DMA transfers. In
+ * almost all conceivable cases a device driver should not be using
+ * this function
+ */
+static inline void *phys_to_virt(unsigned long address)
+{
+   return (void *)CKSEG0ADDR(address);
+}
+
 #defineIO_SPACE_LIMIT  0
 
 /*/
-- 
2.11.0


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH v3] MIPS: add virt_to_phys() and phys_to_virt()

2017-08-11 Thread Oleksij Rempel
From: Antony Pavlov 

Signed-off-by: Antony Pavlov 
Signed-off-by: Peter Mamonov 
Signed-off-by: Oleksij Rempel 
---
changes.
v3:
 - remove some comments.

v2:
 - make use of use CPHYSADDR and CKSEG0ADDR

 arch/mips/include/asm/io.h | 25 +
 1 file changed, 25 insertions(+)

diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 4bee5913a..5a4cbf564 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -12,11 +12,36 @@
 
 #include 
 #include 
+#include 
 #include 
 
 void dma_flush_range(unsigned long, unsigned long);
 void dma_inv_range(unsigned long, unsigned long);
 
+/*
+ * virt_to_phys - map virtual addresses to physical
+ * @address: address to remap
+ *
+ * The returned physical address is the physical (CPU) mapping for
+ * the memory address given.
+ */
+static inline unsigned long virt_to_phys(const void *address)
+{
+   return (unsigned long)CPHYSADDR(address);
+}
+
+/*
+ * phys_to_virt - map physical address to virtual
+ * @address: address to remap
+ *
+ * The returned virtual address is a current CPU mapping for
+ * the memory address given.
+ */
+static inline void *phys_to_virt(unsigned long address)
+{
+   return (void *)CKSEG0ADDR(address);
+}
+
 #defineIO_SPACE_LIMIT  0
 
 /*/
-- 
2.11.0


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


Re: [PATCH v2] MIPS: add virt_to_phys() and phys_to_virt()

2017-08-11 Thread Lucas Stach
Am Freitag, den 11.08.2017, 15:55 +0200 schrieb Oleksij Rempel:
> From: Antony Pavlov 
> 
> Signed-off-by: Antony Pavlov 
> Signed-off-by: Peter Mamonov 
> Signed-off-by: Oleksij Rempel 
> ---
> changes.
> v2:
>  - make use of use CPHYSADDR and CKSEG0ADDR
> 
>  arch/mips/include/asm/io.h | 35 +++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
> index 4bee5913a..d4eb623c3 100644
> --- a/arch/mips/include/asm/io.h
> +++ b/arch/mips/include/asm/io.h
> @@ -12,11 +12,46 @@
>  
>  #include 
>  #include 
> +#include 
>  #include 
>  
>  void dma_flush_range(unsigned long, unsigned long);
>  void dma_inv_range(unsigned long, unsigned long);
>  
> +/*
> + * virt_to_phys-   map virtual addresses to physical
> + * @address: address to remap
> + *
> + * The returned physical address is the physical (CPU) mapping for
> + * the memory address given. It is only valid to use this function on
> + * addresses directly mapped or allocated via kmalloc.

The last sentence in this...

> + * This function does not give bus mappings for DMA transfers. In
> + * almost all conceivable cases a device driver should not be using
> + * this function
> + */
> +static inline unsigned long virt_to_phys(const void *address)
> +{
> + return (unsigned long)CPHYSADDR(address);
> +}
> +
> +/*
> + * phys_to_virt-   map physical address to virtual
> + * @address: address to remap
> + *
> + * The returned virtual address is a current CPU mapping for
> + * the memory address given. It is only valid to use this function on
> + * addresses that have a kernel mapping

... and this paragraph have no meaning Barebox at all.

> + * This function does not handle bus mappings for DMA transfers. In
> + * almost all conceivable cases a device driver should not be using
> + * this function
> + */
> +static inline void *phys_to_virt(unsigned long address)
> +{
> + return (void *)CKSEG0ADDR(address);
> +}
> +
>  #define  IO_SPACE_LIMIT  0
>  
>  
> /*/



___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox