Subject: Succeeded to boot from IDE on G3/266MT
To: None <port-macppc@netbsd.org>
From: Yoshihisa Sugimoto <sugimoto@sums.shiga-med.ac.jp>
List: port-macppc
Date: 03/25/1999 18:31:54
Hi,

I've been trying to boot from IDE drive on PMG3/266MT. Finally, I succeeded
to boot from the IDE drive.

My procedures were as follows;

1) I installed binaries using bootfloppy-990119 according to the procedure d
escribed by Mr. Fujiwara.
http://www.ki.nu/software/NetBSD/PowerPC/starting.shtml

2) I reset PRAM with Cmd+Option+P+R.

3) I went back again into Mac OS, and used Multibooter 1.0d13 which was an u
tility program for Rhapsody (and OS X) developers.
ftp://ftp.apple.com/developer/macosxserver/UsefulStuff/Multibooter1.0d13.sit

4) I set up some parameters according to a homepage of LinuxPPC.
http://members.aol.com/mgssuchino/Ga/

I booted Multibooter 1.0d13 and selected "Network Disk (Open Firmware)". Aft
er clicking "Advanced Options", I set up parameters like this;
Boot-Device  : ide/disk@0:0
Boot-File    : netbsd
Boot-Command : boot
Input-Device : kbd
Output-Device: screen
Stop Boot at Open Firmware Prompt: checked
Then I enter "OK".
After hitting "Save" button, I rebooted my G3.
Booting was stopped at Open Firmware prompt.
Simply typing "boot" gave me a miracle!
Everything worked fine with remarkable speed.

I wondered why it booted. Then I went down to Open Firmware and saw how Mult
ibooter manipulated my G3 through the serial console. Apple seemed to provid
e some magics to ide devices in nvramrc.


---------------------------FROM HERE------------------------------
0>printenv

VARIABLE            CURRENT             DEFAULT
little-endian?      false               false
real-mode?          false               false
auto-boot?          false               true
diag-switch?        false               false
fcode-debug?        false               false
oem-banner?         false               false
oem-logo?           false               false
use-nvramrc?        true                false
real-base           -1                  -1
real-size           100000              100000
virt-base           -1                  -1
virt-size           100000              100000
load-base           600000              4000
pci-probe-list      -1                  -1
screen-#columns     64                  64
screen-#rows        28                  28
selftest-#megs      0                   0
boot-device         ide/disk@0:0        /AAPL,ROM
boot-file           netbsd
diag-device                             fd:diags
diag-file
input-device        kbd                 kbd
output-device       screen              screen
oem-banner
oem-logo
nvramrc
     hex
     : $D find-device ;
     : $E device-end ;
     : $L BLpatch ; : $R BRpatch ;
     : $X execute ;
     : $p 0 to my-self property ;
     : $a " /chosen" $D $p $E ;
     10 buffer: km
     dev kbd
     get-key-map km swap move
     $E
     : ck 0 do swap dup 3 >> km + c@ 1 rot 7 and << and or loop ;
     : bootr 0d word count encode-string " machargs" $a
     8 0 1 ck if 0 and else f 29 3d 0 3 ck if 40 or then then
     if bye else cr 20 0 do ['] boot catch drop 500 ms loop then ;
     dev enet
     ' open constant $M
     : $M2 $M 710 - $X ;
     : rl@ -7D9D40 $X ;
     : chstat begin $M2 $M 14f8 - $X -7D6C20 $X rl@ 400 and 0= until ;
     : bmstat begin $M2 $M 13F0 - $X rl@ 100 and until ;
     : xmt1 get-msecs $M 720 - ! chstat $M A00 - $X bmstat chstat ;
     ' xmt1 ' WRITE 10 + l!
     62 ' READ 7 - c!
     : READ { _p _n ; _a } begin _p _n bead -> _a _a 2+
     if _p c@ 80 and 0= else 1 then until _a ;
     $E
     dev /packages/obp-tftp
     : $M over + ['] noop $L ;
     ' open E8 $M EC $M F0 $M F4 $M F8 + ' true $L
     $E
     dev /packages/mac-parts
     : $M -7E89E0 $X 8000 alloc-mem 4 -7E89E0 $X ;
     ' load 268 - ' $M $L
     $E
     dev ide0
     f3000038 constant $hfr
     : $M $hfr rl@ or $hfr rl! 10 ms ;
     : ata-enable 4 $M 80 $M 800000 $M 100 $M 20 $M 40 $M ;
     : $M2 use-ata-interface ata-enable true ;
     : set-device-ID set-drive-select ;
     : reset-atapi-bus reset-ata-bus ;
     ' open ' $M2 $R
     ' enable-bus ' ata-enable $R
     ' reset-ata-bus 2c + ' 2 $L
     $E
     dev ide1
     f3000038 constant $hfr
     : $M $hfr rl@ or $hfr rl! 10 ms ;
     : ata-enable 4 $M 80 $M 800000 $M 100 $M 20 $M 40 $M ;
     : $M2 use-ata-interface ata-enable true ;
     : set-device-ID set-drive-select ;
     : reset-atapi-bus reset-ata-bus ;
     ' open ' $M2 $R
     ' enable-bus ' ata-enable $R
     ' reset-ata-bus 2c + ' 2 $L
     $E
     dev scsi
     : $M ['] do-cmd + ;
     : $M2 5 us -5f0 $M $X ;
     : $M3 -710 $M f over $X $X ;
     -1AC $M ' $M2 $L
     100 $M ' $M3 $L
     1 124 $M !
     $E
     unselect-dev
boot-command        boot                boot
 ok
---------------------------TO HERE--------------------------------


--
Yoshihisa Sugimoto, M.D., Ph. D.
Medical Information Center / First Deapartment of Medicine
Shiga University of Medical Science
Seta-Tsukinowa, Otsu, Shiga, 520-2192, Japan