Commit Graph

30 Commits

Author SHA1 Message Date
martin
3028e483e4 Convert to new 2 clause license 2008-04-29 06:53:00 +00:00
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
garbled
01fba5909d Add floppy support to prep (the croud goes wild)
Add an additional argument to pnpbus_intr_establish to allow overriding of
the pnp interrupt type, because some devices lie.
Change how the pnpbus match routine works, to avoid attaching it when we
are probing for cpu's.
Fix a few stray printf's in the autoconf output.
2008-04-28 19:01:45 +00:00
matt
32d5b0e7f0 Fix more direct references to cd_devs to device_lookup_private 2008-03-29 17:55:35 +00:00
matt
73cb9d1894 Don't use device_private on xx_cd.cd_devs[n],
use device_lookup_private(&xx_cd, n) instead.
2008-03-29 17:52:46 +00:00
matt
3504316292 Don't use device_lookup to get softc, use device_lookup_private. 2008-03-29 17:51:08 +00:00
tsutsui
58561d05b5 Use CFATTACH_DECL_NEW().
XXX: this one looks a bit strange because it's attached via nvram_pnpbus.c
2008-03-29 06:16:54 +00:00
tsutsui
d54d70b6a7 We have to use device_private() to get softc from cd_devs[]. 2008-03-29 06:13:44 +00:00
tsutsui
4090172b20 Don't forget to initialize sc_dev. 2008-03-29 05:42:45 +00:00
tsutsui
048fb884fc Split device_t and softc for MI mc146818 clock,
and other related misc cosmetics.
2008-03-28 19:05:49 +00:00
cube
7aa6248cdf Split device_t and softc for ATA devices, as well as wd(4). Other
cosmetic changes where appropriate.
2008-03-18 20:46:35 +00:00
tsutsui
05517e38f5 - move todr_attach(9) calls from each MD attachment to MI mk48txx_attach()
- don't clear todr_setwen in mk48txx_attach() since it might be set by
  MD attachments
2008-01-10 15:31:26 +00:00
tsutsui
db09bcc34f Move todr_attach(9) calls from each MD attachment to MI mc146818_attach(). 2008-01-10 15:17:39 +00:00
ad
c29520cb1a Fix includes. 2008-01-05 00:31:50 +00:00
garbled
d974db0ada Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree.  Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches.  The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
2007-10-17 19:52:51 +00:00
msaitoh
8ce1f4fff2 fix typos 2007-04-29 20:23:34 +00:00
garbled
cfa6e1cb25 Add a read entry point to this driver. There are two minor devices
associated with this, 0, the nvram device, and now 1, the residual
device.  The devices allow the user to directly read the contents of the
kernel copy of the nvram, and the residual data respectively.  There is
no provision for write.
2007-03-21 04:13:53 +00:00
garbled
a23808d635 Special case the MTX604 and other RAVEN based machines to not attach
wdc@pnpbus.
2007-03-20 05:58:40 +00:00
christos
53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
garbled
7b388aeeb7 Finish the code in the prep nvram driver that makes it an actual device
(/dev/nvram) and implement all the associated ioctls fully.  Tested with
a hacked up copy of eeprom(8).  Right now it can only be used to see the
nvram GEV contents, not actually edit them.  Will do that later some day.
2007-02-26 23:53:12 +00:00
garbled
54ded9290c Make these files compile with -Wextra -Wno-unused 2006-10-30 17:54:29 +00:00
garbled
e5bff3e418 A few changes so pnpbus devices can do isadma. Note that isadma still
does not seem to work properly on prep.
2006-10-27 19:52:51 +00:00
garbled
9f65f017a3 Now that the interrupt bug on the 7043-140 is fixed, it also fixes the
long standing issue with interrupts onthe PowerStack E1.  Remove the
quirk entry for the PowerStack E1 and revert to using the IVR.
Also, add a \n to the attachment of the mk clock printf that was missing.
2006-09-07 20:13:05 +00:00
garbled
40bedaf4c8 Add support for rebooting 7024 and 7025 models. Since I cannot figure
out how to properly reboot these machines, instead we make use of the
auto-poweron-alarm time, and power cycle the machine to simulate a
reboot.  This is a hack, but until I get documentation on these machines,
at least you will be able to reboot them.
2006-07-12 21:28:33 +00:00
garbled
17ca05a76f 1) Modify pnpbus attachment code to properly decode pnp memory range packets.
2) Modify pnpbus attachment code to record the chipid of the device if it
   has one.
3) Change the clock probes to use the chipid, rather than relying on
potentially untrustworthy subtype and interface.
4) Add decoding of memory ranges to the RESIDUAL_DUMP code.
5) Add a we@pnpbus device to allow netbooting and root device detection
from an IBM we ethernet.  (it will only work if your firmware detects it)
6) Because I moved the pnpbus probe to occur prior to pci and isa, it
screwed up the root device detection and firmware path building code.
Completely rewrite the fw-path detection code to deal with this.
2006-06-23 03:08:41 +00:00
garbled
aa0bc147ae A bit of clock rototill. It's safer to detect things known by the
residual with the pnpbus probes, than it is to do it with raw isa probes,
so I've replaced the isa mkclock and mcclock code with a pnpbus attachment.

While writing the mkclock code, I realized that on motorola prep machines
the mkclock uses the same port range as the nvram part. (it's actually
the same chip/part).  This was causing the nvram not to work on those
machines.  Now the nvram code will recognize this, and wire up the
mkclock as well.  The mkclock probe is just a stub probe used to
pre-detect the fact that this is one of those machines.
2006-06-15 18:15:32 +00:00
garbled
64b69ee83d Support fixes for the Motorola Powerstack E1.
1) The E1 seems to have the int. siop wired to irq 14-level and the internal
   wdc wired to irq 14-edge.  special case and fail the wdc probe on E1's.
2) If we fail to map the NVRAM registers, return, rather than trying to talk
   to them and panic'ing the box.
3) revert my previous "fix" to pnpbus to make irq's default to level.  It
   was wrong, and didn't even fix the powerstack.

With this, we have limited PowerStack E1 support.  The machine cannot
talk to it's IDE controller, and cannot detect it's boot device
automatically, but it does come up and run. Tested with NFS root.
2006-04-26 19:48:01 +00:00
thorpej
2be6494fc9 Use device_cfdata(). 2006-03-29 04:16:44 +00:00
garbled
d736b3d508 More changes to prep port:
1) Add the NVRAM device.  This device allows us to speak with the nvram on
prep-based machines and read/write to it.  Also add a simple IOCTL
interface for speaking with the nvram from userland.  This hasn't been
tested yet, but eventually I plan to support it with the sparc eeprom
command.
2) Change the root device detection to use the nvram device to attempt to
guess the boot device.  Most machines should now correctly guess thier
boot device, though I expect a few devices to still not work quite right yet.
3) change the default IRQ to level rather than edge in the pnpbus if the
flags are invalid or empty. (based on output from a PowerStack E1)
4) correctly handle older machines in pnpbus that have FixedIOPorts
rather than variable ones.

Still have much to do.
2006-03-16 17:43:34 +00:00
garbled
1dd8b98704 Prep super-commit:
1) create new pnpbus psuedo bus.  This is a bus layer that reads the PNP
tree from the residual data and allows attachment of devices with the
information given therein.  Based loosely on i386/pnpbios.

2) Delete obio bus, as with the pnp bus we no longer need it.

3) Create a number of functions that gather the information needed to set
up the machine from the residual data, rather than hardcoding it in.

4) Create a quirk table for machines that are bizzare enough that the
residual information is not sufficient.  (such as the 6015)

5) Using the data gathering routines and the quirk table, delete struct
platform completely from the architecture.  Prep is now almost completely
dynamic in figuring out the machine it is running on and setting things
up properly.

6) Add a wdc_pnpbus driver which attaches the wdc controller found on
some 7248's and the 6015.  This replaces the now-defunct wdc_obio.

7) delete all the mot_* and ibm_* files, and replace them with a single
ibm_machdep.c which only contains the quirk functions for the 6015 and
the 6050.

8) Modify GENERIC to work with all this stuff.
2006-03-09 20:17:27 +00:00