]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4/ArmPlatform.h
ArmPlatformPkg: Add support for PL111 Lcd driver
[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
55#define ARM_VE_DRAM_BASE 0x60000000\r
56#define ARM_VE_DRAM_SZ 0x40000000\r
7d0f2f23 57// Inside the DRAM we allocate a section for the VRAM (Video RAM)\r
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
7d0f2f23 101/***********************************************************************************\r
102 Select between Motherboard and Core Tile peripherals\r
103************************************************************************************/\r
104\r
105// Specify which PL111 to use\r
106//#define PL111_CLCD_BASE PL111_CLCD_MOTHERBOARD_BASE\r
107#define PL111_CLCD_BASE PL111_CLCD_CORE_TILE_BASE\r
108\r
76bc1743 109/***********************************************************************************\r
110 Peripherals' misc settings\r
111************************************************************************************/\r
1d5d0ae9 112\r
113#define ARM_VE_CFGRW1_TZASC_EN_BIT_MASK 0x2000\r
114#define ARM_VE_CFGRW1_REMAP_NOR0 0\r
115#define ARM_VE_CFGRW1_REMAP_NOR1 (1 << 28)\r
116#define ARM_VE_CFGRW1_REMAP_EXT_AXI (1 << 29)\r
117#define ARM_VE_CFGRW1_REMAP_DRAM (1 << 30)\r
118\r
76bc1743 119// TZASC - Other settings\r
1d5d0ae9 120#define ARM_VE_DECPROT_BIT_TZPC (1 << 6)\r
121#define ARM_VE_DECPROT_BIT_DMC_TZASC (1 << 11)\r
122#define ARM_VE_DECPROT_BIT_NMC_TZASC (1 << 12)\r
123#define ARM_VE_DECPROT_BIT_SMC_TZASC (1 << 13)\r
124#define ARM_VE_DECPROT_BIT_EXT_MAST_TZ (1)\r
125#define ARM_VE_DECPROT_BIT_DMC_TZASC_LOCK (1 << 3)\r
126#define ARM_VE_DECPROT_BIT_NMC_TZASC_LOCK (1 << 4)\r
127#define ARM_VE_DECPROT_BIT_SMC_TZASC_LOCK (1 << 5)\r
128\r
1d5d0ae9 129\r
7d0f2f23 130// PL111 Lcd\r
131#define PL111_CLCD_CORE_TILE_VIDEO_MODE_OSC_ID 1\r
132\r
76bc1743 133/***********************************************************************************\r
1d5d0ae9 134// Interrupt Map\r
76bc1743 135************************************************************************************/\r
1d5d0ae9 136\r
137// Timer Interrupts\r
76bc1743 138#define TIMER01_INTERRUPT_NUM 34\r
139#define TIMER23_INTERRUPT_NUM 35\r
1d5d0ae9 140\r
141\r
76bc1743 142/***********************************************************************************\r
1d5d0ae9 143// EFI Memory Map in Permanent Memory (DRAM)\r
76bc1743 144************************************************************************************/\r
1d5d0ae9 145\r
146// This region is allocated at the bottom of the DRAM. It will be used\r
147// for fixed address allocations such as Vector Table\r
148#define ARM_VE_EFI_FIX_ADDRESS_REGION_SZ SIZE_8MB\r
149\r
150// This region is the memory declared to PEI as permanent memory for PEI\r
151// and DXE. EFI stacks and heaps will be declared in this region.\r
76bc1743 152#define ARM_VE_EFI_MEMORY_REGION_SZ SIZE_256MB\r
1d5d0ae9 153\r
76bc1743 154#endif\r