Interesting find on PCI Bus booting NWM's

DarthNvader

Well-known member
People may already have found this and I just did not know about it, but you can boot from a USB device connected to a PCI card in New World Mac's.

I haven't tested all my NWM's yet, but I assume it is going to work in others too.

On the MDD 867MHz Dual CPU 133Mhz Bus Model I booted Mac OS 9 from a 'NVME' to USB enclosure connected to the Sonnet Tango USB1.1/2.0 FW PCI card.

You just need to know the full path to the :tbxi.

For me the abbreviated version OF will accept is:
Code:
boot pci1/@13/@9/@3:10,\system%20folder\mac%20os%20rom

(pci1) is the alias of the PCI bus with the slots in the MDD. (@13) is the PCI bridge on the Sonnet Tango PCI card. (@9) is the USB interconnect on the card (@3) is the 'NVME' to USB-C enclosure connected to the USB port via a USB-C to USB-A cable. :10) is the partition number of the drive with Mac OS 9 installed and blessed.

The rest of it is the full path and OF doesn't like spaces in file names so they must be replaced with ( %20 ).

I only get USB 1.1 speeds on boot and running the OS because OF only has USB 1.1 drivers( even on USB 2.0 PowerMac's ), and OS 9 only has USB 1.1 support.

If you boot OS X with USB 2.0 PCI card support the drive will start operating at USB 2.0 speeds once the Kernel and Drivers are loaded.

Old World Mac's can use a 'Helper Volume' to load the OS X System and redirect to a FireWire disk connected via PCI slots, but I've never been able to get that to work for USB on OWM's.

OWM's must enumerate something for FireWire exposed to OF that allows the redirect to work for OS X with the Helper Volume, but USB lacks any enumeration?
 

joevt

Well-known member
Are you saying that the steps to boot from a third party USB PCI card is different than booting from a built-in USB port? I think the only difference should be that the third party USB card might not have an alias in devalias list so you have to type the path to the USB controller yourself.

Instead of \system%20folder\mac%20os%20rom you should be able to tell the New World Mac to find the tbxi file using \\:tbxi
https://forums.macrumors.com/threads/guide-new-method-booting-from-usb-on-powerpc-macs.2403368/

There's some USB booting notes at
https://68kmla.org/bb/index.php?thr...-booting-from-usb-from-the-boot-picker.48601/
https://tinkerdifferent.com/threads/blue-and-white-scsi-2-drive-issues.4076/#post-34986

Regarding helper volume support, you want to boot from SCSI or whatever is supported on Old World Macs, then have it use a root on a USB disk? I think the only reason this wouldn't work is if the ioreg path for the USB partition is incorrect or the USB drivers don't load? Do the USB drivers have the necessary flags for booting in their Info.plist? I would guess so if they work on NWMs.

The path that it's trying to use should be the one you see in the "Waiting for root device" message.

These boot-args will list all the devices in the ioreg during boot and a lot of other stuff:
Code:
-v io=0xffffffff
 

DarthNvader

Well-known member
Are you saying that the steps to boot from a third party USB PCI card is different than booting from a built-in USB port? I think the only difference should be that the third party USB card might not have an alias in devalias list so you have to type the path to the USB controller yourself.

Instead of \system%20folder\mac%20os%20rom you should be able to tell the New World Mac to find the tbxi file using \\:tbxi
https://forums.macrumors.com/threads/guide-new-method-booting-from-usb-on-powerpc-macs.2403368/

There's some USB booting notes at
https://68kmla.org/bb/index.php?thr...-booting-from-usb-from-the-boot-picker.48601/
https://tinkerdifferent.com/threads/blue-and-white-scsi-2-drive-issues.4076/#post-34986

Regarding helper volume support, you want to boot from SCSI or whatever is supported on Old World Macs, then have it use a root on a USB disk? I think the only reason this wouldn't work is if the ioreg path for the USB partition is incorrect or the USB drivers don't load? Do the USB drivers have the necessary flags for booting in their Info.plist? I would guess so if they work on NWMs.

The path that it's trying to use should be the one you see in the "Waiting for root device" message.

These boot-args will list all the devices in the ioreg during boot and a lot of other stuff:
Code:
-v io=0xffffffff
I'm not sure why ,\\:tbxi does not work, that's like telling OF to search the disk recursively for a :tbxi resource or does the :tbxi need to be blessed( *g:tbxi )?

Maybe this only works for the correct Chipset USB PCI cards like the Sonnet Tango uses, I'll have to check the other PCI USB cards I have and report back.

When I was trying to redirect OS X using a helper volume I noted when I looked at the IOReg in ioregistryexplorer it was not the same on an Old World Mac as it in on a New World Mac, I'll have to look at it again and see what gives....
 

joevt

Well-known member
I'm not sure why ,\\:tbxi does not work, that's like telling OF to search the disk recursively for a :tbxi resource or does the :tbxi need to be blessed( *g:tbxi )?
I guess it has to be blessed? Maybe turning on the boot path search (BPS) or multi-boot (MB) debug flags might give a clue.

Found some code that suggests the following:
\ = root directory
\\ = blessed directory
\\\ = blessed OS X directory (only for HFS+ volumes)

There's a catfindtypecreator word in Open Firmware for names that begin with :
, separates type from creator which is optional. Only the first 4 characters of a type or creator are used - extra characters are ignored.

The dir command will show * next to the blessed directory, 9 next to the bless OS 9 directory, and X next to the bless OS X directory.

Maybe this only works for the correct Chipset USB PCI cards like the Sonnet Tango uses, I'll have to check the other PCI USB cards I have and report back.
I think the Open Firmware USB driver should be loaded for any PCI device with a PCI class code of 0C0310 which is USB OHCI.

USB controllers do not have a PCI option ROM with their own Open Firmware driver.
 
Top