475 Commits

Author SHA1 Message Date
dfr
d04bb727c3 Factor out PTE and related definitions from pmap.h - they are useful in
the loader.
2001-09-24 19:27:38 +00:00
dfr
fc598410d3 Fix a few comment typos from the last commit. 2001-09-24 17:38:58 +00:00
dfr
f08f7cc358 Add some code which can be used to change to/from physical mode when
calling various firmware functions.
2001-09-24 17:07:23 +00:00
obrien
94003d0787 + Fix misplacement of `txp'
+ Document our -CURRENT debugging bits
2001-09-24 03:23:48 +00:00
dfr
a6f6159dea Add definitions of SAL System Table. 2001-09-23 10:26:20 +00:00
dfr
46dc7c8aa3 Don't activate the ssc console unless we are running in SKI. 2001-09-22 19:52:02 +00:00
dfr
510b2f8636 Add implementations of readx() and writex(). 2001-09-22 19:51:18 +00:00
dfr
081194dc6f Add declaration of ia64_running_in_simulator(). 2001-09-22 19:50:54 +00:00
dfr
4c2efef4f7 * Turn off memory descriptor debugging - its served its purpose.
* Don't get confused when memory regions don't lie on page boundaries -
  remember our page size is typically larger than the firmware's page size.
* Add a function ia64_running_in_simulator() which is intended to detect
  whether the kernel is running in SKI or on real hardware.
2001-09-22 19:50:12 +00:00
dfr
934b85d282 Remove a redundant stop. 2001-09-22 19:46:41 +00:00
dfr
ced685c13a Fix a warning and make sure we flush the cache after writing an
instruction bundle otherwise the CPU won't see the changed bundle.
2001-09-21 10:10:15 +00:00
dfr
0b358c6489 Add ia64_fc(). 2001-09-21 10:09:27 +00:00
dfr
24ca38f02b If two @fptr relocations refer to the same symbol, use the same fptr
structure to resolve them. This is necessary to allow code to compare
function pointers.
2001-09-20 16:32:54 +00:00
dfr
02a6cf7d82 Don't clear the single-step bit after a trap - leave it up to the
debugger. The code was broken anyway - it clear every bit *except* the
single-step bit (oops).
2001-09-20 16:30:48 +00:00
dfr
c01c5c49d5 The second instruction in an MLX bundle is slot one, not slot two, even
though the actual opcode is stored in the value in slot two.
2001-09-20 16:29:30 +00:00
dfr
8c1dda681a Tidy. 2001-09-20 15:03:28 +00:00
dfr
f93278905f Don't include NFS headers. I have no idea why they were here in the first
place - NFS has no assembler in it.
2001-09-20 11:02:18 +00:00
peter
19afa3df70 Replicate a change from alpha/genassym.c to other arches. This should
fix nfs-related build breakage.
2001-09-20 02:49:59 +00:00
peter
85182a8d78 Cleanup and split of nfs client and server code.
This builds on the top of several repo-copies.
2001-09-18 23:32:09 +00:00
jhb
814bb9623f Whitespace fixes. 2001-09-18 21:52:15 +00:00
jhb
0fc343f1d8 - If we ever do the per-cpu KTR stuff, the index won't be volatile as it
will be private to each CPU.
- Re-style(9) the globaldata structures.  There really needs to be a MI
  struct pcpu that has a MD struct mdpcpu member at some point.
2001-09-18 21:46:26 +00:00
dfr
915ac6e38a Add ia64_get_cpuid(). 2001-09-18 15:21:18 +00:00
dfr
60e38e9b01 Flesh out identifycpu(). 2001-09-18 13:26:30 +00:00
dfr
4f7d5730b0 Rearrange so we search for I/O port space as early as possible (i.e.
before console probing). Also fix a confusion between EFI's page size
which is fixed at 4096 and our own page size which is variable at compile
time.
2001-09-15 18:31:49 +00:00
dfr
d7abcfbcae Avoid the region used for thread0's trapframe when setting up the stack
for ia64_init. If we use this area for ia64_init's stack, it ends up
containing garbage which causes cpu_fork to die horribly later.
2001-09-15 18:23:51 +00:00
dfr
0593e3e8a0 Use the MI console code to initialise the console. 2001-09-15 15:31:59 +00:00
dfr
983e3898da Implement inx() and outx() functions for accessing I/O ports. 2001-09-15 12:30:56 +00:00
dfr
2047d2151b Add ia64_mf_a() which executes an mf.a instruction. 2001-09-15 12:30:19 +00:00
dfr
f270e439ef * Use Intel's EFI headers instead of home-grown ones.
* Use the bootinfo's memory map if present instead of hard-coding SKI's
  memory map.
* Record the location of the I/O Port Space if present in the memory map.
2001-09-15 12:29:46 +00:00
dfr
01ee11f408 Fill out some gaps in ia64 DDB support. This involves generalising DDB's
breakpoint handling slightly to cope with the fact that ia64 instructions
are not located on byte boundaries.
2001-09-15 11:06:07 +00:00
dfr
dc5f37d985 Sync the PCI NIC sections with i386. 2001-09-15 09:09:13 +00:00
dfr
7b40715e82 * Enable dynamically linked kernel. This involves adding a self-relocator
to locore to process the @fptr relocations in the dynamic executable.
* Don't initialise the timer until *after* we install the timecounter to
  avoid a race between timecounter initialisation and hardclock.
* Tidy up bootinfo somewhat including adding sanity checks for when the
  kernel is loaded without a recognisable bootinfo.
2001-09-13 12:39:15 +00:00
julian
5596676e6c KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.

Sorry john! (your next MFC will be a doosie!)

Reviewed by: peter@freebsd.org, dillon@freebsd.org

X-MFC after:    ha ha ha ha
2001-09-12 08:38:13 +00:00
marcel
7bf6a0b91b o Fix struct ssc_time and enable the SSC call to get the RTC.
o  Print a message that the TODR is not set in sscclock_set.
2001-09-12 03:31:26 +00:00
dfr
ade9f272a1 * Make a start on a realistic definition for bootinfo.
* Switch to proc0's stack and backing store before calling ia64_init
  so that we don't rely on the loader's stack at all.
* Change kernel entry point name from locorestart to __start.
2001-09-10 13:40:00 +00:00
peter
96b9a12bd2 Rip some well duplicated code out of cpu_wait() and cpu_exit() and move
it to the MI area.  KSE touched cpu_wait() which had the same change
replicated five ways for each platform.  Now it can just do it once.
The only MD parts seemed to be dealing with fpu state cleanup and things
like vm86 cleanup on x86.  The rest was identical.

XXX: ia64 and powerpc did not have cpu_throw(), so I've put a functional
stub in place.

Reviewed by:	jake, tmm, dillon
2001-09-10 04:28:58 +00:00
peter
b3b3a6b1c9 Missing part of dillon's coredump commit. cpu_coredump() was still
passing IO_NODELOCKED to vn_rdwr(), this would cause operations on the
unlocked core vnode and softupdates nastiness if an a.out binary cored.
2001-09-08 22:18:58 +00:00
dfr
c981ef049f Add options to select between 4k, 8k and 16k page sizes on ia64. The
default is now 8k.
2001-09-07 11:03:39 +00:00
dfr
5cd3ebd8eb Typo in comment. 2001-09-07 11:01:39 +00:00
dfr
90f6eac893 * Track ref/mod information properly when a mapping changes.
* Fix a panic in pmap_remove() for a non-current pmap.
2001-09-07 11:00:21 +00:00
dfr
db9d3370ef Remove old setjmp/longjmp stubs. 2001-09-07 10:59:05 +00:00
jhb
054237d0be Call sendsig() with the proc lock held and return with it held. 2001-09-06 22:20:41 +00:00
dfr
a8e78b194e Add struct tags to avoid warnings in kernel code. 2001-09-06 18:11:16 +00:00
obrien
34ad4938d7 style(9) the structure definitions. 2001-09-05 01:36:46 +00:00
peter
119d201aab Nuke #if 0'ed "setredzone()" stub. We never used it, and probably
never will.  I've implemented an optional redzone as part of the KSE
upage breakup.
2001-09-04 08:36:46 +00:00
dfr
6315b454a5 Add a working version of setjmp/longjmp.
Obtained from: Intel's EFI toolkit.
2001-09-03 13:54:50 +00:00
peter
1752fcc466 Since we're cross compiling from x86, ignore the x86 CPUTYPE by default. 2001-09-03 07:58:32 +00:00
peter
5e41b2c07e Dont conflict with sysctl debug.mddebug 2001-09-03 04:49:19 +00:00
peter
716d54a6eb Sync with i386 / alpha. Whitespace unindent / style prep for kse. 2001-09-02 10:07:09 +00:00
peter
d280926250 Merge from i386: various cleanups including moving the map calculations
to MI code.  This gets ia64 to compile again.
2001-09-02 07:47:47 +00:00