📄 memorymap.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 + -