]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h
ArmPlatformPkg/ArmJunoPkg/AcpiTables: Updated with new ACPI 5.1 Tables & Definitions
[mirror_edk2.git] / ArmPlatformPkg / ArmJunoPkg / Include / ArmPlatform.h
1 /** @file
2 *
3 * Copyright (c) 2013-2014, ARM Limited. All rights reserved.
4 *
5 * This program and the accompanying materials
6 * are licensed and made available under the terms and conditions of the BSD License
7 * which accompanies this distribution. The full text of the license may be found at
8 * http://opensource.org/licenses/bsd-license.php
9 *
10 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 *
13 **/
14
15 #ifndef __ARM_JUNO_H__
16 #define __ARM_JUNO_H__
17
18 #include <VExpressMotherBoard.h>
19
20 /***********************************************************************************
21 // Platform Memory Map
22 ************************************************************************************/
23
24 // Motherboard Peripheral and On-chip peripheral
25 #define ARM_VE_BOARD_PERIPH_BASE 0x1C010000
26
27 // NOR Flash 0
28 #define ARM_VE_SMB_NOR0_BASE 0x08000000
29 #define ARM_VE_SMB_NOR0_SZ SIZE_64MB
30
31 // Off-Chip peripherals (USB, Ethernet, VRAM)
32 #define ARM_VE_SMB_PERIPH_BASE 0x18000000
33 #define ARM_VE_SMB_PERIPH_SZ (SIZE_64MB + SIZE_2MB)
34
35 // On-Chip non-secure ROM
36 #define ARM_JUNO_NON_SECURE_ROM_BASE 0x1F000000
37 #define ARM_JUNO_NON_SECURE_ROM_SZ SIZE_16MB
38
39 // On-Chip Peripherals
40 #define ARM_JUNO_PERIPHERALS_BASE 0x20000000
41 #define ARM_JUNO_PERIPHERALS_SZ 0x0E000000
42
43 // On-Chip non-secure SRAM
44 #define ARM_JUNO_NON_SECURE_SRAM_BASE 0x2E000000
45 #define ARM_JUNO_NON_SECURE_SRAM_SZ SIZE_16MB
46
47 // SOC peripherals (HDLCD, UART, I2C, I2S, USB, SMC-PL354, etc)
48 #define ARM_JUNO_SOC_PERIPHERALS_BASE 0x7FF50000
49 #define ARM_JUNO_SOC_PERIPHERALS_SZ (SIZE_64KB * 9)
50
51 // 6GB of DRAM from the 64bit address space
52 #define ARM_JUNO_EXTRA_SYSTEM_MEMORY_BASE 0x0880000000
53 #define ARM_JUNO_EXTRA_SYSTEM_MEMORY_SZ (SIZE_2GB + SIZE_4GB)
54
55 //
56 // ACPI table information used to initialize tables.
57 //
58 #define EFI_ACPI_ARM_OEM_ID 'A','R','M','L','T','D' // OEMID 6 bytes long
59 #define EFI_ACPI_ARM_OEM_TABLE_ID SIGNATURE_64('A','R','M','-','J','U','N','O') // OEM table id 8 bytes long
60 #define EFI_ACPI_ARM_OEM_REVISION 0x20140727
61 #define EFI_ACPI_ARM_CREATOR_ID SIGNATURE_32('A','R','M',' ')
62 #define EFI_ACPI_ARM_CREATOR_REVISION 0x00000099
63
64 // A macro to initialise the common header part of EFI ACPI tables as defined by
65 // EFI_ACPI_DESCRIPTION_HEADER structure.
66 #define ARM_ACPI_HEADER(Signature, Type, Revision) { \
67 Signature, /* UINT32 Signature */ \
68 sizeof (Type), /* UINT32 Length */ \
69 Revision, /* UINT8 Revision */ \
70 0, /* UINT8 Checksum */ \
71 { EFI_ACPI_ARM_OEM_ID }, /* UINT8 OemId[6] */ \
72 EFI_ACPI_ARM_OEM_TABLE_ID, /* UINT64 OemTableId */ \
73 EFI_ACPI_ARM_OEM_REVISION, /* UINT32 OemRevision */ \
74 EFI_ACPI_ARM_CREATOR_ID, /* UINT32 CreatorId */ \
75 EFI_ACPI_ARM_CREATOR_REVISION /* UINT32 CreatorRevision */ \
76 }
77
78 #define JUNO_WATCHDOG_COUNT 2
79
80 // Define if the exported ACPI Tables are based on ACPI 5.0 spec or latest
81 //#define ARM_JUNO_ACPI_5_0
82
83 #endif