summaryrefslogtreecommitdiffstats
path: root/sys/ia64
Commit message (Collapse)AuthorAgeFilesLines
* MB_LEN_MAX is not MD, move it to the MI limits.h.tjr2002-12-222-2/+0
|
* More MFp4: DIG64 structures.marcel2002-12-181-0/+90
|
* Export the physical address of the RSDP to userland by meansmarcel2002-12-181-10/+23
| | | | | | | | | | of the `machdep.acpi_root' sysctl. This is required on ia64 because the root pointer hardly ever, if at all, lives in the first MB of memory and also because scanning the first MB of memory can cause machine checks. This provides a save and reliable way for ACPI tools to work with the tables if ACPI support is present in the kernel. On ia64 ACPI is non-optional.
* Check that the dump device is large enough. Otherwise we couldmarcel2002-12-171-0/+10
| | | | | | | | | end up with a dump offset that's smaller than the start of the dump device and either clobber data in preceding partitions or try to write beyond the end of the medium (unsigned wrap). Implement legacy behaviour to never write to the first 64KB as that is where metadata (ie disklabels) may reside.
* Regen: swapoffmarcel2002-12-163-4/+5
|
* Change swapoff from MNOPROTO to UNIMPL. The former doesn't work.marcel2002-12-161-1/+1
|
* This is David Schultz's swapoff code which I am finally able to commit.dillon2002-12-151-0/+1
| | | | | | | This should be considered highly experimental for the moment. Submitted by: David Schultz <dschultz@uclink.Berkeley.EDU> MFC after: 3 weeks
* SCARGS removal take II.alfred2002-12-143-134/+129
|
* Backout removal SCARGS, the code freeze is only "selectively" over.alfred2002-12-133-129/+134
|
* Remove SCARGS.alfred2002-12-133-134/+129
| | | | Reviewed by: md5
* Unbreak the KSE code. Keep track of zobie threads using the Per-CPU storagejulian2002-12-101-1/+1
| | | | | | | | during the context switch. Rearrange thread cleanups to avoid problems with Giant. Clean threads when freed or when recycled. Approved by: re (jhb)
* Use one of the bi_spare entries for the DIG64 HCDP table address.marcel2002-12-081-1/+2
| | | | | | | | | | | | The HCDP table is one (non-proprietary) way for the platform to inform the OS about headless operation. This field would normally hold the address as can be found by scanning the EFI system table, which we also pass to the kernel. The apparent duplication allows us to synthesize a HCDP table in the loader by whatever means we can think of, including relocating the platform table into pre- mapped address space. In short: it gives us more freedom. Approved by: re (blanket)
* Disable SMP. It reduces the chance that the kernel boots. On topmarcel2002-12-081-1/+1
| | | | | | | | | | of that, there's some nasty process corruption when running with SMP. Note that this was already in effect for the 5.0-RC1 kernels in the form of a local patch. Approved by: re (blanket)
* MFi386alc2002-12-021-0/+2
| | | | | | Hold the page queues lock around vm_page_unhold() in vunmapbuf(). Approved by: re (blanket)
* Implement bus_space_subregion(). Identical to i386.marcel2002-11-291-3/+8
| | | | Approved by: re (carte blanc)
* Better handle sparse physical memory: Don't use the address rangemarcel2002-11-291-8/+4
| | | | | | | as a measure for available memory to scale the VHPT. Instead, use the previously determined Maxmem. Approved by: re (carte blanc)
* MFp4:marcel2002-11-242-3/+38
| | | | | | | | | | Add function map_port_space() to map the memory mapped I/O port range as uncacheable virtual memory and call it prior to probing for a console. This removes the dependency on the loader to have done this for us. Note that this change does not include doing the same for APs. Approved by: re (blanket)
* Fix comparison that caused a 1-off bug. This appeared harmless formarcel2002-11-241-1/+1
| | | | | | | | the kernel itself, but SAL on Itanium2 machines spontaneously rebooted the machine. Approved by: re (blanket) Submitted by: Arun Sharma <adsharma@unix-os.sc.intel.com>
* Under certain circumstances, we were calling kmem_free() frommux2002-11-221-0/+5
| | | | | | | | | | i386 cpu_thread_exit(). This resulted in a panic with WITNESS since we need to hold Giant to call kmem_free(), and we weren't helding it anymore in cpu_thread_exit(). We now do this from a new MD function, cpu_thread_dtor(), called by thread_dtor(). Approved by: re@ Suggested by: jhb
* MFi386 r1.369alc2002-11-171-0/+3
| | | | | | - Clear the PG_WRITEABLE flag in pmap_page_protect() if write access is being removed. Return immediately if write access is being removed and PG_WRITEABLE is already clear.
* Regenerate after adding syscalls.deischen2002-11-163-4/+13
|
* Add *context() syscalls to ia64 32-bit compatability table as requesteddeischen2002-11-161-0/+3
| | | | in kern/syscalls.master.
* Add getcontext, setcontext, and swapcontext as system calls.deischen2002-11-161-0/+14
| | | | | | | | | | | Previously these were libc functions but were requested to be made into system calls for atomicity and to coalesce what might be two entrances into the kernel (signal mask setting and floating point trap) into one. A few style nits and comments from bde are also included. Tested on alpha by: gallatin
* Do not assume that time_t is an int.peter2002-11-151-1/+1
| | | | Approved by: re (jhb)
* Test the water. Make time_t long (64 bit) on ia64 since we do not havepeter2002-11-151-1/+1
| | | | | | | | | to worry about ABI vs released systems yet. This is mostly transparent since there is no significant exposure in the syscall interface. The things that go wrong are mostly userland stuff - time(&intvariable). Reviewed by: dfr, marcel Approved by: re (jhb)
* Move pmap_collect() out of the machine-dependent code, rename italc2002-11-131-30/+1
| | | | | | | | to reflect its new location, and add page queue and flag locking. Notes: (1) alpha, i386, and ia64 had identical implementations of pmap_collect() in terms of machine-independent interfaces; (2) sparc64 doesn't require it; (3) powerpc had it as a TODO.
* ia64 ABI breaker:marcel2002-11-111-30/+17
| | | | | | | | | | | | | Don't force 16-byte alignment at run-time. Do it at compile-time. This saves us the pointer fiddling by the setjmp functions and reduces complexity. While here, increase the jmp_buf by 16 bytes to an even 512 bytes. Coincidentally, due to the way alignment was handled prior to this change, the jmp_buf has not changed in size, but only in how the space is used. Prior to this change the 16 bytes were reserved for enforcing alignment; now they are reserved by us for future extensions. Therefore, this ABI breaker is relatively save: the failure is always an alignment trap.
* - Clear the page's PG_WRITEABLE flag in the i386's pmap_changebit()alc2002-11-111-2/+1
| | | | | | if we're removing write access from the page's PTEs. - Export pmap_remove_all() on alpha, i386, and ia64. (It's already exported on sparc64.)
* Comment-out USB support. A kernel doesn't boot with it. Deal with itmarcel2002-11-111-12/+12
| | | | later.
* Print real / avail memory in megabytes rather than kilobytes.des2002-11-091-3/+4
|
* Move the definitions of the hw.physmem, hw.usermem and hw.availpagestmm2002-11-071-27/+0
| | | | | | | | | | | sysctls to MI code; this reduces code duplication and makes all of them available on sparc64, and the latter two on powerpc. The semantics by the i386 and pc98 hw.availpages is slightly changed: previously, holes between ranges of available pages would be included, while they are excluded now. The new behaviour should be more correct and brings i386 in line with the other architectures. Move physmem to vm/vm_init.c, where this variable is used in MI code.
* Remove what was a temporary bogus assignment of bits of siginfo_t, as it doesjmallett2002-11-061-2/+0
| | | | | | not look like the prerequisites to fill it in properly will be in the tree for the upcoming release, but it's mostly done, so there is no need for these to stay around to remind us.
* Define UMA_MD_SMALL_ALLOC so that we can allocate memory with regionmarcel2002-11-062-16/+38
| | | | | | 7 addresses for use by page tables and kernel stacks. Obtained from: peter
* o Remove devices that are commented out.marcel2002-11-051-10/+4
| | | | | | o Enable sc o Remove NO_GEOM. We need GEOM for GPT. o Remove NO_CPU_COPTFLAGS.
* Remove mcclock. It's an Alpha left-over.marcel2002-11-051-2/+0
|
* Sync to src/sys/kern/syscalls.masterrwatson2002-11-021-1/+1
|
* Don't pass the return address to exception_save in register b0. Usemarcel2002-10-302-196/+158
| | | | | | | | | | a true scratch register. This change and future re-allocations will eventually result in code that we can unwind to to get the preserved registers of the process. This of course means that we cannot trash them while saving the process context. While re-allocating, remove the register aliases. Abstraction is in this case disadvanteous.
* Rewrite cpu_switch(). The most notable change is the fact that we nowmarcel2002-10-307-303/+364
| | | | | | | | | | have f16-f31 as part of the context. The PCB has been reorganized to better match how we save and restore the (preserved) registers. This commit also moves the context restoriation to its own function (named pcb_restore), as we did with pcb_save. Only minimal effort has been put in writing optimal assembly. The expectation is that there will be more rounds of changes.
* Remove mf.a from sapic_read() and sapic_write(). We only caremarcel2002-10-281-3/+0
| | | | | about ordering and not acceptance. The removal of mf.a leaves behind the mf that accompanied it.
* Remove mf.a (the acceptance form of the memory fence instruction)marcel2002-10-281-12/+0
| | | | | | | | | | | from all low-level bus space support functions. There's no need to actually force the read/write to be accepted by the platform before we can do anything else. We still have the mf instruction there, which forces ordering. This too is not required given the semantices of the bus space I/O functions, but it's not at all clear to me if there are any poorly written device drivers that depend on the strict ordering by the processor. The motto here is to take small steps...
* Make vmstat -i work:marcel2002-10-284-54/+48
| | | | | | | | o Properly set the pointer to the counter for each interrupt and update the intrnames table. o Remove Alpha cruft from intrcnt.h. o Create INTRNAME_LEN as the single entity that defines the width of the names in the intrnames table (incl. terminatinf '\0').
* In ipi_send(), perform a mf instruction prior to initiating the IPI.marcel2002-10-271-1/+1
| | | | | | | | | This guarantees that loads and stores emitted before the fence are made visible before the IPI becomes pended. Remove the mf.a instruction after initiating the IPI. There's no guarantee that the IPI becomes pended prior to subsequent reads or writes. Even if there was a guarantee, it would mostly be without any benefit.
* Add COMPAT_FREEBSD4 here too. It has COMPAT_43 as well.peter2002-10-261-0/+1
|
* Split 4.x and 5.x signal handling so that we can keep 4.x signalpeter2002-10-253-22/+9
| | | | | | | | | | | | | | | | handling clean and functional as 5.x evolves. This allows some of the nasty bandaids in the 5.x codepaths to be unwound. Encapsulate 4.x signal handling under COMPAT_FREEBSD4 (there is an anti-foot-shooting measure in place, 5.x folks need this for a while) and finish encapsulating the older stuff under COMPAT_43. Since the ancient stuff is required on alpha (longjmp(3) passes a 'struct osigcontext *' to the current sigreturn(2), instead of the 'ucontext_t *' that sigreturn is supposed to take), add a compile time check to prevent foot shooting there too. Add uniform COMPAT_43 stubs for ia64/sparc64/powerpc. Tested on: i386, alpha, ia64. Compiled on sparc64 (a few days ago). Approved by: re
* Extract out KSE specific code from machine specific codejulian2002-10-241-18/+2
| | | | | | | | so that there is ony one copy of it. Fix that one copy so that KSEs with no mailbox in a KSE program are not a cause of page faults (this can legitmatly happen). Submitted by: (parts) davidxu
* Oops, I missed a few changes in 'device acpica' -> 'device acpi' change.jhb2002-10-241-5/+5
| | | | Submitted by: Hiten Pandya <hiten@angelica.unixdaemons.com>
* Rename 'device acpica' to 'device acpi'.jhb2002-10-241-1/+1
| | | | Approved by: msmith, iwasaki
* In cb_dumphdr() we were calling buf_write() with di->priv as themarcel2002-10-201-1/+1
| | | | | | | | | pointer to a dumperinfo instead of di. A brainfart, surely. This bug went unnoticed for all this time because the pointer is only used by buf_write() when it can write a completely filled buffer to the dump device. This depends on the number of memory chunks that needs to be dumped. This has apparently been low enough that it has never happened up until this point.
* Remove the special casing for IP addresses that are within the IVTmarcel2002-10-201-22/+2
| | | | | or the do_syscall() function. We have unwind directives to stop the unwinder.
* Define IVT_ENTRY and IVT_END as special versions of ENTRY and ENDmarcel2002-10-202-300/+320
| | | | | | | | | | | | for defining vectors. As a result, each vector will be a global function with unwind directives to notify the unwinder that we're in an interrupt handler. In the debugger this will show up something like: Debugger(0xe000000000a211d8, 0xe000000000748960) at Debugger+0x31 panic(0xe000000000a36858, 0xe0000000021d32d0, 0xe000000000ae42e8, ... trap(0x14, 0x100000, 0xe0000000021d32d0, 0x0, 0xa0000000002095f0, ... ivt_Data_TLB(0x14, 0x100000, 0xe0000000021d32d0) at ivt_Data_TLB+0x1f0
OpenPOWER on IntegriCloud