Local APIC

- local APIC timer used as the source of time

- PIC is still used as the hw interrupt controller as we don't have
  enough info without ACPI or MPS to set up IO APICs

- remapping of APIC when switching paging on, uses the new mechanism
  to tell VM what phys areas to map in kernel's virtual space

- one more step to SMP

based on code by Arun C.
This commit is contained in:
Tomas Hruby
2009-11-16 21:41:44 +00:00
parent 6515c93ecf
commit 8a44a44cb9
24 changed files with 1457 additions and 40 deletions

View File

@@ -39,9 +39,6 @@ PUBLIC void main()
reg_t ktsb; /* kernel task stack base */
struct exec e_hdr; /* for a copy of an a.out header */
/* Architecture-dependent initialization. */
arch_init();
/* Global value to test segment sanity. */
magictest = MAGICTEST;
@@ -184,6 +181,9 @@ PUBLIC void main()
alloc_segments(rp);
}
/* Architecture-dependent initialization. */
arch_init();
#if SPROFILE
sprofiling = 0; /* we're not profiling until instructed to */
#endif /* SPROFILE */
@@ -270,8 +270,8 @@ timer_t *tp;
* down MINIX. How to shutdown is in the argument: RBT_HALT (return to the
* monitor), RBT_MONITOR (execute given code), RBT_RESET (hard reset).
*/
intr_init(INTS_ORIG);
arch_stop_local_timer();
intr_init(INTS_ORIG, 0);
arch_shutdown(tp ? tmr_arg(tp)->ta_int : RBT_PANIC);
}