]> git.ipfire.org Git - people/ms/u-boot.git/blob - arch/arm/mach-rmobile/memmap-gen3.c
eeeb270568e3e96ee6a78a1c36e322487ec02a8d
[people/ms/u-boot.git] / arch / arm / mach-rmobile / memmap-gen3.c
1 /*
2 * Renesas RCar Gen3 memory map tables
3 *
4 * Copyright (C) 2017 Marek Vasut <marek.vasut@gmail.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0+
7 */
8
9 #include <common.h>
10 #include <asm/armv8/mmu.h>
11
12 static struct mm_region r8a7795_mem_map[] = {
13 {
14 .virt = 0x0UL,
15 .phys = 0x0UL,
16 .size = 0x80000000UL,
17 .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
18 PTE_BLOCK_INNER_SHARE
19 }, {
20 .virt = 0x80000000UL,
21 .phys = 0x80000000UL,
22 .size = 0x80000000UL,
23 .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
24 PTE_BLOCK_NON_SHARE |
25 PTE_BLOCK_PXN | PTE_BLOCK_UXN
26 }, {
27 /* List terminator */
28 0,
29 }
30 };
31
32 static struct mm_region r8a7796_mem_map[] = {
33 {
34 .virt = 0x0UL,
35 .phys = 0x0UL,
36 .size = 0xe0000000UL,
37 .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
38 PTE_BLOCK_INNER_SHARE
39 }, {
40 .virt = 0xe0000000UL,
41 .phys = 0xe0000000UL,
42 .size = 0xe0000000UL,
43 .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
44 PTE_BLOCK_NON_SHARE |
45 PTE_BLOCK_PXN | PTE_BLOCK_UXN
46 }, {
47 /* List terminator */
48 0,
49 }
50 };
51
52 static struct mm_region r8a77970_mem_map[] = {
53 {
54 .virt = 0x0UL,
55 .phys = 0x0UL,
56 .size = 0xe0000000UL,
57 .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
58 PTE_BLOCK_INNER_SHARE
59 }, {
60 .virt = 0xe0000000UL,
61 .phys = 0xe0000000UL,
62 .size = 0xe0000000UL,
63 .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
64 PTE_BLOCK_NON_SHARE |
65 PTE_BLOCK_PXN | PTE_BLOCK_UXN
66 }, {
67 /* List terminator */
68 0,
69 }
70 };
71
72 struct mm_region *mem_map = r8a7795_mem_map;
73
74 void rcar_gen3_memmap_fixup(void)
75 {
76 u32 cpu_type = rmobile_get_cpu_type();
77
78 switch (cpu_type) {
79 case RMOBILE_CPU_TYPE_R8A7795:
80 mem_map = r8a7795_mem_map;
81 break;
82 case RMOBILE_CPU_TYPE_R8A7796:
83 mem_map = r8a7796_mem_map;
84 break;
85 case RMOBILE_CPU_TYPE_R8A77970:
86 mem_map = r8a77970_mem_map;
87 break;
88 }
89 }