]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h
ArmPkg: Move ARM Platform drivers from ArmPkg/Drivers/ to ArmPlatformPkg/Drivers/
[mirror_edk2.git] / ArmPlatformPkg / ArmVExpressPkg / Include / Platform / CTA9x4 / ArmPlatform.h
CommitLineData
1d5d0ae9 1/** @file\r
2* Header defining Versatile Express constants (Base addresses, sizes, flags)\r
3*\r
4* Copyright (c) 2011, ARM Limited. All rights reserved.\r
1d5d0ae9 5*\r
76bc1743 6* This program and the accompanying materials\r
7* are licensed and made available under the terms and conditions of the BSD License\r
8* which accompanies this distribution. The full text of the license may be found at\r
9* http://opensource.org/licenses/bsd-license.php\r
10*\r
11* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
1d5d0ae9 13*\r
14**/\r
15\r
16#ifndef __ARM_VEXPRESS_H__\r
17#define __ARM_VEXPRESS_H__\r
18\r
76bc1743 19#include <Base.h>\r
20#include <VExpressMotherBoard.h>\r
21\r
22/***********************************************************************************\r
1d5d0ae9 23// Platform Memory Map\r
76bc1743 24************************************************************************************/\r
1d5d0ae9 25\r
26// Can be NOR0, NOR1, DRAM\r
27#define ARM_VE_REMAP_BASE 0x00000000\r
76bc1743 28#define ARM_VE_REMAP_SZ SIZE_64MB\r
1d5d0ae9 29\r
30// Motherboard Peripheral and On-chip peripheral\r
31#define ARM_VE_SMB_MB_ON_CHIP_PERIPH_BASE 0x10000000\r
76bc1743 32#define ARM_VE_SMB_MB_ON_CHIP_PERIPH_SZ SIZE_256MB\r
1d5d0ae9 33#define ARM_VE_BOARD_PERIPH_BASE 0x10000000\r
34#define ARM_VE_CHIP_PERIPH_BASE 0x10020000\r
35\r
36// SMC\r
37#define ARM_VE_SMC_BASE 0x40000000\r
38#define ARM_VE_SMC_SZ 0x1C000000\r
39\r
40// NOR Flash 1\r
41#define ARM_VE_SMB_NOR0_BASE 0x40000000\r
76bc1743 42#define ARM_VE_SMB_NOR0_SZ SIZE_64MB\r
1d5d0ae9 43// NOR Flash 2\r
44#define ARM_VE_SMB_NOR1_BASE 0x44000000\r
76bc1743 45#define ARM_VE_SMB_NOR1_SZ SIZE_64MB\r
1d5d0ae9 46// SRAM\r
47#define ARM_VE_SMB_SRAM_BASE 0x48000000\r
76bc1743 48#define ARM_VE_SMB_SRAM_SZ SIZE_32MB\r
1d5d0ae9 49// USB, Ethernet, VRAM\r
50#define ARM_VE_SMB_PERIPH_BASE 0x4C000000\r
76bc1743 51#define PL111_CLCD_VRAM_MOTHERBOARD_BASE ARM_VE_SMB_PERIPH_BASE\r
52#define ARM_VE_SMB_PERIPH_SZ SIZE_64MB\r
1d5d0ae9 53\r
54// DRAM\r
5cc45b70 55#define ARM_VE_DRAM_BASE PcdGet32 (PcdSystemMemoryBase)\r
56#define ARM_VE_DRAM_SZ PcdGet32 (PcdSystemMemorySize)\r
7d0f2f23 57// Inside the DRAM we allocate a section for the VRAM (Video RAM)\r
5cc45b70 58#define LCD_VRAM_CORE_TILE_BASE 0x64000000\r
1d5d0ae9 59\r
60// External AXI between daughterboards (Logic Tile)\r
61#define ARM_VE_EXT_AXI_BASE 0xE0000000\r
76bc1743 62#define ARM_VE_EXT_AXI_SZ 0x20000000 /* 512 MB */\r
63\r
64\r
65/***********************************************************************************\r
66 Core Tile memory-mapped Peripherals\r
67************************************************************************************/\r
68\r
69// PL111 Colour LCD Controller - core tile\r
70#define PL111_CLCD_CORE_TILE_BASE (ARM_VE_BOARD_PERIPH_BASE + 0x20000)\r
71\r
72// PL341 Dynamic Memory Controller Base\r
73#define ARM_VE_DMC_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE0000)\r
74\r
75// PL354 Static Memory Controller Base\r
76#define ARM_VE_SMC_CTRL_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE1000)\r
1d5d0ae9 77\r
78// System Configuration Controller register Base addresses\r
76bc1743 79//#define ARM_VE_SYS_CFG_CTRL_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE2000)\r
80#define ARM_VE_SYS_CFGRW0_REG (ARM_VE_BOARD_PERIPH_BASE + 0xE2000)\r
81#define ARM_VE_SYS_CFGRW1_REG (ARM_VE_BOARD_PERIPH_BASE + 0xE2004)\r
82#define ARM_VE_SYS_CFGRW2_REG (ARM_VE_BOARD_PERIPH_BASE + 0xE2008)\r
83\r
84#define ARM_PLATFORM_SCC_BASE ARM_VE_SYS_CFGRW0_REG\r
85\r
86// SP805 Watchdog on Cortex A9 core tile\r
87#define SP805_WDOG_CORE_TILE_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE5000)\r
88\r
89// BP147 TZPC Base Address\r
90#define ARM_VE_TZPC_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE6000)\r
91\r
92// PL301 Fast AXI Base Address\r
93#define ARM_VE_FAXI_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xE9000)\r
94\r
95// TZASC Trust Zone Address Space Controller Base Address\r
96#define ARM_VE_TZASC_BASE (ARM_VE_BOARD_PERIPH_BASE + 0xEC000)\r
97\r
98// PL310 L2x0 Cache Controller Base Address\r
99//#define ARM_VE_L2x0_CTLR_BASE 0x1E00A000\r
100\r
101/***********************************************************************************\r
102 Peripherals' misc settings\r
103************************************************************************************/\r
1d5d0ae9 104\r
105#define ARM_VE_CFGRW1_TZASC_EN_BIT_MASK 0x2000\r
106#define ARM_VE_CFGRW1_REMAP_NOR0 0\r
107#define ARM_VE_CFGRW1_REMAP_NOR1 (1 << 28)\r
108#define ARM_VE_CFGRW1_REMAP_EXT_AXI (1 << 29)\r
109#define ARM_VE_CFGRW1_REMAP_DRAM (1 << 30)\r
110\r
76bc1743 111// TZASC - Other settings\r
1d5d0ae9 112#define ARM_VE_DECPROT_BIT_TZPC (1 << 6)\r
113#define ARM_VE_DECPROT_BIT_DMC_TZASC (1 << 11)\r
114#define ARM_VE_DECPROT_BIT_NMC_TZASC (1 << 12)\r
115#define ARM_VE_DECPROT_BIT_SMC_TZASC (1 << 13)\r
116#define ARM_VE_DECPROT_BIT_EXT_MAST_TZ (1)\r
117#define ARM_VE_DECPROT_BIT_DMC_TZASC_LOCK (1 << 3)\r
118#define ARM_VE_DECPROT_BIT_NMC_TZASC_LOCK (1 << 4)\r
119#define ARM_VE_DECPROT_BIT_SMC_TZASC_LOCK (1 << 5)\r
120\r
76bc1743 121/***********************************************************************************\r
1d5d0ae9 122// EFI Memory Map in Permanent Memory (DRAM)\r
76bc1743 123************************************************************************************/\r
1d5d0ae9 124\r
125// This region is allocated at the bottom of the DRAM. It will be used\r
126// for fixed address allocations such as Vector Table\r
127#define ARM_VE_EFI_FIX_ADDRESS_REGION_SZ SIZE_8MB\r
128\r
129// This region is the memory declared to PEI as permanent memory for PEI\r
130// and DXE. EFI stacks and heaps will be declared in this region.\r
76bc1743 131#define ARM_VE_EFI_MEMORY_REGION_SZ SIZE_256MB\r
1d5d0ae9 132\r
76bc1743 133#endif\r