1542 revs work by assuming the next few sequential ID codes are
new Adaptec boards and enabling them after printing a warning.
Conditionalize the informational boot messages with "if (bootverbose)".
were making and were no-brainers. However, the xcdplayer
eject button didn't work because xcdplayer gave up and didn't bother
to try the EJECT ioctl anyway when CDIOCALLOW was not available.
This all works now.
o A change so that xcdplayer gets TOC entry data for the lead-out area
on the disc. Xcdplayer can now play the last track on a CD, which
it would not do in earlier versions (but no one reported).
Cdplayer gets the TOC data differently and it works in old and new
versions.
o Eliminated a race condition that caused the driver to sleep forever
on very slow and heavily loaded systems on rare occasions when
the system was doing lots of audio-related ioctls to the drive.
o Fixed a problem where a locked drive could be unlocked by accessing
one of the non-locking devs. Door locking now follows the documented
rules.
o Made all wait channel strings unique to matcd.
Submitted by: Frank Durda IV <uhclem%nemesis@fw.ast.com>
scheduled for demolition. This is a first step: get rid of if_zereg.h,
by adding the five extra definitions to if_edreg.h.
Also add some definitions which will become needed when if_ze.c gets
replaced entirely by pccard and if_ed.c. (this is a 2.1.0 candidate)
with the driver's stability now. I've not had a single problem with it for
weeks.. All that remains is a bit of performance tuning, and finishing
the manpages.
Now comes up in the old line-oriented interface by default for serial
and pcvt folk with a `visual' command for going to the visual interface.
Best of both worlds, no?
Submitted by: Michael Smith <msmith@atrad.adelaide.edu.au>
Changes relative to 1.12:
- Put extra instruction between outl()/inl() sequence to prevent the
old value being read back because of the bus capacitance.
- Additional check for existence of register at CONF2_ENABLE_PORT.
setting the control register. Make the read and write operations two
completely separate steps.
While we're at it, pull in the whole set of Cyrix cache control options
from NetBSD-current, since a few motherboards do the right thing with
the Cyrix chip.
There is no option to disable the internal cache completely (yet).
Reviewed by: pst
Obtained from: NetBSD
ignore and set it to 18 sectors/track. This allows FreeBSD to boot with
2.88MB floppies which are used in older ThinkPads.
Submitted by: Random Net person whose name I lost
EFAULT if it is not resident. This prevents the system from manufacturing
a zero-fill page for unused but allocated areas of the kernel's VM. This
should fix the "CMAP busy" panic that some people saw during system
startup.
there is a PCI bus at all) ...
- Do not expect the chip sets to follow even very clearly expressed
requirements of the PCI 2.0 spec.
- Do not read back the value just written to an I/O port without making
sure that some other data have crossed the bus in between ...
2) Killed i386pagesperpage as it is not used by anything.
3) Fixed benign miscalculations in pmap_bootstrap().
4) Moved allocation of ISA DMA memory to machdep.c.
5) Removed bogus vm_map_find()'s in pmap_init() - the entire range was
already allocated kmem_init().
6) Added some comments.
virual_avail is still miscalculated NKPT*NBPG too large, but in order to
fix this properly requires moving the variable initialization into locore.s.
Some other day.
used and went a long way toward confusing the code.
2) Fix proc0's initial stack to not be 48 bytes smaller than it needs to
be.
3) Correct comment about 'first' arg to init386().
Add prototypes. Use static for function definitions to match existing
prototypes. Otherwise leave functions that should be static as extern.
TODO: declare everthing except sidriver and siintr as static. I use
some new cdevs registration functions to do this for syscons and pcvt.
Fix siintr() to match its prototype in ioconf.c (don't return anything).
This may break the eisa support, but Julian says that eisa interrupts
never worked anyway.
(EISA support was never tested anyway - Peter)
Submitted by: bde
the first one in the config has priority. They can be switched using
userconfig().
i386/i386/conf.c:
Initialize the shared syscons/pcvt cdevsw entry to `nx'.
Add cdevsw registration functions.
Use devsw functions of the correct type if they exist.
i386/i386/cons.c:
Add renamed syscons entry points to constab.
i386/i386/cons.h:
Declare the renamed syscons entry points.
i386/i386/machdep.c:
Repeat console initialization after userconfig() in case the current
console has become wrong. This depends on cn functions not wiring down
anything important.
sys/conf.h:
Declare new functions.
i386/isa/isa.[ch]:
Add a function to decide which display driver has priority. Should be
done better.
i386/isa/syscons.c:
Rename pccn* -> sccn*.
Initialize CRTC start address in case the previous driver has moved it.
i386/isa/syscons.c, i386/isa/pcvt/*
Initialize the bogusly shared variable Crtat dynamically in case the
stored value was changed by the previous driver.
Initialize cdevsw table from a template.
Don't grab the console if another display driver has priority.
i386/isa/syscons.h, i386/isa/pcvt/pcvt_hdr.h:
Don't externally declare now-static cdevsw functions.
i386/isa/pcvt/pcvt_hdr.h:
Set the sensitive hardware flag so that pcvt doesn't always have lower
priority than syscons. This also fixes the "stupid" detection of the
display after filling the display with text.
i386/isa/pcvt/pcvt_out.c:
Don't be confused the off-screen cursor offset 0xffff set by syscons.
kern/subr_xxx.c:
Add enough nxio/nodev/null devsw functions of the correct type for syscons
and pcvt.
Split off cdevsw initialization in cninit() into a new function
cninit_finish() that isn't called until all hardware device drivers
have been attached. The bdevsw entry of the driver for the physical
console needs to be hooked after the physical driver has been
attached in case the attachment modified the entry.
Rearrange cninit() to avoid changing cn_tab until the driver for the
physical console has been initialized, so that the previous driver
(if any) can be used for debugging.
Start removing half-baked lint support. bdevsw functions usually have
unused args but /*ARGSUSED*/ was used for only about 5% of them.
cons.h:
Declare cn_init_finish().
autoconf.c:
Call cn_init_finish().
Start adding prototypes. Functions with bogus linkage (extern where
static is probably should be static) are explicitly declared as extern
so that the can be found easily (extern in a non-header is usually
wrong).
All:
Continue cleaning up init stuff: init functions shall be static;
INITs should be at the start of files...
by me...
Original message:
This patch upgrades the ATAPI CD-ROM driver to version 1.3.
It has three bugs fixed:
1) The `controller not ready' message at startup and later.
It was caused by staled media change bit.
2) Incorrect shuffling of model string for some drives (NEC, Mitsumi).
3) Handling of drives which report itself as been of direct-access type,
instead of CD-ROM type.
There is one known bug which is not fixed yet -- probing
in absense of IDE disks. A work-around exists though (thanks Steve!).
If you have no IDE disks attached, then remove them from the kernel
config file to make the CD-ROM attach correctly.
Unfortunately, there is no way to disable them from the kernel
interactive config mode.
Reviewed by: sos (Soren Schmidt)
Submitted by: vak@gw.cronyx.msk.su (Serge V.Vakulenko)