summaryrefslogtreecommitdiffstats
path: root/private/ntos/fw/mips/jxsysid.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/ntos/fw/mips/jxsysid.c144
1 files changed, 144 insertions, 0 deletions
diff --git a/private/ntos/fw/mips/jxsysid.c b/private/ntos/fw/mips/jxsysid.c
new file mode 100644
index 000000000..0c04e41df
--- /dev/null
+++ b/private/ntos/fw/mips/jxsysid.c
@@ -0,0 +1,144 @@
+#if defined(JAZZ)
+
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+
+Module Name:
+
+ jxsysid.c
+
+Abstract:
+
+ This module implements the ARC firmware System ID Query functions as
+ described in the Advanced Risc Computing Specification (Revision 1.00),
+ section 3.3.3.5, for a MIPS R3000 or R4000 Jazz system.
+
+Author:
+
+ David M. Robinson (davidro) 11-July-1991
+
+
+Revision History:
+
+--*/
+
+#include "fwp.h"
+
+//
+// Define the system identifier.
+//
+
+SYSTEM_ID SystemId;
+
+VOID
+FwSystemIdInitialize (
+ VOID
+ )
+
+/*++
+
+Routine Description:
+
+ This routine initializes the system identifer routine address.
+
+Arguments:
+
+ None.
+
+Return Value:
+
+ None.
+
+--*/
+{
+ //
+ // Initialize the system identifier routine address in the system
+ // parameter block.
+ //
+
+ (PARC_GET_SYSTEM_ID_ROUTINE)SYSTEM_BLOCK->FirmwareVector[GetSystemIdRoutine] =
+ FwGetSystemId;
+
+ (PARC_FLUSH_ALL_CACHES_ROUTINE)SYSTEM_BLOCK->FirmwareVector[FlushAllCachesRoutine] =
+ FwFlushAllCaches;
+
+ return;
+}
+
+
+PSYSTEM_ID
+FwGetSystemId (
+ VOID
+ )
+
+/*++
+
+Routine Description:
+
+ This function returns the system ID, which consists of an eight byte
+ VendorId and an eight byte ProductId (in this case the ethernet address).
+
+Arguments:
+
+ None.
+
+Return Value:
+
+ Returns a pointer to a buffer containing the system id structure. This
+ structure is initialized on each call to prevent programs from changing
+ the value.
+
+--*/
+
+{
+ PUCHAR NvramSystemId;
+ ULONG Index;
+
+#ifdef DUO
+ CHAR SystemIdString[] = "MIPS DUO";
+#else
+ CHAR SystemIdString[] = "MIPS MAG";
+#endif
+
+ NvramSystemId = (PUCHAR)NVRAM_SYSTEM_ID;
+
+ for ( Index = 0 ; Index < 8 ; Index++ ) {
+ SystemId.ProductId[Index] = *NvramSystemId++;
+ }
+
+ for ( Index = 0 ; Index < 8 ; Index++ ) {
+ SystemId.VendorId[Index] = SystemIdString[Index];
+ }
+
+ return &SystemId;
+}
+
+
+VOID
+FwFlushAllCaches (
+ VOID
+ )
+
+/*++
+
+Routine Description:
+
+ TEMPTEMP Fix this up soon!!
+Arguments:
+
+ None.
+
+Return Value:
+
+
+--*/
+
+{
+
+ HalSweepIcache();
+ HalSweepDcache();
+ return;
+}
+
+#endif