NetBSD/macppc Open Firmware 1.0.5 Patch


This is describes how to patch Apple's System Disk utility to fix a few minor problems on Open Firmware 1.0.5 machines that use output-device /chaos/control (i.e. PowerMacintosh 7300 - 8600). It is based on a post by one of the Copland developers, and a post by Monroe Williams to the port-macppc mailing list.

The instructions herein are aimed at someone with a minimal knowledge of MacOS. If you are more comfortable with serial terminals and emacs than MacOS, see Help, I don't know anything about MacOS!.

  1. Boot into MacOS

    You must be running MacOS 8.0 or higher.

    If you don't have MacOS 8.0 or higher, you can simply download the Disk Tools PPC.img from Apple's site. This is a MacOS 8.1 boot floppy. You can boot from this and swap floppies to get System Disk, or you can copy the files from this floppy onto a partition on your hard drive. You will need to use Disk Copy 6.3.3 or later to write the Disk Tools image to a floppy (you can use any MacOS 7.0.1 or later system, including pre-PowerPC (i.e. m68k) Macs). You cannot, however, simply dump the boot floppy image to a disk via dd(8) or rawrite.

    Note, for future reference, that any time you boot your machine into MacOS, all Open Firmware settings (including the nvram) will be set to their default values.

  2. Download

    ftp://ftp.apple.com/developer/macosxserver/utilities/SystemDisk2.3.1.smi.bin

    You may need to use StuffIt Expander (or some other utility) to convert that file from MacBinary format into the self-mounting disk image. See Aladdin Systems' help page.

  3. Mount the Self-Mounting Image

    Open the self-mounting image to mount it on your desktop, and locate the System Disk utility on the disk image.

  4. NVRAM Patches (Easy Method)

    If you're using System Disk 2.3.1, download this ResCompare System Disk 2.3.1 OF105 patch.hqx. This program will patch your System Disk to add some delays to let the video settle properly and always sync up at 680x480 at 60 Hz (this is apparently the only resolution Open Firmware supports on these machines).

  5. NVRAM Patches (Guru Method)

    Download http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/English-North_American/Macintos h/Utilities/ResEdit_2.1.3.sea.bin and extract ResEdit. Drag the System Disk application onto ResEdit and (if you've got System Disk 2.3.1) open OFpt resource ID 128. If you have a different version of System Disk, then you need to open the OFtc resource and determine which ID corresponds to your model of PowerMacintosh.

    Once you've found the correct OFpt resource, paste the following at the end of the big long string. Be sure to include a trailing carraige return or else System Disk will complain that the last line ends abruptly. Also, note the initial \, which belongs on the end of the last line of Apple's patches (unselect-dev)

            \
            dev /bandit/gc/via-cuda\
            ' write value &W\
            : -&We &W swap - execute ;\
            : P1 4D8 -&We false 548 -&We ;\
            &W FC + ' P1 BLpatch\
            : P2 0C 2 ms ;\
            &W E0 + ' P2 BLpatch device-end

    Th[is] block fixes a bug in the via-cuda driver in which not enough time is given for the device to settle when it is told to set the video controller's clocks up.

    The author of this patch also created a patch for machines that try to boot before their drives have spun up, however, it seems nvram isn't quite big enough to fit both of these patches in addition to the patches that come with System Disk. It's not clear if this patch is really needed though. So, instead of the above block, you should paste in the following at the end of the the big long string. Be sure to include a trailing carraige return or else Startup Disk will complain that the last line ends abruptly. Also, note the initial \, which belongs on the end of the last line of Apple's patches (unselect-dev)

            \
            : wBoot\
            begin\
             boot-device ['] $boot catch drop\
             ." -Waiting for boot-device" cr\
             d# 500 ms\
            key? until\
            ;

    Th[is] block defines a FORTH word that can be used in place of the normal boot-command contents to wait for the disk to spin up before attempting to really boot. This avoids the standard "black screen the first time you power on the computer each day" problem.

    This means you'll need to make sure your boot command is not boot, but wBoot (this is set in the Advanced Options panel).

  6. Save, Run, Save

    Save your ResEdit changes and quit. Now, run the modified System Disk program and click on Power User (Open Firmware) then click the Save button to write the new nvram contents.


Up to NetBSD/macppc Port Page
NetBSD Home Page
NetBSD Supported Architectures

www@NetBSD.org
$NetBSD: of105patch.html,v 1.15 2004/10/30 22:33:51 jschauma Exp $
Copyright © 1998-2003 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.