Commit Graph

40 Commits

Author SHA1 Message Date
scottr c62e39490c Check to make sure we get a valid handler ID in response to a TALK R3. 2000-03-18 08:07:50 +00:00
scottr 6755970bcf Low-level drivers, like the Power Manager driver, can get us into a major
funk when they misbehave and give us unexpected results.  Specifically:

 - Don't assume that the first free slot is at the top of the table if
   we can't find one.
 - Don't increment ADBNumDevices when backfilling "holes" left by devices
   that didn't respond to a TALK R3 during the initial device scan.
 - Don't assume that an address reassignment worked; make sure something
   responds on the new address before plowing forward.
 - If after device reassignment there are no free slots, make sure to
   indicate this fact.
 - Failing all else, handle the situation where we run out of slots in
   the device table -- which now should "never" happen -- gracefully.

While the Power Manager driver still sometimes misbehaves, it shouldn't
cause the system to crash/hang due to us walking off the end of the
device table.
2000-03-07 06:35:22 +00:00
scottr 5c7674d4dd Explicitly include headers needed by iopreg.h 2000-02-21 02:04:48 +00:00
scottr ab647533a1 Bracket disabled IIfx IOP code with #ifdef __notyet__, rather than
commenting it out or using #if 0.
2000-02-21 01:20:55 +00:00
scottr 97a60329d2 Apparently, the Mac TV is a re-packaged Performa 550. Add code to
recognize this so that Mac TV users can finally ditch the MRG_ADB option.
1999-12-25 08:16:34 +00:00
scottr a15eb6dc13 An interrupt handler may change adbInCount underneath us, so qualify the declaration
with volatile.  The bug didn't show its face until more agressive
optimization showed up, apparently a result of the last egcs upgrade.
(The interrupt handling changes from June have certainly also played
a part.)  Thanks to Ken'ichi Ishizaka for discovering the problem.
1999-12-10 00:03:47 +00:00
scottr dc2663bf69 If there is only one ADB device, it will do us no good to avoid it
when guessing which device to poll next.  Resolves PR 7407, but the
bug is a lot older than that.
1999-11-28 10:07:34 +00:00
scottr 0b8b3c403e In the interrupt handlers, check adb_polling instead of
adb_initted to decide whether to handle 'recovered' interrupts
immediately.
1999-11-07 08:18:24 +00:00
scottr 8da942f249 Oops... last rev created an unused variable. While here, clean up
adb_reinit()'s variables a bit, too.
1999-11-07 06:15:09 +00:00
scottr 23411c4c1b Convert one more buffer copy that I missed in rev 1.28. 1999-11-07 05:50:26 +00:00
scottr a7628ea793 Always using polling for poweroff (from macppc). 1999-11-07 00:16:39 +00:00
scottr ad43c94436 ite_polling -> adb_polling 1999-11-07 00:12:53 +00:00
scottr c827b513ac Convert buffer copies to memcpy(). 1999-11-06 23:50:29 +00:00
scottr 12a535f5ef Add more delay in adb_reinit() (from macppc). 1999-11-06 23:44:32 +00:00
scottr b46c7fc44d Don't invoke the upper half handler unless we're still
initializing the ADB bus.  This fixes PR 7870.
1999-11-06 22:25:20 +00:00
briggs 819a054df2 Poll for serial interrupts. Return to 3000us delay instead of 4000us in init. 1999-06-29 04:45:59 +00:00
briggs 71a4446b04 Unfortunately, several changes that are intermingled:
- Add initial IOP support.  ADB doesn't work yet for me, but it's here so
  that others will be encouraged to work on it.  ADB_HW_IOP basically
  is configured as a NOP so that serial consoles will continue to work.
- Roll via1_intr and via2_intr into the intr.c scheme--this also required
  changing rtclock_intr to grovel the stack differently so that hardclock
  gets the right arguments and softclock() doesn't get all reentrant.
- Make via1 interrupts parallel to via2 interrupts--handlers get a pass-
  through pointer and we can register handlers.  Register via1 interrupt
  with intr_establish()--normally level 1, level 6 for A/UX scheme.
- Use intr_establish() to set real via2 interrupt handler instead of the
  hacked function pointer.
- Reorganize adb-direct interrupts so that a function call is removed.
- Implement A/UX interrupts for all Quadras right now.  We may need to
  special case some Quadras, but Linux folks are reporting success on
  several models.
- Fix intrnames to be accurate for the normal, PSC, and A/UX interrupt
  configurations.
1999-06-28 01:56:55 +00:00
scottr 2f5a40c966 From Yasuhiro Endoh: Performa 58x uses ADB soft poweroff. 1999-05-15 19:29:12 +00:00
scottr 0179750b00 Correct two more problems of the same type as in rev 1.21: use the length
of the buffer you're copying from as the loop interator, not the length
of the buffer you're copying to.  Also, rewrite print_single() with
pointer instead of array operators.  Appears to correct some ADB-related
`hangs' during autoconfig.
1999-05-06 06:01:27 +00:00
scottr 4982fb8fdb Fix an obscure bug in send_adb_cuda() found be comparison with
the macppc version.
1999-03-18 09:10:19 +00:00
ender 25e1f69c42 o Change various attach arg and softc datatypes to ints.
o Use explicit typecasts when interfacing with MRG data

Should fix port-mac68k/6839.  Patch supplied by
Frederick Bruckman <fb@enteract.com>
1999-02-11 06:41:07 +00:00
briggs 0659054b8b Make this compile _and_ link with DEBUG / ADB_DEBUG defined. 1998-11-14 03:20:47 +00:00
briggs 94125bb185 Allow this to compile with DEBUG defined. 1998-11-14 03:01:31 +00:00
scottr a83dff9c40 Make it compile for MRG_ADB kernels. 1998-10-26 07:09:37 +00:00
ender 2055d846f9 New ADB "bus" interface:
o Separate ms and kbd drivers
o aed device for compatibility
o debug message cleanup in hardware direct support (from scottr)
1998-10-23 01:16:22 +00:00
scottr 7d09ad09b4 New framework for handling processor interrupts, derived in part from
the hp300 port.

 - Interrupts 3-6 use this immediately.  Interrupt 7 is a special case,
   and the VIA interrupts (1 and 2) will be addressed when that code is
   rototilled.

 - Modify the zs front end to register with the appropriate interrupt
   controller:  through the PSC on the AV Quadras, and direct to
   interrupt 4 on the rest.  Arrange to have the appropriate zsc_softc
   supplied to us at interrupt time.

 - Modify the direct ADB driver (and its PowerManager cousin) to call
   intr_dispatch(), rather than zshard().  XXX This is a kludge, but at
   least limits the brokenness to the ADB drivers, now.

As a side effect, this should fix PR 5590.  Thanks to Bill Studenmund for
correctly determining the cause of the problem reported there.
1998-08-12 05:42:44 +00:00
scottr 8e25cfb973 Better integration of Power Manager IC ADB driver into the direct ADB driver framework,
from Takashi Hamada.  Also includes a handler for unsolicited ADB
packets.
1998-03-29 03:50:30 +00:00
scottr 5fa1b5f440 Add Performa 580/588 to the list of machines which have a Cuda chip.
XXX - we should really be using machine ID symbolic constants here, not
numbers.
1998-03-26 06:25:49 +00:00
scottr e50238f77a Rewritten II-series ADB code from John Wittkoski. Also, a whole
lotta KNF.
1998-02-23 03:09:40 +00:00
scottr 81d2791bd9 Unify ADB options and place them all into opt_adb.h. Provide a knob to
enable ADB debugging messages if ADB_DEBUG is configured.
1998-02-21 00:37:07 +00:00
scottr 867cdfc734 Another update from John: if we're polling, e.g. in ddb, pass the
keystroke to the upper half directly.
1998-01-09 06:59:29 +00:00
scottr 4567c69fea Update from John Wittkoski: the Color Classic and Color Classic II
have Cuda hardware, not IIsi-based.
1998-01-07 07:33:36 +00:00
scottr 13fa4227b1 Update from John Wittkoski: bug fixes for Cuda support. 1997-11-07 07:33:11 +00:00
briggs e19ba716d0 remove an obsolete comment. 1997-11-04 04:00:18 +00:00
scottr c988c6f85f Make #include directives consistent. All MD headers are of the form:
#include <mac68k/{dev,mac68k}/foo.h>
1997-08-11 22:53:26 +00:00
scottr 43f35682d8 April 18 update from John Wittkoski, w/space vs. tab KNFing by me. 1997-04-21 18:04:28 +00:00
scottr 11b0f01c17 Make sure to call adbop() on Power Manager-based machines. Noted by
Takashi Hamada, who also provided the code I based this modifcation
on.
1997-04-18 05:53:41 +00:00
scottr aae8cccb0f Use the new opt_mrg_adb.h header. 1997-04-14 16:56:26 +00:00
scottr 58d41d0f98 Fix several more instances where the volatile modifier was needed.
From Allen.
1997-04-08 06:53:28 +00:00
scottr 76c66a06b3 Direct-to-hardware ADB interface/driver, written by John P. Wittkoski. 1997-04-08 03:16:18 +00:00