/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Derived from IRIX <sys/SN/SN0/addrs.h>, revision 1.126. * * Copyright (C) 1992 - 1997, 1999 Silicon Graphics, Inc. * Copyright (C) 1999 by Ralf Baechle
*/ #ifndef _ASM_SN_SN0_ADDRS_H #define _ASM_SN_SN0_ADDRS_H
/* * SN0 (on a T5) Address map * * This file contains a set of definitions and macros which are used * to reference into the major address spaces (CAC, HSPEC, IO, MSPEC, * and UNCAC) used by the SN0 architecture. It also contains addresses * for "major" statically locatable PROM/Kernel data structures, such as * the partition table, the configuration data structure, etc. * We make an implicit assumption that the processor using this file * follows the R10K's provisions for specifying uncached attributes; * should this change, the base registers may very well become processor- * dependent. * * For more information on the address spaces, see the "Local Resources" * chapter of the Hub specification. * * NOTE: This header file is included both by C and by assembler source * files. Please bracket any language-dependent definitions * appropriately.
*/
/* * Some of the macros here need to be casted to appropriate types when used * from C. They definitely must not be casted from assembly language so we * use some new ANSI preprocessor stuff to paste these on where needed.
*/
/* * The following couple of definitions will eventually need to be variables, * since the amount of address space assigned to each node depends on * whether the system is running in N-mode (more nodes with less memory) * or M-mode (fewer nodes with more memory). We expect that it will * be a while before we need to make this decision dynamically, though, * so for now we just use defines bracketed by an ifdef.
*/
/* * The following definitions pertain to the IO special address * space. They define the location of the big and little windows * of any given node.
*/
#define BWIN_WIDGETADDR(addr) ((addr) & BWIN_SIZEMASK) #define BWIN_WINDOWNUM(addr) (((addr) >> BWIN_SIZE_BITS) & BWIN_WIDGET_MASK) /* * Verify if addr belongs to large window address of node with "nasid" * * * NOTE: "addr" is expected to be XKPHYS address, and NOT physical * address * *
*/
/* * The following define the major position-independent aliases used * in SN0. * CALIAS -- Varies in size, points to the first n bytes of memory * on the reader's node.
*/
#define IP27PROM_INT_LAUNCH 10 /* and 11 */ #define IP27PROM_INT_NETUART 12 /* through 17 */
#endif/* PROM */
/* * needed by symmon so it needs to be outside #if PROM
*/ #define IP27PROM_ELSC_SHFT 10 #define IP27PROM_ELSC_SIZE (1 << IP27PROM_ELSC_SHFT)
/* * This address is used by IO6PROM to build MemoryDescriptors of * free memory. This address is important since unix gets loaded * at this address, and this memory has to be FREE if unix is to * be loaded.
*/
#define FREEMEM_BASE PHYS_TO_K0(0x2000000)
#define IO6PROM_STACK_SHFT 14 /* stack per cpu */ #define IO6PROM_STACK_SIZE (1 << IO6PROM_STACK_SHFT)
/* Address 0x400 to 0x1000 ualias points to cache error eframe + misc * CACHE_ERR_SP_PTR could either contain an address to the stack, or * the stack could start at CACHE_ERR_SP_PTR
*/ #ifdefined(HUB_ERR_STS_WAR) #define CACHE_ERR_EFRAME 0x480 #else/* HUB_ERR_STS_WAR */ #define CACHE_ERR_EFRAME 0x400 #endif/* HUB_ERR_STS_WAR */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.