drochner
5d86b86370
#ifdef out the last change for the branch
1999-04-01 19:36:09 +00:00
drochner
3497f157fd
On serious boot errors, dont lock the machine. Instead, wait 3 seconds
...
and call the ROM BASIC vector. This might behave differently on different
machines, but normally it allows to reboot without power-cycling.
1999-04-01 17:07:54 +00:00
drochner
99a84ef740
sync to changed biosdisk interface again
1999-04-01 16:09:49 +00:00
fvdl
fb1b0e7a0b
Shifting ecx without explicit prefix in real mode won't work.
1999-03-30 22:35:21 +00:00
drochner
17de7b2576
adapt to set_geometry change: we don't have to correct the geometry
...
anymore
1999-03-30 17:58:05 +00:00
drochner
62031ff978
fix some disk handling problems introduced in the last commits:
...
-read retries were botched, use the right sector count
-read-ahead buffer was effectively unused
-concentrate the handling of the weird BIOS geometry report at one place
-fallback for old floppies left cylinder count uninitialized
1999-03-30 17:55:48 +00:00
drochner
4feae58ec1
sync to changed geometry handling in the standalone code
1999-03-30 11:51:35 +00:00
fvdl
b815df141c
Only use the total number of sectors information field from the EDD if
...
the bit is set that declares the geometry valid. The spec itself says
that this field isn't covered by the "geometry valid" bit, but at
least one BIOS implements it that way.
1999-03-28 19:41:27 +00:00
sommerfe
df8e0043e3
Fix compile warning in getcomaddr()
1999-03-12 04:14:37 +00:00
fvdl
8371eb7a88
Clean up the BIOS disk matching code a bit (better naming, one structure
...
and sysctl to export to userland). Also, only use total number of sectors
given in the extended parameters if the physical chs geometry is
marked invalid. Hopefully fixes a problem where BIOSs would not correctly
fill in this field.
1999-03-12 01:01:41 +00:00
fvdl
bc38bb1052
Declare nhd to be unsigned char, as we're only copying one byte to it.
...
From Matthias Drochner.
1999-03-11 12:34:36 +00:00
drochner
b477d700f2
add support for 3c905b TX
1999-03-10 10:37:38 +00:00
fvdl
bdb770bc34
Create a list of native disks too, and make it retrievable. It contains
...
all matching BIOS disks per entry, so that we have complete match info.
Enable the matching code.
1999-03-10 01:28:24 +00:00
drochner
743494ae88
add a function to pass the "memory map" ie the outcome of INT15/0xe820,
...
to the kernel
1999-03-08 21:44:48 +00:00
drochner
0cb921e61e
change the interface for getmementry() to hold the iterator in an
...
argument and to return success or error explicitely.
Now we can "error" and "end of list" cleanly; this should fix the
problem where the last list element was ignored.
1999-03-08 21:38:28 +00:00
fvdl
f8e221511b
* query BIOS geometry information, possibly using the int 13 extensions.
...
* pass them on to the kernel
* print a message if the 2nd stage bootloader returns (i.e. fails)
instead of just hanging.
1999-03-08 00:09:24 +00:00
he
e9f9c1625e
Add handling of OMAGIC files, where exec header isn't part of the
...
text segment. Needed for woring installboot, since biosboot.sym is OMAGIC.
1999-03-07 20:03:44 +00:00
fvdl
5a32d4bb8b
Make bootblocks really work this time. From Christos.
1999-03-05 20:33:08 +00:00
christos
4b494ca224
Fix the symbol reading problem...
1999-03-04 20:46:23 +00:00
simonb
1397fd691b
fix spel.
1999-03-01 12:46:16 +00:00
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