original files of m241
This commit is contained in:
@@ -0,0 +1,314 @@
|
||||
/* sysLib.h - system dependent routines header */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1984-2010,2012 Wind River Systems, Inc.
|
||||
*
|
||||
* The right to copy, distribute, modify or otherwise make use
|
||||
* of this software may be licensed only pursuant to the terms
|
||||
* of an applicable Wind River license agreement.
|
||||
*/
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
04k,09may12,dee Fix typo added when WIND00212450 was fixed by WIND00327558
|
||||
04j,09jan12,pgh Add comments to flags
|
||||
04i,03may10,h_k changed sysInLong() return val for LP64.
|
||||
04h,29apr10,pad Moved extern C statement after include statements.
|
||||
04g,20jan10,dbt Added sysUserSmInfoGet() VxSim specific routine.
|
||||
04f,21sep09,cww Added sysHwInit1
|
||||
04e,03sep09,scm add MEM_DESC_ADDR_KERNEL_ASSIGNED...
|
||||
04d,24aug09,sru add sysMemDesc* feature
|
||||
04c,23oct08,kab Update sysAmpCpuPrep to new sig per design mod
|
||||
04b,15oct08,kab Adding sysSymPhysMemBottom/Size (wrload and hv support)
|
||||
04a,06jun08,pgh Merge DHCP fixes
|
||||
03z,13jul07,kk remove _WRS_VX_SMP usage, added sysCpuAvailableGet()
|
||||
03y,08mar06,lei removed __STDC__ stuff.
|
||||
03x,25may05,md added SMP support
|
||||
03w,21may04,dtr Fix SPR 96824.
|
||||
03v,04feb04,elp added VxSim sysNetIfConfig().
|
||||
03u,19aug03,dbs add ED&R system debug mode flag
|
||||
03t,07may03,pes PAL conditional compilation cleanup. Phase 2.
|
||||
03s,24apr02,pai Removed sysHwInit0() prototype. A generic interface of this
|
||||
name is not yet defined.
|
||||
03r,15apr02,pai added sysHwInit0() prototype (SPR 74951).
|
||||
03q,10oct01,dat SPR 70855, adding sysNanoDelay as an optional BSP API
|
||||
03p,09jun98,dat rework of optional BSP routine declarations
|
||||
03o,14nov97,db added functions forward declarations for PPC family.
|
||||
03n,05nov96,hdn moved NETIF structure from bootConfig.c.
|
||||
03m,18sep96,dat added sysBspRev, sysPhysMemTop, sysScsiConfig,
|
||||
sysSerialHwInit, sysSerialHwInit2, sysSerialReset
|
||||
03l,06aug96,dat using #include timerDev.h to declare timer functions
|
||||
03k,13jun96,hdn added sysInLong() sysInLongString() sysOutLong()
|
||||
sysOutLongString().
|
||||
03j,15jun95,ms updated for new serial driver
|
||||
03i,14jun95,hdn added x86 specific prototypes.
|
||||
03h,22may95,ms added sysSerialDevGet() prototype.
|
||||
03g,22sep92,rrr added support for c++
|
||||
03f,15sep92,jcf cleaned up.
|
||||
03e,31jul92,ccc added tyCoDrv() and tyCoDevCreate() prototypes.
|
||||
03d,27jul92,ccc added prototypes to clean up os warnings.
|
||||
03c,09rdc92,rdc moved PHYS_MEM_DESC struct to vmLib.c.
|
||||
03b,08rdc92,rdc added PHYS_MEM_DESC struct.
|
||||
03a,04jul92,jcf cleaned up.
|
||||
02b,26jun92,wmd modified prototype for sysFaultTableInit().
|
||||
02a,16jun92,ccc removed function declarations for sysLib break-up.
|
||||
01z,26may92,rrr the tree shuffle
|
||||
01y,23apr92,wmd added sysFaultVecSet() prototype declaration for i960.
|
||||
01x,21apr92,ccc added SCSI declarations.
|
||||
01w,16apr92,elh added SYSFLG_PROXY.
|
||||
01v,04apr92,elh added SYSFLG_TFTP.
|
||||
01u,18dec91,wmd added mre ANSI prototypes for i960.
|
||||
01t,04oct91,rrr passed through the ansification filter
|
||||
-fixed #else and #endif
|
||||
-changed VOID to void
|
||||
-changed ASMLANGUAGE to _ASMLANGUAGE
|
||||
-changed copyright notice
|
||||
01s,23oct90,shl added a set of generic system dependent function prototypes.
|
||||
01r,05oct90,dnw added some ANSI prototypes.
|
||||
01q,05oct90,shl added copyright notice.
|
||||
made #endif ANSI style.
|
||||
01p,10aug90,dnw added SYSFLG_BOOTP
|
||||
01o,28jul90,dnw removed BOOT_FIELD_LEN to bootLib.h
|
||||
added declaration of sysBootParams
|
||||
added include of bootLib.h
|
||||
01m,20jun90,gae changed start types to be bit fields and renamed types.
|
||||
added import of sysModel.
|
||||
01l,24apr90,shl added SYSFLG_NO_SECURITY.
|
||||
01k,23may89,dnw added SYSFLG_NO_STARTUP_SCRIPT.
|
||||
01j,02may89,dnw added SYSFLG_VENDOR_{0,1,2,3}.
|
||||
01i,15oct88,dnw added SYSFLG_NO_AUTOBOOT, SYSFLG_QUICK_AUTOBOOT,
|
||||
and BOOT_WARM_QUICK_AUTOBOOT.
|
||||
01h,24mar88,ecs added declaration of sysExcMsg.
|
||||
01g,13nov87,jcf changed names of boot types.
|
||||
01f,29oct87,dnw added SYSFLG_DEBUG.
|
||||
01e,14oct87,dnw added SYSFLG_NO_SYS_CONTROLLER.
|
||||
01d,14jul87,dnw added more system global varaibles.
|
||||
deleted sysLocalToBusAdrs().
|
||||
added system restart types.
|
||||
01c,14feb87,dnw added sysBus, sysCpu, sysLocalToBusAdrs
|
||||
01b,18dec86,llk added BOOT_FIELD_LEN.
|
||||
01a,04aug84,dnw written
|
||||
*/
|
||||
|
||||
#ifndef __INCsysLibh
|
||||
#define __INCsysLibh
|
||||
|
||||
#ifndef _ASMLANGUAGE
|
||||
#include "bootLib.h"
|
||||
#include "ttyLib.h"
|
||||
#include "sioLib.h"
|
||||
#include "drv/timer/timerDev.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct /* NETIF - network interface table */
|
||||
{
|
||||
char *ifName; /* interface name */
|
||||
FUNCPTR attachRtn; /* attach routine */
|
||||
char *arg1; /* address */
|
||||
int arg2; /* vector */
|
||||
int arg3; /* level */
|
||||
int arg4;
|
||||
int arg5;
|
||||
int arg6;
|
||||
int arg7;
|
||||
int arg8;
|
||||
} NETIF;
|
||||
|
||||
struct phys_mem_desc;
|
||||
|
||||
#endif /* _ASMLANGUAGE */
|
||||
|
||||
/* system restart types */
|
||||
|
||||
#define BOOT_NORMAL 0x00 /* normal reboot with countdown */
|
||||
#define BOOT_NO_AUTOBOOT 0x01 /* no autoboot if set */
|
||||
#define BOOT_CLEAR 0x02 /* clear memory if set */
|
||||
#define BOOT_QUICK_AUTOBOOT 0x04 /* fast autoboot if set */
|
||||
|
||||
/* for backward compatibility */
|
||||
|
||||
#define BOOT_WARM_AUTOBOOT BOOT_NORMAL
|
||||
#define BOOT_WARM_NO_AUTOBOOT BOOT_NO_AUTOBOOT
|
||||
#define BOOT_WARM_QUICK_AUTOBOOT BOOT_QUICK_AUTOBOOT
|
||||
#define BOOT_COLD BOOT_CLEAR
|
||||
|
||||
/* system configuration flags in sysFlags */
|
||||
|
||||
/* Some targets have system controllers that can be enabled in software.
|
||||
* By default, the system controller is enabled for processor 0.
|
||||
* When set this flag inhibits enabling the system controller even
|
||||
* for processor 0.
|
||||
*/
|
||||
|
||||
#define SYSFLG_NO_SYS_CONTROLLER 0x01
|
||||
|
||||
/* System debug option:
|
||||
* load kernel symbol table with all symbols (not just globals)
|
||||
*/
|
||||
|
||||
#define SYSFLG_DEBUG 0x02 /* Load all symbols (use with */
|
||||
/* downloadable symbol table only). */
|
||||
#define SYSFLG_NO_AUTOBOOT 0x04 /* Don't start autoboot sequence */
|
||||
#define SYSFLG_QUICK_AUTOBOOT 0x08 /* Fast auto-boot (short countdown). */
|
||||
#define SYSFLG_UNUSED1 0x10 /* unused bit */
|
||||
#define SYSFLG_NO_SECURITY 0x20 /* Don't ask passwd on network login */
|
||||
#define SYSFLG_AUTOCONFIG 0x40 /* Use bootp or DHCP to get IP address */
|
||||
#define SYSFLG_TFTP 0x80 /* Use tftp to get boot image */
|
||||
#define SYSFLG_PROXY 0x100 /* Not supported */
|
||||
#define SYSFLG_UNUSED2 0x200 /* unused bit */
|
||||
#define SYSFLG_SYS_MODE_DEBUG 0x400 /* System is in 'debug' mode */
|
||||
#define SYSFLG_AUTOFILE 0x800 /* Use BOOTP or DHCP to get boot file */
|
||||
|
||||
#define SYSFLG_VENDOR_0 0x1000 /* vendor defined flag 0 */
|
||||
#define SYSFLG_VENDOR_1 0x2000 /* vendor defined flag 1 */
|
||||
#define SYSFLG_VENDOR_2 0x4000 /* vendor defined flag 2 */
|
||||
#define SYSFLG_VENDOR_3 0x8000 /* vendor defined flag 3 */
|
||||
|
||||
#define _MEM_DESC_RAM 1 /* kernel RAM */
|
||||
#define _MEM_DESC_USER_RESERVED_RAM 2 /* user RAM */
|
||||
#define _MEM_DESC_PM_RAM 3 /* persistent memory RAM */
|
||||
#define _MEM_DESC_DMA32_RAM 4 /* <4G DMA buffer RAM */
|
||||
|
||||
#define MEM_DESC_ADDR_KERNEL_ASSIGNED (VIRT_ADDR) -1 /* kernel assigned */
|
||||
|
||||
/* system parameters */
|
||||
|
||||
#ifndef _ASMLANGUAGE
|
||||
|
||||
extern int sysBus; /* system bus type (VME_BUS, MULTI_BUS, etc) */
|
||||
extern int sysCpu; /* system cpu type (MC680x0, SPARC, etc.) */
|
||||
extern int sysProcNum; /* processor number of this cpu */
|
||||
extern char * sysBootLine; /* address of boot line */
|
||||
extern char * sysExcMsg; /* address of exception message area */
|
||||
extern int sysFlags; /* configuration flags */
|
||||
extern BOOT_PARAMS sysBootParams; /* parameters from boot line */
|
||||
|
||||
/*
|
||||
* sysSymPhysMemBottom/Size are defined at build time and used
|
||||
* by wrload and other multicore utilities to discover runtime footprint of the
|
||||
* image prior to download and start.
|
||||
*/
|
||||
extern const char * sysSymPhysMemBottom; /* addr or lowest RAM used */
|
||||
extern const long sysSymPhysMemSize; /* total bytes of RAM used */
|
||||
|
||||
/* memory type descriptors for sysMemDescGet() */
|
||||
|
||||
typedef enum mem_desc_type
|
||||
{
|
||||
MEM_DESC_RAM = _MEM_DESC_RAM,
|
||||
MEM_DESC_USER_RESERVED_RAM = _MEM_DESC_USER_RESERVED_RAM,
|
||||
MEM_DESC_PM_RAM = _MEM_DESC_PM_RAM,
|
||||
MEM_DESC_DMA32_RAM = _MEM_DESC_DMA32_RAM
|
||||
} MEM_DESC_TYPE;
|
||||
|
||||
/* obsolete - but remain for backward compatiblity */
|
||||
|
||||
extern char sysBootHost[]; /* name of host from which system was booted */
|
||||
extern char sysBootFile[]; /* name of file from which system was booted */
|
||||
|
||||
/* function declarations */
|
||||
|
||||
extern char * sysModel (void);
|
||||
extern char * sysBspRev (void);
|
||||
extern void sysHwInit (void);
|
||||
extern void sysHwInit2 (void);
|
||||
extern void sysMemDescInit (void);
|
||||
extern STATUS sysMemDescGet (MEM_DESC_TYPE, int, struct phys_mem_desc *);
|
||||
extern char * sysMemTop (void);
|
||||
extern char * sysPhysMemTop (void);
|
||||
extern STATUS sysToMonitor (int startType);
|
||||
extern int sysProcNumGet (void);
|
||||
extern void sysProcNumSet (int procNum);
|
||||
extern BOOL sysBusTas (char *adrs);
|
||||
extern STATUS sysNvRamGet (char *string, int strLen, int offset);
|
||||
extern STATUS sysNvRamSet (char *string, int strLen, int offset);
|
||||
extern STATUS sysScsiInit (void);
|
||||
extern STATUS sysScsiConfig (void);
|
||||
extern void sysSerialHwInit (void);
|
||||
extern void sysSerialHwInit2 (void);
|
||||
extern SIO_CHAN * sysSerialChanGet (int channel);
|
||||
extern void sysSerialReset (void);
|
||||
extern STATUS sysLocalToBusAdrs (int adrsSpace, char *localAdrs,
|
||||
char **pBusAdrs);
|
||||
extern STATUS sysBusToLocalAdrs (int adrsSpace, char *busAdrs,
|
||||
char **pLocalAdrs);
|
||||
extern STATUS sysIntDisable (int intLevel);
|
||||
extern STATUS sysIntEnable (int intLevel);
|
||||
extern int sysBusIntAck (int intLevel);
|
||||
extern STATUS sysBusIntGen (int level, int vector);
|
||||
extern STATUS sysMailboxConnect (FUNCPTR routine, int arg);
|
||||
extern STATUS sysMailboxEnable (char *mailboxAdrs);
|
||||
extern int tyCoDrv (void);
|
||||
extern int tyCoDevCreate (char *name, int channel, int rdBufSize,
|
||||
int wrtBufSize);
|
||||
extern STATUS sysAmpCpuPrep (UINT cpuId, void * arg);
|
||||
|
||||
#ifdef _WRS_CONFIG_DELAYED_HW_INIT
|
||||
extern void sysHwInit1 (void);
|
||||
#endif
|
||||
|
||||
/* For all architectures, except X86, the arguments are unsigned. */
|
||||
#if defined (_WRS_SIGNED_IO_ARGS)
|
||||
#define _WRS_IOLONG int
|
||||
#define _WRS_IOSHORT short
|
||||
#define _WRS_IOCHAR char
|
||||
#else /* _WRS_SIGNED_IOARGS */
|
||||
#define _WRS_IOLONG ULONG
|
||||
#define _WRS_IOSHORT UINT16
|
||||
#define _WRS_IOCHAR UCHAR
|
||||
#endif /* _WRS_SIGNED_IO_ARGS */
|
||||
|
||||
extern UCHAR sysInByte (_WRS_IOLONG port);
|
||||
extern USHORT sysInWord (_WRS_IOLONG port);
|
||||
#ifdef _WRS_CONFIG_LP64
|
||||
extern UINT32 sysInLong (_WRS_IOLONG port);
|
||||
#else
|
||||
extern ULONG sysInLong (_WRS_IOLONG port);
|
||||
#endif /* _WRS_CONFIG_LP64 */
|
||||
extern void sysInWordString (_WRS_IOLONG port, _WRS_IOSHORT *pData, int count);
|
||||
extern void sysInLongString (_WRS_IOLONG port, _WRS_IOLONG *pData, int count);
|
||||
extern void sysOutByte (_WRS_IOLONG port, _WRS_IOCHAR data);
|
||||
extern void sysOutWord (_WRS_IOLONG port, _WRS_IOSHORT data);
|
||||
extern void sysOutLong (_WRS_IOLONG port, _WRS_IOLONG data);
|
||||
extern void sysOutWordString (_WRS_IOLONG port, _WRS_IOSHORT *pData, int count);
|
||||
extern void sysOutLongString (_WRS_IOLONG port, _WRS_IOLONG *pData, int count);
|
||||
|
||||
/* optional support routines used by several architectures */
|
||||
|
||||
extern void sysNanoDelay (UINT32 nanoseconds);
|
||||
extern void sysReboot (void);
|
||||
extern void sysDelay (void);
|
||||
extern void sysWait (void);
|
||||
extern STATUS sysIntDisablePIC (int intLevel);
|
||||
extern STATUS sysIntEnablePIC (int intLevel);
|
||||
|
||||
/* i960 special routines */
|
||||
|
||||
extern void sysFaultTableInit (void (*func)(void));
|
||||
extern UINT32 sysFaultVecSet (INSTR *vector, UINT32 faultNo,
|
||||
UINT32 type);
|
||||
extern void sysExcInfoPrint (UINT32 type);
|
||||
extern UINT32 sysCpuAvailableGet (void);
|
||||
|
||||
/* X86 special routines */
|
||||
|
||||
extern void sysLoadGdt (char *sysGdtr);
|
||||
|
||||
/* VxSim special routines */
|
||||
|
||||
#ifdef _WRS_ARCH_IS_SIMULATOR
|
||||
extern void sysNetIfConfig (void);
|
||||
extern void sysUserSmInfoGet (size_t * pSize, void ** pAddr);
|
||||
#endif /* _WRS_ARCH_IS_SIMULATOR */
|
||||
|
||||
#endif /* _ASMLANGUAGE */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __INCsysLibh */
|
||||
Reference in New Issue
Block a user