Age | Commit message (Collapse) | Author |
|
* i386/configfrag.ac (RCLINE, RCADDR): Remove defines.
* i386/i386at/com.c: Include <string.h> and <util/atoi.h>
[!RCLINE] (RCBAUD, comcndev, comcnprobe, comcninit, comcngetc, comcnputc):
Declare and define macro, variable, and functions.
(rcline): New variable.
(kernel_cmdline): New declaration.
(comcnprobe): Detect "console=comN" option and set rcline accordingly, use
rcline instead of RCLINE for serial console selection.
* i386/i386at/cons_conf.c [NCOM>0 && !RCLINE] (comcnprobe, comcninit,
comcngetc, comcnputc): Declare functions.
[NCOM>0 && !RCLINE] (constab): Enable "com" console.
* i386/i386at/kd_event.c (kbdopen): Call kdinit function, for when the
VGA+pckbd console was not initialized.
|
|
2009-03-11 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS) [MACH_XEN]: Set to
0x20000000.
* i386/i386/i386asm.sym (pfn_list) [VM_MIN_KERNEL_ADDRESS ==
LINEAR_MIN_KERNEL_ADDRESS]: Define to constant PFN_LIST.
2009-02-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/intel/pmap.c [MACH_HYP] (INVALIDATE_TLB): Call hyp_invlpg
instead of flush_tlb when e - s is compile-time known to be
PAGE_SIZE.
2008-11-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/configfrag.ac (enable_pae): Enable by default on the Xen
platform.
2007-11-14 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/i386at/model_dep.c (machine_relax): New function.
(c_boot_entry): Refuse to boot as dom0.
2007-10-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/i386/fpu.c [MACH_XEN]: Disable unused fpintr().
2007-08-12 Samuel Thibault <samuel.thibault@ens-lyon.org>
* Makefile.am (clib_routines): Add _START.
* i386/xen/xen_boothdr: Use _START for VIRT_BASE and PADDR_OFFSET. Add
GUEST_VERSION and XEN_ELFNOTE_FEATURES.
2007-06-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/i386/user_ldt.h (user_ldt) [MACH_XEN]: Add alloc field.
* i386/i386/user_ldt.c (i386_set_ldt) [MACH_XEN]: Round allocation of
LDT to a page, set back LDT pages read/write before freeing them.
(user_ldt_free) [MACH_XEN]: Likewise.
2007-04-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
* device/ds_routines.c [MACH_HYP]: Add hypervisor block and net devices.
2007-02-19 Thomas Schwinge <tschwinge@gnu.org>
* i386/xen/Makefrag.am [PLATFORM_xen] (gnumach_LINKFLAGS): Define.
* Makefrag.am: Include `xen/Makefrag.am'.
* configure.ac: Include `xen/configfrag.ac'.
(--enable-platform): Support the `xen' platform.
* i386/configfrag.ac: Likewise.
* i386/Makefrag.am [PLATFORM_xen]: Include `i386/xen/Makefrag.am'.
2007-02-19 Samuel Thibault <samuel.thibault@ens-lyon.org>
Thomas Schwinge <tschwinge@gnu.org>
* i386/xen/Makefrag.am: New file.
* xen/Makefrag.am: Likewise.
* xen/configfrag.ac: Likewise.
2007-02-11 (and later dates) Samuel Thibault <samuel.thibault@ens-lyon.org>
Xen support
* Makefile.am (clib_routines): Add _start.
* Makefrag.am (include_mach_HEADERS): Add include/mach/xen.h.
* device/cons.c (cnputc): Call hyp_console_write.
* i386/Makefrag.am (libkernel_a_SOURCES): Move non-Xen source to
[PLATFORM_at].
* i386/i386/debug_trace.S: Include <i386/xen.h>
* i386/i386/fpu.c [MACH_HYP] (init_fpu): Call set_ts() and clear_ts(),
do not enable CR0_EM.
* i386/i386/gdt.c: Include <mach/xen.h> and <intel/pmap.h>.
[MACH_XEN]: Make gdt array extern.
[MACH_XEN] (gdt_init): Register gdt with hypervisor. Request 4gb
segments assist. Shift la_shift.
[MACH_PSEUDO_PHYS] (gdt_init): Shift pfn_list.
* i386/i386/gdt.h [MACH_XEN]: Don't define KERNEL_LDT and LINEAR_DS.
* i386/i386/i386asm.sym: Include <i386/xen.h>.
[MACH_XEN]: Remove KERNEL_LDT, Add shared_info's CPU_CLI, CPU_PENDING,
CPU_PENDING_SEL, PENDING, EVTMASK and CR2.
* i386/i386/idt.c [MACH_HYP] (idt_init): Register trap table with
hypervisor.
* i386/i386/idt_inittab.S: Include <i386/i386asm.h>.
[MACH_XEN]: Set IDT_ENTRY() for hypervisor. Set trap table terminator.
* i386/i386/ktss.c [MACH_XEN] (ktss_init): Request exception task switch
from hypervisor.
* i386/i386/ldt.c: Include <mach/xen.h> and <intel/pmap.h>
[MACH_XEN]: Make ldt array extern.
[MACH_XEN] (ldt_init): Set ldt readwrite.
[MACH_HYP] (ldt_init): Register ldt with hypervisor.
* i386/i386/locore.S: Include <i386/xen.h>. Handle KERNEL_RING == 1
case.
[MACH_XEN]: Read hyp_shared_info's CR2 instead of %cr2.
[MACH_PSEUDO_PHYS]: Add mfn_to_pfn computation.
[MACH_HYP]: Drop Cyrix I/O-based detection. Read cr3 instead of %cr3.
Make hypervisor call for pte invalidation.
* i386/i386/mp_desc.c: Include <mach/xen.h>.
[MACH_HYP] (mp_desc_init): Panic.
* i386/i386/pcb.c: Include <mach/xen.h>.
[MACH_XEN] (switch_ktss): Request stack switch from hypervisor.
[MACH_HYP] (switch_ktss): Request ldt and gdt switch from hypervisor.
* i386/i386/phys.c: Include <mach/xen.h>
[MACH_PSEUDO_PHYS] (kvtophys): Do page translation.
* i386/i386/proc_reg.h [MACH_HYP] (cr3): New declaration.
(set_cr3, get_cr3, set_ts, clear_ts): Implement macros.
* i386/i386/seg.h [MACH_HYP]: Define KERNEL_RING macro. Include
<mach/xen.h>
[MACH_XEN] (fill_descriptor): Register descriptor with hypervisor.
* i386/i386/spl.S: Include <i386/xen.h> and <i386/i386/asm.h>
[MACH_XEN] (pic_mask): #define to int_mask.
[MACH_XEN] (SETMASK): Implement.
* i386/i386/vm_param.h [MACH_XEN] (HYP_VIRT_START): New macro.
[MACH_XEN]: Set VM_MAX_KERNEL_ADDRESS to HYP_VIRT_START-
LINEAR_MIN_KERNEL_ADDRESS + VM_MIN_KERNEL_ADDRESS. Increase
KERNEL_STACK_SIZE and INTSTACK_SIZE to 4 pages.
* i386/i386at/conf.c [MACH_HYP]: Remove hardware devices, add hypervisor
console device.
* i386/i386at/cons_conf.c [MACH_HYP]: Add hypervisor console device.
* i386/i386at/model_dep.c: Include <sys/types.h>, <mach/xen.h>.
[MACH_XEN] Include <xen/console.h>, <xen/store.h>, <xen/evt.h>,
<xen/xen.h>.
[MACH_PSEUDO_PHYS]: New boot_info, mfn_list, pfn_list variables.
[MACH_XEN]: New la_shift variable.
[MACH_HYP] (avail_next, mem_size_init): Drop BIOS skipping mecanism.
[MACH_HYP] (machine_init): Call hyp_init(), drop hardware
initialization.
[MACH_HYP] (machine_idle): Call hyp_idle().
[MACH_HYP] (halt_cpu): Call hyp_halt().
[MACH_HYP] (halt_all_cpus): Call hyp_reboot() or hyp_halt().
[MACH_HYP] (i386at_init): Initialize with hypervisor.
[MACH_XEN] (c_boot_entry): Add Xen-specific initialization.
[MACH_HYP] (init_alloc_aligned, pmap_valid_page): Drop zones skipping
mecanism.
* i386/intel/pmap.c: Include <mach/xen.h>.
[MACH_PSEUDO_PHYS] (WRITE_PTE): Do page translation.
[MACH_HYP] (INVALIDATE_TLB): Request invalidation from hypervisor.
[MACH_XEN] (pmap_map_bd, pmap_create, pmap_destroy, pmap_remove_range)
(pmap_page_protect, pmap_protect, pmap_enter, pmap_change_wiring)
(pmap_attribute_clear, pmap_unmap_page_zero, pmap_collect): Request MMU
update from hypervisor.
[MACH_XEN] (pmap_bootstrap): Request pagetable initialization from
hypervisor.
[MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly)
(pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable)
(pmap_map_mfn): New functions.
* i386/intel/pmap.h [MACH_XEN] (INTEL_PTE_GLOBAL): Disable global page
support.
[MACH_PSEUDO_PHYS] (pte_to_pa): Do page translation.
[MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly)
(pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable)
(pmap_map_mfn): Declare functions.
* i386/i386/xen.h: New file.
* i386/xen/xen.c: New file.
* i386/xen/xen_boothdr.S: New file.
* i386/xen/xen_locore.S: New file.
* include/mach/xen.h: New file.
* kern/bootstrap.c [MACH_XEN] (boot_info): Declare variable.
[MACH_XEN] (bootstrap_create): Rebase multiboot header.
* kern/debug.c: Include <mach/xen.h>.
[MACH_HYP] (panic): Call hyp_crash() without delay.
* linux/dev/include/asm-i386/segment.h [MACH_HYP] (KERNEL_CS)
(KERNEL_DS): Use ring 1.
* xen/block.c: New file.
* xen/block.h: Likewise.
* xen/console.c: Likewise.
* xen/console.h: Likewise.
* xen/evt.c: Likewise.
* xen/evt.h: Likewise.
* xen/grant.c: Likewise.
* xen/grant.h: Likewise.
* xen/net.c: Likewise.
* xen/net.h: Likewise.
* xen/ring.c: Likewise.
* xen/ring.h: Likewise.
* xen/store.c: Likewise.
* xen/store.h: Likewise.
* xen/time.c: Likewise.
* xen/time.h: Likewise.
* xen/xen.c: Likewise.
* xen/xen.h: Likewise.
* xen/public/COPYING: Import file from Xen.
* xen/public/callback.h: Likewise.
* xen/public/dom0_ops.h: Likewise.
* xen/public/domctl.h: Likewise.
* xen/public/elfnote.h: Likewise.
* xen/public/elfstructs.h: Likewise.
* xen/public/event_channel.h: Likewise.
* xen/public/features.h: Likewise.
* xen/public/grant_table.h: Likewise.
* xen/public/kexec.h: Likewise.
* xen/public/libelf.h: Likewise.
* xen/public/memory.h: Likewise.
* xen/public/nmi.h: Likewise.
* xen/public/physdev.h: Likewise.
* xen/public/platform.h: Likewise.
* xen/public/sched.h: Likewise.
* xen/public/sysctl.h: Likewise.
* xen/public/trace.h: Likewise.
* xen/public/vcpu.h: Likewise.
* xen/public/version.h: Likewise.
* xen/public/xen-compat.h: Likewise.
* xen/public/xen.h: Likewise.
* xen/public/xencomm.h: Likewise.
* xen/public/xenoprof.h: Likewise.
* xen/public/arch-x86/xen-mca.h: Likewise.
* xen/public/arch-x86/xen-x86_32.h: Likewise.
* xen/public/arch-x86/xen-x86_64.h: Likewise.
* xen/public/arch-x86/xen.h: Likewise.
* xen/public/arch-x86_32.h: Likewise.
* xen/public/arch-x86_64.h: Likewise.
* xen/public/io/blkif.h: Likewise.
* xen/public/io/console.h: Likewise.
* xen/public/io/fbif.h: Likewise.
* xen/public/io/fsif.h: Likewise.
* xen/public/io/kbdif.h: Likewise.
* xen/public/io/netif.h: Likewise.
* xen/public/io/pciif.h: Likewise.
* xen/public/io/protocols.h: Likewise.
* xen/public/io/ring.h: Likewise.
* xen/public/io/tpmif.h: Likewise.
* xen/public/io/xenbus.h: Likewise.
* xen/public/io/xs_wire.h: Likewise.
|
|
* i386/configfrag.ac (enable_pae): Add checks: this is ix86-only.
|
|
[task #8135 --- ``PAE for GNU Mach']
* i386/configfrag.ac: Add --enable-pae option, which defines PAE.
* i386/i386/i386asm.sym (PDPSHIFT, PDEMASK): New assembly macros.
* i386/i386/locore.S [PAE] (copyout_retry): Use page directory pointer
bits.
* i386/i386at/model_dep.c [PAE] (i386at_init): Set second initial 2MB
page. Enable PAE bit. Set cr3 to page directory pointer table instead
of page directory.
* i386/intel/pmap.c [PAE] (pmap_bootstrap, pmap_create): Allocate 4
pages for dirbase. Setup pdpbase.
[PAE] (pmap_destroy): Free 4 pages from dirbase. Free pdpbase.
* i386/intel/pmap.h [PAE] (pt_entry_t): Typedef to unsigned long long.
[PAE] (PDPSHIFT, PDPNUM, PDPMASK): New macros.
[PAE] (PDESHIFT, PDEMASK, PTEMASK): Set to PAE values.
[PAE] (lin2pdenum, NPDES): Make them take the page directory pointer
index into account too.
[PAE] (struct pmap): Add `pdpbase' member.
(set_dirbase): Remove macro, replaced by...
(set_pmap): New macro, taking a pmap instead of the dirbase.
(PMAP_ACTIVATE_USER): Use set_pmap instead of set_dirbase.
|
|
* configure.ac (--disable-default-device-drivers): Transform into...
(--enable-device-drivers): ... this new option and extend it.
* i386/configfrag.ac (--enable-lpr): Adapt to that.
* linux/configfrag.ac (AC_OPTION_Linux_ix86_at, AC_Linux_DRIVER):
Likewise.
(AC_Linux_DRIVER_qemu): New definition. Use it for the `floppy', `ide'
and `ne' device drivers.
* doc/mach.texi: Document all that.
|
|
Add a `--enable-platform' option for future use. Allow building
without any Linux code.
* Makefile.am: Don't include `linux/Makefrag.am' in there...
* Makefrag.am: ... but rather in here.
* configfrag.ac (MACH_MACHINE_ROUTINES): AC_DEFINE_UNQUOTED based on
then shell variable `mach_machine_routines'.
(--disable-default-device-drivers): Don't define in there...
* configure.ac: ... but rather in here.
(--enable-platform): New option.
(host_platform): New variable.
(HOST_i386): Don't define there...
* i386/configfrag.ac (HOST_ix86): ... but rather here, rename it and
adapt all users.
(PLATFORM_at): New conditional.
(MACH_MACHINE_ROUTINES): Don't AC_DEFINE, but rather set a shell
variable `mach_machine_routines'.
* linux/Makefrag.am (noinst_LIBRARIES, gnumach_o_LDADD): Only enhance
``if CODE_linux'' or ``if device_driver_group_pcmcia''.
* linux/configfrag.ac (AC_OPTION): Rename to `AC_OPTION_Linux_ix86_at'
and rework a bit. Adapt all users.
(AC_OPTION_nodef): Rename to `AC_OPTION_Linux_ix86_at_nodef' and rework
a bit. Adapt all users.
(CODE_linux): New conditional.
* i386/Makefrag.am (LINKFLAGS_gnumach): Don't evaluate $(systype).
* Makefile.am: Update the FSF's postal address.
* doc/Makefrag.am: Likewise.
* i386/linux/Makefrag.am: Likewise.
* linux/Makefrag.am: Likewise.
* tests/Makefrag.am: Likewise.
* tests/configfrag.ac: Move to GPL.
|
|
Drop useless and broken FPE support.
* i386/configfrac.ac (FPE): Don't define.
* i386/i386/gdt.h (FPE_CS, USER_FPREGS): Remove macros.
* i386/i386/fpu.c (init_fpu, fpu_set_state, fpu_get_state): Remove FPE
support.
* i386/i386/fpu.h: Likewise.
* i386/i386/trap.c (user_trap, i386_exception): Likewise.
* i386/i386/fpe_linkage.c: Remove file.
* i386/Makefrag.am: Remove i386/i386/fpe_linkage.c.
* Makefile.in: Regenerate.
|
|
[patch #5019 --- ``Remove checks for continuations'']
* DEVELOPMENT: Document the removal.
* i386/configfrag.ac (CONTINUATIONS): Don't define.
2006-12-03 Leonardo Lopes Pereira <leonardolopespereira@gmail.com>
[patch #5019 --- ``Remove checks for continuations'']
* ipc/mach_msg.c: Adopt all users of CONTINUATIONS as if it were always
defined.
* kern/eventcount.c: Likewise.
* kern/ipc_sched.c: Likewise.
* kern/syscall_subr.c: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_pageout.c: Likewise.
* vm/vm_resident.c: Likewise.
|
|
[task #5956 --- ``Automake'ify GNU Mach's code base'']
* configfrag.ac: New file.
* tests/configfrag.ac: Likewise.
* Makerules.am (DEFINES): Convert those into...
* configfrag.ac: ... AC_DEFINE instantiations.
* i386/Makerules.in (DEFINES): Convert those into...
* i386/configfrag.ac: ... AC_DEFINE instantiations.
* i386/Makerules.in: Remove file.
* i386/configfrag.ac (AC_PREREQ, AC_INIT, AC_CONFIG_SRCDIR)
(AC_CONFIG_SUBDIRS, AC_CONFIG_FILES, AC_OUTPUT): Don't invoke.
(../version.m4): Don't include.
(--disable-lpr): Rework configuration option.
(--disable-default-device-drivers): Move configuration option to...
* configfrag.ac: ... here.
* configure.ac (AC_CONFIG_AUX_DIR, AM_INIT_AUTOMAKE): Instantiate.
(AC_PREFIX_DEFAULT, AC_CONFIG_SUBDIRS): Don't invoke.
<Output variable `systype'>: Rework the whole section.
<Options> (--enable-kdb, --disable-kmsg): Move into `configfrag.ac' and
adopt.
<Programs> (AM_PROG_AS, AM_PROG_CC_C_O): Instantiate.
(AC_CHECK_PROG): Move instantiation searching for a `mbchk' program
into `tests/configfrag.ac'.
(AC_CHECK_PROG): Instantiate to search for a `patch' program.
<configure fragments> (tests/configfrag.ac, configfrag.ac)
(linux/configfrag.ac): Include files.
(i386/configfrag.ac): Include file if appropriate.
(AC_CONFIG_HEADER): Instantiate for `config.h'.
(AC_CONFIG_FILES): Remove `Makerules' and `doc/Makefile'.
(AC_CONFIG_COMMANDS_POST): Instantiate for `config.status.dep.patch'.
(AC_CONFIG_COMMANDS): Instantiate for
`Makefile.correct_output_files_for_.S_files.patch' and (the
nonexistent) `Makefile.dependency_tracking_for_.S_files.patch'.
* Makefile.dependency_tracking_for_.S_files.patch: New file.
* config.status.dep.patch: Likewise.
* bogus/bootstrap_symbols.h: Remove file.
* configfrag.ac: AC_DEFINE `BOOTSTRAP_SYMBOLS' to `0'.
* bogus/cpus.h: Remove file.
* configfrag.ac: AC_DEFINE `NCPUS' to `1'. AH_TEMPLATE
`MULTIPROCESSOR'.
* bogus/fast_tas.h: Remove file.
* configfrag.ac: AC_DEFINE `FAST_TAS' to `0'.
* bogus/hw_footprint.h: Remove file.
* configfrag.ac: AC_DEFINE `HW_FOOTPRINT' to `0'.
* bogus/mach_counters.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_COUNTERS' to `0'.
* bogus/mach_debug.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_DEBUG' to `1'.
* bogus/mach_fixpri.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_FIXPRI' to `1'.
* bogus/mach_host.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_HOST' to `0'.
* bogus/mach_ipc_compat.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_IPC_COMPAT' to `1'.
* bogus/mach_ipc_debug.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_IPC_DEBUG' to `1'.
* bogus/mach_ipc_test.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_IPC_TEST' to `0'.
* bogus/mach_kdb.h: Remove file.
* configfrag.ac (--disable-kdb): AC_DEFINE `MACH_KDB' to `0'.
* bogus/mach_ldebug.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_LDEBUG' to `0'.
* bogus/mach_lock_mon.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_LOCK_MON' to `0'.
* bogus/mach_machine_routines.h: Remove file.
* configfrag.ac: Add comment about not AC_DEFINEing
`MACH_MACHINE_ROUTINES' to `0'.
* bogus/mach_mp_debug.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_MP_DEBUG' to `0'.
* bogus/mach_pagemap.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_PAGEMAP' to `1'.
* bogus/mach_pcsample.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_PCSAMPLE' to `1'.
* bogus/mach_ttd.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_TTD' to `0'.
* bogus/mach_vm_debug.h: Remove file.
* configfrag.ac: AC_DEFINE `MACH_VM_DEBUG' to `1'.
* bogus/power_save.h: Remove file.
* configfrag.ac: AC_DEFINE `POWER_SAVE' to `1'.
* bogus/simple_clock.h: Remove file.
* configfrag.ac: AC_DEFINE `SIMPLE_CLOCK' to `0'.
* bogus/stat_time.h: Remove file.
* configfrag.ac: AC_DEFINE `STAT_TIME' to `1'.
* bogus/xpr_debug.h: Remove file.
* configfrag.ac: AC_DEFINE `XPR_DEBUG' to `1'.
* i386/bogus/com.h: Remove file.
* i386/configfrag.ac: AC_DEFINE `NCOM' to `4'.
* i386/bogus/fpe.h: Remove file.
* i386/configfrag.ac: AC_DEFINE `FPE' to `0'.
* i386/bogus/lpr.h: Remove file.
* i386/configfrag.ac: AC_DEFINE `NLPR' to `1'.
* i386/bogus/mach_machine_routines.h: Remove file.
* i386/configfrag.ac: AC_DEFINE `MACH_MACHINE_ROUTINES' to `1'.
* i386/bogus/platforms.h: Remove file.
* i386/configfrag.ac: AC_DEFINE `AT386' to `1'.
* i386/bogus/rc.h: Remove file.
* i386/configfrag.ac: AC_DEFINE `RCLINE' to `-1' and `RCADDR' to `0x3f8'.
|
|
[task #5956 --- ``Automake'ify GNU Mach's code base'']
* i386/configure.in: Move file...
* i386/configfrag.ac: ... here.
* i386/configure: Remove file.
|