Commit Graph

2228 Commits

Author SHA1 Message Date
pk da1407c412 Use <machine/asm.h> to construct C identifiers. 1999-03-05 11:12:16 +00:00
pk 994c338f0a Apply C_LABEL() to `esym' too. 1999-03-05 11:07:03 +00:00
pk ebd1f5abc9 Have pseudo function return a value. 1999-03-05 10:55:55 +00:00
pk 29db4ce692 Use macros from <machine/asm.h> to construct C labels. 1999-03-05 10:45:25 +00:00
pk a1aa41e201 consinit: cover all cases. 1999-03-05 08:30:33 +00:00
pk cf93b65b10 Print version prettier. 1999-03-02 13:41:03 +00:00
pk e2909faa19 Sanatize consinit() a bit. 1999-03-02 13:40:05 +00:00
kim d3a3d58726 Try not to run when kernel is in secure mode. 1999-03-01 01:05:51 +00:00
pk f008a1bbd0 Missing `break'. 1999-02-27 16:13:59 +00:00
pk 49035b27c8 Do not call printf() from a CPU that is spinning up; defer the probe
messages to cpu_attach() where the boot processor takes care of them.
This also necessitates a slight change in the way the FPU name is stored.
1999-02-27 13:11:21 +00:00
scottr d32ed292af defopt BUFCACHE and BUFPAGES. 1999-02-27 06:39:34 +00:00
chs 31ef6fbb8d add RODATA(), which is like ENTRY() but without the _PROF_PROLOGUE. 1999-02-24 16:02:19 +00:00
pk 9efc61e01c Accept __syscall() in NetBSD a.out emulation. 1999-02-23 06:47:05 +00:00
pk 372e76a3bb Since V2 & V3 proms already pass us ihandles for stdin and stdout,
there's no need to open the device a second time. It suffices to
just convert the `ihandles' to `phandles'.
1999-02-22 17:15:30 +00:00
kristerw 871ac39c21 The recent simplification of the lint version of the va_arg macro broke
linting of vfprintf.c, where va_arg is used as
   *va_arg(ap, quad_t *) = ret;
Make the macro slightly more complicated...
1999-02-20 00:33:55 +00:00
christos 85a8ddde1d make the #if 0'ed code compile... 1999-02-18 17:23:55 +00:00
christos 88bdeec361 && || confusion. 1999-02-18 17:21:14 +00:00
pk 8d45c4eb84 Use promlib version correctly. 1999-02-16 07:22:17 +00:00
pk 6139fd16f3 Install the `machine' link again; it went missing a while ago.
Add `-I.' to CPPFLAGS to use it.
1999-02-15 19:31:34 +00:00
pk 2a1ecde639 Transfer copyright to TNF. 1999-02-15 19:01:38 +00:00
pk d292580f3f Use PROMLIB to streamline this code. This also provides the bulk of
Open Firmware boot code.
1999-02-15 18:59:36 +00:00
pk 8460b71d8d * Add promlib.c to common sources.
* Compile with prototype warnings turned on.
1999-02-15 18:52:12 +00:00
christos c95ea656d6 Elf bits. 1999-02-14 20:04:26 +00:00
pk 059697a999 Use PROMLIB's prom_setcontext(). 1999-02-14 14:37:45 +00:00
pk 3ee0ba2805 romcall() => prom_halt() 1999-02-14 14:37:15 +00:00
pk 67df93822d Add size arg to getpropstringA 1999-02-14 14:03:16 +00:00
pk 8edcd03969 Use the PROMLIB interface. 1999-02-14 12:44:31 +00:00
pk 9896803ae6 Fake a label only if it appears to be blank, and if so use RAW_PART
instead of 0.
1999-02-14 12:42:33 +00:00
pk 4b9ee1f8ce This file is superseded by promlib.c 1999-02-14 12:38:03 +00:00
pk 4dc82c28b4 Exit: obp.c; Enter: promlib.c & openfirm.c 1999-02-14 12:36:50 +00:00
pk a8456f4e8a Check OBP magic: if no match then assume an Openfirmware PROM. 1999-02-14 12:33:55 +00:00
pk 1e5bf77774 Adjust to functionality and changes introduced with <machine/promlib.h> 1999-02-14 12:26:16 +00:00
pk a99ba2939c Provide a uniform interface to most of the PROM functions.
Include an Openfirmware back-end (mostly copied from sparc64).
1999-02-14 12:23:03 +00:00
christos 6e13c7d4b5 Avoid defining __extension__ if we don't need to. Breaks lint. 1999-02-13 20:35:02 +00:00
lukem dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
mycroft 2a304686e6 Minor cleanup.
Make the initializer for BAUDLO depend on PCLK directly; it was incorrect on
some ports where PCLK is not 4.9152MHz.
XXX Is the default value actually used?
1999-02-11 15:28:03 +00:00
bouyer f6f9f8a965 Change DIOCEJECT to do what's needed to eject a device before the eject
command (unlock for sd and cd) if no other partitions are open, return
EBUSY otherwise. DIOCEJECT will have the old semantic if its argument is not
0. The old ioctl has been renamed to ODIOCEJECT for binary compatibility.
1999-02-08 16:33:16 +00:00
fvdl 1461618ead Make this compile for SUN4 only. 1999-02-08 00:13:20 +00:00
christos d30ef27fb0 s/ELF/__ELF__/ 1999-02-07 20:21:09 +00:00
jonathan c9d036d796 defopt MEMORY_DISK_{HOOKS,SERVER,IS_ROOT}. 1999-02-07 09:34:58 +00:00
hannken c4bc93ad94 Define _STANDALONE instead of STANDALONE. 1999-02-06 13:34:15 +00:00
mycroft be1af660c0 Don't set DCD_IE in the frontends. KGDB doesn't even use DCD, and the tty
frontends get it from zsparam() anyway.
1999-02-03 20:25:05 +00:00
mrg 1ccaf05ff1 add CPU_SUN4U, to make libkvm compile. 1999-02-01 22:20:02 +00:00
drochner cc66380116 fix address incrementing in the read_region_N, write_region_N,
set_region_N and copy_region_N methods
1999-01-29 16:30:51 +00:00
mycroft 897a8a7f29 Mark [hn]to[nh][ls]() with __const__, so they are subject to CSE. 1999-01-24 12:55:01 +00:00
pk 922c3eb8f9 Read & clear fault status register after probing translation. 1999-01-24 10:12:22 +00:00
pk 84826812fc Don't tread on cache tags if the cache is already enabled. 1999-01-24 10:11:23 +00:00
christos 64df2f4fd8 Remove old prototypes (move to mi code), and add the xrs gunk! 1999-01-21 23:05:14 +00:00
christos 0b836e1a7b move the machine independent portion out of the context functions. 1999-01-21 22:58:57 +00:00
mycroft 399318b456 Vanity config files. 1999-01-21 09:58:26 +00:00
pk 5ce78d9342 Fix think-o in srmmu_cache_flush(). 1999-01-20 15:25:29 +00:00
pk 565d3768e5 Catch `Unimplemented Flush' traps. 1999-01-20 00:15:07 +00:00
pk 521611091a Set the Hypersparc ICCR bits. 1999-01-19 23:07:29 +00:00
pk 88993b57d9 Define macros to read & write Ancillary State registers. 1999-01-19 23:05:52 +00:00
pk 66cd211961 Define Hypersparc ICCR bits. 1999-01-19 23:04:02 +00:00
thorpej 2fb041ce0a No need for <sys/mtio.h> 1999-01-19 18:18:41 +00:00
pk a711033aa2 Deal with SIR_SERIAL (for `com' devices).
XXX - consider using __GENERIC_SOFT_INTERRUPTS instead
1999-01-19 10:04:42 +00:00
pk dd91d8a2b4 Add SIR_SERIAL soft interrupt source. 1999-01-19 10:02:40 +00:00
pk 58fa0024a5 Add `qe'. 1999-01-17 20:45:26 +00:00
chuck 90ddaed9b5 MNN is no longer optional, remove dead code 1999-01-16 20:43:21 +00:00
pk c884428427 Add `be' + MII devices.
Add PCMCIA devices that are known to compile at the moment.
1999-01-16 13:43:50 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
mrg bb4584ec40 look for /^Version:/ to find the boot block version, rather than using
the "version" file's RCS id (which is useless for branches).
1999-01-15 00:48:03 +00:00
pk 6a8119ff1d Sanity check from Matthias Drochner. 1999-01-15 00:26:24 +00:00
pk 0372e36e3f device_register: recognize `lebuffer' and `isp' as controllers. 1999-01-14 13:08:24 +00:00
pk de7b3f5492 Add `bus_space_subregion()' which was curiously missing. 1999-01-13 20:48:40 +00:00
pk 53c6ccd94d Add `eccmemctl' entry. 1999-01-13 20:35:30 +00:00
abs 4b0a936711 fix void arithmetic 1999-01-13 04:19:08 +00:00
thorpej 8406f65cbf Use a pool for pmap structures. 1999-01-11 20:58:46 +00:00
mrg d1f3239be8 bump size of miniroot 1999-01-10 13:40:30 +00:00
thorpej e598335d1c Garbage-collect `mbutl'. 1999-01-09 22:10:12 +00:00
augustss fc5f9ee81d Add -Wpointer-arith warning since `void *' arithmetic is not ANSI C. 1999-01-08 19:26:12 +00:00
pk 9d4c26b2c1 * hypersparc support:
get cache size from PROM info like the others
	reset the cache type bits before setting our desired values
* smp cache flushing:
	protect the cpu message bits with splhigh().
1999-01-08 10:15:10 +00:00
mrg 12d0e6e8f7 move sparc{,64} installboot.8 back to src/share, to avoid splitting sources for users who dont get everything. 1998-12-22 02:34:09 +00:00
pk fc6df8006b Make sure we don't spuriously detect more than one boot device (as the
previous patch but extended to all devices).
1998-12-21 11:25:39 +00:00
drochner 52c16cf83a get "opt_compat_svr4.h" out of <sys/conf.h> 1998-12-18 16:55:39 +00:00
kleink fec2cc52f3 T_SVR4_GETHRESTIME returns a nanosecond quantity in %o1. 1998-12-17 22:26:02 +00:00
christos 9a2a015957 1000000000 nsec != 2^31 nsec (from kleink) 1998-12-15 16:06:15 +00:00
kleink 342b5e5134 Also need to initialize the queue length of a newly allocated fpstate. 1998-12-14 16:18:46 +00:00
mrg f3e2980d41 note thta installboot.8 is built in share/man. move installboot.8 back to the same place the sources are, just build it in an MI location. 1998-12-11 12:18:46 +00:00
mjacob c2e84d0cde What was missing here is the mapping between our booting SCSI bus number
and the parent (hba) path from which we booted from. As a temp fix,
we'll only go with the first match to set altbootdev- not additional matches.
The problem was further exacerbated by the fact that cnpoll doesn't seem
to work on serial consoles.
1998-12-05 21:05:44 +00:00
pk 5d9f86821c Add a device_register() function to determine the boot device.
Use it in addition to the old method for a while, so we can take note
of any glitches easilier.
1998-12-03 23:49:58 +00:00
thorpej da572a137f Argh, fix the ANSI CPP version of the a.out WARN_REFERENCES(). 1998-12-02 21:16:46 +00:00
thorpej a6f7e0c05a Implement WARN_REFERENCES(). 1998-12-02 00:58:42 +00:00
mycroft 34a1fe3ee3 Fix bogus asm statements; tmp1 and tmp2 need to be outputs rather than inputs. 1998-11-29 10:37:08 +00:00
pk 2e89e9144b Turn a bunch of bus_space_*() macros into in-line functions mostly to avoid
variable aliasing.
1998-11-26 23:50:52 +00:00
pk c918193752 Add splserial(). 1998-11-26 22:53:13 +00:00
mycroft 8df55592be Minor changes; indentation for delay slots and NOTREACHED comments. 1998-11-26 22:36:43 +00:00
mycroft 90a44dd270 Clean up kcopy() some more:
* Return EFAULT, not -1.
* Rearrange some instructions for better parallelism.
1998-11-26 22:30:31 +00:00
pk 79bf04ce4f kcopy() must restore pcb_onfault handler. Pointed out by Charles Hannum. 1998-11-26 22:17:33 +00:00
hwr 59acb69be1 Add (commented out) 'gre' pseudo device line. Feedback is welcome.
Inspired by Klaus Klein.
1998-11-25 20:30:44 +00:00
pk b34cd5fdf0 Add IPL_SERIAL 1998-11-25 19:33:02 +00:00
pk 701d8366f0 Define `interrupt priority levels'.
XXX - for now, these arbitrary identifiers; NO INTERPRETATION IS DEFINED YET
1998-11-22 23:53:24 +00:00
pk cecf78e09d Connect the PCMCIA bus. 1998-11-22 23:36:42 +00:00
pk e40c5c3c20 Add busses: PCMCIA, MII, ATA 1998-11-22 23:22:26 +00:00
pk bc98f448b8 Turn the passed tag into "used" arguments. 1998-11-22 21:52:24 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
mrg db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
pk dee948f2d9 Increase the delay after touching the IOMMU control register by another
three no-ops (empirically verified by Robert Elz).
1998-11-18 12:07:47 +00:00
oster cf5710c839 Added a (commented out) configuration line for the RAIDframe device driver. 1998-11-16 16:44:55 +00:00
oster c74d32c5fc Updating of bdev's and cdev's to support RAIDframe. 1998-11-13 04:47:03 +00:00
ws 99d394c267 Typo 1998-11-12 14:00:06 +00:00
thorpej cabecee13c Changes to support fork_kthread():
- cpu_set_kpc() now takes void *arg third argument, passed to the
  entry point.
- cpu_fork() allows parent to be non-curproc iff parent is proc0.
  When forking non-curproc, assume its state has already been saved.
- Adjust various pieces of machine-dependent code to account of all of this.
1998-11-11 06:43:49 +00:00
chs 61458d7dfa LOCKDEBUG enhancements for non-MP:
keep a list of locked locks.
use this to print where the lock was locked
when we either go to sleep with a lock held
or try to free a locked lock.
1998-11-04 06:19:55 +00:00
pk 9eb94a0c03 Must protect user-land from cpuvar.h; noticed by Juergen Hannken-Illjes. 1998-10-26 08:16:08 +00:00
pk f3c1682c65 No need for `#ifdef SUN4M' protection. 1998-10-26 08:12:15 +00:00
pk de51cf3531 Define and use CPU pause/resume IPI messages (until such times that I know
what the prom supplied versions actually do).
1998-10-24 08:12:55 +00:00
pk c85c920d03 Duh.. condition codes are not preserved when writing directly into %psr.
Also, we need to deal with bus latency when turning off bits in the
interrupt status register.
1998-10-24 08:04:07 +00:00
pk 890e54bee0 Pull in cpuvar.h to get definition of `curproc'. 1998-10-21 07:11:47 +00:00
tron b296275bb4 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:09:13 +00:00
pk f0529fccf5 Maintain a current process (`curproc') a per CPU. 1998-10-19 11:56:43 +00:00
christos 09285b1171 PR/6311: By me... There was a bug unloading the dmamap:
addr = map->dm_segs[0].ds_addr & ~PGOFSET;
	len = map->dm_segs[0].ds_len;
	len = ((addr & PGOFSET) + len + PGOFSET) & ~PGOFSET;
	addr &= ~PGOFSET;

Notice that the & ~PGOFSET in the first line should be gone. This fixes
the newfs large disk panic.
1998-10-18 16:02:34 +00:00
pk 0bf09a4ae7 Drop cpuinfo's `L1_ptps'; instead keep a per CPU segment (level 2) page
table descriptor that is used to patch up a region (level 1) page table
associated with a user pmap at context switch time.
1998-10-16 22:39:17 +00:00
drochner 2468738337 change handling of libkern:
-sys/lib/libkern builds as library per default (as it was documented all
 the time)
-ports able to LKM set "KERN_AS=obj" explicitely in their Makefiles
 (for now; should depend on actual "option LKM" or -better- functions
 included for LKM use should be pulled in by a stub)
-always link libcompat before libkern - libkern stuff can be referred to
 by libcompat, but not the other way
1998-10-15 18:37:13 +00:00
pk fd966585a1 Turn on the counter at each CPU (we fear nothing..) 1998-10-14 14:53:36 +00:00
pk afcfa7d7fa Let all CPUs spin at spl0. 1998-10-14 14:47:20 +00:00
pk 631a48776f Don't allocate two stacks per CPU.
Minor attach-time message change.
1998-10-14 14:22:18 +00:00
pk e6c0a03f90 `ncpu != 0' doesn't make much sense when deciding what CP info to print. 1998-10-13 21:08:48 +00:00
pk bf7ace9074 CLKF_INTR() needs to have a MULTIPROCESSOR version. 1998-10-13 20:53:02 +00:00
pk 802248ee1c We use MULTIPROCESSOR explicitly here, so pull in "opt_multiprocessor.h". 1998-10-13 13:37:14 +00:00
pk 14a3acbd47 srmmu_cache_flush(): handle small (< NBPG) ranges more efficiently. 1998-10-13 13:34:06 +00:00
pk 1e0064d5d6 EINTSTACK => EINTSTACKP 1998-10-13 12:05:44 +00:00
pk d5e94d4fb2 Add missing `return'. 1998-10-13 11:33:36 +00:00
pk 8511a94f26 Oops, USPACE does not in 13 bits.. repair and save one instruction
in a non-SMP kernel.
1998-10-12 22:05:17 +00:00
pk c27a8760b7 In switchexit(), switch to the current CPU's idle u.area. 1998-10-12 21:51:54 +00:00
pk dff4866141 Add offset of `cpuinfo.idle_u'. 1998-10-12 21:50:22 +00:00
pk 5d124ce774 Move around a few PTE-manipulating macros. 1998-10-12 21:17:28 +00:00
pk 83b671e23d Make `cpcb' (current u.area) a per-CPU variable.
Brace some MP-only code with `#ifdef MULTIPROCESSOR'.
1998-10-12 20:56:48 +00:00
pk 6791d7f713 Make `_cpcb' (pointer to current user area) a per-CPU variable.
This cpuinfo field is initialized here in locore before calling bootstrap(),
since it must be valid before entering the window overflow/underflow handlers.

Fix miscalculation in the MULTIPROCESSOR version of INTR_SETUP().
1998-10-12 14:39:10 +00:00
pk 523892012a `cpcb' (pointer to current u.area) is now a per-CPU variable. 1998-10-12 14:32:14 +00:00
pk fbbc2eeedd `cpuinfo' is now cleared in locore. 1998-10-12 14:15:13 +00:00
pk 6fc7a5b45a Define `sizeof(struct cpu_info)'. 1998-10-12 14:03:22 +00:00
pk 1fb4827a72 Take care of a MID not present when matching timer register sets. 1998-10-12 12:28:26 +00:00
chuck 8bef431273 remove unused share map code from UVM:
- update calls to uvm_unmap_remove/uvm_unmap (mainonly boolean arg
        has been removed)
1998-10-11 23:20:59 +00:00
pk b9d844a520 Allocate a private PCB, kernel stack and interrupt stack for each processor.
As a result, the stack setup code in locore.s changes slightly in
the MULTIPROCESSOR case. Also, make the stack redzone barrier (for
debugging only) a per-CPU entity.
1998-10-11 14:46:45 +00:00
thorpej 908cdfe4e3 Add scsibus entry points to the cdevsw[]. 1998-10-10 02:00:49 +00:00
thorpej 29d472f53d Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter.  This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
1998-10-10 00:28:28 +00:00
pk 5422d07da0 Construct a `flush_cache_all()' for Cypress CPUs. 1998-10-09 10:48:14 +00:00
pk 024e5f4c9a More `#if defined(MULTIPROCESSOR)'s. 1998-10-09 10:08:52 +00:00
pk 57a688f81e Init a variable. 1998-10-09 08:01:33 +00:00
pk 312385da0a Define SMP versions of some cache flush methods. 1998-10-08 22:27:32 +00:00
pk 41d031837e Define a message structure of inter-processor communication. 1998-10-08 22:25:42 +00:00
pk f3c4a67a7f Adapt to changes to the cpus[] array. 1998-10-08 22:23:44 +00:00
pk 34ad8e5fb7 Find out about the number of CPUs in the system before starting device
configuration, so we can build a cpus[] array without "holes".
1998-10-08 22:14:44 +00:00
pk a61ee50b27 Move [gs]etcontext and [gs]etpte() to pte.h 1998-10-08 21:49:12 +00:00
pk e6bbfcc58a Move [gs]etcontext() and [gs]etpte() to pte.h 1998-10-08 21:47:34 +00:00
thorpej d681cf055a configure() prototype is in <sys/device.h> 1998-10-06 20:50:15 +00:00
pk 2727683a09 more DIAGNOSTIC sanity checks 1998-10-06 19:24:03 +00:00
thorpej 0729240c88 Move the "XXX re-zero proc0 user area" to the end of configure(), before
interrupts are enabled.
1998-10-06 18:58:09 +00:00
thorpej 5006dbf868 cpu_set_kpc() prototype is already in <sys/systm.h>. 1998-10-05 22:11:15 +00:00