Commit Graph

34325 Commits

Author SHA1 Message Date
mhitch 7295f9f909 Switch to MI installboot. 2003-01-15 07:25:51 +00:00
pk a458d9f040 Fix compiler warning induced by last change. 2003-01-15 06:57:12 +00:00
chs 0d8f526f58 fix two bugs in my last pmap rework:
- in tlb_flush_all(), don't skip TLB entries with the high bit on,
   I was confused about which MMU register it was using.  it's also fine
   to use the last hardware context.
 - in pmap_create(), don't allocate a hardware context for the new pmap.
   it's unnecessary, and when this would cause us to recycle all the contexts,
   it would result in the current process's context being set to 0
   (ie. the kernel's context).  the current process could then return to
   userspace without going through the context-switch code (and thus without
   having a hardware context reallocated).  this would lead to user mappings
   being entered in the kernel's context later, causing all sorts of trouble.
   add some assertions to catch this kind of thing.
2003-01-15 06:15:05 +00:00
thorpej c8763685b7 Allow the serial console boot blocks to be built with a specific
console speed, and build some of the more common ones.
2003-01-14 23:53:30 +00:00
thorpej f6f0dbd011 Stub out LIBCRT0, LIBCRTBEGIN, LIBCRTEND, and LIBC. 2003-01-14 23:51:34 +00:00
pk 9eb63b3b94 statintr: if interrupting code running below IPL_SCHED, call schedintr()
directly, saving the overhead of an extra soft interrupt.
2003-01-14 23:00:59 +00:00
pk c8226e1ce0 Define spllowerschedclock().
To be used in the same spirit as spllowersoftclock().
2003-01-14 22:58:00 +00:00
pk d45f77c6c8 Add CLKF_LOPRI() macro that allows a (timer) interrupt handler to determine
whether it is interrupting code running at a given IPL level.
2003-01-14 22:54:53 +00:00
pk ee7e8274a6 xcall: raise IPL to splsched() to prevent interrupts that take schedlock.
Otherwise we have a locking order problem with schedlock and xmsglock.
2003-01-14 17:30:55 +00:00
pk 18cd92ffe3 (Re)initialise the pmap structure fields that are not preserved on the
pmap pool cache all in one place.
2003-01-14 13:56:07 +00:00
fvdl 5692526bb6 Remove duplicate assignment. 2003-01-14 11:13:25 +00:00
fvdl d928619394 Add a couple more ServerWorks host bridges that explicitly need IO space
enabled.
2003-01-14 10:56:53 +00:00
fair 7b889057b4 Add bktr*, udsbr* and radio* at each;
allocate a major number for radio*
2003-01-14 08:40:53 +00:00
fvdl 28c12bee16 Actually return the number of found PCI interrupt routes in mpacpi_pcircount
(doh). From Wolfgang Solfrank.
2003-01-13 21:14:39 +00:00
bouyer 3075f204fd As pceb pulls in sio.c and sio_pci.c, is also needs the alpha_shared_intr
attribute.
2003-01-13 20:55:14 +00:00
augustss 12a30d35ea Add KGDB (commented out). 2003-01-13 20:48:16 +00:00
augustss cb7fde57d3 Make it compile on MPC6xx. I'm not sure about MPC40x. 2003-01-13 20:29:34 +00:00
augustss 5e9e39026f Add KGDB hooks. 2003-01-13 20:26:44 +00:00
augustss fdac9a76f1 Enable nested interrupts. 2003-01-13 20:26:22 +00:00
pk b50058b483 Broadcast I-cache flush in the `Unimplemented Flush' trap handler. 2003-01-13 20:00:34 +00:00
pk b4a1c0f6a0 Reset ddb_cpuinfo when leaving DDB. 2003-01-13 19:44:53 +00:00
pk 167ce8e6d3 Fix stack tracing once again.
Also check for trap frame boundaries when fetching the return address.
2003-01-13 19:44:06 +00:00
bouyer 15c016cd08 When padding frames smaller than ethernet minimum size, make sure we supply
a buffer long enouth, with the padding bytes initialised.
Also pad to ETHER_MIN_LEN - ETHER_CRC_LEN, not ETHER_MIN_LEN (padded frames
were 4 bytes too long).
2003-01-13 17:13:10 +00:00
pk df4b5f766b Remove UNLOCK_XPMSG() before cpu_halt(); it's not compatible with LOCKDEBUG
and it wan't chique in any case.
2003-01-13 16:59:17 +00:00
mrg 8d9571d120 remove cpu_hatched, cpu_hatch_sc and cpu_hatchstack. the first can use
the cpi->flags, the second is unused and the third is also cpi-idle_u.
2003-01-13 15:50:50 +00:00
pk 5642428f4e Use print_nolog() from xcall(), to avoid confounding things even further
by re-entering the scheduling code to wakeup syslog waiters.
2003-01-13 15:01:16 +00:00
pk 4641d55697 Halt any other CPUs in cpu_reboot(). 2003-01-13 01:35:45 +00:00
fvdl 991c0f3475 Install interrupt handlers properly when in apic mode. 2003-01-13 01:20:58 +00:00
fvdl 86ae625e2c Declare nioapics as well. 2003-01-13 01:19:34 +00:00
augustss 735022ab70 Fix bus_space_mmap() bug. 2003-01-13 00:21:53 +00:00
augustss e1dd8d6b94 The bus_space_mmap() returns a physaddr, not a page, on the PPC.
(This is broken in some (all?) of the PPC ports, it seems.)
2003-01-12 23:46:11 +00:00
fvdl a4880cb372 Export the ioapic softc linked list, for the benefit of the mpbios code. 2003-01-12 23:20:17 +00:00
fvdl d43937377e Handle all-apics entries for ioapic interrupts. 2003-01-12 23:19:44 +00:00
pk 2684c88122 fpulock: encapsulate required IPL raise in the FPU LOCK/UNLOCK macros. 2003-01-12 16:29:00 +00:00
uwe 24780840a1 Account softintr_common as uvmexp.softs, not uvmexp.intrs. 2003-01-12 06:11:01 +00:00
pk 55a3bd0a85 schedcpu() has been fixed; now we can notify another CPU about a pending
reschedule request.
2003-01-12 01:50:51 +00:00
pk c41718e9ec Remove needless indirection from the curproc() macro. 2003-01-12 01:19:00 +00:00
pk ae33d2b4e5 Use per-CPU virtual addresses for pmap_copy_page() & pmap_zero_page(). 2003-01-12 01:16:06 +00:00
augustss 337a21e08f Get interrupt swizzling right. 2003-01-12 00:52:45 +00:00
matt 12a9bdbb4f Add missing ethernets and phys. Update FireWire to current reality. 2003-01-12 00:50:29 +00:00
pk dab556c2b1 pmap_deactivate(): arguments for sp_tlb_flush() were reversed. 2003-01-12 00:34:52 +00:00
tsutsui 9a5dedeaea Fix -Wsign-compare and -Wuninitialized warnings. 2003-01-11 16:01:49 +00:00
tsutsui 5db9bf0614 Fix -Wsign-compare warnings. 2003-01-11 16:00:48 +00:00
aymeric 04afe0c722 Change the bootstrap procedure to avoid temporarily mapping physical memory.
Now, on the Amiga, we copy a small piece of code to chip memory and enable the
MMU from here.
On the DraCo, we setup %itt0 so that we shadow physical memory without
touching the page tables and very temporarily. The DraCo's memory layout
guarantees that there is no overlap in this case between physical and
virtual addresses.

This fixes a bug where Amiga's with physical memory at 0x200000 wouldn't boot
kernels >2M in size, and possibly other corner cases.

Joint work with Ilpo Ruotsalainen and Ignatios Souvatzis.
2003-01-11 10:47:08 +00:00
mrg 90d9434890 keep track of which cpu's have run a pmap and only broadcast tlb flushes to
cpu's who have done so.  implement pmap_deactivate() for MULTIPROCESSOR and
call it from cpu_switch() when we are about to switch proces and when we
enter idle().

with this change, i see significantly reduced tlb IPI traffic and fork/exec
bound processes -- such as "configure" -- run significantly faster, upto
15%.  i also obvserved a small (0-2%) benefit to CPU bound tasks as well.
2003-01-11 03:40:31 +00:00
rafal 30d29f647c Simplify CRIME rev. calculation (we don't appear to need the low nibble). 2003-01-10 20:39:22 +00:00
mrg e756303d08 expand db_proc_cmd() a little more. 2003-01-10 19:25:12 +00:00
pk 30cc38bdb5 Replace `want_resched' and `want_ast' globals by per-CPU variables. 2003-01-10 16:34:14 +00:00
augustss fc3c2cbc33 Make SYMTAB_SPACE actually work. 2003-01-10 16:18:45 +00:00
fvdl 9cf4ee5aef Move the check if ioapics were found outside of ifdef MPBIOS. Set the
polarity for the default ISA entries to 'default'.
2003-01-10 15:01:09 +00:00