Home | History | Annotate | Download | only in ofw
History log of /src/sys/dev/ofw/openfirmio.c
RevisionDateAuthorComments
 1.15  06-Dec-2019  mrg revert this change from early this year. it appears the
changes macallan@ commited to fix FIRMWORKSBUGS issues
in openfirmware() have fixed the hangs seen on PegasosII.

hooray!

---
Log Message:
workaround a problem with the pegasos firmware interface:
attempting to use /dev/openfirm on this machine hangs hard.

this isn't a new problem, and i've been meaning to try to
figure it out for years, but it's become a problem since
the xf86-video-radeon driver gained code to look for the
macppc model using this interface.

this is why xorg-server 1.18 and 1.20 hang recently on the
pegasosII.

this change is fairly ugly but i couldn't think of a less
ugly method to avoid /dev/openfirm working just on this
one platform. introduce new __OPENFIRMIO_OPEN_CHECK_BROKEN
macro and associated __openfirmio_open_check_broken(), and
use them in the new openfirmopen() to fail opens.

include proplib.h in macppc and ofppc autoconf.h since they
use it.
---
 1.14  08-Jan-2019  mrg workaround a problem with the pegasos firmware interface:
attempting to use /dev/openfirm on this machine hangs hard.

this isn't a new problem, and i've been meaning to try to
figure it out for years, but it's become a problem since
the xf86-video-radeon driver gained code to look for the
macppc model using this interface.

this is why xorg-server 1.18 and 1.20 hang recently on the
pegasosII.


this change is fairly ugly but i couldn't think of a less
ugly method to avoid /dev/openfirm working just on this
one platform. introduce new __OPENFIRMIO_OPEN_CHECK_BROKEN
macro and associated __openfirmio_open_check_broken(), and
use them in the new openfirmopen() to fail opens.

include proplib.h in macppc and ofppc autoconf.h since they
use it.
 1.13  25-Jul-2014  dholland branches: 1.13.26; 1.13.28;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.12  16-Mar-2014  dholland branches: 1.12.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.11  04-Mar-2007  christos branches: 1.11.76; 1.11.86; 1.11.92;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.10  28-Feb-2007  macallan enable ioctl(OFIOCSET) so eeprom can actually change PROM settings on
OpenFirmware machines
 1.9  11-Dec-2005  christos branches: 1.9.26;
merge ktrace-lwp.
 1.8  07-Aug-2003  agc branches: 1.8.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.7  29-Jun-2003  fvdl branches: 1.7.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.6  29-Jun-2003  darrenr 'struct proc *' -> 'struct lwp *' as required to get GENERIC for macppc built
 1.5  23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.4  06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.3  13-Nov-2001  lukem branches: 1.3.8;
add RCSIDs
 1.2  14-Nov-2000  matt branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
some cleanup. Add back OFIOCGETOPTNODE.
 1.1  14-Nov-2000  matt Add openfirmio which is an ioctl interface to OpenFirmware.
 1.2.8.1  10-Oct-2001  fvdl Convert all remaining devices.
 1.2.6.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.6.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.4.3  11-Nov-2002  nathanw Catch up to -current
 1.2.4.2  17-Sep-2002  nathanw Catch up to -current.
 1.2.4.1  14-Nov-2001  nathanw Catch up to -current.
 1.2.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.2.2.1  14-Nov-2000  bouyer file openfirmio.c was added on branch thorpej_scsipi on 2000-11-22 16:03:57 +0000
 1.3.8.1  16-May-2002  gehenna Add the character device switch.
 1.7.2.4  21-Nov-2004  skrll Adapt to branch.
 1.7.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.7.2.1  03-Aug-2004  skrll Sync with HEAD
 1.8.16.2  03-Sep-2007  yamt sync with head.
 1.8.16.1  21-Jun-2006  yamt sync with head.
 1.9.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.11.92.1  18-May-2014  rmind sync with head
 1.11.86.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.76.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.12.2.1  10-Aug-2014  tls Rebase.
 1.13.28.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.13.28.1  10-Jun-2019  christos Sync with HEAD
 1.13.26.1  18-Jan-2019  pgoyette Synch with HEAD

RSS XML Feed