Commit Graph

142 Commits

Author SHA1 Message Date
lukem
1c33b4e6a4 Overhaul MBR handling (part 1):
<sys/bootblock.h>:
    *	Added definitions for the Master Boot Record (MBR) used by
	a variety of systems (primarily i386), including the format
	of the BIOS Parameter Block (BPB).
	This information was cribbed from a variety of sources
	including <sys/disklabel_mbr.h> which this is a superset of.

	As part of this, some data structure elements and #defines
	were renamed to be more "namespace friendly" and consistent
	with other bootblocks and MBR documentation.
	Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
    *	Deprecated in favor of <sys/bootblock.h> (the latter is more
	"host tool" friendly).

amd64 & i386:
    *	Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
	be consistent with the naming convention of the msdosfs tools.

    *	Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
	and it's confusing to have two functionally equivalent bootblocks,
	especially given that "ufs" has multiple meanings (it could be
	a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

    *	Rework pbr.S (the first sector of bootxx_*):
	    +	Ensure that BPB (bytes 11..89) and the partition table
		(bytes 446..509) do not contain code.
	    +	Add support for booting from FAT partitions if BOOT_FROM_FAT
		is defined.  (Only set for bootxx_msdos).
	    +	Remove "dummy" partition 3; if people want to installboot(8)
		these to the start of the disk they can use fdisk(8) to
		create a real MBR partition table...
	    +	Compile with TERSE_ERROR so it fits because of the above.
		Whilst this is less user friendly, I feel it's important
		to have a valid partition table and BPB in the MBR/PBR.

    *	Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
	with other platforms.

    *	Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
    	we can boot off FAT partitions.

    *	Crank version of /usr/mdec/boot to 3.1, and fix some of the other
	entries in the version file.

installboot(8) (i386):
    *	Read the existing MBR of the filesystem and retain the BIOS
    	Parameter Block (BPB) in bytes 11..89 and the MBR partition
	table in bytes 446..509.  (Previously installboot(8) would
	trash those two sections of the MBR.)

mbrlabel(8):
    *	Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
	to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
2003-10-08 04:25:43 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
fvdl
7dd7f8baa2 Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
2003-06-15 23:08:53 +00:00
tsutsui
afa910a4ed Add isa_intr_alloc() for isapnp support. 2003-06-14 19:11:40 +00:00
tsutsui
51260decbe Add generic software interrupt support with mips/softintr.c. 2003-05-25 14:00:11 +00:00
thorpej
2a90e2a9c9 Remove redundant bounds_check_with_label() prototype. 2003-05-10 16:12:02 +00:00
fvdl
d88cf589cb A few ISA sound drivers like to share dma channels, and hence deferred
isa_dmamap_create() calls to their open/close entrypoints. This worked
with some luck, but broke on i386 when _bus_dmamap_create started
to allocate bounce buffers upfront, since memory below 16M may well
not be available when the sound devices is opened for the Nth time.

To fix this, create a new simple interface, isa_drq_alloc/isa_drq_free,
wrappers around already existing bitmask macros. These are expected
to be used before an isa_dmamap_create call, and after an
isa_dmamap_destroy call, respectively. For the sb and ad1848 drivers,
they're deferred until open/close.

All isa_dmamap_create calls can now use BUS_DMA_ALLOCNOW and be done
at attach time.
2003-05-09 23:51:25 +00:00
tsutsui
8e19dfb2ae Remove register declarations. 2003-04-27 17:05:55 +00:00
simonb
0a30e5fb17 Fix a grammatical nit. 2003-03-22 14:26:41 +00:00
nakayama
e3e4805068 Replace machine/rnd.h with more appropriate name to share it
with cycle counter based microtime in kern/kern_microtime.c.
2003-02-05 13:57:50 +00:00
tsutsui
f9f27acbe7 Add c_nec_eisa_cons_init() for NEC-J96A and NEC-R96 which have
Cirrus Logic GD5428 ISA VGA console to initialize its registers properly
for generic vga(4) driver(s).
2003-01-31 22:07:52 +00:00
kent
cd7d9faeaf Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it. 2003-01-28 01:07:51 +00:00
thorpej
23bc250391 Merge the nathanw_sa branch. 2003-01-17 21:55:23 +00:00
tsutsui
7bc5ebdb72 Wrap DELAY() macro with do { } while (/*CONSTCOND*/ 0). 2002-12-29 14:09:37 +00:00
thorpej
78ea2dd367 Use __LDPGSZ (which must be == USRTEXT) as the text address for a.out
executables, and eliminate the USRTEXT constant, which was only used
by the a.out exec code.
2002-12-10 05:14:24 +00:00
tsutsui
d658fd6e12 Add a configuration of struct platform for NEC-J96A,
NEC Express5800/240 with R4400 and EISA.

XXX not functionally working yet. (hangs after mountroot via NFS)
2002-11-30 19:23:44 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
briggs
0b956d0b8b Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.
2002-08-07 05:14:47 +00:00
thorpej
dada8613e1 Let machine-dependent code specify how to enumerate the bus.
Currently, everyone uses pci_enumerate_bus_generic().
2002-05-15 19:23:51 +00:00
thorpej
b5e364e5a5 Implement pci_decompose_tag(). 2002-05-15 17:15:17 +00:00
simonb
a85e214bda Make sure that private DMA flags don't overlap with standard DMA flags;
start these at 0x10000 to leave room for an increase in the latter.
2002-03-17 21:45:06 +00:00
simonb
fd77e40b6b Provide a L2 cache configuration function. 2002-03-05 16:12:35 +00:00
simonb
4324f37586 Use "#define<tab>". 2002-02-28 03:17:23 +00:00
simonb
d9ab16ba2f Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
  are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).
2002-02-26 15:13:19 +00:00
thorpej
af66038f73 Merge the thorpej-mips-cache branch onto the trunk. This is an
overhaul of how caches are handled for NetBSD's MIPS ports.
2001-11-14 18:15:10 +00:00
simonb
a41b7a380e Clean up and standardise across MIPS ports. 2001-09-09 04:20:25 +00:00
simonb
099f117735 Standardise the format of MIPS' <machine/db_machdep.h>. 2001-09-04 07:43:29 +00:00
simonb
a04de48d4b Remove comment duplicated in <mips/bsd-aout.h>. 2001-09-04 07:36:11 +00:00
simonb
7970ec8018 More RCS ID cleanup. 2001-09-04 07:22:03 +00:00
simonb
156b308a83 Remove some more useless RCS ids. 2001-09-04 07:12:28 +00:00
thorpej
a08af3853a Implement bus_space_mmap(). 2001-09-04 06:57:26 +00:00
simonb
c91e08563f Clean up. 2001-09-04 06:26:18 +00:00
simonb
3839989a12 Remove unneeded RCS header. 2001-09-04 06:24:54 +00:00
simonb
214f5366ea Centralise struct cpu_info declaration and related info to <mips/cpu.h>. 2001-09-04 06:19:21 +00:00
simonb
a6b8c86af0 Remove an unneeded comment; ``sync'' with other "just include <mips/foo.h>"
files.
2001-08-31 03:53:22 +00:00
simonb
4ac4da1c52 G/C the unused kernel-only CLK_TCK #define.
XXX: does include/time.h still need <machine/limits.h>?
2001-08-31 03:46:03 +00:00
thorpej
babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
soda
fb93db6893 remove __BROKEN_CONFIG_UNIT_USAGE, finally (sorry to be late, cgd). 2001-06-13 15:38:15 +00:00
soda
bc0d30a90c introduce "struct platform", and remove "cputype" variable.
this change also includes a patch to obtain secondary cache size
from ARC firmware by Bob Meader, which was posted on port-arc on 18 Aug 2000.
this should make NEC Express RISCserver work.

this change obtains ID of display controller from ARC firmware, too.
2001-06-13 15:08:05 +00:00
soda
b7abba7794 split pccons driver into "pccons" and "opms",
also split into bus-dependent frontend and bus-independent backend.
2001-06-13 15:05:43 +00:00
soda
33669543d9 remove algor related codes, because there is independent (and working!)
algor port now.
2001-06-13 14:58:38 +00:00
soda
7a314c516c enable device_register(9) on arc port to parse boot device name
passed by ARC firmware correctly.
2001-06-13 14:36:33 +00:00
mrg
67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
tsutsui
9247a0bbcc - Declare pccnattach() in <machine/pccons.h>
- Make cpu_reboot() reset machines properly without pccons
2001-05-11 21:15:11 +00:00
thorpej
4717bdf66e Remove some redundant definitions (they're already in <mips/pmap.h>). 2001-04-25 17:54:07 +00:00
kleink
f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink
739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink
cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink
a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
kleink
7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00