Home | History | Annotate | Download | only in Include
      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 // PCIe MSI address window
     44 #define ARM_JUNO_GIV2M_MSI_BASE               0x2c1c0000
     45 #define ARM_JUNO_GIV2M_MSI_SZ                 SIZE_256KB
     46 
     47 // PCIe MSI to SPI mapping range
     48 #define ARM_JUNO_GIV2M_MSI_SPI_BASE           224
     49 #define ARM_JUNO_GIV2M_MSI_SPI_COUNT          127 //TRM says last SPI is 351, 351-224=127
     50 
     51 // On-Chip non-secure SRAM
     52 #define ARM_JUNO_NON_SECURE_SRAM_BASE         0x2E000000
     53 #define ARM_JUNO_NON_SECURE_SRAM_SZ           SIZE_16MB
     54 
     55 // SOC peripherals (HDLCD, UART, I2C, I2S, USB, SMC-PL354, etc)
     56 #define ARM_JUNO_SOC_PERIPHERALS_BASE         0x7FF50000
     57 #define ARM_JUNO_SOC_PERIPHERALS_SZ           (SIZE_64KB * 9)
     58 
     59 // 6GB of DRAM from the 64bit address space
     60 #define ARM_JUNO_EXTRA_SYSTEM_MEMORY_BASE     0x0880000000
     61 #define ARM_JUNO_EXTRA_SYSTEM_MEMORY_SZ       (SIZE_2GB + SIZE_4GB)
     62 
     63 //
     64 // ACPI table information used to initialize tables.
     65 //
     66 #define EFI_ACPI_ARM_OEM_ID           'A','R','M','L','T','D'   // OEMID 6 bytes long
     67 #define EFI_ACPI_ARM_OEM_TABLE_ID     SIGNATURE_64('A','R','M','-','J','U','N','O') // OEM table id 8 bytes long
     68 #define EFI_ACPI_ARM_OEM_REVISION     0x20140727
     69 #define EFI_ACPI_ARM_CREATOR_ID       SIGNATURE_32('A','R','M',' ')
     70 #define EFI_ACPI_ARM_CREATOR_REVISION 0x00000099
     71 
     72 // A macro to initialise the common header part of EFI ACPI tables as defined by
     73 // EFI_ACPI_DESCRIPTION_HEADER structure.
     74 #define ARM_ACPI_HEADER(Signature, Type, Revision) {              \
     75     Signature,                      /* UINT32  Signature */       \
     76     sizeof (Type),                  /* UINT32  Length */          \
     77     Revision,                       /* UINT8   Revision */        \
     78     0,                              /* UINT8   Checksum */        \
     79     { EFI_ACPI_ARM_OEM_ID },        /* UINT8   OemId[6] */        \
     80     EFI_ACPI_ARM_OEM_TABLE_ID,      /* UINT64  OemTableId */      \
     81     EFI_ACPI_ARM_OEM_REVISION,      /* UINT32  OemRevision */     \
     82     EFI_ACPI_ARM_CREATOR_ID,        /* UINT32  CreatorId */       \
     83     EFI_ACPI_ARM_CREATOR_REVISION   /* UINT32  CreatorRevision */ \
     84   }
     85 
     86 #define JUNO_WATCHDOG_COUNT  2
     87 
     88 // Define if the exported ACPI Tables are based on ACPI 5.0 spec or latest
     89 //#define ARM_JUNO_ACPI_5_0
     90 
     91 //
     92 // Address of the system registers that contain the MAC address
     93 // assigned to the PCI Gigabyte Ethernet device.
     94 //
     95 
     96 #define ARM_JUNO_SYS_PCIGBE_L  (ARM_VE_BOARD_PERIPH_BASE + 0x74)
     97 #define ARM_JUNO_SYS_PCIGBE_H  (ARM_VE_BOARD_PERIPH_BASE + 0x78)
     98 
     99 #endif
    100