The table is described in @powermax 's disassembly of the Gossamer HWInit routine (attached).The Gossamer HWInit includes the following table of bus and DEC frequencies:
Using the @elliotnunn 's
tbxi command, you'll find the table in ExceptionTable, rather than in HWInit. ExceptionTable happens before HWInit. Actually, for the Beige G3, the HWInit section is 0 bytes and the HWInit created by tbxi should actually be named OpenFW.The table looks like this (ignore the grackle < v4 table):
Code:
cd "/Volumes/Work/Open Firmware and Name Registry/ROM PowerPC Mac/ROM Beige G3 rev D2 2.4"
printtable () {
local version=$1
local start=$((0x33b4))
local count=4
if ((version >= 4)); then
((start += 0x120))
((count = 8))
fi
i=0
for thenum in $(dd if="$(ls "ROMs/"*".src/ExceptionTable")" bs=1 skip=$start count=$((count*4*18)) 2> /dev/null | xxd -p -g4 -c$((4*18)) | sed -E 's/(.{8})/ \1/g'); do
((i++))
printf "%10d " $((0x$thenum))
((i == 18)) && { printf "\n" ; i=0 }
done
}
printtable 3
50000000 12500000 50000000 375000000 350000000 50000000 100000000 325000000 125000000 225000000 150000000 275000000 200000000 250000000 400000000 300000000 175000000 0
60000000 15000000 60000000 450000000 420000000 60000000 120000000 390000000 150000000 270000000 180000000 330000000 240000000 300000000 480000000 360000000 210000000 0
66666666 16666666 66666666 499999995 466666662 66666666 133333332 433333329 166666665 299999997 199999998 366666663 266666664 333333330 533333328 399999996 233333331 0
75000000 18750000 75000000 562500000 525000000 75000000 150000000 487500000 187500000 337500000 225000000 412500000 300000000 375000000 600000000 450000000 262500000 0
printtable 4
75000000 18750000 75000000 562500000 525000000 75000000 150000000 487500000 187500000 337500000 225000000 412500000 300000000 375000000 600000000 450000000 262500000 0
70000000 17500000 70000000 525000000 490000000 70000000 140000000 455000000 175000000 315000000 210000000 385000000 280000000 350000000 560000000 420000000 245000000 0
78750000 19687500 78750000 590625000 551250000 78750000 157500000 511875000 196875000 354375000 236250000 433125000 315000000 393750000 630000000 472500000 275625000 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
75000000 18750000 75000000 562500000 525000000 75000000 150000000 487500000 187500000 337500000 225000000 412500000 300000000 375000000 600000000 450000000 262500000 0
60000000 15000000 60000000 450000000 420000000 60000000 120000000 390000000 150000000 270000000 180000000 330000000 240000000 300000000 480000000 360000000 210000000 0
66820000 16705000 66820000 501150000 467740000 66820000 133640000 434330000 167050000 300690000 200460000 367510000 267280000 334100000 534560000 400920000 233870000 0
83000000 20750000 83000000 622500000 581000000 83000000 166000000 539500000 207500000 373500000 249000000 456500000 332000000 415000000 664000000 498000000 290500000 0
I don't think so. I haven't tried disassembling it. Maybe powermax has. It might have a table or it might have a timing loop.@joevt does the trayloader iMac have the same HWinit table in ROM?
I've attached some disassemblies. Note
ExceptionTable from tbxi is called Start in my New World ROM disassemblies because booting starts in the exception table at exception vector 0x100 at 0xFFF00100.tbxi works on Old World ROMs and New World ROM files, not the 1MB New World ROMs. I have my own scripts/tools to take the New World ROMs apart.That table seems to match the 8 items in the grackle v4 table dump. The table dump seems to indicate that XIN is 150 MHz? You need XIN to be 200 MHz to get a 100 MHz bus? But then PCI would be 50 MHz (far greater than the 33 MHz default)?This table is from the SC608 clock generator datasheet (download link), used on both the trayloader and Beige. It seems to suggest that the bus speed is set here rather than on the Grackle itself? Or that the settings here need to tally with the Grackle PLL setting (and probably the ROM as well).
View attachment 84971
The 8 items are selected by the 3 bits of the system register that I mentioned at https://forums.macrumors.com/thread...mory-controller-upgrade.2119510/post-33831598
One of 16 numbers in the table row is selected by the 4-bit PLL.
The Gossamer schematics shows where those 3 + 4 bits comes from?
I've included some iMac, Beige G3, and B&W G3 stuff. I haven't looked at the Start/HWInit stuff though.The clock generator on the B/W/Yikes is a different part (SC683) and not pin compatible.




























