1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/*
* Copyright (C) ST-Ericsson SA 2011
*
* Architecture configuration for ST-Ericsson Ux500 platforms
*
* Author: Magnus Wendt <magnus.wendt@stericsson.com> for
* ST-Ericsson.
* License terms: GNU General Public License (GPL) version 2.
*/
#ifndef __ARCH_UX500_CONFIG_H__
#define __ARCH_UX500_CONFIG_H__
/* #include <mach/hardware.h> */
#define U5500_SGA_BASE 0x801D0000
#define U8500_SGA_BASE 0xA0300000
#if defined(SOC_DB5500) && (1 == SOC_DB5500)
#define UX500_SGA_BASE U5500_SGA_BASE
#else
#define UX500_SGA_BASE U8500_SGA_BASE
#endif
#define MEGABYTE (1024*1024)
#define MALI_MEM_BASE (128 * MEGABYTE)
#define MALI_MEM_SIZE ( 32 * MEGABYTE)
#define OS_MEM_SIZE (128 * MEGABYTE)
/* Hardware revision u8500 v1: GX570-BU-00000-r0p1
* Hardware revision u8500 v2: GX570-BU-00000-r1p0
* Hardware revision u5500: GX570-BU-00000-r1p0
* configuration registers: 0xA0300000-0xA031FFFFF (stw8500v1_usermanual p269)
*
* Shared Peripheral Interrupt assignments: (stw8500v1_usermanual p265-266)
* Nb | Interrupt Source
* 116 | Mali400 combined
* 115 | Mali400 geometry processor
* 114 | Mali400 geometry processor MMU
* 113 | Mali400 pixel processor
* 112 | Mali400 pixel processor MMU
*
* irq offset: 32
*/
static _mali_osk_resource_t arch_configuration [] =
{
{
.type = MALI400GP,
.description = "Mali-400 GP",
.base = UX500_SGA_BASE + 0x0000,
.irq = 115+32,
.mmu_id = 1
},
{
.type = MALI400PP,
.base = UX500_SGA_BASE + 0x8000,
.irq = 113+32,
.description = "Mali-400 PP",
.mmu_id = 2
},
#if USING_MMU
{
.type = MMU,
.base = UX500_SGA_BASE + 0x3000,
.irq = 114+32,
.description = "Mali-400 MMU for GP",
.mmu_id = 1
},
{
.type = MMU,
.base = UX500_SGA_BASE + 0x4000,
.irq = 112+32,
.description = "Mali-400 MMU for PP",
.mmu_id = 2
},
#endif
{
.type = MEMORY,
.description = "Mali SDRAM",
.alloc_order = 0, /* Highest preference for this memory */
.base = MALI_MEM_BASE,
.size = MALI_MEM_SIZE,
.flags = _MALI_CPU_WRITEABLE | _MALI_CPU_READABLE | _MALI_PP_READABLE | _MALI_PP_WRITEABLE |_MALI_GP_READABLE | _MALI_GP_WRITEABLE
},
#if USING_OS_MEMORY
{
.type = OS_MEMORY,
.description = "Linux kernel memory",
.alloc_order = 5, /* Medium preference for this memory */
.size = OS_MEM_SIZE,
.flags = _MALI_CPU_WRITEABLE | _MALI_CPU_READABLE | _MALI_MMU_READABLE | _MALI_MMU_WRITEABLE
},
#endif
{
.type = MEM_VALIDATION,
.description = "Framebuffer",
.base = 0x00000000, /* Validate all memory for now */
.size = 2047 * MEGABYTE, /* "2GB ought to be enough for anyone" */
.flags = _MALI_CPU_WRITEABLE | _MALI_CPU_READABLE | _MALI_PP_WRITEABLE | _MALI_PP_READABLE
},
{
.type = MALI400L2,
.base = UX500_SGA_BASE + 0x1000,
.description = "Mali-400 L2 cache"
},
};
#endif /* __ARCH_UX500_CONFIG_H__ */
|