Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-gemini/mm.c
10817 views
1
/*
2
* Static mappings for Gemini
3
*
4
* Copyright (C) 2001-2006 Storlink, Corp.
5
* Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2 of the License, or
10
* (at your option) any later version.
11
*/
12
#include <linux/mm.h>
13
#include <linux/init.h>
14
15
#include <asm/mach/map.h>
16
17
#include <mach/hardware.h>
18
19
/* Page table mapping for I/O region */
20
static struct map_desc gemini_io_desc[] __initdata = {
21
{
22
.virtual = IO_ADDRESS(GEMINI_GLOBAL_BASE),
23
.pfn =__phys_to_pfn(GEMINI_GLOBAL_BASE),
24
.length = SZ_512K,
25
.type = MT_DEVICE,
26
}, {
27
.virtual = IO_ADDRESS(GEMINI_UART_BASE),
28
.pfn = __phys_to_pfn(GEMINI_UART_BASE),
29
.length = SZ_512K,
30
.type = MT_DEVICE,
31
}, {
32
.virtual = IO_ADDRESS(GEMINI_TIMER_BASE),
33
.pfn = __phys_to_pfn(GEMINI_TIMER_BASE),
34
.length = SZ_512K,
35
.type = MT_DEVICE,
36
}, {
37
.virtual = IO_ADDRESS(GEMINI_INTERRUPT_BASE),
38
.pfn = __phys_to_pfn(GEMINI_INTERRUPT_BASE),
39
.length = SZ_512K,
40
.type = MT_DEVICE,
41
}, {
42
.virtual = IO_ADDRESS(GEMINI_POWER_CTRL_BASE),
43
.pfn = __phys_to_pfn(GEMINI_POWER_CTRL_BASE),
44
.length = SZ_512K,
45
.type = MT_DEVICE,
46
}, {
47
.virtual = IO_ADDRESS(GEMINI_GPIO_BASE(0)),
48
.pfn = __phys_to_pfn(GEMINI_GPIO_BASE(0)),
49
.length = SZ_512K,
50
.type = MT_DEVICE,
51
}, {
52
.virtual = IO_ADDRESS(GEMINI_GPIO_BASE(1)),
53
.pfn = __phys_to_pfn(GEMINI_GPIO_BASE(1)),
54
.length = SZ_512K,
55
.type = MT_DEVICE,
56
}, {
57
.virtual = IO_ADDRESS(GEMINI_GPIO_BASE(2)),
58
.pfn = __phys_to_pfn(GEMINI_GPIO_BASE(2)),
59
.length = SZ_512K,
60
.type = MT_DEVICE,
61
}, {
62
.virtual = IO_ADDRESS(GEMINI_FLASH_CTRL_BASE),
63
.pfn = __phys_to_pfn(GEMINI_FLASH_CTRL_BASE),
64
.length = SZ_512K,
65
.type = MT_DEVICE,
66
}, {
67
.virtual = IO_ADDRESS(GEMINI_DRAM_CTRL_BASE),
68
.pfn = __phys_to_pfn(GEMINI_DRAM_CTRL_BASE),
69
.length = SZ_512K,
70
.type = MT_DEVICE,
71
}, {
72
.virtual = IO_ADDRESS(GEMINI_GENERAL_DMA_BASE),
73
.pfn = __phys_to_pfn(GEMINI_GENERAL_DMA_BASE),
74
.length = SZ_512K,
75
.type = MT_DEVICE,
76
},
77
};
78
79
void __init gemini_map_io(void)
80
{
81
iotable_init(gemini_io_desc, ARRAY_SIZE(gemini_io_desc));
82
}
83
84