Home | History | Annotate | Download | only in oea
History log of /src/sys/arch/powerpc/oea/ofw_autoconf.c
RevisionDateAuthorComments
 1.28  04-Oct-2025  thorpej No longer need to copy "local-mac-address" and "shared-pins" into
the properties dictionary; they can be queried from the device tree
directly now.
 1.27  21-Sep-2025  thorpej Give each PowerPC OFW platform its own device_register(), which calls
into the common ofw_device_register(). ofppc's is a simple wrapper.

macppc's, on the other hand, takes care of looking up environmental
sensor descriptive information in the OFW device tree and adds those
properties directly to the sensor device property dictionaries. This
single implementation will replace the duplicated code that's scattered
across multiple macppc i2c controller drivers.
 1.26  23-Sep-2023  andvar add ifdef NWSDISPLAY > 0 around rascons_* functions usage,
otherwise implementation is not available, which breaks macppc MAMBO config.

potentially better solution to provide empty implementation, comments welcome.
 1.25  14-Dec-2022  macallan if we have the ROM font, make it available to wsdisplay
needs testing on non-macppc
 1.24  27-Nov-2019  joerg Add a hack for qemu/macppc. OF_finddevice calls will crash depending on
the boot loader and kernel being used. This patch allows using
-prom-env qemu_boot_hack=y to disable the lookup.
 1.23  21-Nov-2018  scole branches: 1.23.4;
don't bother reading ofw properties for platinumfb
 1.22  17-Aug-2018  macallan parse G5 device paths
 1.21  04-Mar-2018  macallan branches: 1.21.2; 1.21.4;
detect if we netboot and set booted_device accordingly
 1.20  18-Feb-2014  macallan branches: 1.20.22;
when looking for SCSI disks in canonicalize_bootpath() also match 'disk@'
since that's what at least some Adaptec firmware uses
 1.19  12-May-2013  macallan branches: 1.19.2;
move console_node and console_instance to ofw_consinit.c where they're
actually used
 1.18  28-Apr-2013  macallan some macppc boxes have onboard devices where parts or the whole PCI interrupt
register is hardwired to zero - fix this up here
 1.17  29-Jul-2012  mlelstv branches: 1.17.2;
Do not call setroot() from MD code and from MI code, which has
unwanted sideeffects in the RB_ASKNAME case. This fixes PR/46732.

No longer wrap MD cpu_rootconf(), as hp300 port stores reboot information
as a side effect. Instead call MI rootconf() from MD code which makes
rootconf() now a wrapper to setroot().

Adjust several MD routines to set the global booted_device,booted_partition
variables instead of passing partial information to setroot().

Make cpu_rootconf(9) describe the calling order.
 1.16  24-May-2012  macallan copy properties for valkyriefb as well
 1.15  17-Jul-2011  joerg branches: 1.15.2; 1.15.6; 1.15.8;
Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.14  01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.13  17-Jun-2011  matt struct device * -> device_t
struct cfdata * -> cfdata_t
split device/softc (CFATTACH_DECL_NEW)
use device_accessors and device_private
constify
 1.12  09-Jun-2010  kiyohara branches: 1.12.6;
Support MV64361 on PegasosII by gt(4).
+ Support gtpci@gt instead of pegasospci more smartly.
+ Support Gigabit Ethernet by mvgbe@gt.
 1.11  20-Jan-2010  macallan branches: 1.11.2; 1.11.4;
pass some OF properties as device properties for network devices
namely local-mac-address and shared-pins needed by gem
 1.10  18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.9  14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.8  25-Sep-2008  macallan branches: 1.8.2; 1.8.8;
recognize ATY,DDparent as display device so the rest of the code can find
the nodes for each individual display
 1.7  11-Jan-2008  mrg branches: 1.7.6; 1.7.10; 1.7.12; 1.7.16;
several changes to make boot device work for disks, at least
on my pegasos:

- don't chop off the 2nd part of the OFW address, it makes it
match pcib (ISA bridge - dev 12 fn 0) instead of viaide (dev 12
fn 1).
- now that it's available, provide an "addr2" that has the
second address present.
- for pci devices match against device and function, not just
function.
- remove the special case and actually broken check in the
"pciide" section, and use the now generic "addr2" and check
against the drive and channel number if provided.
- support "viaide" and "slide" in here, as well as "pciide".
(is there a good way to say "any ide adapter"?)
 1.6  09-Jan-2008  aymeric probe as console devices which have a "class-code" property corresponding to
PCI_CLASS_DISPLAY, and not just those which have a "display" device_type.
In the case where each head is a subnode of the graphics card, it's the heads
which have a "display" device_type.

Maybe only testing "class-code" would make sense if this property is defined
on any openfirmware based PowerPC platform.
 1.5  16-Dec-2007  phx branches: 1.5.2;
At least under certain (mis)configurations (e.g. on the "Pegasos" board)
the VT8231-IDE's native mode only works with irq 14/15, and cannot be
programmed to use a single native PCI irq alone. So we install an interrupt
handler for each channel, as in compatibility mode.
This behaviour has to be activated by the "use-compat-native-irq" property,
otherwise the driver works as before.
 1.4  26-Nov-2007  macallan branches: 1.4.2; 1.4.4; 1.4.8;
repeat after me: I will not test OF nodes for validity by checking for >0
since node numbers may well have 0x80000000 set
 1.3  26-Nov-2007  garbled Apply a set of patches from Frank Wille to make the genfb attachment work
better on ofppc. In doing so, we also move a few functions around in
macppc and the generic ofw powerpc stuff to allow better sharing of code.
Also, introduce a model_init function.

move ofb_cons.c from macppc/dev to powerpc/oea and rename it to rascons.
This gets rid of some naming confusion, and makes it OFW-MI rather than
macppc specific.
 1.2  07-Nov-2007  garbled branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
Convert macppc to shared ofw_autoconf.c. Compile tested only.
 1.1  07-Nov-2007  garbled Create a new ofw_autoconf.c based almost entirely on the one from macppc.
 1.2.8.5  18-Feb-2008  mjf Sync with HEAD.
 1.2.8.4  27-Dec-2007  mjf Sync with HEAD.
 1.2.8.3  08-Dec-2007  mjf Sync with HEAD.
 1.2.8.2  19-Nov-2007  mjf Sync with HEAD.
 1.2.8.1  07-Nov-2007  mjf file ofw_autoconf.c was added on branch mjf-devfs on 2007-11-19 00:46:45 +0000
 1.2.6.4  21-Jan-2008  yamt sync with head
 1.2.6.3  07-Dec-2007  yamt sync with head
 1.2.6.2  15-Nov-2007  yamt sync with head.
 1.2.6.1  07-Nov-2007  yamt file ofw_autoconf.c was added on branch yamt-lazymbuf on 2007-11-15 11:43:17 +0000
 1.2.4.2  13-Nov-2007  bouyer Sync with HEAD
 1.2.4.1  07-Nov-2007  bouyer file ofw_autoconf.c was added on branch bouyer-xenamd64 on 2007-11-13 15:59:07 +0000
 1.2.2.3  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.2.2.2  11-Nov-2007  joerg Sync with HEAD.
 1.2.2.1  07-Nov-2007  joerg file ofw_autoconf.c was added on branch jmcneill-pm on 2007-11-11 16:46:50 +0000
 1.4.8.3  11-Jan-2008  bouyer Sync with HEAD
 1.4.8.2  10-Jan-2008  bouyer Sync with HEAD
 1.4.8.1  02-Jan-2008  bouyer Sync with HEAD
 1.4.4.1  26-Dec-2007  ad Sync with head.
 1.4.2.2  03-Dec-2007  ad Sync with HEAD.
 1.4.2.1  26-Nov-2007  ad file ofw_autoconf.c was added on branch vmlocking on 2007-12-03 19:03:59 +0000
 1.5.2.3  23-Mar-2008  matt sync with HEAD
 1.5.2.2  09-Jan-2008  matt sync with HEAD
 1.5.2.1  16-Dec-2007  matt file ofw_autoconf.c was added on branch matt-armv6 on 2008-01-09 01:47:51 +0000
 1.7.16.1  19-Oct-2008  haad Sync with HEAD.
 1.7.12.1  10-Oct-2008  skrll Sync with HEAD.
 1.7.10.3  11-Aug-2010  yamt sync with head.
 1.7.10.2  11-Mar-2010  yamt sync with head
 1.7.10.1  04-May-2009  yamt sync with head.
 1.7.6.1  28-Sep-2008  mjf Sync with HEAD.
 1.8.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.8.2.1  28-Apr-2009  skrll Sync with HEAD.
 1.11.4.1  03-Jul-2010  rmind sync with head
 1.11.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.12.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.15.8.1  08-Aug-2012  martin Pull up following revision(s) (requested by mlelstv in ticket #466):
sys/arch/amiga/amiga/autoconf.c: revision 1.113
sys/arch/rs6000/rs6000/autoconf.c: revision 1.4
sys/arch/emips/emips/autoconf.c: revision 1.6
sys/arch/sandpoint/sandpoint/autoconf.c: revision 1.27
sys/arch/evbmips/alchemy/autoconf.c: revision 1.18
sys/arch/sgimips/sgimips/autoconf.c: revision 1.43
sys/arch/atari/atari/autoconf.c: revision 1.63
sys/arch/powerpc/oea/ofw_autoconf.c: revision 1.17
sys/arch/mmeye/mmeye/autoconf.c: revision 1.9
distrib/sets/lists/comp/mi: revision 1.1771
sys/arch/mipsco/mipsco/autoconf.c: revision 1.25
sys/arch/iyonix/iyonix/autoconf.c: revision 1.14
sys/arch/hp300/hp300/autoconf.c: revision 1.100
sys/kern/init_main.c: revision 1.445
sys/arch/pmax/pmax/autoconf.c: revision 1.79
sys/arch/netwinder/netwinder/autoconf.c: revision 1.11
sys/arch/dreamcast/dreamcast/autoconf.c: revision 1.10
sys/arch/ibmnws/ibmnws/autoconf.c: revision 1.12
sys/arch/evbppc/ev64260/autoconf.c: revision 1.17
sys/arch/evbmips/gdium/autoconf.c: revision 1.5
sys/arch/algor/algor/autoconf.c: revision 1.21
share/man/man9/Makefile: revision 1.367
sys/arch/ews4800mips/ews4800mips/autoconf.c: revision 1.9
sys/arch/amigappc/amigappc/autoconf.c: revision 1.5
sys/arch/x86/x86/x86_autoconf.c: revision 1.65
sys/arch/acorn26/acorn26/autoconf.c: revision 1.9
sys/arch/mvmeppc/mvmeppc/autoconf.c: revision 1.13
sys/arch/vax/vax/autoconf.c: revision 1.94
sys/arch/usermode/dev/cpu.c: revision 1.72
sys/arch/evbppc/virtex/autoconf.c: revision 1.5
sys/arch/next68k/next68k/autoconf.c: revision 1.26
sys/arch/mac68k/mac68k/autoconf.c: revision 1.73
sys/arch/ia64/ia64/autoconf.c: revision 1.6
sys/arch/evbppc/obs405/obs405_autoconf.c: revision 1.6
share/man/man9/cpu_rootconf.9: revision 1.7
sys/arch/landisk/landisk/autoconf.c: revision 1.6
sys/arch/evbmips/malta/autoconf.c: revision 1.16
sys/arch/sun3/sun3/autoconf.c: revision 1.76
sys/arch/evbppc/explora/autoconf.c: revision 1.13
sys/arch/sun3/sun3/autoconf.c: revision 1.77
sys/arch/evbmips/loongson/autoconf.c: revision 1.3
sys/arch/evbmips/atheros/autoconf.c: revision 1.11
sys/arch/sparc64/sparc64/autoconf.c: revision 1.188
sys/arch/acorn32/acorn32/autoconf.c: revision 1.18
sys/arch/evbarm/evbarm/autoconf.c: revision 1.13
sys/arch/cobalt/cobalt/autoconf.c: revision 1.30
sys/arch/mvme68k/mvme68k/autoconf.c: revision 1.46
sys/arch/hp700/hp700/autoconf.c: revision 1.48
sys/arch/evbmips/adm5120/autoconf.c: revision 1.5
sys/arch/hpcmips/hpcmips/autoconf.c: revision 1.25
sys/arch/alpha/alpha/autoconf.c: revision 1.52
sys/arch/sparc/sparc/autoconf.c: revision 1.244
sys/arch/evbppc/pmppc/autoconf.c: revision 1.7
sys/arch/bebox/bebox/autoconf.c: revision 1.25
sys/arch/luna68k/luna68k/autoconf.c: revision 1.13
sys/arch/hpcarm/hpcarm/autoconf.c: revision 1.20
sys/arch/evbppc/walnut/autoconf.c: revision 1.21
sys/arch/cesfic/cesfic/autoconf.c: revision 1.26
sys/arch/cats/cats/autoconf.c: revision 1.17
sys/arch/x68k/x68k/autoconf.c: revision 1.67
sys/arch/news68k/news68k/autoconf.c: revision 1.21
sys/arch/arc/arc/autoconf.c: revision 1.34
sys/arch/evbsh3/evbsh3/autoconf.c: revision 1.11
sys/sys/conf.h: revision 1.143
sys/arch/evbmips/rasoc/autoconf.c: revision 1.3
sys/arch/hpcsh/hpcsh/autoconf.c: revision 1.26
sys/arch/sun68k/sun68k/autoconf.c: revision 1.29
sys/arch/evbmips/rmixl/autoconf.c: revision 1.6
sys/arch/zaurus/zaurus/autoconf.c: revision 1.12
sys/arch/xen/x86/autoconf.c: revision 1.15
sys/arch/evbppc/mpc85xx/autoconf.c: revision 1.6
sys/arch/shark/shark/autoconf.c: revision 1.18
sys/arch/prep/prep/autoconf.c: revision 1.25
sys/arch/newsmips/newsmips/autoconf.c: revision 1.36
sys/arch/sbmips/sbmips/autoconf.c: revision 1.8
Do not call setroot() from MD code and from MI code, which has
unwanted sideeffects in the RB_ASKNAME case. This fixes PR/46732.
No longer wrap MD cpu_rootconf(), as hp300 port stores reboot information
as a side effect. Instead call MI rootconf() from MD code which makes
rootconf() now a wrapper to setroot().
Adjust several MD routines to set the global booted_device,booted_partition
variables instead of passing partial information to setroot().
Make cpu_rootconf(9) describe the calling order.
add rootconf(9) as a link to cpu_rootconf(9)
make this compile again
 1.15.6.1  02-Jun-2012  mrg sync to latest -current.
 1.15.2.2  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.15.2.1  30-Oct-2012  yamt sync with head
 1.17.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.17.2.1  23-Jun-2013  tls resync from head
 1.19.2.1  18-May-2014  rmind sync with head
 1.20.22.2  07-Dec-2019  martin Build fix for ticket #1465
 1.20.22.1  05-Dec-2019  bouyer Pull up following revision(s) (requested by joerg in ticket #1465):
sys/arch/powerpc/oea/ofw_autoconf.c: revision 1.24
Add a hack for qemu/macppc. OF_finddevice calls will crash depending on
the boot loader and kernel being used. This patch allows using
-prom-env qemu_boot_hack=y to disable the lookup.
 1.21.4.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.21.4.1  10-Jun-2019  christos Sync with HEAD
 1.21.2.2  26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.21.2.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.23.4.1  08-Dec-2019  martin Pull up following revision(s) (requested by joerg in ticket #494):

sys/arch/powerpc/oea/ofw_autoconf.c: revision 1.24

Add a hack for qemu/macppc. OF_finddevice calls will crash depending on
the boot loader and kernel being used. This patch allows using
-prom-env qemu_boot_hack=y to disable the lookup.

RSS XML Feed