home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / unix / bsd / 2958 < prev    next >
Encoding:
Internet Message Format  |  1992-07-27  |  2.6 KB

  1. Path: sparky!uunet!elroy.jpl.nasa.gov!swrinde!mips!newsun!gateway.novell.com!terry
  2. From: terry@npd.Novell.COM (Terry Lambert)
  3. Newsgroups: comp.unix.bsd
  4. Subject: Re: 386bsd-0.1: primary bootstrap (wdbootblk.c) problem & fix.
  5. Keywords: 386bsd boot bootstrap wdbootblk.c
  6. Message-ID: <1992Jul27.172708.3363@gateway.novell.com>
  7. Date: 27 Jul 92 17:27:08 GMT
  8. References: <greg.712111605@hibp1.ecse.rpi.edu>
  9. Sender: news@gateway.novell.com (NetNews)
  10. Organization: Novell NPD -- Sandy, UT
  11. Lines: 60
  12. Nntp-Posting-Host: thisbe.eng.sandy.novell.com
  13.  
  14. In article <greg.712111605@hibp1.ecse.rpi.edu> greg@ecse.rpi.edu (Greg) writes:
  15. >   In a recent post I described a booting problem I was having: I could only
  16. >boot about 20% of the time in high speed mode. I tried all the latest patches,
  17. >but the problem persisted. By putting a printf at the top of boot.c, I          determined that it was not making it out of wdbootblk.c.
  18.  
  19. [ ... code describing delay loop deleted ... ]
  20.  
  21. Folks, *DON'T FIX IT THIS WAY!*
  22.  
  23. the correct fix is to either use the patched boot files in the "unofficial"
  24. directory on Agate (new "dist.fs"), or to do the following (which only
  25. partially recreates the patch):
  26.  
  27.  
  28. Robert Thrush says:
  29.  
  30. -------------------------------------------------------------------------
  31.       Most of the credit goes to Jim Huber (jbh@aii.com) for sweating
  32.     through comparing and finding this difference between the AT bios and
  33.     the 386bsd boot code.
  34.  
  35.       Here's the diff to feed to patch as follows:
  36.  
  37.     cd /sys/i386/stand
  38.     patch <following-patch
  39.  
  40.     *** wd.c        Wed Jul 22 12:58:32 1992
  41.     --- wd.c-       Sun Jun 28 00:20:53 1992
  42.     ***************
  43.     *** 299,305 ****
  44.         DELAY(1000);
  45.         outb(wdc+wd_ctlr,2);
  46.         DELAY(1000);
  47.     !       while(inb(wdc+wd_status) & WDCS_BUSY);
  48.         outb(wdc+wd_ctlr,8);
  49.       
  50.         /* set SDH, step rate, do restore to recalibrate drive */
  51.     --- 299,305 ----
  52.         DELAY(1000);
  53.         outb(wdc+wd_ctlr,2);
  54.         DELAY(1000);
  55.     !       while(inb(wdc+wd_altsts) & WDCS_BUSY);
  56.         outb(wdc+wd_ctlr,8);
  57.       
  58.         /* set SDH, step rate, do restore to recalibrate drive */
  59. -------------------------------------------------------------------------
  60.  
  61. Note that wd_status was being checked (incorrectly) instead of wd_altsts
  62. (the correct answer) when waiting for the controller to come ready.
  63.  
  64. This is in the FAQ, but there are a several fixes in Chris' code on agate
  65. for which there is not yet a source patch.  This is the reason I have not
  66. advocated this fix.
  67.  
  68.                     Terry Lambert
  69.                     terry_lambert@gateway.novell.com
  70.                     terry@icarus.weber.edu
  71. ---
  72. Disclaimer:  Any opinions in this posting are my own and not those of
  73. my present or previous employers.
  74.