23 Commits
Author SHA1 Message Date
Mihai Parparita 049f8b68c5 machines: repeat 4 MB ROM in 16 MB mapped space
Per the Hammerhead ERS the ROM region is 0xFF000000-0xFFFFFFFF. We were
only mapping the ROM at the uppermost 4 MB of that (0xFFC00000). The fact
that copies are returned at other addresses in that range is not
explicitly stated in the ERS, but it does appear to be emprically true.
It's also corroborated by the 9600 wiring diagram, which shows only enough
address bits for 4MB being used for the ROM.

Also does the same fix for Platinum/7200, which has the same mapping and
address bits, and adds some notes about this to the documentation.

Fixes SheepShaver in BeOS guests, which was using 0xFF000000 to get at
the hardware ROM (see https://github.com/cebix/macemu/blob/96e512bd6376e78a2869f16dcc8a9028bce5ee72/BasiliskII/src/BeOS/SheepDriver/sheep_driver.c#L454).
2026-10-14 15:46:43 -07:00
Mihai Parparita dced15e63d ppc: Ignore unchanged BAT register writes
Avoids unncessary TLB invalidations.
2026-08-20 22:54:26 -07:00
Mihai Parparita 13ccd42e16 ppcmmu: Track translated entries for invalidation
XNU frequently changes BAT and PAT mappings for physical-memory access.
Each  resulting context synchronization can walk tens of thousands of TLB
entries, which consumes a lot of time.

Record the instruction and data TLB slots populated by BAT or PAT and
invalidate only those slots. Pending invalidations are coalesced by source,
and BAT updates cover PAT-derived entries because a new BAT can shadow a page
mapping.

Saves another 0.7 secondss in the time it takes to boot Mac OS X 10.3 to
the WindowServer (compared to the generational PAT invalidation).
2026-08-20 22:54:26 -07:00
joevt 538970d659 openfirmware.md: Add note about PCI2 PRSNT bits. 2026-07-14 18:45:38 -07:00
dingusdev a832d9cf90 Version 1.04b Prep 2026-07-13 10:37:28 -07:00
Maxim Poliakovski bf2f7e5217 machinetnt: fix IOBus address for Board register 2.
Also file a bug in Open Firmware 1.0.5 that reads
PCI2 PRSNT bits from wrong location.
2026-07-08 04:05:54 +02:00
dingusdev 48adf99690 Documentation cleanup 2026-01-15 07:39:59 -07:00
joevt 9144bfbbc2 openfirmware.md: Additions and fixes and um/mod. 2025-08-14 07:00:54 -07:00
dingusdev af055e0519 Manual tweaks 2025-05-04 17:40:48 -07:00
joevt 8b1d673e10 More documentation fixes. 2025-03-30 07:41:15 -07:00
dingusdev 4ac5fd4cb0 Minute documentation fixes 2025-03-29 10:47:28 -07:00
joevt 172dab7431 Update Open Firmware documentation.
Add New World ROM Layout notes.
Add New World Firmware version notes.
Add punctation.
Move mention of OF main fcode image from the Open Firmware kernel description section to the boot process section.
2024-09-02 19:16:18 -07:00
dingusdev 8c44da655c Documentation additions 2024-08-26 06:48:55 -07:00
dingusdev a2776ddae1 Documentation update - Aug. 11, 2024 2024-08-11 17:48:55 -07:00
dingusdev dee7090071 More documentation work 2024-08-07 22:38:35 -07:00
Maxim Poliakovski ce5edcb0c8 bebox.md: fix headers. 2024-06-15 22:21:34 +02:00
dingusdev a3743f0293 Starting documentation for more machines 2024-06-15 12:40:58 -07:00
dingusdev b73f5a157d Slightly expanding manual 2024-05-12 15:54:03 -07:00
dingusdev a5416f521a Added a note for the 603 2024-04-21 11:11:56 -07:00
dingusdev fa01699786 Slight formatting fix 2024-04-21 08:59:18 -07:00
dingusdev 5f1150cf4e Initial expansion of documentation 2024-04-21 08:44:03 -07:00
dingusdev 103ef6169c Continued expanding zdocs 2024-04-15 07:52:09 -07:00
dingusdev 8cbbb2ed50 Initial preparation for a release 2024-04-15 07:01:51 -07:00