lkml.org 
[lkml]   [2009]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/29] microblaze_mmu_v2: io.h MMU update
    Date
    Signed-off-by: Michal Simek <monstr@monstr.eu>
    ---
    arch/microblaze/include/asm/io.h | 31 +++++++++++++++++++++++++++++++
    1 files changed, 31 insertions(+), 0 deletions(-)

    diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
    index 8b5853e..5c17342 100644
    --- a/arch/microblaze/include/asm/io.h
    +++ b/arch/microblaze/include/asm/io.h
    @@ -1,4 +1,6 @@
    /*
    + * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu>
    + * Copyright (C) 2007-2009 PetaLogix
    * Copyright (C) 2006 Atmark Techno, Inc.
    *
    * This file is subject to the terms and conditions of the GNU General Public
    @@ -12,6 +14,9 @@
    #include <asm/byteorder.h>
    #include <asm/page.h>
    #include <linux/types.h>
    +#include <asm/byteorder.h>
    +#include <linux/mm.h> /* Get struct page {...} */
    +

    #define IO_SPACE_LIMIT (0xFFFFFFFF)

    @@ -112,6 +117,30 @@ static inline void writel(unsigned int v, volatile void __iomem *addr)
    #define memcpy_fromio(a, b, c) memcpy((a), (void *)(b), (c))
    #define memcpy_toio(a, b, c) memcpy((void *)(a), (b), (c))

    +#ifdef CONFIG_MMU
    +
    +#define mm_ptov(addr) ((void *)__phys_to_virt(addr))
    +#define mm_vtop(addr) ((unsigned long)__virt_to_phys(addr))
    +#define phys_to_virt(addr) ((void *)__phys_to_virt(addr))
    +#define virt_to_phys(addr) ((unsigned long)__virt_to_phys(addr))
    +#define virt_to_bus(addr) ((unsigned long)__virt_to_phys(addr))
    +
    +#define __page_address(page) \
    + (PAGE_OFFSET + (((page) - mem_map) << PAGE_SHIFT))
    +#define page_to_phys(page) virt_to_phys((void *)__page_address(page))
    +#define page_to_bus(page) (page_to_phys(page))
    +#define bus_to_virt(addr) (phys_to_virt(addr))
    +
    +extern void iounmap(void *addr);
    +/*extern void *__ioremap(phys_addr_t address, unsigned long size,
    + unsigned long flags);*/
    +extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
    +#define ioremap_writethrough(addr, size) ioremap((addr), (size))
    +#define ioremap_nocache(addr, size) ioremap((addr), (size))
    +#define ioremap_fullcache(addr, size) ioremap((addr), (size))
    +
    +#else /* CONFIG_MMU */
    +
    /**
    * virt_to_phys - map virtual addresses to physical
    * @address: address to remap
    @@ -160,6 +189,8 @@ static inline void __iomem *__ioremap(phys_addr_t address, unsigned long size,
    #define iounmap(addr) ((void)0)
    #define ioremap_nocache(physaddr, size) ioremap(physaddr, size)

    +#endif /* CONFIG_MMU */
    +
    /*
    * Convert a physical pointer to a virtual kernel pointer for /dev/mem
    * access
    --
    1.5.5.1


    \
     
     \ /
      Last update: 2009-05-27 09:29    [W:3.156 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site