dingusppc/zdocs/memorymaps.md
joevt cd122ce263 Open Firmware is two words
Not OpenFirmware.
Also fixed a spelling mistake and removed some extra spaces.
2022-08-22 16:47:38 -07:00

3.5 KiB

VIRTUAL MEMORY MAP

Address Area
0x5FFFE000 InfoRecord
0x5FFFEFF0 NKSystemInfo
0x68000000 Motorola 68K Emulator (0x100000 bytes)
0x68060000 Emulator Code
0x68080000 Opcode Dispatch Table
0x68FFE000 KernelData
0x68FFF000 EmulatorData
0xFF800000 Open Firmware
0xFFF0C000 HardwarePriv

PHYSICAL MEMORY MAP

NuBus Power Macs

(Sourced Heavily from: http://mess.redump.net/mess/driver_info/mac_technical_notes)

Starting Address Ending Address Area
0x00000000 0x3FFFFFFF Main Memory
0x40000000 0x4FFFFFFF ROM Mirrors
0x50000000 0x5FFFFFFF IO Devices
0x5FFFFFFC "cpuid", really a Machine ID
0x60000000 0xEFFFFFFF NuBus "super slot" space
0xF1000000 0xFFBFFFFF NuBus "standard slot" space
0xFFC00000 0xFFFFFFFF ROM

IO Bus

Address Area
0x50F00000 IO Base Address
0x50F04000 SCC
0x50F14000 Sound Chip (AWACS)
0x50F24000 CLUT Control
0x50F28000 Video Control
0x50F2A000 Interrupt Control

PCI Power Macs

Main Memory

  • 0x00000000 - 0x7FFFFFFF Mac OS

  • 0x00400000 - Open Firmware

PCI/Device Memory Area 0x80000000 - 0xFF000000

  • 0x81000000 - Video Display Device (normally)

  • 0xF3000000 - Mac OS I/O Device area

  • 0xF3008000 - 0xF3008FFF - DMA Channels

  • 0xF3008000 - SCSI DMA

  • 0xF3008100 - Floppy DMA

  • 0xF3008200 - Ethernet transmit DMA

  • 0xF3008300 - Ethernet receive DMA

  • 0xF3008400 - SCC channel A transmit DMA

  • 0xF3008500 - SCC channel A receive DMA

  • 0xF3008600 - SCC channel B transmit DMA

  • 0xF3008700 - SCC channel B receive DMA

  • 0xF3008800 - Audio out DMA

  • 0xF3008900 - Audio in DMA

  • 0xF3009000 - ATI Mach 64 video card

  • 0xF3010000 - SCSI device registers (0x100 bytes)

  • 0xF3011000 - MACE (serial) device registers (0x100 bytes)

  • 0xF3012000 - SCC compatibility port (?) (0x100 bytes)

  • 0xF3013000 - SCC MacRISC port (Serial for 0x20, then Modem for 0x20, with remaining 0xC0 unknown)

  • 0xF3014000 - AWAC (Audio) chip device registers

  • 0xF3015000 - SWIM3 (floppy controller) device registers

  • 0xF3016000 - pseudo VIA1 device registers

  • 0xF3017000 - pseudo VIA2 device registers

  • 0xF3020000 - Heathrow ATA

  • 0xF8000000 - Hammerhead memory controller registers (0x1000000 bytes)

  • 0xFE010000 - 53C875 Hard Drive Controller

  • 0xFE000000 - Grackle Low/Base

  • 0xFEC00000 - Grackle CONFIG_ADDR (0x4 bytes, all redirected to 0xXXXXXCF8)

  • 0xFEE00000 - Grackle CONFIG_DATA (0x4 bytes, all redirected to 0xXXXXXCFF)

ROM / Misc Area (0xFF000000 - 0xFFFFFFFF)

  • 0xFF000000 - ?

    • 0xFF000004 - "cpuid", really a machine ID
  • 0xFFC00000 - 0xFFFFFFFF Mac OS ROM Area

    • 0xFFC00000 - 0xFFEFFFFF - 68k Code Area

      (below addresses apply to Old World ROMs)

    • 0xFFF00100 - Reset Area (where the ROM begins executing)

    • 0xFFF10000 - Nanokernel Code

    • 0xFFF20000 - HW Init