29 Commits

Author SHA1 Message Date
John Baldwin
260c5d350e If PAGING is defined then actually turn it on when entering protected
mode.
1999-10-27 02:22:52 +00:00
John Baldwin
228ace6ebf aThis patch updates the BTX to emulate the BIOS function "Copy Extended
Memory" called as function 0x87 of interrupt 0x15.  Since the Mylex RAID
adapter's BIOS used this function to access memory (actually PCI bus
space) beyond 16 MB, this patch also allows BTX to address all 4 Gig of
possible address space on i386+.  Since the loader does not have room for
4 MB of page tables, this was done by turning off paging.

Paging was turned off via a compile time setting which defaults to off.
To enable paging, simply define the make variable PAGING.

rnordier might want to clean this up later.

Submitted by:	W. Gerald Hicks <wghicks@bellsouth.net>,
		Bosko Milekic <bmilekic@ares.dsuper.net>
Reviewed by:	msmith
Required by:	Mylex RAID adapter's BIOS
1999-10-12 21:33:49 +00:00
Brian Somers
ad128796fd Blank out the twiddly thing when outputting the ``BTX loader'' message. 1999-10-12 06:57:26 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Robert Nordier
e2c9098e4f Drop some non-existent commented-out targets. 1999-05-18 22:10:05 +00:00
Robert Nordier
401d37631a Emulate a V86 "movl %cr0,%eax" instruction.
Feedback and testing: Kurt Hopfensperger <kjhmdjd@ix.netcom.com>
1999-02-25 16:27:41 +00:00
Robert Nordier
d7478bf0df Push version numbers up to 1.00. This is just intended to reflect
that the BTX code can be regarded as stable: there are no associated
code changes.

Suggested by: obrien
1999-01-22 13:07:17 +00:00
Robert Nordier
3d04f230e5 Revise a few comments. 1998-11-02 17:53:08 +00:00
Robert Nordier
3b1bd5ae35 Ignore, rather than emulate, an i386 'hlt' instruction (though for
most practical purposes, this should be indistinguishable from a
more strictly correct approach).

Feedback and testing: msmith
1998-11-01 13:52:52 +00:00
Mike Smith
4c1a7a5a8f Make the BTX loader much more quiet about what it's doing. This removes
most of the "what the (*^&%(*^ was that?" stuff that normally flies by.
1998-10-30 00:11:35 +00:00
Mike Smith
f41c619d3d Pop the return address off the stack before making a V86_CALLF call;
this allows us to implement what look like C function calls from user
space "directly" to v86 mode code.  (Used for calling the PnP BIOS)
1998-10-22 20:22:07 +00:00
Robert Nordier
8f65b6a695 Don't use an absolute path to objcopy.
Noticed by: Scott Mace <smace@intt.org>
1998-10-13 18:29:18 +00:00
Robert Nordier
10806461a7 Override for ELF. Override .s.o suffix rule. 1998-10-11 11:27:48 +00:00
Robert Nordier
b7b32c2745 Fix for "get base memory" bug found and mostly fixed by Mike. 1998-10-06 07:15:35 +00:00
Mike Smith
024e2ede72 The BIOS memory size is only a word. Some BIOSsen have garbage in the other
16 bits we were reading here, causing loss of arguments.
1998-10-06 06:13:36 +00:00
Robert Nordier
731a4a01db Adjust setting of argument pointer for BTX 0.87. 1998-10-04 21:15:45 +00:00
Robert Nordier
18577050a0 Allocate space for storing of arguments at the end of conventional
memory.
1998-10-04 21:14:33 +00:00
Robert Nordier
3948b979ba For system calls, reboot without prompting; for exceptions, display
message and await reset.
1998-10-03 18:05:12 +00:00
Robert Nordier
9cd66506dd Map all BTX system pages readable at ring 3.
This resolves the firmware problem first raised in connection
with PR 8105, although unrelated.
1998-10-03 14:33:06 +00:00
Mike Smith
9d38269bae Fix an egregious precedence bug. 1998-10-02 20:52:26 +00:00
Mike Smith
39de38225b Mark exit() as __attribute__((__noreturn__)) 1998-10-02 16:22:54 +00:00
Peter Wemm
c7f3e669b7 Make these compile when there is an obj dir. 1998-09-25 17:14:16 +00:00
Mike Smith
948486abe3 Initial integration of the i386 bootloader and BTX.
- Discard large amounts of BIOS-related code in favour of the more compact
   BTX vm86 interface.
 - Build the loader module as ELF, although the resulting object is a.out,
   make gensetdefs 32/64-bit sensitive and use a single copy of it.
 - Throw away installboot, as it's no longer required.
 - Use direct bcopy operations in the i386_copy module, as BTX
   maps the first 16M of memory.  Check operations against the
   detected size of actual memory.
1998-09-17 23:52:16 +00:00
Robert Nordier
ec3009d3ec Add exec syscall. 1998-09-15 13:26:23 +00:00
Mike Smith
0d5d0b20dc Resynch with working sources before BTX integration.
- Use format-independant module allocator.
 - Conditionalise ISA PnP support.
 - Simplify PnP enumerator interface.
 - Improve module/object searching.
 - Add missing depend/install targets in BTX makefiles.
 - Pass the kernel environment and module data in extended bootinfo fields.
 - Add a pointer to the end of the kernel + modules in bootinfo.
 - Fix parsing of old-style kernel arguments.
1998-09-14 18:27:06 +00:00
Robert Nordier
4cbf0238eb Add BTX startup/interface code. 1998-09-14 10:37:00 +00:00
Robert Nordier
38c931abc7 Enable client entry point support. 1998-09-13 13:28:07 +00:00
Robert Nordier
b0923a2edc Add btxldr, a BTX loader for ELF clients. 1998-09-12 06:30:26 +00:00
Robert Nordier
aa7af79537 BTX (aka the boot extender) is an i386 kernel that hosts 32-bit
bootstrap programs, and provides page-level protection, hardware
interrupt reflection, a virtual-8086 mode interface to BIOS, etc.
1998-09-12 04:29:23 +00:00