/*++ | |
Copyright (c) 2010, Apple Inc. All rights reserved.<BR> | |
This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
--*/ | |
#ifndef __ARM_EB_H__ | |
#define __ARM_EB_H__ | |
#include <ArmEb/ArmEbUart.h> | |
#include <ArmEb/ArmEbTimer.h> | |
/// | |
/// ARM EB Memory Map | |
/// | |
// 0x00000000 - 0x0FFFFFFF SDRAM 256MB | |
// 0x10000000 - 0x100FFFFF System FPGA (config registers) 1MB | |
// 0x100000000x10000FFF 4KB System registers | |
// 0x100010000x10001FFF 4KB System controller | |
// 0x100020000x10002FFF 4KB Two-Wire Serial Bus Interface | |
// 0x100030000x10003FFF 4KB Reserved | |
// 0x100040000x10004FFF 4KB Advanced Audio CODEC Interface | |
// 0x100050000x10005FFF 4KB MultiMedia Card Interface (MCI) | |
// 0x100060000x10006FFF 4KB Keyboard/Mouse Interface 0 | |
// 0x100070000x10007FFF 4KB Keyboard/Mouse Interface 1 | |
// 0x100080000x10008FFF 4KB Character LCD Interface | |
// 0x100090000x10009FFF 4KB UART 0 Interface | |
// 0x1000A0000x1000AFFF 4KB UART 1 Interface | |
// 0x1000B0000x1000BFFF 4KB UART 2 Interface | |
// 0x1000C0000x1000CFFF 4KB UART 3 Interface | |
// 0x1000D0000x1000DFFF 4KB Synchronous Serial Port Interface | |
// 0x1000E0000x1000EFFF 4KB Smart Card Interface | |
// 0x1000F0000x1000FFFF 4KB Reserved | |
// 0x100100000x10010FFF 4KB Watchdog Interface | |
// 0x100110000x10011FFF 4KB Timer modules 0 and 1 interface (Timer 1 starts at 0x10011020) | |
// 0x100120000x10012FFF 4KB Timer modules 2 and 3 interface (Timer 3 starts at 0x10012020) | |
// 0x100130000x10013FFF 4KB GPIO Interface 0 | |
// 0x100140000x10014FFF 4KB GPIO Interface 1 | |
// 0x100150000x10015FFF 4KB GPIO Interface 2 (miscellaneous onboard I/O) | |
// 0x100160000x10016FFF 4KB Reserved | |
// 0x100170000x10017FFF 4KB Real Time Clock Interface | |
// 0x100180000x10018FFF 4KB Dynamic Memory Controller configuration | |
// 0x100190000x10019FFF 4KB PCI controller configuration registers | |
// 0x1001A0000x1001FFFF 24KB Reserved | |
// 0x100200000x1002FFFF 64KB Color LCD Controller | |
// 0x100300000x1003FFFF 64KB DMA Controller configuration registers | |
// 0x100400000x1004FFFF 64KB Generic Interrupt Controller 1 (nIRQ for tile 1) | |
// 0x100500000x1005FFFF 64KB Generic Interrupt Controller 2 (nFIQ for tile 1) | |
// 0x100600000x1006FFFF 64KB Generic Interrupt Controller 3 (nIRQ for tile 2) | |
// 0x100700000x1007FFFF 64KB Generic Interrupt Controller 4 (nFIQ for tile 2) | |
// 0x100800000x1008FFFF 64KB Static Memory Controller configuration registers | |
// 0x100A00000x100EFFFF 448MB Reserved | |
// 0x100900000x100FFFFF 64KB Debug Access Port (DAP) | |
// 0x10100000 - 0x100FFFFF Reserved 3MB | |
// 0x10400000 - 0x17FFFFFF System FPGA 124MB | |
// 0x18000000 - 0x1FFFFFFF Logic Tile 1 128MB | |
// 0x20000000 - 0x3FFFFFFF Reserved 512MB | |
// 0x40000000 - 0x7FFFFFFF System FPGA 1GB | |
// 0x400000000x43FFFFFF CS0 NOR flash (nNOR_CS1) | |
// 0x440000000x47FFFFFF CS1 NOR flash (nNOR_CS2) | |
// 0x480000000x4BFFFFFF CS2 SRAM (nSRAMCS) | |
// 0x4C0000000x4DFFFFFF CS3 Config flash | |
// 0x4E0000000x4EFFFFFF Ethernet | |
// 0x4F0000000x4FFFFFFF USB | |
// 0x500000000x53FFFFFF CS4 (nEXPCS) PISMO (nCS0) | |
// 0x540000000x57FFFFFF CS5 (nSTATICCS4) PISMO (nCS1) | |
// 0x580000000x5BFFFFFF CS6 (nSTATICCS5) PISMO (nCS2) | |
// 0x5C0000000x5FFFFFFF CS7 (nSTATICCS6) PISMO (nCS3) | |
// 0x610000000x61FFFFFF PCI SelfCfg window | |
// 0x620000000x62FFFFFF PCI Cfg window | |
// 0x630000000x63FFFFFF PCI I/O window | |
// 0x640000000x67FFFFFF PCI memory window 0 | |
// 0x680000000x6BFFFFFF PCI memory window 1 | |
// 0x6C0000000x6FFFFFFF PCI memory window 2 | |
// 0x70000000 - 0x7FFFFFFF DRAM Mirror | |
// 0x80000000 - 0xFFFFFFFF Logic Tile site 2 2GB | |
// | |
// At reset EB_DRAM_BASE is alaised to EB_CS0_NOR_BASE | |
// | |
#define EB_DRAM_BASE 0x00000000 // 256 MB DRAM | |
#define EB_CONFIG_BASE 0x10000000 | |
#define EB_CSO_NOR_BASE 0x40000000 // 64 MB NOR FLASH | |
#define EB_CS1_NOR_BASE 0x44000000 // 64 MB NOR FLASH | |
#define EB_CS2_SRAM 0x48000000 // 2 MB of SRAM | |
#define EB_CS3_CONFIG_FLASH 0x4c000000 // 8 MB Config FLASH for FPGA. Not to be used by application code | |
#define EB_CS3_ETHERNET 0x4e000000 // 16 MB Ethernet controller | |
#define EB_CS4_PISMO_CS0 0x50000000 // Expansion CS0 | |
#define EB_CS5_PISMO_CS0 0x54000000 // Expansion CS0 | |
#define EB_CS6_PISMO_CS0 0x58000000 // Expansion CS0 | |
#define EB_DRAM_REMAP_BASE 0x70000000 // if REMAPSTAT is HIGH alais of EB_DRAM_BASE | |
#endif |