Commit Graph

1053 Commits

Author SHA1 Message Date
thorpej
149011c65b Add support for disassembling the "integer miscellaneous" opcode subgroup. 1997-09-16 22:52:40 +00:00
is
718fb97e11 Support for the upcoming NetBSD/Amiga Hypercom driver family:
* support chip clocks != COM_FREQ, by introducing sc_frequency (for the
  mainline code) and adding a frequency parameter right after the rate
  parameter to comcnattach() and com_kgdb_attach().
- Make com_isa and com_multi initialize sc_frequency to COM_FREQ.
- Make i386/machdep.c and alpha/dec_xxx.c call com*attach() with the freq.
  parameter.
* supio_attach_args get two more fields: a sc_ipl and a sc_arg, both ints.
- com_supio uses the first for interupt establishment (all childs will, as
  soon as they exist) and the 2nd for sc_frequency.
- drsupio passes sc_ipl alway as 5, and for the "com"s, sc_arg as 16*115200
- hyper will pass sc_ipl as 6, and sc_arg as 16 * 460800
1997-09-16 20:34:23 +00:00
thorpej
d1b4b49231 - Use PALcode ops names defined in <machine/pal.h>.
- Fix a few bugs in the software single-stepping support code, where
  VMS PALcode ops were being checked, rather than OSF/1 PALcode ops,
  causing erroneous results in the "exception return" and "unconditional
  branch" predicates.
- Add the BWX instructions ("ldbu", "ldwu", "stb", "stw") to the
  "load" and "store" predicates.
1997-09-16 19:07:19 +00:00
thorpej
a14bab3438 Don't define another copy of the PALcode ops here; direct readers to
<machine/pal.h>.
1997-09-16 19:03:22 +00:00
thorpej
e7c2d59885 Fix an oversight in the last commit. 1997-09-16 19:02:13 +00:00
thorpej
0599db7897 - Define bits used in the "amask" instruction.
- Define processor family IDs returned by the "implver" instruction.
- Prototype alpha_amask().
1997-09-16 06:57:12 +00:00
thorpej
9faf00ea6a Implement alpha_amask(), a stub which reads the "architecture feature mask"
using the "amask" instruction.
1997-09-16 06:54:01 +00:00
thorpej
4fe999c6bf - Add the "amask" and "implver" operate subfunctions.
- Add the "ldbu", "ldwu", "stb", and "stw" major opcodes (BWX instructions).
1997-09-16 06:52:48 +00:00
thorpej
fc80b40481 - Rewrite the functions that provide opcode subfunction names to make it
easier to add instructions that the disassembler doesn't know about
  (the opcode subfunction number is now printed).
- Add the "amask" and "implver" operate subfunctions.
- Add the "ldbu", "ldwu", "stb", and "stw" major opcodes (BWX instructions).
1997-09-16 06:52:16 +00:00
thorpej
d1fbc82e28 From page 6-9 of "Alpha AXP Architecture Reference Manual, Second Edition":
An IMB intruction must be executed after software or I/O devices
	write into the instruction stream or modify the instruction
	stream virtual address mapping, and before the new value is
	fetched as an instruction.

We were missing calls to IMB after mappings were changed, which caused
systems with large I-caches (e.g. my AlphaStation 500) to fail miserably
when mapping in new pages of program text, or when context switching
(I couldn't even get the shell from init!).
1997-09-16 01:52:00 +00:00
thorpej
37b8edbeac In addition to MAS_ABT, check TAR_ABT when doing configuration space
reads.  This is necessary because of newer AlphaStation firmware doing
the Wrong Thing with target aborts behind PCI-PCI bridges, much like they
do the Wrong Thing with master aborts.  Reported by Matthias Drochner.
1997-09-15 23:31:15 +00:00
thorpej
12f6c5aba1 Make sure to clear MAS_ABT if we received one. 1997-09-15 23:01:29 +00:00
thorpej
3c3c6a3b31 Use the symbolic name for "received master abort". 1997-09-15 22:35:54 +00:00
thorpej
8ff22715e8 Define bits in the CIA_ERR register. 1997-09-15 22:34:38 +00:00
thorpej
e97c5f6c50 Update the model string for current reality. 1997-09-13 10:09:39 +00:00
thorpej
9a5f8236b5 Don't panic if we receive a Processor Correctable Error or a System
Correctable Error; report them, instead.

XXX Need a platform-specific machine check handler so we can decode the
logout area on such errors.
1997-09-13 10:01:33 +00:00
thorpej
12b0c2a20a The Alpha console uses BOOTP for network booting, so the NetBSD kernel
should, too.  Enable the BOOTP support in nfs_boot().
1997-09-13 07:42:01 +00:00
thorpej
f784e8dc15 Apparently, new AlphaStation 500/600 firmware has the same problem with
PCI master aborts as eb164 firmware, so use the same workaround mechanism
on all system types (clear error register's master abort bit, and check
it after accessing configuration space), not just eb164's.

This also fixes a bug on eb164's - when making the Alpha port compile
again, I made an error that caused this to not be used on eb164 systems,
either.  Thanks to Matt Jacob for pointing out this goof.
1997-09-13 05:58:07 +00:00
mycroft
16a8787248 Fix execve(2) and *setregs() interfaces so emulations can set registers in a
more correct way.  (See tech-kern.)
1997-09-11 23:01:44 +00:00
drochner
969e506de4 Oops, last change made "make depend" work incompletely. Don't define
a "depend" rule here.
1997-09-06 14:26:47 +00:00
drochner
281398581a -Wall fixes 1997-09-06 14:08:27 +00:00
drochner
3b191b29c0 enable -Wall 1997-09-06 14:07:57 +00:00
drochner
be8a78e9b5 -use DHCP extensions in bootp()
-enable -Wall
1997-09-06 14:06:53 +00:00
drochner
80d9738db8 -Wall fixes 1997-09-06 14:03:55 +00:00
drochner
d99aa8efc0 Collect prototypes here. 1997-09-06 14:02:51 +00:00
drochner
7546d66094 Make sure the <machine/*.h> includes come from current kernel sources,
not from installed userland.
1997-09-06 14:02:13 +00:00
thorpej
ed2ec4869c Update for Chris Demetriou's changes made to the bus.h interface:
- bus_space_copy -> bus_space_copy_region (for consistency)
- "cacheable" argument becomes a "flags" argument instead, with
  BUS_SPACE_MAP_CACHEABLE and BUS_SPACE_MAP_LINEAR flags currently
  defined.
1997-09-06 05:44:07 +00:00
thorpej
1aa35e94d4 s/BUS_BARRIER/BUS_SPACE_BARRIER/g 1997-09-06 05:21:14 +00:00
thorpej
613ee19c60 Add DDB. 1997-09-06 02:04:18 +00:00
thorpej
1f6a8f7d03 Enable DDB. 1997-09-06 02:03:32 +00:00
thorpej
66fdddf6aa Add DDB files. 1997-09-06 02:03:11 +00:00
thorpej
9dcf694bd2 Prototype db_register_value(). 1997-09-06 02:02:25 +00:00
thorpej
998d79d26a Add support for DDB (in-kernel debugger) to NetBSD/alpha, based on
such code for Mach 3's Alpha port.  Initially reworked for NetBSD/alpha
by Chris Demetriou, and then heavily hacked on by me.  Works, but is still
a little rough around the edges.  Known problems:

- Error recovery could be improved a bit.
- Back traces don't work.
- Single-stepping can be flaky, at times.  (Alpha doesn't have hardware
  support for single-stepping, and I'm not entirely convinced the
  MI DDB software-emulated single-stepping logic is 100% correct.)
- Logic for when to drop into DDB needs some improvement.
1997-09-06 02:00:48 +00:00
thorpej
36f209b762 Split off PALcode functions into their own header file. 1997-09-06 01:23:52 +00:00
thorpej
7df7a43ce7 When loading a symbol section, make sure it is aligned. 1997-09-05 21:50:34 +00:00
thorpej
ba8becebfc installbood_cd9660 no longer exists. 1997-09-05 20:20:17 +00:00
thorpej
2f657a6266 Add some debugging code to log sgmap activities. Also, make sure that
we return "no valid mappings" if there is an error while loading the
sgmap.
1997-09-05 02:21:49 +00:00
thorpej
2ecccdc05f Define Status 0 and Status 1 registers. 1997-09-05 02:14:31 +00:00
thorpej
55800b610a Implement bus_dmamem_mmap(). 1997-09-05 02:05:37 +00:00
thorpej
6f4f08b8b2 Add a few more PALcode operations, as documented in pages (II-B) 2-1 through
(II-B) 2-33 of the Alpha AXP Architecture Reference Manual, Second Edition:

* rdps - Read Processor Status, needed by spl* functions.
* cflush - Cache Flush
* rdval - Read System Value
* wripir - Write Interprocessor Interrupt Request
* wrval - Write System Value

cflush, rdval, wripir, and wrval are used in multi-processor environments.
1997-09-03 23:09:04 +00:00
thorpej
032358ab33 From hp300 pmap: use mycroft's pv_entry allocator (from i386 port). 1997-09-03 19:07:32 +00:00
thorpej
f03ded039c Update from hp300 pmap: define an active_user_pmap() macro and use it. 1997-09-03 00:58:13 +00:00
thorpej
0f5f0e115a Define a cdev_satlink_init(). XXX This should be done in an MI header file. 1997-09-03 00:25:01 +00:00
thorpej
6cf58542f9 PMAP_{,DE}ACTIVATE() are no longer exported from the Utah-derived pmap. 1997-09-02 23:52:55 +00:00
thorpej
243aa23148 Add __KERNEL_RCSID() and definitions for ISA satlink driver. 1997-09-02 23:41:04 +00:00
thorpej
44e33a2f5f Update for changes to how bus space tags are initialized. 1997-09-02 20:43:07 +00:00
thorpej
90798596fe Remove references to vm_pmap. 1997-09-02 20:37:23 +00:00
thorpej
e7bb7bdc4b Remove references to vm_pmap. 1997-09-02 20:11:24 +00:00
thorpej
f203067ae3 Adjust for changes to bus space tag initialization. 1997-09-02 20:10:28 +00:00
thorpej
a71cecbec3 Fix a typo. 1997-09-02 20:08:02 +00:00
thorpej
991f4ebc72 cia_bus_ -> cia_swiz_bus_ 1997-09-02 20:07:20 +00:00
thorpej
80e3db443f Apply a change made to other PCI chipsets:
don't expect/provide pci_decompose_tag to be a MI, public function.  It
wasn't intended to be to begin with, and uses of it (e.g. the one in the
'de' driver) are quite likely to be incorrect.
1997-09-02 20:05:28 +00:00
thorpej
3735c7d1d7 Fix a think-o. 1997-09-02 19:39:15 +00:00
thorpej
df1dcf81d0 Oops, missed one. 1997-09-02 19:18:20 +00:00
thorpej
cc5eaab25b More garbage-collection. 1997-09-02 19:16:32 +00:00
thorpej
b2a8424bb5 Garbage-collect loadustp(); the functionality has moved to pmap.old.c 1997-09-02 19:07:22 +00:00
thorpej
2c5c631b71 - Make the pmap_activate() and pmap_deactivate() interfaces consistent my
passing them a proc *, which encapsulates all of the information necessary
  to activate an address space.
- Garbage-collect pmap->pm_stchanged; it's not really used for anything.
1997-09-02 19:06:13 +00:00
thorpej
bf232f7a37 Make the pmap_activate() and pmap_deactivate() interfaces consistent my
passing them a proc *, which encapsulates all of the information necessary
to activate an address space.
1997-09-02 19:04:57 +00:00
thorpej
a47a8a25d6 Adjust for an interface change in a not-NEW_PMAP case in cpu_fork(). 1997-09-02 19:03:58 +00:00
thorpej
f1373b949c - Make the pmap_activate() and pmap_deactivate() interfaces consistent my
passing them a proc *, which encapsulates all of the information necessary
  to activate an address space.
- Garbage-collect pmap->pm_stchanged; it's not really used for anything.
1997-09-02 19:00:53 +00:00
thorpej
5042993a22 - Make the pmap_activate() and pmap_deactivate() interfaces consistent my
passing them a proc *, which encapsulates all of the information necessary
  to activate an address space.
- Clean up some debugging code.
1997-09-02 18:59:02 +00:00
thorpej
364d6a31a7 Adjust some NEW_PMAP code for a slight interface change. 1997-09-02 18:54:28 +00:00
thorpej
511e46c568 Clean up the context switching code a bit:
- Marco-ize the 3 instructions that actually switch to the new process
  context.
- Unify (except for the pmap_deactivate() call) the NEW_PMAP and not-NEW_PMAP
  versions of cpu_switch(), and clean up some comments.
- Tidy up the not-NEW_PMAP bits of switch_exit().
1997-09-02 18:53:26 +00:00
thorpej
d316987784 Garbage-collect VM_PMAP_STPTE, USTP_OFFSET, VM_PMAP. Define VM_MAP_PMAP
instead.
1997-09-02 18:48:58 +00:00
thorpej
b7b3955ce0 Fix a typo: ALPHA_PTE_WRITE needs to include the "user write" bit. 1997-09-02 14:29:37 +00:00
thorpej
6caf625430 Note that a2 and a3 contain bootinfo information passed from the boot
program to alpha_init().
1997-09-02 14:29:00 +00:00
thorpej
d95ac139e0 Oops, wrap cpu_decl()s inside #ifdef _KERNEL/#endif. 1997-09-02 14:25:34 +00:00
thorpej
8b6e894364 Clean this up a bit; defopt has rendered the #undef hacks unnecessary.
Also, put the cpu_decl()s in cpuconf.h, so that platform support files
can pull in the prototypes from there, and pull in options for those
systems for which there is code in the source tree.
1997-09-02 14:19:29 +00:00
thorpej
b7c1c1e321 Pull in alpha/cpuconf.c 1997-09-02 14:06:02 +00:00
thorpej
5c72d6a933 Garbage-collect. 1997-09-02 14:03:10 +00:00
thorpej
e79009b830 Ressurect from the Attic. 1997-09-02 14:00:11 +00:00
thorpej
9db8b6018f Make a note about option headers. 1997-09-02 13:42:49 +00:00
thorpej
1df0782d87 Pull in DEC_3000_300 and DEC_3000_500 options. 1997-09-02 13:29:17 +00:00
thorpej
a4cef84ac7 Pull in DEC_3000_300 option. 1997-09-02 13:26:42 +00:00
thorpej
529d790161 Pull in DEC_AXPPCI_33 option. 1997-09-02 13:25:36 +00:00
thorpej
cb32cf1ece Pull in DEC_EB164 and DEC_KN20AA options. 1997-09-02 13:24:48 +00:00
thorpej
b57ee951d0 Pull in DEC_2100_A50 and DEC_EB64PLUS options. 1997-09-02 13:23:56 +00:00
thorpej
49a2bcd443 Pull in FIX_UNALIGNED_VAX_FP option. 1997-09-02 13:22:53 +00:00
thorpej
693b3e7262 Nuke the idea of <machine/options.h>. It completely defeats the purpose
of fine-grain option dependencies.
1997-09-02 13:17:47 +00:00
thorpej
e234ed15b6 Fix oversight in a previous commit. 1997-09-02 12:54:27 +00:00
thorpej
375ad27ed8 - Garbage-collect all DMA-related initialization, calling a separate
*_dma_init() function instead.
- Pass the appropriate bus dma tag to children.
1997-09-02 12:51:20 +00:00
thorpej
3ac7ac6e63 Garbage-collect. 1997-09-02 12:43:22 +00:00
thorpej
aa7a2876e6 Treat bus space tags more like pci chipset tags and bus dma tags: allocate
them statically within a chipset's state structure, and pass them to
the *_bus_{io,mem}_init() functions.
1997-09-02 12:40:18 +00:00
thorpej
fd01db8b74 Use more complete #include directives when pulling in the chipdep
functions.
1997-09-02 11:09:51 +00:00
thorpej
9199b6645b Clean up RCS IDs. 1997-09-02 10:56:52 +00:00
thorpej
d450130943 Adjust for new names for the PCI i/o and mem swizzle-style access
function files.
1997-09-02 10:43:27 +00:00
thorpej
8f286ca7f3 Renamed to pci_swiz_bus_{io,mem}_chipdep.c by repository copy. 1997-09-02 10:39:15 +00:00
thorpej
8998fa1198 Revive these files from the Attic. 1997-09-02 10:26:55 +00:00
thorpej
3220411801 Define PAL_cflush, PAL_ipir, and PAL_OSF1_wrperfmon PALcode operations. 1997-08-29 23:17:37 +00:00
bouyer
6f3bab1f59 Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
1997-08-27 11:22:52 +00:00
thorpej
38f15737fd Protect access to kmem_map with splimp()/splx(). From Chuck Cranor. 1997-08-25 21:17:48 +00:00
cgd
ce0a826c55 fix various bogons: copy SCSIVERBOSE option (still commented out) and ISA lc
driver to ALPHA.  Also, sort them into their respective lists correctly,
rather than punting completely (SCSIVERBOSE), or mis-sorting(!) (lc).
1997-08-24 06:40:18 +00:00
cgd
1173f77359 fix spaces/tabs lossage: if we're going to do "options<space><tab>", be
consistent about it (fix it in all files)!  Also, there's no point at all
in doing "file-system<space><tab>", so kill the spaces.
1997-08-24 06:37:12 +00:00
mjacob
6ac7f6248f add a before tab to SCSIVERBOSE 1997-08-23 19:16:06 +00:00
drochner
44224e6fd5 Adapt to serial console attachment changes. 1997-08-23 14:28:16 +00:00
kleink
dc91486be3 bootp vs. mop: don't clobber `netboot' flag. 1997-08-23 10:18:33 +00:00
cgd
fc2e81c6d5 lie to the compiler when doing mkdep so that it depends .s files correctly. 1997-08-22 06:37:17 +00:00
mjacob
0e3c7b7f44 Commented out SCSIVERBOSE option; reference 1997-08-20 18:35:55 +00:00
augustss
332ad95e76 Change the MI audio driver so it attaches to the MD driver in the
normal way.  This requires adding a line to the config files to
get audio to work again.
1997-08-19 23:49:33 +00:00
mjacob
23d0cae1eb It helps streaming performance substantially to enable bursts and more up hose
packets. It's not clear whether latency will be affected much. It could be.
However, for the time being, getting full rates out of HIPPI or SCSI are what
interests us at NASA, so we'll hew to this bias.
1997-08-16 01:18:30 +00:00