I've now posted a whole bunch of times in a couple of forum threads, so I think I'm overloading them with information I put in, so wanted to start a separate thread, even though some of the stuff here may overlap with those posts, or be at least tangentially related.
With regards to USB booting on New World Macs, it is sometimes, though not always, possible to figure out the Open Firmware device path for USB in Disk Utility without having to get to OF first. (verified with Mac OS 10.4, but may work in prior/later versions as well)
Notice the lines Connection Bus: USB and Device Tree: which says USB1 at the end. Much easier than mucking around with dev / ls though it may not always work, even on New World Macs. But when it does, it makes the process much less painful.
Another ways to determine USB OF device paths from OS X Terminal.app (see syntax below):
ioreg -p IODeviceTree -n usb -d 5|grep -B 13 -A 6 106b
the basic command ioreg
-p what plane of ioreg to search, in this case the device tree
-n name of items to search for
-d how many subdevices to show
pipe through grep, showing only matches for 106b (the PCI vendor ID for Apple, because you want builtin USB) with the preceding 13 lines, and the trailing 6.
Both nvram (Mac OS X) and nvsetenv (Linux) seem flaky in setting OF variables even on New World systems! nvram messes up the double backslash \\ in the boot-device argument:
sudo nvram boot-device="usb0/disk@1:2,\\yaboot"
It seems to show the correct parameter has been set, but upon reboot, OF shows the path with only one \ before yaboot, and fails to boot from it. Workarounds, use 3 slashes (\\\) in the nvram argument, or single quotes 'quote' instead of "double quote".
And nvsetenv seems to display some OF variables incorrectly, shows up as binary hexadecimal garbage. It would seem the most reliable way to set this up is in OF itself, so just use System Disk or BootVars to set auto-boot? to false (more reliable than command-option-O-F on some models of Mac), and then type directly into OF. And so that doesn't become painful, do so via telnet from another computer (yes, even a PC!):
(you should see ok in response)
" enet:telnet,10.0.0.1" io
(at this point all further input is via telnet to the address that you type in place of 10.0.0.1 above)
Now you open a telnet client on the same subnet, open a connection to the IP address above, and type away. Bonus, you can copy/paste repetitive or long commands, save them to a text file, take screenshots, etc.