Commit Graph

486 Commits

Author SHA1 Message Date
sekiya
c7e23cc3fe Checkpoint if_mec work (just in case I get hit by a bus). This driver is still
not operational.  The MII code mostly works, DMA data structures are defined
and allocated, but tx/rx logic is missing.
2004-01-11 14:01:46 +00:00
sekiya
69911c67f2 Reinstate symbolic device names -- I completely forgot about their use.
Reminder courtesy soren@
2004-01-11 01:48:46 +00:00
sekiya
f3a4be9263 Bus-spacify ip2x core logic. Eliminate magic numbers.
co
2004-01-10 05:22:09 +00:00
sekiya
aa7367bc4b Add register definitions for INT2 interrupt controller. 2004-01-10 05:16:57 +00:00
sekiya
280b50a365 Add watchdog and bus error handling functions (these features live in
IMC space, thus should be handled here rather than in ip2x.c)
2004-01-10 05:00:50 +00:00
sekiya
60573f92d1 Clean up console device selection logic. 2004-01-10 03:18:23 +00:00
sekiya
937db2de33 de-__P, sprinkle some KNF. 2004-01-10 02:55:54 +00:00
sekiya
c370623a7a Add framework for gio card identification based on product ID. devlist2h.awk
was borrowed from sys/dev/pcmcia.
2004-01-10 02:26:44 +00:00
sekiya
b8166ca397 bootinfo is problematic on ip2x under certain circumstances. Disable for now. 2004-01-03 10:29:37 +00:00
sekiya
5b343c479b Streamline bootinfo logic. 2004-01-03 10:28:18 +00:00
lonewolf
d6fda0fcbb Rework the memory detection routine to handle cases where kernel doesn't
fit inside one memory chunk.
Leave 1 page before kernel untouched as that's where our initial kernel
stack before we switch to proc0 stack is (fixes boot problems on my Indy
with small kernels).
2004-01-03 04:26:34 +00:00
sekiya
a1f8b0618b Wire down zsc/zstty mapping and add commented-out entries for
IP20 keyboard/mouse.
2004-01-02 01:39:25 +00:00
sekiya
aa9d797070 IP20 has two z8530 chips -- one at 0xd00 for keyboard/mouse, one at 0xd10
for serial ports.  Attach the former as zs1 to keep serial console goo as
simple as possible.
2004-01-02 01:04:46 +00:00
sekiya
f2bccdeea4 Add trailing newline. Noticed by Steve Rumble. 2004-01-02 00:41:23 +00:00
sekiya
f8c37f800f Don't panic when attempting to share interrupts on ip2x -- just print an
informative message and gracefully return.
2004-01-01 13:32:30 +00:00
sekiya
93f0e8c8a0 It's important to use good quality cables when working with SGI serial ports.
Enable zs console for IP20.
2004-01-01 13:29:08 +00:00
sekiya
d721fc82ce Force ARCS console for IP20 until the console-on-zs crashing problem is
fixed.  Store the board revision for future use, while we're at it.
2003-12-30 23:56:19 +00:00
sekiya
1cf4c96f39 Don't flush caches here. Fixes crash on IP20 (which apparently occurs only
with beta Blackjack boards that incorporate ARCS V1).
2003-12-30 23:50:25 +00:00
sekiya
a072684caa Adapt if_sq to HPC abstraction layer. It took both Steve Rumble and myself
to untangle the unhappiness that arises from the design differences between
HPC1 and HPC3.
2003-12-30 23:48:07 +00:00
sekiya
52063657cc Force little-endian mode on hpc1, and attach zs on IP20. 2003-12-30 23:45:25 +00:00
pk
70f20a1217 Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
2003-12-30 12:33:13 +00:00
sekiya
bc5774497e Fixes to HPC abstraction layer from Steve Rumble:
- hpc1_hdd_{ctl,bufptr} and hpc3_hdd_{ctl,bufptr} are
          established in hpcreg.h. All references to these fields
          are updated with the exception of if_sq: (haltwo,
          hpcdma). This makes reading the code and spotting bugs
          easier.
        - hpcdma.c was applying EOCHAIN to the wrong descriptor
          word for the hpc1 case.
        - I added scsi_max_xfer to the abstraction layer, and it
          allows some crusty #defines in wdsc.c to be removed.
          hpc1 now doesn't waste descriptors as it once did.
        - hpcreg.h was updated to reflect the lack of XMITDONE
          bit in hpc1. HPC1_REV15 added for a test in hpc.c
        - hpc.c now verifies HPC1 revisions (1.0 vs 1.5) and
          prints the output a little prettier ;)
        - power interrupts shouldn't establish on non-IP22
          platforms.
2003-12-29 06:33:57 +00:00
sekiya
8a08952e14 Fix typo ("ARCBIOS_MEM_ExecptionBlock"). From Steve Rumble. 2003-12-29 06:26:41 +00:00
sekiya
af4ac18e50 Introduce abstraction layer for HPC registers and values, which addresses the
divergence between HPC revision 1.5 and revision 3.

The wdsc driver has been updated to reflect this layer (and may now work on
IP20).  The sq driver needs a bit more work before it can be committed.
2003-12-16 11:59:04 +00:00
sekiya
c7a0d0b9f4 iocreg.h has moved. 2003-12-16 10:20:10 +00:00
sekiya
b91ae185fb A slighly more descriptive iocreg.h now lives in ../ioc. 2003-12-16 05:27:40 +00:00
sekiya
a51a4e0a69 Part two in the Great Renaming. ip22.c becomes ip2x.c, and all generic ip2x
routines become ip2x_*.
2003-12-15 13:02:28 +00:00
sekiya
01a7cd0853 Change all IP22 preprocessor conditionals to IP2X preprocessor conditionals.
Part one of two -- part two will be renaming ip22_*() to ip2x_*().
2003-12-15 12:48:37 +00:00
sekiya
441e82538f IP20 belongs to the IP2x family, thus this should no longer exist. 2003-12-15 12:34:56 +00:00
sekiya
90e0aa001b Add ioc driver to IP2x config file, pull in ioc/files.ioc as well. Note that
IP2x now has blinkenlitzen.
2003-12-15 10:26:38 +00:00
sekiya
3568a47283 Move IOC-specific initialization code from sgimips/ip22.c to ioc/ioc.c. 2003-12-15 10:24:47 +00:00
sekiya
aa10d0203e Add dedicated IOC (I/O Controller) driver. pckbc, zstty, and lpt will each
receive *_ioc.c attachments; machines without IOC (i.e., IP20) will use *_hpc.c
stubs.
2003-12-15 10:23:52 +00:00
lonewolf
bf0b94a750 Add pckbc/wscons/newport related attachments. 2003-12-15 05:29:20 +00:00
lonewolf
280382edf9 Add support for attaching newport/pckbc as console on IP22 (Indy).
XXX Does this work on Indigo2 too?
XXX Ugly hardcoded bus_space_tags and stuff.
XXX This whole file is one damn ugly mess.
2003-12-15 05:28:14 +00:00
lonewolf
613491354d Implement direct configuration for GIO devices.
XXX Still needs a way to handle Indigo2 spurious "productid 0x04 revision 0x00"
XXX phantom devices.
2003-12-15 05:26:56 +00:00
lonewolf
3e256e53b0 Support for SGI NG1 ("newport") graphics controller. 2003-12-15 05:24:51 +00:00
sekiya
a15d89e48a Move IOC (integrated peripheral controller) init code into the IP22-specific
routine, as IP20 does not possess an IOC.  This will eventually be moved into
a dedicated IOC driver that attaches its peripherals as children, but the
changes involved are too intrusive right now.
2003-12-14 07:53:10 +00:00
sekiya
3e021de39c Uncomment dpclock, remove IP20 option. IP20 now boots as far as the
boot device selection prompt using the GENERIC kernel.
2003-12-14 07:31:02 +00:00
sekiya
fa349eb13c Allow hpc to attach on IP20. 2003-12-14 07:28:17 +00:00
sekiya
264219f697 Bus-space'ify the memory controller driver, and add IP20-specific bits. 2003-12-14 07:21:51 +00:00
sekiya
4aeb14dce4 IP20 should handle the watchdog timer in the same manner as for IP22. 2003-12-14 06:11:35 +00:00
sekiya
8302dd42e0 The serial controller on IP20 lives in a different place. Modify
zs_get_chan_addr() to reflect this.

XXX hardcoded addresses are quite distasteful.  This should be passed in
through consinit() -- to avoid conflicts with Ilpo's soon-to-be-committed
framebuffer driver, I'll hold off until his code hits the tree.
2003-12-14 05:59:50 +00:00
sekiya
6f71ce82f5 For the purposes of machdep.c, consider IP20 to be a variant of IP22. ip20.c
and #ifdef IP20 will go away (short-term), ip22_* will be renamed to ip2x_*
(slighly longer-term).
2003-12-14 05:49:14 +00:00
sekiya
f9ff3d87e9 The ARCBIOS->FlushAllCaches() vector is NULL on at least one SGI platform
(ip20) and has no actual operational effect, thus it should not be invoked here.
2003-12-14 05:33:22 +00:00
sekiya
f2b161aa21 Compile sgimips/ip[23]2.c iff the corresponding IP[23] is defined in the
config file.
2003-12-14 05:23:12 +00:00
jmc
695a2a2f9f Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
2003-12-10 02:04:00 +00:00
lonewolf
49e806d166 sgimips lives in the new-style wscons land. 2003-12-10 00:24:21 +00:00
lonewolf
b57c3a57f9 Make this compile and apparently work (it generates interrupts properly, at
least).
XXX The is_console test is horribly ugly but necessary for the pckbc_cnattach
XXX coming soon.
2003-12-10 00:22:29 +00:00
lonewolf
3fe422af98 Garbage collect unused file. 2003-12-10 00:18:07 +00:00
lonewolf
8d097bc535 Remove the extra call to consinit(). 2003-12-10 00:00:51 +00:00