Please login or register.

Login with username, password and session length
Advanced search  

News:

Pages: [1]   Go Down

Author Topic: USB 2.0 DRIVER: Custom ROM v1  (Read 15 times)

UnexpectedBomb

  • 16 MB
  • ***
  • Posts: 28
    • GitHub account
USB 2.0 DRIVER: Custom ROM v1
« on: Today at 11:55:54 AM »

New build of the USB 2.0 driver is up. This is a big step from the beta I posted last time.

If you tried the first one you will remember the ritual: boot unplugged, run a launcher, wait for a prompt, insert at the right moment, one mount per launch. All of that is gone.

WHAT IS BETTER

- The driver now loads from the Mac OS ROM at boot, as an OS owned driver. Doesn't live in an app, and still no Extension needed.
- Mac OS 9 mounts the volume itself, through its normal path.
- Hot-plug works. Insert, eject, unplug, re-insert, or swap in a different drive, as often as you like. Pulling a drive without ejecting no longer leaves a damaged disk behind.
- Restart with the driver active is safe. It used to come back with a frozen mouse cursor.
- Reads run about 20 MB/s, roughly 20x USB 1.1. Writes are slower than that, but still blazing compared to USB 1.1.

INSTALLING

***FIRST: copy the Mac OS ROM out of your System Folder and keep it somewhere safe. You will want it if anything goes wrong. DON'T SKIP THIS STEP! Then pick one of these:

STEP 1A) ON A G4 MDD THAT BOOTS OS 9 ON ITS STOCK ROM: grab the prebuilt ROM from the release page. That is the exact file I have been testing with, so it needs no tools at all.

(NOT if your machine only boots OS 9 because of a community ROM patch, so an FW800 MDD, a Mini, an aluminium PowerBook and so on. My prebuilt file does not contain that patch, and installing it would take away the thing making your machine boot.)

STEP 1B) ON ANY OTHER NEW WORLD MAC, a B&W G3 for example: the prebuilt one is built from an MDD's ROM and is specific to that machine, so patch your own instead. Run the injector from the repo against your copy. It writes out a patched ROM and leaves the original alone.

Old World Macs, so a beige G3 or a 9600, have no Mac OS ROM file for this to patch, and none of this applies to them. Note that is not the same question as whether the machine has PCI slots. A beige G3 has slots and still cannot use it; a Mac mini G4 has none and could.

STEP 2) Boot from a CD or another volume and put the patched ROM into the System Folder in place of the original. (You cannot swap it while booted from that same System Folder.) Drop the small faceless helper into System Folder > Startup Items, boot normally with nothing plugged in, then insert a drive.

Again, the injector creates a ROM patch meant for non-MDD machines, so keep your original ROM safely stored somewhere and make sure you can boot from something else first. Fully reversible, but only if you kept it.

The injector has only ever been run against two ROMs, both mine. If it will not patch yours, or the result will not boot, tell me which Mac and OS 9 version you are on.

STILL TO DO

-One drive at a time. A second one inserted while another is mounted is ignored. Multi-device is what I am working on now.
-External hubs are not driven yet, including the hub in an Apple Cinema Display.
-A drive attached at boot mounts at 1.1, not 2.0. Plug it in after booting.
-Only tested on a G4 MDD with an IOGEAR NEC based PCI card. Other EHCI chipsets should bind, since the driver matches on the EHCI class code and reads the card's geometry at runtime, but I have not tried one. On board USB 2.0 is experimental and can hang (e.g. G4 Mini, aluminum PowerBooks, etc). Continue to treat this as a beta and do not put anything irreplaceable on it yet.

ONE LOG NOTE

You will see plenty of lines like this in EHCIUIM_init.log:

!! v47 STALL - self-probe transfer not completing:

Ignore them. That diagnostic fires on any transfer in flight, which during a copy is constant. My last soak logged 174 of them alongside 18,223 completed transfers and zero errors. Badly named, and I will fix it.

Heads up that the multi-device release will be a matched ROM and helper that install together, so if you would rather install once than twice, it is fine to wait until then. Eventually the goal is to have all of this integrated into the ROM, even the helper app itself, but we are not there yet.

Beyond that, the most useful thing anyone can do is run it on a PCI card different from mine. Both of the worst bugs so far came from hardware not behaving the way the spec says. As always, please let me know of both your successes and failures with this new build!

Source, build steps, injector and the technical writeups are all here: https://github.com/UnexpectedBomb/MacOS9-USB2-EHCI

-UB
Logged
Pages: [1]   Go Up

Recent Topics