⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memorymap.h

📁 CIRRUS 公司EP93XX系列CPU的WINCE下的BSP
💻 H
字号:
//**********************************************************************
//                                                                      
// Filename: memorymap.h
//                                                                      
// Description: Memory map for the ep931x emulation and bringup board.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Use of this source code is subject to the terms of the Cirrus end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to 
// use this source code. For a copy of the EULA, please see the 
// EULA.RTF on your install media.
//
// Copyright(c) Cirrus Logic Corporation 2002, All Rights Reserved                       
//                                                                      
//**********************************************************************
#ifndef _H_MEMORYMAP
#define _H_MEMORYMAP

//************************************************************************
//  
// Board specific.  If a board uses different chip selects for different
// types of memory, modify the varaibles below.
//
//************************************************************************
//
// Default Chip Selects.  Assume asyncronous boot mode.
//
#define PHYSICAL_ADDR_SYNC_CS0              0xC0000000
#define PHYSICAL_ADDR_SYNC_CS1              0xD0000000
#define PHYSICAL_ADDR_SYNC_CS2              0xE0000000
#define PHYSICAL_ADDR_SYNC_CS3              0x00000000
#define PHYSICAL_ADDR_ASYNC_CS0             0xF0000000
#define PHYSICAL_ADDR_ASYNC_CS1             0x10000000
#define PHYSICAL_ADDR_ASYNC_CS2             0x20000000
#define PHYSICAL_ADDR_ASYNC_CS3             0x30000000
#define PHYSICAL_ADDR_ASYNC_CS6             0x60000000
#define PHYSICAL_ADDR_ASYNC_CS7             0x70000000
#define PHYSICAL_ADDR_PCMCIA1               0x40000000
#define PHYSICAL_ADDR_PCMCIA2               0x50000000
#define PHYSICAL_SYSTEM_ASIC_REG_BASE       0x80000000
 

//
// Conversion between chips selects and memory.
//
//
// For the emulation platform, memory is at CS0.
//
#define PHYSICAL_ADDR_SDRAM_MAIN            PHYSICAL_ADDR_SYNC_CS3
//#define PHYSICAL_ADDR_SDRAM_BUFFERED        PHYSICAL_ADDR_SYNC_CS1
#define PHYSICAL_ADDR_FLASH_INTEL           PHYSICAL_ADDR_ASYNC_CS6
//#define PHYSICAL_ADDR_FLASH_AMD             PHYSICAL_ADDR_ASYNC_CS1
#define PHYSICAL_ADDR_SRAM_16BIT            PHYSICAL_ADDR_ASYNC_CS2

//
// SDRAM is divided up into 8 blocks of 8 meg.  After each 8 Meg block is
// a blank area of memory.
//
#define SDRAM_MAIN_BLOCK_SIZE               0x2000000
#define SDRAM_MAIN_SIZE_BETWEEN_BLOCKS      0x2000000

#define SDRAM_BUFFERED_BLOCK_SIZE           0x800000
#define SDRAM_BUFFERED_BETWEEN_BLOCKS       0x1000000

//
// Size of the diffent memory blocks for the boards.
//
#define SIZE_SDRAM_MAIN                     0x04000000
#define SIZE_SDRAM_BUFFERED                 0x04000000
#define SIZE_FLASH_INTEL                    0x02000000
#define SIZE_FLASH_AMD                      0x01000000
#define SIZE_SRAM_16BIT                     0x00080000
#define SIZE_SYSTEM_ASIC_REG                0x01000000


//
// PCMCIA definitions.
//
#define PCMCIACARD_MEMORY_PHYSICAL      (PHYSICAL_ADDR_PCMCIA1 + 0x0C000000)
#define PCMCIACARD_IO_PHYSICAL          (PHYSICAL_ADDR_PCMCIA1 + 0x00000000)
#define PCMCIACARD_ATTRIBUTE_PHYSICAL   (PHYSICAL_ADDR_PCMCIA1 + 0x08000000)
#define PCMCIACARD_MEMORY_SIZE          0x400000
#define PCMCIACARD_IO_SIZE              0x400000
#define PCMCIACARD_ATTRIBUTE_SIZE       0x400000



//************************************************************************
// Physical to virtual address conversions.
//************************************************************************
//
// Be very careful not to have any of the memory overlap.
//
#ifdef PHYSICAL_EQUAL_VIRTUAL
#define SDRAM_VIRTUAL_MEMORY                PHYSICAL_ADDR_SDRAM_MAIN
#define FLASH_VIRTUAL_MEMORY                PHYSICAL_ADDR_FLASH_INTEL
#define SRAM_16BIT_VIRTUAL_MEMORY           PHYSICAL_ADDR_SRAM_16BIT
#define VIRTUAL_SYSTEM_ASIC_REGS_BASE       PHYSICAL_SYSTEM_ASIC_REG_BASE
#define SDRAM_UNCACHED_VIRTUAL_MEMORY       SDRAM_VIRTUAL_MEMORY
#define PCMCIACARD_BASE                     PHYSICAL_ADDR_PCMCIA1
#define PCMCIACARD_MEMORY                   PCMCIACARD_MEMORY_PHYSICAL
#define PCMCIACARD_IO                       PCMCIACARD_IO_PHYSICAL
#define PCMCIACARD_ATTRIBUTE                PCMCIACARD_ATTRIBUTE_PHYSICAL

#else // PHYSICAL_EQUAL_VIRTUAL
#define SDRAM_VIRTUAL_MEMORY                0x80000000
#define FLASH_VIRTUAL_MEMORY                0x88000000
#define SRAM_16BIT_VIRTUAL_MEMORY           0x8c000000
#define VIRTUAL_SYSTEM_ASIC_REGS_BASE       (0x90000000 | 0x20000000)
#define PCMCIACARD_BASE                     (0x91000000 | 0x20000000)
#define PCMCIACARD_IO                       (PCMCIACARD_BASE + 0x00000000)
#define PCMCIACARD_ATTRIBUTE                (PCMCIACARD_BASE + PCMCIACARD_IO_SIZE)
#define PCMCIACARD_MEMORY                   (PCMCIACARD_BASE + PCMCIACARD_IO_SIZE + PCMCIACARD_ATTRIBUTE_SIZE)
#define SDRAM_UNCACHED_VIRTUAL_MEMORY       (SDRAM_VIRTUAL_MEMORY | 0x20000000)
#endif // PHYSICAL_EQUAL_VIRTUAL 

//
// Size of the blocks.
//
#define FLASH_SIZE                          SIZE_FLASH_INTEL              


//
// Memory offsets relative to begining of SDRAM.
//
#define DRIVER_GLOBALS_MEMORY_OFFSET        0x00008000
#define CS8950_MEMORY_OFFSET                0x00010000
#define FRAMEBUF_MEMORY_OFFSET              0x000C0000
#define EDBG_MEMORY_OFFSET                  0x00040000
#define FLASH_CACHE_MEMORY_OFFSET           0x00200000


//
// SDRAM Physical address
//
#define DRIVER_GLOBALS_PHYSICAL_MEMORY      (DRIVER_GLOBALS_MEMORY_OFFSET + PHYSICAL_ADDR_SDRAM_MAIN)
#define CS8950_PHYSICAL_MEMORY              (CS8950_MEMORY_OFFSET         + PHYSICAL_ADDR_SDRAM_MAIN)
#define FRAMEBUF_PHYSICAL_MEMORY            (FRAMEBUF_MEMORY_OFFSET       + PHYSICAL_ADDR_SDRAM_MAIN)
#define EDBG_PHYSICAL_MEMORY                (EDBG_MEMORY_OFFSET           + PHYSICAL_ADDR_SDRAM_MAIN)  
#define FLASH_CACHE_PHYSICAL_MEMORY         (FLASH_CACHE_MEMORY_OFFSET    + PHYSICAL_ADDR_SDRAM_MAIN)  


//
// Memory sizes for blocks inside SDRAM and flash
//
#define CS8950_MEMORY_SIZE                  0x00030000
#define FRAMEBUF_MEMORY_SIZE                0x00200000 
#define EDBG_MEMORY_SIZE                    0x00080000


//
// Add this to make an address uncached unbuffered.
//
#define UNCACHED_OFFSET                     0x20000000

#define DRIVER_GLOBALS_VIRTUAL_MEMORY       (DRIVER_GLOBALS_MEMORY_OFFSET | SDRAM_UNCACHED_VIRTUAL_MEMORY)
#define CS8950_VIRTUAL_MEMORY               (CS8950_MEMORY_OFFSET         | SDRAM_UNCACHED_VIRTUAL_MEMORY)
#define FRAMEBUF_VIRTUAL_MEMORY             (FRAMEBUF_MEMORY_OFFSET       | SDRAM_UNCACHED_VIRTUAL_MEMORY)
#define EDBG_VIRTUAL_MEMORY                 (EDBG_MEMORY_OFFSET           | SDRAM_VIRTUAL_MEMORY)
#define FLASH_CACHE_VIRTUAL_MEMORY          (FLASH_CACHE_MEMORY_OFFSET    | SDRAM_VIRTUAL_MEMORY)


#if 0
//
// PCMCIA card area's
//
#define PCMCIACARD_MEMORY               (PCMCIACARD_BASE + 0x0C000000)
#define PCMCIACARD_MEMORY_SIZE          0x400000
#define PCMCIACARD_MEMORY_PHYSICAL      (PHYSICAL_ADDR_PCMCIA1 + 0x0C000000)
#define PCMCIACARD_IO                   (PCMCIACARD_BASE + 0x00000000)
#define PCMCIACARD_IO_SIZE              0x400000
#define PCMCIACARD_IO_PHYSICAL          (PHYSICAL_ADDR_PCMCIA1 + 0x00000000)
#define PCMCIACARD_ATTRIBUTE            (PCMCIACARD_BASE + 0x08000000)
#define PCMCIACARD_ATTRIBUTE_PHYSICAL   (PHYSICAL_ADDR_PCMCIA1 + 0x08000000)
#define PCMCIACARD_ATTRIBUTE_SIZE       0x400000
#define PCMCIACARD_SIZE                 (PCMCIACARD_MEMORY_SIZE + PCMCIACARD_IO_SIZE + PCMCIACARD_ATTRIBUTE_SIZE)
#endif // 0


#define MEM_HOST_REG_BASE_MS	    0xBF000000
#define MEM_HOST_REG_BASE_SD_MMC	0xBF800000
//#define MEM_HOST_REG_BASE_SD_MMC	0xB2000000
#endif // _H_MEMORYMAP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -