/* * Copyright (c) 2013 Linaro Limited * * All rights reserved. This program and the accompanying materials * are made available under the terms of the BSD License which accompanies * this distribution, and is available at * http://opensource.org/licenses/bsd-license.php * * Contributors: * Yi Li - yi.li@linaro.org */ #include #include "Pv660Platform.h" #define ACPI_6_1_MCFG_VERSION 0x1 #pragma pack(1) typedef struct { UINT64 ullBaseAddress; UINT16 usSegGroupNum; UINT8 ucStartBusNum; UINT8 ucEndBusNum; UINT32 Reserved2; }EFI_ACPI_6_1_MCFG_CONFIG_STRUCTURE; typedef struct { EFI_ACPI_DESCRIPTION_HEADER Header; UINT64 Reserved1; }EFI_ACPI_6_1_MCFG_TABLE_CONFIG; typedef struct { EFI_ACPI_6_1_MCFG_TABLE_CONFIG Acpi_Table_Mcfg; EFI_ACPI_6_1_MCFG_CONFIG_STRUCTURE Config_Structure[2]; }EFI_ACPI_6_1_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_TABLE; #pragma pack() EFI_ACPI_6_1_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_TABLE Mcfg= { { { EFI_ACPI_6_1_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE, sizeof (EFI_ACPI_6_1_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_TABLE), ACPI_6_1_MCFG_VERSION, 0x00, // Checksum will be updated at runtime {EFI_ACPI_ARM_OEM_ID}, EFI_ACPI_ARM_OEM_TABLE_ID, EFI_ACPI_ARM_OEM_REVISION, EFI_ACPI_ARM_CREATOR_ID, EFI_ACPI_ARM_CREATOR_REVISION }, 0x0000000000000000, //Reserved }, { { 0x0000022000000000, //Base Address 0x0001, //Segment Group Number 0x40, //Start Bus Number 0x7f, //End Bus Number 0x00000000, //Reserved }, { 0x0000024000000000, //Base Address 0x0002, //Segment Group Number 0x80, //Start Bus Number 0xbf, //End Bus Number 0x00000000, //Reserved }, } }; // // Reference the table being generated to prevent the optimizer from removing the // data structure from the executable // VOID* CONST ReferenceAcpiTable = &Mcfg;