Commit 6760ce30 authored by Paul Skirrow's avatar Paul Skirrow
Browse files

Kernel reads Ethernet MAC address from NVRAM (and nowhere else) if

  MACFROMNVRAM is set. This is set in HdrSrc for Customer F machines.

Detail:
  If MACFROMNVRAM is TRUE then OS_ReadSysInfo 4 will read the Ethernet MAC
  Address from bytes 0-13 of the NVRAM area, instead of trying to read it
  from anywhere else. (14 bytes are ysed to store 2 copies and 2
  checksums).

  This is intended for use with a 24LC128 device (which has no OTP area
  and no clock).

  Note that these are physical addresses within the device. Logical
  addresses &F0-&FF map to physical addresses &00-&0F.

  A SetMac utility is provided in Customer F 5 !Boot.Utils to enable the MAC
  address to be programmed for prototypes and development machines.

  Since it is dangerous to rely on the NVRAM to hold our MAC address when
  it is not protected in any way, we store two copies of it, each with
  their own checksum. At present only the first copy is used, but the
  plan is to check both copies and both checksums.

Admin:
  This version of the Kernel needs Programmer/HdrSrc v0.68 or later.

  If MACFROMNVRAM is enabled, ensure that the MACADDRESS tag in the
  NVRAM file is set to point at &F0 and that MACADDRESSCHECKSUM
  is set to point at &F6. Both should have options L and P to ensure
  they are protected from NVRAM resets and other writes.

Version 5.09. Tagged as 'Kernel-5_09'
parent cbe319b8
......@@ -6,9 +6,9 @@
GBLS Module_MinorVersion
GBLS Module_Date
GBLS Module_FullVersion
Module_MajorVersion SETS "5.08"
Module_Version SETA 508
Module_MajorVersion SETS "5.09"
Module_Version SETA 509
Module_MinorVersion SETS ""
Module_Date SETS "01 Dec 1999"
Module_FullVersion SETS "5.08"
Module_Date SETS "20 Jan 2000"
Module_FullVersion SETS "5.09"
END
/* (5.08)
/* (5.09)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 5.08
#define Module_MajorVersion_CMHG 5.09
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 01 Dec 1999
#define Module_Date_CMHG 20 Jan 2000
#define Module_MajorVersion "5.08"
#define Module_Version 508
#define Module_MajorVersion "5.09"
#define Module_Version 509
#define Module_MinorVersion ""
#define Module_Date "01 Dec 1999"
#define Module_Date "20 Jan 2000"
#define Module_FullVersion "5.08"
#define Module_FullVersion "5.09"
......@@ -1283,6 +1283,7 @@ IOST_BATMAN * 64 ;Stork keyboard/battery controller seems to be present
; by this call in preference to a locally provided value.
40
[ :LNOT: MACFROMNVRAM
MOV r0, #0
LDRB r1, [ r0, #RawMachineID ] ; The family byte
TEQ r1, #&81 ; Is this a custom part?
......@@ -1312,9 +1313,10 @@ IOST_BATMAN * 64 ;Stork keyboard/battery controller seems to be present
]
MOV r1, #0 ; Top 16 bits are zero
ExitSWIHandler
]
ExitNoEthernetAddress
[ :LNOT: STB
[ :LNOT: STB :LAND: :LNOT: MACFROMNVRAM
MOV r0, #0
MOV r1, #0
ExitSWIHandler
......@@ -1329,7 +1331,7 @@ ExitNoEthernetAddress
ExitSWIHandler
]
[ STB
[ STB :LOR: MACFROMNVRAM
GetMachineAddressCMOS
; Out: r0 = lower 4 bytes (or 0)
; r1 = upper 2 bytes (or 0)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment