Commit Graph

153 Commits

Author SHA1 Message Date
drochner d57c7b76ca replace ENTRY() label in data segment which broke the code completely 1999-02-28 11:45:44 +00:00
drochner eac4e51111 redirect the linker's stderr to the protocol file too 1999-02-19 19:53:01 +00:00
drochner cb2e02af94 Make this compile and work again after the assembler update.
The new assembler doesn't allow 16-bit relocations involving arithmetics
with 32-bit variables. (The old one did silently truncate, which was
the right thing in our case.) Further, the new assembler uses to scatter
size prefixes around if the size of the operation is not explicitely
specified, even if the result is nonsense, eg for moves to segment
registers or control registers.
Add some debugging code (generating printouts) and comments.
Remove the !BOOTROM code which was intended for a DOS harness but isn't
that useful anymore.
Some cleanup and formatting to make it more similar to the other
startup code variants.
1999-02-19 19:48:06 +00:00
drochner fd3ad59373 make the ethernet address an unsigned char array to avoid sign extension
when it is printed
1999-02-19 19:30:46 +00:00
drochner 0ce9e35aae add boot ROM support for the DMA-only 3com network adapters, tested with
3c900b-Combo only for now
1999-02-19 19:22:52 +00:00
lukem dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
cjs 3e90f302b6 Don't give exit() a parameter, as libstand version doesn't take one. 1999-02-12 05:14:22 +00:00
christos 736a561afb Add my name in the copyright, since the code looks very different now. 1999-01-30 17:51:52 +00:00
christos 5699d1ab3d Remove exec.c from here. I want to make it obvious that it has to be built
with different flags from dosboot and biosboot. Although right now this
does not make a difference because we are building the libraries twice,
it can make a difference when we share the builds.
1999-01-30 17:46:53 +00:00
thorpej 191dab44fa Um, last rev was kind of backwards... actually build exec.o so that
the boot block links.
1999-01-29 22:13:42 +00:00
christos e58bb79483 Merge XMS changes from exec_fromdos.c 1999-01-29 18:49:08 +00:00
christos 3c7776f1b6 exec.c has all the info now. 1999-01-29 18:45:34 +00:00
christos 89cc672d98 Jason forgot to make the disklabel_mbr.h changes for this and ows me 5 hours
of debugging.
1999-01-29 18:45:12 +00:00
christos 722d35a400 Add the ability to get the size of the loaded image without actually
loading. This is useful for dos loading and installboot.
1999-01-29 18:44:09 +00:00
christos f1fd49f426 Add support for selectively loading sections, and make this compile in
userland with -DINSTALLBOOT
1999-01-28 22:45:06 +00:00
christos 9fa73628c9 Minor changes to prototypes. 1999-01-28 20:22:31 +00:00
christos 63546de24a Remove a.out loading code and use loadfile.c for everything.
Populate the btinfo_symtab structure.
1999-01-28 20:21:24 +00:00
christos 0fcf083702 Add loadfile.c (stolen from Jason's alpha/stand/common/loadfile.c)
loadfile.h contains macros that are supposed to be MD, but loadfile.c is now MI.
Fixes:
- a.out support
- pass information values via an array not global variables
- don't assume that you can access memory directly.
- remove MD parts
- remove some printfs.
XXX:  loadfile.c needs to be moved somewhere where other ports can use it.
XXX2: read() routines on the i386 don't appear to set errno on failure.
1999-01-28 20:18:31 +00:00
thorpej f077362c41 Use the MI <sys/disklabel_mbr.h>, not our own machine-dependent
definitions.
1999-01-27 20:54:56 +00:00
thorpej 6ead44025b Fixup some usage of _C_LABEL(). 1999-01-22 22:43:44 +00:00
drochner 6f71e420f3 add support for the Intel 82557/82558 fast ethernet chip 1998-12-12 15:47:05 +00:00
drochner 1c0cc94837 Update for INT13 support.
XXX We can't easily emulate this here due to the 16-bit-pointer
call interface.
1998-11-22 15:44:03 +00:00
ws 18f9174133 Some BIOSs insist on patching the Bios Parameter Block for some drives
(e.g. LS-120).  Make room for this.
1998-11-11 16:46:38 +00:00
ws 2791cf041a Fix a thinko which still prevented this to run on non-int13-ext machines.
Thanks to entropy@zippy.bernstein.com for pointing this out and testing the fix.
1998-10-30 12:16:59 +00:00
ws 6463d10c79 Fix typo which prevented this from working
on disks without int13-extension support.
1998-10-27 14:08:55 +00:00
ws d65dc0de3b Make ourseg visible to the outside similar to bootsect/start_bootsect.S
(Thanks to hannken@eis.cs.tu-bs.de for pointing this out).
1998-10-16 18:07:35 +00:00
ws f82918b49b Add int13 extension support 1998-10-15 15:28:22 +00:00
ws 3e28defef4 No point in making the fake partition that large.
This smaller one will (hopefully) make 0-start
installations work on more machines.
1998-10-08 14:25:42 +00:00
lukem c9db84ecc9 distclean is a synonym for cleandir 1998-09-05 15:15:14 +00:00
rvb 67390e1ee2 Make serial line debugging easier to enable and use 1998-08-13 17:41:10 +00:00
drochner 7cdf5d9a77 retry disk accesses (for shaky floppy drives) 1998-07-23 09:59:44 +00:00
drochner cbb7aa93f0 from FreeBSD:
wpaul       1998/07/02 08:36:36 PDT

  Modified files:
    sys/i386/boot/biosboot start.S
  Log:
  Add workaround to allow the FreeBSD boot block to work on
  Kapok Computer Co. notebook with AMI 'WinBIOS' which seems to insist
  on having a short jump and nop as the first instructions in the
  boot sector code. The prevailing theory is that the BIOS is doing
  some sort of boot sector virus detection and refusing to run any
  boot block that doesn't start with the same instruction sequence as
  MS-DOG boot sector code. If this is the case, it would be nice if it
  actually printed an error message to this effect instead of just
  saying 'FAILED.'

  This workaround has no effect on the boot sector code other than to
  increase its size by three bytes.
1998-07-07 13:58:59 +00:00
drochner 4153971158 Framework to test standalone code in a friedly user environment. 1998-05-15 17:07:14 +00:00
drochner a8857f05e8 Allow to use the code in user land test programs. 1998-05-15 16:38:53 +00:00
drochner 26d2f5e3b6 allow to access from user space test programs 1998-05-14 18:15:02 +00:00
drochner 2a3fff85f0 add RCS ID 1998-05-06 13:32:18 +00:00
drochner 41bbe0c360 3c900 TPO works too, as reported by Feico Dillema <dillema@acm.org>. 1998-02-25 12:15:49 +00:00
drochner ad33d83f8b Add compatibility code (#ifdef COMPAT_386BSD_MBRPART): look for 386BSD
partition ID if the NetBSD ID was not found.
Cleanup, use definitions from <machine/disklabel.h>
1998-02-19 14:15:38 +00:00
drochner 411e77cac8 Add compatibility code (#ifdef COMPAT_386BSD_MBRPART): look for 386BSD
partition ID if the NetBSD ID was not found.
1998-02-19 14:12:48 +00:00
drochner 509f891bd0 -Completely reset the card in EtherStop(), otherwise the next
open can fail.
-Disable interrupts in the mask register - EP_W0_RESOURCE_CFG is not
  sufficient for PCI cards.
1998-02-16 11:26:36 +00:00
drochner b8cdacb8d5 Redo standalone driver for WD8013 / SMC Ultra boards.
(The old one was buggy.)
Frontend / backend splitup and most code taken from sys/dev/ic/dp8390.c
and sys/dev/isa/if_we.c.
1998-02-16 11:21:59 +00:00
perry 015e898c02 RCSID Police. 1998-01-05 07:02:46 +00:00
drochner 4ad496626c Double default fragment table size. For fragmented and / or small
blocksize filesystems the old default was too small.
1997-11-07 16:59:41 +00:00
drochner 90e33ee203 When using XMS, use the XMS size returned by the BIOS only if the other
methods to detect extended memory didn't work well.
(this XMS size is always too small, typically by 68k)
1997-11-03 18:06:22 +00:00
fvdl d2016e2df0 Disable interrupts when frobbing the keyboard controller for A20, as
it may generate a reset on some (older) controllers. Introduce a delay
to make some kbd controllers happier.
1997-10-29 00:32:49 +00:00
drochner ec78310453 Catch "timeout" return of serial port read BIOS call. 1997-10-27 19:53:20 +00:00
drochner 64550a14f3 Pass status byte to caller too. 1997-10-27 19:51:18 +00:00
mycroft 4b807f403c dev/isa/comreg.h -> dev/ic/comreg.h 1997-10-16 08:03:05 +00:00
drochner e14496efb8 Ignore BIOS partition table and disklabel for floppys and RAW_PART,
for consistency with the kernel.
1997-10-13 09:26:29 +00:00
drochner 6969cb676f Pass new boot information per default. 1997-09-28 13:31:45 +00:00
drochner 041680f614 don't forget to save the partition number for the kernel 1997-09-20 12:17:41 +00:00
drochner 9b4679d869 -Don't pass hardware address, it is not of much use for the kernel.
-define "addr" differently for ISA and PCI devices - for PCI, it is
 (bus,device,function) now, in the format used by the PCI BIOS
1997-09-20 12:13:01 +00:00
drochner 1d47009a08 Use <machine/bootinfo.h> for definitions shared with the kernel. 1997-09-20 12:10:06 +00:00
drochner 0c825594ef Function to collect geometry and partitioning information about the
BIOS-known disks in a "bootinfo" structure (still experimental).
1997-09-17 18:30:51 +00:00
drochner a8c2622575 Collect information in a "bootinfo" structure. 1997-09-17 18:21:40 +00:00
drochner c2095ccd48 Remove old SERIAL support, it will be done at a higher level now. 1997-09-17 18:10:51 +00:00
drochner 2fba0a4db7 Convert DOS error numbers into UNIX errno values. 1997-09-17 18:09:04 +00:00
drochner 4162c9025a Do the vararg stuff cleanly.
Collect disk information in a "bootinfo" structure.
1997-09-17 18:08:13 +00:00
drochner 0851ea1331 Add now common menu / parsing functions.
Adapt to new console I/O functionality.
Update exec() arguments.
1997-09-17 18:04:21 +00:00
drochner 83ce8d9ef8 Use the "bootinfo" defined structures to collect information about boot
device/file and console setting, remove the old, limited, "xbootinfo".
Fix a printf() format warning in debug code.
1997-09-17 18:02:11 +00:00
drochner f93967e407 add new files 1997-09-17 17:51:12 +00:00
drochner dae95d6c0b -extend serial console code to all 4 BIOS known interfaces
-optionally, use Martin's direct hardware access to serial lines
-optionally, new console autoselection method: select serial console
 if a character is seen within 1 second
-move awaitkey() here, it can be shared by different bootloaders and
 it is used by console autoselection
-collect information about console selection in a "bootinfo" defined
 structure, for passing to the kernel
1997-09-17 17:48:00 +00:00
drochner f7b795d3c0 Definitions and helper functions to collect information in the boot
loader (still experimental).
1997-09-17 17:39:29 +00:00
drochner fb3350eb72 Console I/O functions for serial lines, accessing the hardware directly.
Allows higher baudrates than 9.6 and software flow control.
From Martin Husemann.
1997-09-17 17:31:41 +00:00
drochner 27d7edd928 Factor out functions for table driven boot menus and command line parsing
usable for different boot programs.
1997-09-17 17:13:02 +00:00
hannken a44c1f66a7 Change "it's" to "it is" inside assembler comments to
stop "unterminated character constant" messages from `mkdep'.
1997-08-18 22:44:01 +00:00
drochner 80a5032beb Make new memory detection default.
Introduce a new option, "CONSERVATIVE_MEMDETECT", which disables the
new BIOS calls.
1997-08-14 17:00:18 +00:00
drochner c4af2e3042 Build the new memory detection stuff. 1997-08-14 15:40:28 +00:00
drochner a6d6ef3a20 Use traditional memory detect function (int15/88) as indication for
a XMS driver.
From Martin Husemann.
1997-08-14 15:28:47 +00:00
drochner 2092d92ef2 New, optional, method to get size of extended memory.
It will be used for getextmem() if EXTENDED_MEMDETECT is defined.
Worked on all tested machines.
Thanks to all testers, especially Martin Husemann!
1997-08-14 15:22:00 +00:00
drochner 23fd5d0d9b #if -> #ifdef, fixes XMS support
from Martin Husemann, pr port-i386/3941
1997-08-05 10:27:57 +00:00
drochner bdb232d2b6 Don't use <lib/libsa/if_ether.h> anymore. This was a copy of the
old (before ARP changes) <netinet/if_ether.h>, intended for
temporary use.
1997-07-22 17:41:01 +00:00
drochner 6b02672ee8 Cleanup include file usage: Avoid user space headers, use
<sys/types.h> instead of <sys/param.h> where possible.
1997-07-15 12:45:22 +00:00
drochner d6a6f815ee Add boot ROM support for 3c905 TX ethernet card. 1997-07-15 11:23:04 +00:00
drochner e19d907613 Support SMC Ultra.
The code is becoming messy...
1997-06-21 14:43:11 +00:00
drochner faf30015a9 Support 3c900 Combo.
(The elink3 code works probably with other boards too, but this is what
I tested.)
1997-06-21 14:41:13 +00:00
drochner cc7a41e5d2 Weaken the restrictions on the device file name a bit: /boot can
now be installed on any partition.
Allow PRIM_LOADSZ to be set in the Makefile.
This together allows to make bootable 720k floppys.
closes PR port-i386/3751
1997-06-19 11:46:44 +00:00
drochner a0d9d3bc54 Allow to boot from DOS if a XMS manager is installed.
XMS is recognized and used as temporary buffer for the kernel image.
The processor must still be in real mode at program start, so EMM386
or QEMM are not allowed. W*95 is OK.
Written by Martin Husemann (pr port-i386/3336).
Completely separated from other bootloaders for sanity.
1997-06-13 17:49:22 +00:00
drochner d0bb0480b7 Remove bzero() prototype, it goes into libkern.h. 1997-06-13 13:45:50 +00:00
drochner 715639165d Use default media selection from EEPROM. 1997-06-13 13:44:37 +00:00
drochner 7713cd3fb6 Fix misleading comment. 1997-06-13 13:43:05 +00:00
drochner e82115f7f4 Add missing datasize prefix. 1997-06-13 13:42:27 +00:00
drochner e242b6fe17 Reformat comments. (messed up by "indent")
-Wall fixes
1997-06-13 13:41:20 +00:00
drochner d55d9adc84 Reformat comments. (messed up by "indent") 1997-06-13 13:36:04 +00:00
drochner ec191bc613 Fix operand size confusion in 16-bit code. 1997-06-13 13:32:09 +00:00
perry 00b5e61754 Provides "reboot" call, which just calles INT 19h to ask the bios to
reboot the machine.
This may be insufficient, but its enough for now.
1997-04-13 18:45:37 +00:00
perry 20b87fc0c9 1) Make carriage return start boot immediately.
2) Make "quit" reboot machine. This works by adding a reboot assembler
   hook that calls INT 19h
1997-04-13 18:44:39 +00:00
thorpej ecfdbcaa40 Mimmick the old boot block's hdN -> Xd0 (where X is specified by the
disklabel type) unit conversion behavior.
1997-03-22 04:15:51 +00:00
thorpej f07be03679 Purely cosmetic whitespace and indentation changes (mmm, indent(1)) 1997-03-22 01:48:27 +00:00
thorpej 5e82fddd43 Purely cosmetic whitespace/indentation changes (mmm, indent(1)) 1997-03-22 01:41:34 +00:00
thorpej ddf4bc9113 Don't abort if we don't find an MBR or NetBSD MBR partition; simply assume
that the NetBSD portion of the disk begins at sector 0.
1997-03-22 01:33:10 +00:00
is 6c55a345c6 Make this compile with NetBSD-1.2D (if_ether.h location changed). 1997-03-20 16:15:15 +00:00
sommerfe 9fefd40478 In 16-bit mode, mov %ax,%bx is interpreted as mov %eax,%ebx; this
breaks zero-extension of the 16-bit memory size return from the BIOS.
on at least one system, the trash left in the upper half of %eax
causes the kernel to crash during VM system initialization when it
thinks it has on the order of 2**31 bytes of memory to play with.

We now *say* mov %eax,%ebx, but *mean* mov %ax,%bx..
1997-03-19 18:12:10 +00:00
perry 520b71bb34 From Matthias Drochner:
give global constants more meaningful names
1997-03-15 22:20:55 +00:00
perry 5347892165 From Matthias Drochner:
give global constants more meaningful names
eliminate code duplication
1997-03-15 22:20:02 +00:00
perry aa5f5f8441 From Matthias Drochner:
use constants from etherdrv.h
1997-03-15 22:18:55 +00:00
perry 6a00e9acc8 From Matthias Drochner:
use constants from etherdrv.h
make selection table driven
1997-03-15 22:18:21 +00:00
perry 3824935377 From Matthias Drochner:
add constants for media selection
1997-03-15 22:17:35 +00:00
perry 817522ff26 From Matthias Drochner:
fix prototypes
use CONSDEV_* constants for consistency
1997-03-15 22:15:49 +00:00
perry 86ab882a41 From Matthias Drochner:
support for ROMs ala PCI specification
1997-03-15 22:15:02 +00:00