68kMLA Classic Interface
This is a version of the 68kMLA forums for viewing on your favorite old mac. Visitors on modern platforms may prefer the main site.
| Click here to select a new forum. | | ROM Memory/Address Space in PCI Power Macs? | Posted by: trag on 2021-07-07 16:18:27 In the Hardware Developer Guides for the 68K Macs, Apple published address maps showing where everything was located in address space and how much addressing space was available for each device.
This is how the ROMinator builders knew that they could put an 8MB ROM in a Mac II family machine instead of just 512KB or 1 MB.
However, looking at the Hardware Developer Notes for the X500 machines, there's no address map. I guess Apple stopped providing that level of hardware description. It makes sense because they didn't want folks addressing the hardware directly; they wanted them to use the appropriate system calls.
So, does anyone know how much address space is available for the ROM in the X500 macs? The standard ROM module is 4MB in capacity. But there could be a lot more space allocated. You'd think there'd be at least as much as in the Mac II series. | Posted by: DracheMitch on 2021-07-08 12:15:25 I just read through the 7500/8500 Developer Note and the more I learn about 90's Apple, the less I understand WTF was going on there.
The 7500/8500 are the same logic board (as with their later incarnations), but things change depending on if a 601 is installed or if a later processor is installed. There's big discrepancies between how firmware and software operates because the 601 has POWER instructions that aren't present with the 603 and higher, and the 603 and higher having instructions not in the 601. I'm really shocked Apple ever put a 601 in a PCI machine knowing there was going to be compatibility issues. I guess they had a bunch of them left over.
Then there's the case of the 603 Macs based on 68k logic boards, and it's understandable why Apple stopped publishing address maps—it would have shown how fucked up their engineering was at that point, and would have revealed Spindler's "slash and burn" tactics trying to make everything cheaper to make while also trying to sell off Apple to a larger company. | Posted by: bdurbrow on 2021-07-13 09:35:23 Well, if the machine in question is capable of running Darwin, I suppose at least some of that information should be in the kernel source code? | Posted by: demik on 2021-07-13 10:57:24 You may want to boot Linux on it to get it out (or check Linux or NetBSD source code)
The boot up process gives a lot of information like this.
Here is a stripped version of it:
Total memory = 640MB; using 2048kB for hash table (at cfe00000)
RAM mapped without BATs
Linux version 4.14.222-g3 (root@pulse.lostwave.net) (gcc version 4.9.2 (Debian 4.9.2-10+deb8u1)) #2 Sat Feb 27 17:23:22 CET 2021
Found a Heathrow mac-io controller, rev: 1, mapped at 0xfdf80000
PowerMac motherboard: PowerMac G3 (Gossamer)
Using PowerMac machine description
bootconsole [udbg0] enabled
-----------------------------------------------------
Hash_size = 0x200000
phys_mem_size = 0x28000000
dcache_bsize = 0x20
icache_bsize = 0x20
cpu_features = 0x0000000000200472
possible = 0x0000000005a6fd77
always = 0x0000000000000000
cpu_user_features = 0x8c000001 0x00000000
mmu_features = 0x00000001
Hash = 0xcfe00000
Hash_mask = 0x7fff
-----------------------------------------------------
Found Grackle (MPC106) PCI host bridge at 0x0000000080000000. Firmware bus number: 0->0
PCI host bridge /pci (primary) ranges:
IO 0x00000000fe000000..0x00000000fe7fffff -> 0x0000000000000000
MEM 0x00000000fd000000..0x00000000fdffffff -> 0x0000000000000000
MEM 0x0000000080000000..0x00000000fcffffff -> 0x0000000080000000
nvram: OF partition at 0x1800
nvram: XP partition at 0x1300
nvram: NR partition at 0x1400
Top of RAM: 0x28000000, Total RAM: 0x28000000
Memory hole size: 0MB
Zone ranges:
DMA [mem 0x0000000000000000-0x0000000027ffffff]
Normal empty
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000000000000-0x0000000027ffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x0000000027ffffff]
On node 0 totalpages: 163840
free_area_init_node: node 0, pgdat c04ab378, node_mem_map e7af0000
DMA zone: 1280 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 163840 pages, LIFO batch:31
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists, mobility grouping on. Total pages: 162560
Kernel command line: root=/dev/sda6
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 636148K/655360K available (3760K kernel code, 172K rwdata, 724K rodata, 184K init, 349K bss, 19212K reserved, 0K cma-reserved)
Kernel virtual memory layout:
* 0xfffdf000..0xfffff000 : fixmap
* 0xfd70f000..0xfe000000 : early ioremap
* 0xe9000000..0xfd70f000 : vmalloc & ioremap
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS: 96, nr_irqs: 96, preallocated irqs: 16
irq: Found primary Apple PIC /pci/mac-io for 64 irqs
irq: System has 64 possible interrupts
GMT Delta read from XPRAM: 0 minutes, DST: off
time_init: decrementer frequency = 16.707883 MHz
time_init: processor frequency = 501.150000 MHz
clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x3da751e7c, max_idle_ns: 440795202974 ns
clocksource: timebase mult[3bda1bd6] shift[24] registered
clockevent: decrementer mult[446f7c3] shift[32] cpu[0]
Console: colour dummy device 80x25
console [tty0] enabled
bootconsole [udbg0] disabled
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
devtmpfs: initialized
OF: Duplicate name in PowerPC,750, renamed to l2-cache#1
OF: Duplicate name in mac-io, renamed to ide#1
random: get_random_u32 called from bucket_table_alloc+0x94/0x1ec with crng_init=0
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 256 (order: -1, 3072 bytes)
prandom: seed boundary self test passed
prandom: 100 self tests passed
NET: Registered protocol family 16
PCI: Probing PCI hardware
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x0000-0x7fffff]
pci_bus 0000:00: root bus resource [mem 0xfd000000-0xfdffffff] (bus address [0x00000000-0x00ffffff])
pci_bus 0000:00: root bus resource [mem 0x80000000-0xfcffffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
pci 0000:00:00.0: [1057:0002] type 00 class 0x060000
pci 0000:00:0d.0: [10b7:9055] type 00 class 0x020000
pci 0000:00:0d.0: reg 0x10: [io 0x0400-0x047f]
pci 0000:00:0d.0: reg 0x14: [mem 0x81800000-0x8180007f]
pci 0000:00:0d.0: reg 0x30: [mem 0x81820000-0x8183ffff pref]
pci 0000:00:0d.0: supports D1 D2
pci 0000:00:0d.0: PME# supported from D1 D2 D3hot
pci 0000:00:0e.0: [9004:8178] type 00 class 0x010000
pci 0000:00:0e.0: reg 0x10: [io 0x0000-0x00ff]
pci 0000:00:0e.0: reg 0x14: [mem 0x81801000-0x81801fff]
pci 0000:00:0e.0: reg 0x30: [mem 0x81810000-0x8181ffff pref]
pci 0000:00:0f.0: [1095:3112] type 00 class 0x018000
pci 0000:00:0f.0: reg 0x10: [io 0x04c0-0x04c7]
pci 0000:00:0f.0: reg 0x14: [io 0x04b0-0x04b3]
pci 0000:00:0f.0: reg 0x18: [io 0x04a0-0x04a7]
pci 0000:00:0f.0: reg 0x1c: [io 0x0490-0x0493]
pci 0000:00:0f.0: reg 0x20: [io 0x0480-0x048f]
pci 0000:00:0f.0: reg 0x24: [mem 0x81802000-0x818021ff]
pci 0000:00:0f.0: reg 0x30: [mem 0x81880000-0x818fffff pref]
pci 0000:00:0f.0: supports D1 D2
pci 0000:00:10.0: [106b:0010] type 00 class 0xff0000
pci 0000:00:10.0: reg 0x10: [mem 0xf3000000-0xf307ffff]
pci 0000:00:12.0: [1002:4754] type 00 class 0x030000
pci 0000:00:12.0: reg 0x10: [mem 0x82000000-0x82ffffff]
pci 0000:00:12.0: reg 0x14: [io 0x0400-0x04ff]
pci 0000:00:12.0: reg 0x18: [mem 0xfd000000-0xfd000fff]
pci 0000:00:12.0: reg 0x30: [mem 0xfd000000-0xfd01ffff pref]
pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
PCI: Cannot allocate resource region 1 of device 0000:00:12.0, will remap
PCI 0000:00 Cannot reserve Legacy IO [io 0x0000-0x0fff]
pci 0000:00:12.0: BAR 6: assigned [mem 0xfd000000-0xfd01ffff pref]
pci 0000:00:12.0: BAR 2: assigned [mem 0xfd020000-0xfd020fff]
pci 0000:00:0e.0: BAR 0: assigned [io 0x1000-0x10ff]
pci 0000:00:12.0: BAR 1: assigned [io 0x1100-0x11ff]
pci_bus 0000:00: resource 4 [io 0x0000-0x7fffff]
pci_bus 0000:00: resource 5 [mem 0xfd000000-0xfdffffff]
pci_bus 0000:00: resource 6 [mem 0x80000000-0xfcffffff]
SCSI subsystem initialized
Here is the output for a 6400:
Using PowerMac machine description
Linux version 2.6.29.1-6400 (root@orbe) (gcc version 4.3.2 (Debian 4.3.2-1.1) ) #1 Sat Apr 11 11:03:35 CEST 2009
Found a OHare mac-io controller, rev: 1, mapped at 0xfdf00000
PowerMac motherboard: Alchemy
console [udbg0] enabled
Cache coherency enabled for bandit/PSX
Found Bandit PCI host bridge at 0x00000000f2000000. Firmware bus number: 0->1
PCI host bridge /bandit (primary) ranges:
MEM 0x00000000f3000000..0x00000000f3ffffff -> 0x00000000f3000000
IO 0x00000000f2000000..0x00000000f27fffff -> 0x0000000000000000
MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000
Top of RAM: 0x8800000, Total RAM: 0x8800000
Memory hole size: 0MB
Zone PFN ranges:
DMA 0x00000000 -> 0x00008800
Normal 0x00008800 -> 0x00008800
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x00000000 -> 0x00008800
On node 0 totalpages: 34816
free_area_init_node: node 0, pgdat c03f90cc, node_mem_map c087f000
DMA zone: 272 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 34544 pages, LIFO batch:7
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 34544
Kernel command line: root=/dev/sda6 console=ttyS0,9600
irq: Found primary Apple PIC /bandit/ohare for 32 irqs
irq: System has 32 possible interrupts
PID hash table entries: 1024 (order: 10, 4096 bytes)
time_init: decrementer frequency = 10.000383 MHz
time_init: processor frequency = 200.000000 MHz
clocksource: timebase mult[18ffc140] shift[22] registered
clockevent: decrementer mult[28f] shift[16] cpu[0]
Console: colour dummy device 80x25
console handover: boot [udbg0] -> real [ttyS0]
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 129192k/139264k available (3904k kernel code, 9924k reserved, 172k data, 139k bss, 156k init)
Calibrating delay loop... 19.96 BogoMIPS (lpj=99840)
Mount-cache hash table entries: 512
device-tree: Duplicate name in /bandit/pci-bridge, renamed to "pcie11,b163#1"
net_namespace: 964 bytes
NET: Registered protocol family 16
PCI: Probing PCI hardware
pci 0000:00:0d.0: reg 10 io port: [0x2040-0x2047]
pci 0000:00:0d.0: reg 14 io port: [0x2030-0x2033]
pci 0000:00:0d.0: reg 18 io port: [0x2020-0x2027]
pci 0000:00:0d.0: reg 1c io port: [0x2010-0x2013]
pci 0000:00:0d.0: reg 20 io port: [0x2000-0x200f]
pci 0000:00:0d.0: reg 24 32bit mmio: [0x80b00000-0x80b001ff]
pci 0000:00:0d.0: reg 30 32bit mmio: [0x80b80000-0x80bfffff]
pci 0000:00:0d.0: supports D1 D2
pci 0000:00:10.0: reg 10 32bit mmio: [0xf3000000-0xf307ffff]
pci 0000:01:04.0: reg 10 32bit mmio: [0x80801000-0x80801fff]
pci 0000:01:04.0: reg 14 io port: [0x1040-0x107f]
pci 0000:01:04.0: reg 18 32bit mmio: [0x80a00000-0x80afffff]
pci 0000:01:04.0: supports D1 D2
pci 0000:01:04.0: PME# supported from D0 D1 D2 D3hot
pci 0000:01:04.0: PME# disabled
pci 0000:01:05.0: reg 10 32bit mmio: [0x80800000-0x80800fff]
pci 0000:01:05.0: reg 14 io port: [0x1000-0x103f]
pci 0000:01:05.0: reg 18 32bit mmio: [0x80900000-0x809fffff]
pci 0000:01:05.0: supports D1 D2
pci 0000:01:05.0: PME# supported from D0 D1 D2 D3hot
pci 0000:01:05.0: PME# disabled
pci 0000:00:0e.0: bridge io port: [0x1000-0x1fff]
pci 0000:00:0e.0: bridge 32bit mmio: [0x80800000-0x80afffff]
pci 0000:00:0e.0: PCI bridge, secondary bus 0000:01
pci 0000:00:0e.0: IO window: 0x1000-0x1fff
pci 0000:00:0e.0: MEM window: 0x80800000-0x80afffff
pci 0000:00:0e.0: PREFETCH window: disabled
pci_bus 0000:00: resource 0 io: [0x00-0x7fffff]
pci_bus 0000:00: resource 1 mem: [0xf3000000-0xf3ffffff]
pci_bus 0000:00: resource 2 mem: [0x80000000-0x8fffffff]
pci_bus 0000:01: resource 0 io: [0x1000-0x1fff]
pci_bus 0000:01: resource 1 mem: [0x80800000-0x80afffff]
pci_bus 0000:01: resource 2 mem: [0x0-0x0]
pci_bus 0000:01: resource 3 mem: [0x0-0x0]
Registering pmac pic with sysfs...
bio: create slab <bio-0> at 0
SCSI subsystem initialized
It seems pretty similar to what you would expect from a PCI Mac. I'm sure x500 Macs are similar
Random guesses: ROM is 0x0, RAM is 0x80000000, IO is on top (fd000000+) | | 1 |
|