Okay, I have internal video working for Mac OS on 1.1.20.1 with the 2.0 ndrv. I created an extension shell for it in ResEdit and grafted the code fragment into the data fork with a hex editor, and it worked on the first try.
Video ndrv is from the
ndrv_506_53m30.pef file produced by
tbxi dump.
Are you going to try the same for
ndrv_-20424_SimNCR53c8xx.pef to support internal SCSI?
I'm now hacking the Startup Disk cdev to make the restarts better.
Create a
OFpt resource with Open Firmware patches for 1.1.20.1. The first unused resource ID is 137.
Create a new entry in the
OFtc resource for the ANS. For 1.1.20.1, the identifier for the ANS is
AAPL,ShinerESB ? The entry should include the new
OFpt resource ID.
If you're not making a new
OFpt, then you don't need to add
AAPL,ShinerESB to
OFtc.
If you have an ANS that uses one of the existing identifiers (
AAPL,9500 for example), then you have to change the corresponding
OFpt to include code that checks for the TNT version of Open Firmware before doing any of the patches which are probably not applicable to the ANS.
I wonder what the
OFtb resource is for?
Code:
derez -only 'OFtb' "/Volumes/Classic/System Folder/Control Panels/Startup Disk"
data 'OFtb' (128) {
$"006E 0080 0196 FFFF" /* .n.Ä.ñˇˇ */
};
derez -only 'OFtc' "/Volumes/Classic/System Folder/Control Panels/Startup Disk" | sed -nE 's/\$"([0-9A-F ]+).*/\1/p' | xxd -p -r | xxd -c 38
00000000: 4141 504c 2c37 3330 3000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0080 AAPL,7300.............................
00000026: 4141 504c 2c37 3530 3000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0080 AAPL,7500.............................
0000004c: 4141 504c 2c38 3530 3000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0080 AAPL,8500.............................
00000072: 4141 504c 2c39 3530 3000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0080 AAPL,9500.............................
00000098: 4141 504c 2c39 3730 3000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0081 AAPL,9700.............................
000000be: 4141 504c 2c47 6f73 7361 6d65 722c 3531 3000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0082 AAPL,Gossamer,510.....................
000000e4: 4141 504c 2c50 6f77 6572 4d61 6320 4733 2c35 3130 0000 0000 0000 0000 0000 0000 0000 0000 0083 AAPL,PowerMac G3,510..................
0000010a: 4141 504c 2c50 6f77 6572 426f 6f6b 3139 3938 2c33 3132 0000 0000 0000 0000 0000 0000 0000 0084 AAPL,PowerBook1998,312................
00000130: 4141 504c 2c50 6f77 6572 426f 6f6b 3139 3938 2c33 3134 0000 0000 0000 0000 0000 0000 0000 0085 AAPL,PowerBook1998,314................
00000156: 4141 504c 2c33 3430 302f 3234 3030 2c33 3036 0000 0000 0000 0000 0000 0000 0000 0000 0000 0086 AAPL,3400/2400,306....................
0000017c: 4141 504c 2c33 3530 302c 3331 3300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0087 AAPL,3500,313.........................
000001a2: 4141 504c 2c65 3430 3700 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0088 AAPL,e407.............................
derez -p -only xxx "/Volumes/Classic/System Folder/Control Panels/Startup Disk" 2>&1 | grep OFpt | sed -E 's/.*Skipping //'
'OFpt' (128, "PowerSurge").
'OFpt' (129, "PowerExpress").
'OFpt' (130, "Gossamer").
'OFpt' (131, "PowerMac G3").
'OFpt' (132, "Wallstreet").
'OFpt' (133, "Mainstreet").
'OFpt' (134, "Hooper").
'OFpt' (135, "Kanga").
'OFpt' (136, "Alchemy").
@joevt , are you able to find the MACE driver in the 2.0 ROM? I can find it in the DeclROM but I can't find a DRVR or ndrv for it, unless I've been skipping over it inadvertently.
MACE is sound compression.
mace is Ethernet controller.
I think you're talking about Ethernet controller.
DeclData of Power Mac ROMs is not very large (0x130 bytes).
Code:
FHeaderRec:
FEFFFFEC
fhDirOffset: 00 FFFFF4 = FEFFFFE0
fhLength: 304 ; Start of ROM: FEFFFED0
fhCRC: 341BACA4 = ok
fhROMRev: 1 = romRevision
fhFormat: 1 = appleFormat
fhTstPat: 5A932BC7 = testPattern
fhReserved: 00
fhByteLanes: 0F = byte lanes: 0,1,2,3
Slot Resource Directory from Header:
FEFFFFE0
0 3E FFFFEC FEFFFFCC
0 01 FFFFF8 FEFFFFC4 ; sRsrcType 0001=CatBoard 0000=TypBoard 0000=DrSWBoard 0000=DrHWBoard
1 02 FFFFE6 FEFFFFB6 ; sRsrcName "Macintosh 4A"
2 20 000670 ; boardId 0670 = TNTBoardID
3 24 FFFFCA FEFFFFA2 ; vendorInfo
0 01 FFFFBC FEFFFF5E ; vendorID "Copyright © 1986-1995 by Apple Computer, Inc. All Rights Reserved."
1 03 FFFF9E FEFFFF44 ; revLevel "Macintosh CPU Family 6.0"
2 04 FFFF84 FEFFFF2E ; partNum "DeclROM for OpenTxpt"
3 05 FFFF64 FEFFFF12 ; date "Wednesday, January 14, 1998"
4 FF 000000 FEFFFFB2 ; endOfList
4 FF 000000 FEFFFFDC ; endOfList
1 FD FFFF1A FEFFFEFE
0 01 FFFFF8 FEFFFEF6 ; sRsrcType 0004=CatNetwork 0001=TypEthernet 0001=DrSWApple 0004=DrHWproductC
1 02 FFFFCE FEFFFED0 ; sRsrcName "Network_Ethernet_Apple_OpenTransport"
2 07 000000 ; sRsrcFlags 0000 2:f32BitMode=0 1:fOpenAtStart=0
3 08 000002 ; sRsrcHWDevId 02
4 FF 000000 FEFFFF0E ; endOfList
2 FF 000000 FEFFFFE8 ; endOfList
minAddr = FEFFFED0 maxAddr = FEFFFFE8
I'm not sure what this
Network_Ethernet_Apple_OpenTransport slot resource is trying to convey. It's just a slot resource device id, same as in in the 9500 v2 ROM.
Looking at the
DumpNameRegistry output for my Power Mac 8600, it shows there is a ndrv:
https://68kmla.org/bb/threads/skipping-the-startup-memory-test.50699/post-570896
Code:
/Devices/device-tree/bandit/gc/mace
name mace 6D616365 00
device_type network 6E657477 6F726B00
AAPL,connector ethernet 65746865 726E6574 00
reg 00011000 00001000 00008200 00000100 00008300 00000100 "..........Ç.......É....."
AAPL,interrupts 0000000E 00000002 00000003
local-mac-address 000502A8 066B "...®.k"
address-bits 00000030 "...0"
max-frame-size 00000800
AAPL,address F3011000 F3008200 F3008300 "Û...Û.Ç.Û.É."
driver-ist 0008ECC0 00000001 0008EE60 00000003 0008EE60 00000004 "..Ï¿......Ó`......Ó`...."
driver,AAPL,MacOS,PowerPC 4A6F7921 70656666 70777063 00000001 B624A1BB 00000000 00000000 00000000 "Joy!peffpwpc....∂$°ª............"
00030002 00000000 FFFFFFFF 00000000 00014FD4 00014FD4 00014FD4 00000080 "........ˇˇˇˇ......O‘..O‘..O‘...Ä"
00010200 FFFFFFFF 00000000 00004298 000040F0 0000392E 00015060 02010300 "....ˇˇˇˇ......Bò..@..9...P`...."
FFFFFFFF 00000000 00000000 00000000 000007CA 00018990 04010000 00000000 "ˇˇˇˇ............... ..âê........"
7C0802A6 90010008 9421FFC0 39823F10 7CE83B78 7CC73378 7CA62B78 7C852378 "|..¶ê...î!ˇ¿9Ç?.|Ë;x|«3x|¶+x|Ö#x"
7C641B78 806C0000 48013B05 60000000 38210040 80010008 7C0803A6 4E800020 "|d.xÄl..H.;.`...8!.@Ä...|..¶NÄ. "
8062FF2C 4E800020 7C0802A6 93E1FFFC 90010008 9421FFC0 3BE3FFFF 8122FF28 "Äbˇ,NÄ. |..¶ì·ˇ¸ê...î!ˇ¿;„ˇˇÅ"ˇ("
281F0008 38820300 41810080 57E5103A 7CA4282E 7CA903A6 4E800420 80690000 "(...8Ç..AÅ.ÄWÂ.:|§(.|©.¶NÄ. Äi.."
2C030000 41820064 38800000 48014021 60000000 48000054 80690000 2C030000 ",...AÇ.d8Ä..H.@!`...H..TÄi..,..."
41820048 38800000 48014005 60000000 48000038 80690000 2C030000 4182002C "AÇ.H8Ä..H.@.`...H..8Äi..,...AÇ.,"
38800001 48013FE9 60000000 4800001C 80690000 2C030000 41820010 38800001 "8Ä..H.?È`...H...Äi..,...AÇ..8Ä.."
48013FCD 60000000 38600000 38210040 80010008 7C0803A6 83E1FFFC 4E800020 "H.?Õ`...8`..8!.@Ä...|..¶É·ˇ¸NÄ. "
38823F10 80640000 2C030000 4D820020 7C0802A6 93A1FFF4 93C1FFF8 93E1FFFC "8Ç?.Äd..,...MÇ. |..¶ì°ˇÙì¡ˇ¯ì·ˇ¸"
90010008 9421FFB0 3BC23F28 7C9F2378 801E0006 2C000000 4182001C 3BA00000 "ê...î!ˇ∞;¬?(|ü#xÄ...,...AÇ..;†.."
7FC3F378 480146FD 80410014 93BE0006 807F0000 48014011 60000000 907F0000 ".√ÛxH.F˝ÄA..ìæ..Ä...H.@.`...ê..."
2C030000 4182002C 38820348 38600000 480063DD 60000000 38820348 38600000 ",...AÇ.,8Ç.H8`..H.c›`...8Ç.H8`.." … total size = 102746
driver-descriptor 6D74656A 00000000 046D6163 65000000 00000000 00000000 00000000 00000000 "mtej.....mace..................."
00000000 00000000 02306002 00000004 04656E65 74000000 00000000 00000000 ".........0`......enet..........."
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000001 6F74616E 000A0B01 02306002 "....................otan.....0`."
driver-ptr 00B0B880 ".∞∏Ä"
However, this is not a driver that exists in the ROM. Therefore it is in the System file or in an extension.
B624A1BB is a time stamp.
Searching my Classic System Folder, I find a mace driver with a later timestamp B8C77E0E. I guess this means my DumpNameRegistry example is from an earlier OS.
Code:
grep -r mace "/Volumes/Classic/System Folder"
Binary file /Volumes/Classic/System Folder/Extensions/Apple Enet matches
Binary file /Volumes/Classic/System Folder/Extensions/Microsoft Internet Library matches
mpw DumpPEF -a -do All -pi u -format on -ntb -dialect PPC32 "/Volumes/Classic/System Folder/Extensions/Apple Enet" > "/tmp/Apple Enet.dumppef.txt"
grep "member" "/tmp/Apple Enet.dumppef.txt"
{ /* array memberArray: 7 elements */
"mace", /* member name */
"bmac", /* member name */
"uprGMACLib", /* member name */
"uprdecLib", /* member name */
"pci1011,14", /* member name */
"pci1011,9", /* member name */
"uprBMAC+Lib" /* member name */
grep "dateTimeStamp" "/tmp/Apple Enet.dumppef.txt"
00010 dateTimeStamp = 0xB8C77E0E (Wed Mar 27 05:47:58 2002) date/time stamp
00010 dateTimeStamp = 0xB1F5C96A (Tue Aug 11 03:11:54 1998) date/time stamp
00010 dateTimeStamp = 0xB8C77E16 (Wed Mar 27 05:48:06 2002) date/time stamp
00010 dateTimeStamp = 0xB8C77E1C (Wed Mar 27 05:48:12 2002) date/time stamp
00010 dateTimeStamp = 0xB8C77E2F (Wed Mar 27 05:48:31 2002) date/time stamp
00010 dateTimeStamp = 0xB8C77E42 (Wed Mar 27 05:48:50 2002) date/time stamp
00010 dateTimeStamp = 0xB8C77E49 (Wed Mar 27 05:48:57 2002) date/time stamp
Anyway, do a
DumpNameRegistry for your ANS to see what's different. Does it show a
gc/mace device?
One difference between TNT and Shiner in Open Firmware is that
init-mace for ANS stores a 1 in the PLSCC (PLS Config Control) register instead of a 7. I don't know what that means. DingusPPC has this warning message:
Code:
void MaceController::write(uint8_t reg_offset, uint8_t value)
...
case MaceReg::PLS_Config_Ctrl:
if (value != 7)
LOG_F(WARNING, "%s: unsupported transceiver interface 0x%X in PLSCC",
this->name.c_str(), value);
break;
init-mace only happens when you try to use
mace in Open Firmware (for
tftp which is for net booting?). Therefore, patching Open Firmware to change
init-mace is not going to help anything.
I wonder if the mace ndrv is storing 1 or 7 to PLSCC ?
The DingusPPC source code says mace is related to Am79C940. The Am79C940 Datasheet says bit 2 and 1 of the PLSCC register are PORTSEL. The ANS is selecting the default value 0b00 for AUI. 0b01 is for 10Base-T. 0b10 is for DAI Port. TNT machines use 0b11 for GPSI.