102 lines
2.4 KiB
C
102 lines
2.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1993 Digital Equipment Corporation
|
|
|
|
Module Name:
|
|
|
|
fwmemdef.h
|
|
|
|
Abstract:
|
|
|
|
This module contains firmware memory space definitions used to
|
|
configure the memory descriptors and initialize memory. They are
|
|
all physical (non-KSEG0_BASE) addresses. See
|
|
\nt\private\ntos\fw\alpha\jxmemory.c for more information.
|
|
|
|
Author:
|
|
|
|
John DeRosa [DEC] 26-Jan-1993
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _FWMEMDEF_
|
|
#define _FWMEMDEF_
|
|
|
|
|
|
//
|
|
// The byte address of the first byte beyond the firmware
|
|
// SYSTEM_BLOCK, PALcode, code, data, and stack.
|
|
//
|
|
|
|
#ifdef JENSEN
|
|
#define FW_TOP_ADDRESS 0x770000
|
|
#else
|
|
#define FW_TOP_ADDRESS 0x780000
|
|
#endif
|
|
|
|
//
|
|
// The byte address of the lowest byte in the firmware stack. This
|
|
// is used by the firmware RtlCheckStack to check for stack underflow.
|
|
//
|
|
|
|
#define FW_STACK_SIZE 0x10000
|
|
#define FW_STACK_LOWER_BOUND (FW_TOP_ADDRESS - FW_STACK_SIZE)
|
|
|
|
//
|
|
// The byte address of the base of the firmware SYSTEM_BLOCK, PALcode, code,
|
|
// data, and stack.
|
|
//
|
|
|
|
#define FW_BOTTOM_ADDRESS 0x6FE000
|
|
|
|
//
|
|
// The size of the firmware SYSTEM_BLOCK, PALcode, code, data, and stack,
|
|
// in pages.
|
|
//
|
|
|
|
#define FW_PAGES ( (FW_TOP_ADDRESS - FW_BOTTOM_ADDRESS) >> PAGE_SHIFT )
|
|
|
|
//
|
|
// Byte address and size of the firwmare pool.
|
|
// It is located directly after the PALcode, code, and stack.
|
|
//
|
|
// It is 128KB. On Mips it was only 64KB, and the Alpha firmware ran with
|
|
// 64KB for a long time. But an easy fix for a bug in EISA I/O on 64MB
|
|
// Jensens is to double the pool size.
|
|
//
|
|
// ** Because of the way that the memory descriptors work, the size
|
|
// ** must be an even multiple of the page size.
|
|
//
|
|
|
|
#define FW_POOL_BASE FW_TOP_ADDRESS
|
|
#define FW_POOL_SIZE 0x20000
|
|
|
|
//
|
|
// Byte address of the first location after the firmware pool. From here
|
|
// to the end of memory is initialized as MemoryFree by the firwmare.
|
|
//
|
|
|
|
#define FW_BASE_REMAINDER_MEMORY ( FW_POOL_BASE + FW_POOL_SIZE )
|
|
|
|
|
|
//
|
|
// Convenient numbers.
|
|
//
|
|
|
|
#define SIXTY_FOUR_KB 0x010000
|
|
#define _512_KB 0x080000
|
|
#define ONE_MB 0x100000
|
|
#define FOUR_MB 0x400000
|
|
#define FOUR_MB_PAGECOUNT ( FOUR_MB >> PAGE_SHIFT )
|
|
#define SEVEN_MB 0x700000
|
|
#define EIGHT_MB 0x800000
|
|
#define NINE_MB 0x900000
|
|
#define SIXTEEN_MB 0x1000000
|
|
#define THIRTY_ONE_MB 0x1f00000
|
|
#define THIRTY_TWO_MB 0x2000000
|
|
|
|
|
|
#endif // _FWMEMDEF_
|