>From: rich@id.slip.bcm.tmc.edu.cdrom.com (Rich Murphey)
Date: Sun, 12 Sep 1993 18:19:05 -0500
This will allow you to compile and run a freebsd kernel with shared
memory support. I haven't tested the shm*() calls yet.
You run out of page table descriptors if you specify 4Mb of sharable
memory (SHMMAXPGS=1024). I don't know what the limit is, but
SHMMAXPGS=64 works. Rich
Fixed bug that was reported (with patch) on gnu.utils.bug.
Immediate operands of the pushw instruction were being output as 32
bits, rather than the 16 bits they were supposed to be.
This is gnu lib malloc from NetBSD verbatium, here is the version info
that Chris created:
this version of GNU malloc was obtained from prep.ai.mit.edu on
9/22/1993. There was no version noted.
>In fact DEVIDLE and FINDWORK ended up being basically equivalent.
>the bit I wonder about, is the returning of 0.. What (other than
>another request from somewhere else in the kernel) is going to start
>work on the next item on the queue?
I think removing FINDWORK would make things clearer.
Nothing much is going to start work on the next item. However, it is
pointless to continue processing the queue for the same unready drive.
Aborting all reads and trying harder to perform all writes would be
better.
Julian writes.
> no, actually it should be:
> fdt = fd_data[FDUNIT(minor(dev))].ft;
Fixed.
From: bde@kralizec.zeta.org.au (Bruce Evans)
Date: Thu, 16 Sep 93 22:56:01 +1000
The fd driver reported the wrong cylinder/head/sector numbers after an
error (ST3 is only valid after a sense-drive command), and didn't report
fs block numbers (diskerr was not used).
There was an old problem with writes to block fd devices. Try this:
1. write protect floppy in fd0.
2. tar cf /dev/fd0a /dev/null. Repeat a few times. Later writes tend to
terminate earlier.
3. un-write protect floppy.
4. repeat step 2. The writes tend to return 0, 2048, 4096, ... and then
succeed.
This was caused by a bug in vfs__bios.c. (The bug is fixed in NetBSD's
vfs_bio.c.) fd.c sets bp->b_resid to nonzero after an error. vfs__bios.c
was not initializing bp->b_resid. This causes some writes to terminate
early (e.g., writes to block devices; see spec_write()).
Related funnies:
1. Nothing tries to write the residual bytes.
2. The wd driver sets bp->b_resid to 0 after an error, so there's no
way anything else could write the residual bytes.
3. I use the block fd device for tar because the raw device seemed to
have more bugs long ago, and because it ought to be able to handle
buffering more transparently (I don't want to have to know the
device size). But spec_write() always uses the size BLKDEV_IOSIZE
== 2048 which is too small. For disks it should use the size of
one track (rounded down to meet the next track boundary or the i/o
size). Here it would help if the DIOCGPART ioctl worked. But
DIOCGPART is not implemented for floppies, and the disk size is
ignored except for partitions of type FS_BSDFFS.
added to install_notes instructions for loading distribtuion
files from a MS-DOS partition.
Minor cleanup:
fixed spelling error in inst1.install
capitalized sentences in kc.profile
reworded initial load_fd options
Extended load_fd() to support reading from the first Primary DOS
partition of the boot disk. So we have yet another medium via
which to load the FreeBSD distribution files. load_fd() has
options for listing and (if reading from the C: drive) changing
directories.
load_fd's notation assumes that the first Primary partition on
disk is the DOS drive C: (since this and only this one is mounted
by install). Otherwise, the notation may be a bit confusing.
We'll know the assumption is bad if people complain about
not finding files on their "C:" drive...
Added a device file existence check to kc.profile.
1/ fix bug where cd0a was unusable because it was compared against
the number of 2k blocks not the number of 512byte blocks.. gave
an error for all reads past 1/4 way through the disk (cd0d was ok).
2/ fix open code so that it now notices if a disk has been changed
and updates the disklabel.
3/ use the new error handling code from st.c
4/ start adding stuff to get ready for using cd_scsi_cmd from
cd_start (like is done in st and sd)
5/ more general cleanups including making dmesg report
sector size of disk.. (believe it or not SUN drives use 512 byte)
Increase the timeout from 2000 counts to 6000 counts, reported by someone
on the net (I lost the mail). This should fix some units not showing up
during probes.
The dynamically allocated struct's where not getting properly initialized
as malloc memory is NOT zerod. Added bzero's after the malloc calls
to make sure that things are initialized.
1) Install now creates a DOS partition for the first (and only the
first) Primary (un-Extended) DOS partition, providing /dev/xx0h
is available. It is mounted on /dos by default. The /etc/fstab
entry omits the dump and fsck fields, i.e.:
/dev/xx0h /dos pcfs rw
The Secondary DOS partition is not used (System ID 0xF2), because I don't
know what that is.
2) Fixed default sizes so that if someone attempts to install BSD on a 24 Mb
partition by accepting defaults, they don't end up with a 1 Mb /usr
partition (up to USRMIN Mb's). In this case, all space is split between
swap and root.
TODO:
1) Extend load_fd() to support loading distribution files directly from
the DOS partition of the hard disk.
2) Provide translated parameters to the install program (maybe
add an option to fdisk). Currently, the true geometry is used as
default, which is inappropriate for coexistence with DOS.
3) Support installing on multiple or secondary disks.
>From: Drew Hess <dhess@CS.Stanford.EDU>
>Date: Thu, 16 Sep 1993 23:35:48 -0700 (PDT)
There is a typo in disktab in the NetBSD-0.9 distribution. This may be
already fixed in NetBSD-current, but it's not in any of the source that I've
sup'ed.
line 9 reads:
# sc #sectors/cylinder, nc*nt default
should read:
# sc #sectors/cylinder, ns*nt default
Added the following to the opening statement of install:
Before starting, it is important to know your hard disk's geometry
(i.e., number of cylinders, heads and sectors/track). If installing
FreeBSD on the same disk as another operating system, then the
two systems should use the same geometry. In particular, FreeBSD's
default geometry is inappropriate for MS-DOS. So in this case, the
DOS geometry should be used instead.
[This seems to be true for SCSI disks. What about IDE? With the new
boot blocks, can we ignore the disks true geometry??]
The load_fd() now initializes the `interactive' variable to -i instead
of -v (my fault).
The extract() command now rm's /tmp/cat, not /bin/cat (my fault).
Enabled floppy drive ioctl's so that disklabel on a floppy is now
quite and works correctly. This is derived from notes in Bruce Evans
lattest patches to fd.c:
>From: bde@kralizec.zeta.org.au (Bruce Evans)
>Subject: fixes for fd driver
6. I picked up some code posted the other day to implement label ioctls.
Now `disklabel fd0' works. See a comment for how to modify conf.c.
>From: paul@u.tvt.se (Paul Pries)
>Subject: Bad bug in kbdtables.h [FreeBSD]
I found a bug in /sys/i386/isa/kbdtables.h which contain the
different keyboard layouts for syscons. This regards all tables exept
the Danish and US. When compiling the kernel with any other keymapping
than Danish or none at all (US), you get an error that 'key_map' is undefined.
This is because there is a typo in the name of the struct containing
the tables, keymap intead of key_map.
The install disks now print the partition table data with
offsets and sizes in units of cylinders. This will help
those who want to install FreeBSD between two existing
partitions.
Renumber the section starting at the duplicate 5. section. Changed
reference to RELNOTES.FreeBSD to not have an absolute path on it since
these appear in several places!
Fixed the extract() command which I had broken attempting to implement
it without cat. It now requires cat again (no way around it unless
gunzip can accept arbitrary filename suffixes).
Converted many occurances of multiple spaces to tabs to save bytes
any way I can. Converted all echo "" to be just echo
Removed sync call that seems to hang due to fd/wd driver interaction..
Now rm /.profile before the cpio floppy is copied in, this should fix
a bugger I was having with an open shell script that gets over written.
Put bin/df back on the filesystem floppy since there is room for it
after all. Removed it from DOS floppy.
Added COPYRIGHT to DOS floppy since it does have *BSD binaries on it!
Fixed missing ; \ when creating dev entries on filesystem floppy
Fixed rm in wrong directory, please don't rm in the DESTDIR area!!
Removed volatile functions which were causing grief in the system, since
volatile functions are undefined, and there is no reason to have them
in our kernel.
From guido@gvr.win.tue.nl Wed Sep 8 13:34:16 1993
That is because TIOCMGET was broken. Yes...this is known for some time
and no, we (Bruce and me) never posted it. Why? Simply because we choose
to post fixes when we fixed most of the bugs.
Anyway..now that the slip problems are coming, here is a fix for
correct TIOCMGET behaviour.
-Guido
Note: this should be tested first (Rich?). Tested by rgrimes
The scsi cd.c driver is now fully dynamic. You can change the lines
in your config file from:
device cd0
device cd1
...
device cdn
to either
device cd0
or
psuedo-device cd0
The driver now dynamically allocates all per unit dependent structs, so it
will never run out of units (okay, so now we need 32 bit device major/minor
numbers!). It will allocate unit numbers as it needs them.
As of this revision, all known bugs have been fixed. Some of the fixes include:
1) fixed 3c503 lock-up if the thinwire cable was disconnected at boot time
2) 8013EBT boards now work (quite well!) in 16bit/16k mode
3) ED_NO_DOUBLE_BUFFERING flag now works
4) slightly higer performance (about 3%) with 16bit WD/SMC boards
5) support for WD8013WC (10BaseT) boards
Additionally, the probe code has been reorganized to be much cleaner. This
revision of the driver is 1.25. The release notes have been updated as well.
Changed the pg("ptdi> %x") to a printf and then a panic, since we are
going to panic shortly after this anyway. Destroys less state, and
keeps the machine from waiting for someone to smash the return key
a few times before it panics!
From michaele@vice.ico.tek.com Wed Sep 8 09:50:45 1993
Subject: Re: Some small errors in GAMMA
4. Move printf("\n"); at line 491 in "/sys/i386/isa/sio.c" to after
COM_MULTIPORT block at line 512.
From rgrimes:
The above would cause the word (multiport) with out a new line to
appear after the uart type message if you had COM_MULTIPORT enabled.
Added a fourth DOS-format floppy to the install disks containing os-bs
and miscellaneous programs which get installed into /usr/distbin.
Install now recognizes existing DOS partitions and attempts to install
after them. Theoretically, it also remaps badblocks.
N.B.: The fourth install floppy must have a clean DOS FAT.
Building the new distribution floppies is untested
TODO: Build a disktab entry for existing DOS partitions (except extended
partitions). This would allow loading and/or extracting the distribution
files directly from the DOS hard disk partition.
Added two new options, one of which is fairly far reaching:
-q turns on "quiet" mode, where informational headers and such are not
dumped, just the information.
-L Shows full pathnames of files comprising a package. With -q,
this can be useful for doing fileset operations, such as
"du -s `pkg_info -q -L foo_bin`" to see how much space package
"foo_bin" is taking up.
Added DOS partition support and maybe badblock remappping.
The following additional changes are needed for the new install disks:
1) Remove from filesystem disk's /filelist: bin/cat, dev/MAKEDEV.local.
2) Remove from the filesystem disk: /bin/cat, /COPYRIGHT and /dev/MAKEDEV.local.
3) Add to the filesystem disk: /sbin/fdisk, /dev/fd1a and /dev/rfd1a.
4) Build a fourth DOS disk containing at least: os-bs, rz/sz
Outstanding problems:
1) If there are >1024 cylinders, then FreeBSD cannot boot unless installed
at cylinder 0 (and since neither can DOS evidently, the two can't share
a disk in this case).
2) If FreeBSD is installed at cylinder 0, subsequent installs tend to fail.
3) If a DOS partition exists, disklabel doesn't seem to update the disk
geometry in the FreeBSD disklabel correctly (so reinstalling FreeBSD with
a new geometry requires installing it at cylinder 0). Rod suggested
invoking disklabel on the raw c-partition. This makes sense, but it
doesn't seem to work (newfs, for instance, can't find the new label).