Home | History | Annotate | Download | only in oea
History log of /src/sys/arch/powerpc/oea/ofwoea_machdep.c
RevisionDateAuthorComments
 1.64  28-May-2024  macallan - initialize bootpath
- if we don't get anything useful from args, check /chosen
now my G5 finds its boot device even when netbooting a kernel directly
 1.63  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.62  05-Dec-2021  msaitoh s/preceed/preced/ in comment.
 1.61  02-Apr-2021  macallan clarify comment in previous
( this is a hack, should go away when the root cause is fixed etc. )
no functional change
 1.60  01-Apr-2021  macallan avoid mapping 0xfffff000 - my beige G3 DSIs on it
with this my the machine boots again
tested on a variety of G4 and G5 models with no problems
 1.59  05-Mar-2021  thorpej branches: 1.59.2;
Separate probing for the console device and initializing it, so that
ofwoea_initppc() can have more control over which of those steps are
performed during initialization. Probing happens before setting up
the exception vectors, initializing happens after.
 1.58  05-Mar-2021  thorpej Split set_timebase() into get_timebase_frequency() and init_decrementer().
Call get_timebase_frequency() much earlier.
 1.57  05-Mar-2021  thorpej Move ofppc-specific CPU spinup code to ofppc/machdep.c
 1.56  27-Feb-2021  thorpej Un-do a bunch of misguided code sharing. It's not really shared if it's
full of platform-specific #ifdefs:
- ofwoea_batinit() is gone; just do what's needed early in macppc / ofppc
initppc() functions.
- Get a bunch of Mac-specific stuff out of ofwoea_initppc().
 1.55  27-Feb-2021  thorpej In ofwoea_initppc(), call oea_init() after getting the bootpath, etc.
Also, add a comment explaining why it's actually necessary to clear
PSL_IP after installing the kernel's exception vectors.
 1.54  24-Feb-2021  thorpej Don't save the firmware's copy of SPRG[0-3], and don't fiddle with
SPRG[0-3] in the firmware trampoline. Section 7.1 of the OpenFirmware
PowerPC CPU bindings says that firmware "client interface shall not modify"
when in virtual-mode, and "client interface shall preserve" in real-mode.

This is important because in vritual-mode, DSI exceptions will land in
the kernel's DSI exception handler, and that handler depends on the
kernel's SPRG0 value (it contains the pointer to the cpu_info for that
CPU).

Additionally, in the firmware trampoline, point curcpu at an empty
ofw_battable. This ensures that the DSI exception handler won't
load a BAT register with a kernel block translation that clobbers
a segment translation owned by the firmware. Eventually, this ofw_battable
might contain some of the larger translations owned by the firmware.
 1.53  19-Feb-2021  thorpej Update some #ifdef PMAC_G5 for previous change that I missed before.
 1.52  19-Feb-2021  thorpej Shuffle around a couple of things that aren't particularly OEA-specific:

- Early bootstrap console initialization moves to ofw_machdep.c, and
is called a bit earlier, from ofw_bootstrap().

- Decoding the "translations" property from /chosen/mmu is specified
in the general OpenFirmware PowerPC bindings, and is not specific to
any particular PowerPC flavor. It's now decoded a bit earlier in
ofw_bootstrap().

The *interpretation* of the mode field of a translation is, however,
implementation-specific, so that remains in ofwoea_machdep.c.
 1.51  12-Feb-2021  thorpej Add some comments to help visually track the nested #ifdef blocks in
ofwoea_batinit().
 1.50  07-Jul-2020  rin branches: 1.50.2;
It turned out that using some Open Firmware routines causes the system
freeze after calling OF_quiesce().

This is why setting color palette crash the system for some Power Mac G5
models, like PowerMac11,2.

Therefore, stop using color-palette and backlight callbacks for genfb(4)
in this case.

Also, postpone OF_quiesce() after rascons_init_rasops(), and initialize
color palette there if OF is going to be quiesced and color depth is 8.

Now, color palette for wscons is initialized correctly for PowerMac11,2.
 1.49  06-Jul-2020  rin - Drop unused opt_compat_netbsd.h.
- Include missing opt_multiprocessor.h.
 1.48  06-Jul-2020  rin Style and cosmetic changes. No binary changes intended.
 1.47  28-Feb-2020  macallan do what FreeBSD does and OF_quiesce() only on PowerMac11,2 and 12,1
 1.46  28-Feb-2020  macallan switch PowerMac7,* CPUs to full speed via OF
if we do this later we hang
 1.45  15-Jul-2018  maxv branches: 1.45.6;
Retire ipkdb entirely. The option was removed from the config files
yesterday.

ok kamil christos
 1.44  03-Mar-2018  macallan branches: 1.44.2; 1.44.4;
get bootpath from OF if we don't get it as an argument
 1.43  02-Mar-2018  macallan defer scribbling into video memory until after re-enabling the MMU if
we're in bridge mode.
With this NetBSD boots on PCI-X G5s
 1.42  21-Jan-2018  mrg fix ofppc/pegasosII (and maybe others).

don't assume PPC_OEA64_BRIDGE means we have a 64 bit cpu (code
for 64 bit in bridge and normal 32 bit can co-exist due to
fixups the early boot code does has, and ofppc builds GENERIC
this way):
- fix mtmsr()/mfmsr() to use the right method based upon the
actually cpu booted on.
- fix cpu_setup() to have 32 bit and 64 bit hid0 variables
and operate on the right one based upon the current cpu.
restore a minor optimisation of not writing hid0 if it
didn't change.

in set_timebase() check if OF_finddevice("/cpus/@0") failed
and returned -1 before using it for OF_getprop().
 1.41  22-Sep-2017  macallan add quick path for timebase-frequency detection
deal with differences in /u4 reg property encoding vs. /uni-n, so this works
on my G5 now
 1.40  15-Sep-2017  macallan flesh out RANGE_TYPE_MACIO
 1.39  22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.38  25-Mar-2014  matt branches: 1.38.6; 1.38.10;
sprintf -> snprintf
 1.37  03-Mar-2014  macallan support ppc601
from scole_mail, ok matt@
 1.36  28-Feb-2014  matt Use uintptr_t instead of int.
 1.35  03-Nov-2013  mrg - remove set but unused variables
- move some variables inside their relevant use #ifdef
 1.34  31-Aug-2013  matt Move the pmap_setup to the start oea_init (no non-OFW ports can use it).
If PPC_OEA64_BRIDGE is defined, add code so that when OEACPU_64_BRIDGE is not
present, it replaces the rfid with rfi and mfmsr/rldicl/mtmsrd sequence
with NOPs. This allows plain OEA kernels to work. (tested on PMPPC with
PPC_OEA64_BRIDGE option added).
 1.33  13-May-2013  macallan branches: 1.33.2;
more G5 stuff:
- call OF_quiesce()
- properly map the message buffer
 1.32  11-Apr-2013  macallan make PPC_OEA64_BRIDGE mode work
from Phileas Fogg
 1.31  20-Oct-2012  kiyohara Support Cache Protocol 'MEI' with MULTIPROCESSOR.
 1.30  17-Jul-2012  jmmv branches: 1.30.2;
OF_finddevice returns -1 on error, not an arbitrary negative number. Make
conditional explicit so that model_name gets a chance to be initialized when
the handle for the device is actually negative (which appears to be the case
in my Mac Mini G4).
 1.29  08-May-2012  macallan provide a BAT mapping for the PCI IO range on Grackle/Heathrow based macs
now drivers that need PCI IO access work again
 1.28  16-Feb-2012  matt Allow use of large (>256MB) bats for iobats. If XBSEN isn't present, they
will be "downsized" into multiple 256MB bats. Tested by riz.
 1.27  15-Feb-2012  macallan branches: 1.27.2;
fix crash during early startup - we can't call OpenFirmware between zapping
the BATs and complete setting them up again
ok releng
 1.26  04-Aug-2011  phx branches: 1.26.2; 1.26.6;
Drop into ddb, when requested by ofwboot (-d option).
 1.25  27-Jul-2011  macallan move clearing PSL_IP in ofwmsr back where it was - if we do it too early my
PowerBook 3400c hangs on startup.
 1.24  17-Jul-2011  dyoung Enable new-style <sys/bus.h> on several PowerPC ports supporting PCI
buses. Make non-inline implementations of bus_space(9) and bus_dma(9)
routines and move them to appropriate .c files.

This may leave amigappc in a bad state, sorry. Fortunately, it will be
easy to repair by imitating the bus.h -> bus_{defs,funcs}.h split in
some other PowerPC port.
 1.23  02-Jul-2011  matt Select pmap style before calling oea_init.
 1.22  20-Jun-2011  matt <arch/powerpc/... -> <powerpc/...
 1.21  12-Jun-2011  matt Save/restore all sprgs when calling OFW.
Move all-zero variables from .data to .bss
Use .lcomm for local variables.
Cleanup a bit of assembly.
Clear PSL_IP in the saved ofmsr (was previously done in ofwoea_machdep.c)
 1.20  14-Mar-2010  kiyohara branches: 1.20.8;
Fix isa(4) support for ofw.
ofw not initialized bus_space for isa(4).
It tested on ofppc(PegasosII).
 1.19  10-Mar-2010  kiyohara Remove white-spaces.
 1.18  17-Jan-2010  phx branches: 1.18.2;
Heed modeldata.ranges_offset while constructing the ranges bitmap.
 1.17  13-Feb-2009  apb Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
 1.16  30-Nov-2008  martin branches: 1.16.4;
As discussed on tech-kern: mutex_init is too heavyweight for early bootstrap
phases, so move the initialization of the ksyms mutex back into main via
a function called ksyms_init. Rename the existing (but quite different)
ksyms_init* variations into ksyms_addsyms_elf() and ksyms_addsyms_explicit()
and adapt machdep code accordingly.
 1.15  12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.14  28-Apr-2008  martin branches: 1.14.6; 1.14.8;
Remove clause 3 and 4 from TNF licenses
 1.13  08-Apr-2008  garbled branches: 1.13.2; 1.13.4;
SMP support for ofppc. (finally) Much thanks to Matt Thomas for help in
figuring out all the crazy nuances of getting this working, and to
Michael Lorenz for testing/fixing my changes on macppc. Tested with a
quad-proc 7044-270.
Summary of changes:

Bumped CPU_MAXNUM to 16 on ofppc.
Added md_* routines to ofppc/cpu.c, to sync the timebase, and awaken the CPUs.
Fixed a bug in the test for a 64bit bridge cpu early in locore.S
Added code to set the interrupt priority for all CPUs with an openpic.
Change rtas to probe before cpus, to allow use of the rtas freeze/thaw
timebase code routines.
Fix CPU_INFO_FOREACH macro to iterate through detected cpus, not CPU_MAXNUM.
Change most uses of ci_cpuid to ci_index, to deal with CPUs that do not allow
writing to SPR_PIR. Don't write SPR_PIR unless the secondary cpu identifies
itself as 0.
Change the hatchstack/interrupt stack allocations to allocate a 8192byte
interrupt stack, and a 4096 byte hatch stack, align them to 16 bytes, and
allocate them no lower than 0x10000. Allocate them separately to prevent the
hatch stack corrupting the interrupt stack later on.
If the CPU is a 64bit cpu, copy SPR_ASR in cpu_hatch()
Set the idle stack to ci->ci_data.cpu_idlelwp->l_addr->u_pcb.pcb_sp.
Add OF_start_cpu(). Add a routine to ofwoea_initppc to spin up secondary
procs early, and place them into a spinloop waiting for the hatch routines
to be ready.
Modify the ipi routines to deal with openpics that reverse byte order on read
from an ipi register. (such as on the 7044)
Change the rtas setup to allocate the rtas physical base address above
the kernel, to avoid mucking up the hatch/interrupt stacks.
 1.12  14-Feb-2008  garbled branches: 1.12.6;
Some powerpc cleanup. Remove unneeded/bad usage of extern oeacpufeat.
Convert asm code to use %r register format. Done by comparison to
disassembled output, double checked with diff of dissasembled output
before and after, and test booted on my 7044.
 1.11  11-Feb-2008  garbled Use model_init to clean up how we decide the ranges for
PCI_NETBSD_CONFIGURE. Add some code to hopefully better handle the
firepower and powerstackII, based on the OFW dumps from those machines.
Untested on those machines, but doesn't break anything on pegasos/7044.
 1.10  05-Feb-2008  garbled Rewrite a big chunk of the pmap and locore code for powerpc to better
deal with the 64bit bridge mode. pmap changes by Matt Thomas, rest by myself.

Change pmap.c to work similar to exec_elf.c to allow us to compile in
multiple pmaps to a single kernel. This allows the pmap for bridge64 to
co-exist with the 32bit pmap.

Yank __HAVE_PMAP_PHYSSEG from all the oea code.

Add a new global, "oeacpufeat", which is used early in locore to determine
certain cpu features. This allows us to conditionalize code early in the boot
for certain CPUs that have special needs.

Yank most of the ifdef PPC_OEA_BRIDGE64 code from almost every file it was
found in. Some of it seemed incorrect, and my 7044 booted just fine
without it. It would appear that the bridge cpus treat BAT instructions
as nops, so they seem to be safe.

In ofppc, check the oeacpufeat, and if we are on a 64bit proc, clear
MSR[SF], and ASR[V].

With all of these changes, a kernel with both PPC_OEA and PPC_OEA_BRIDGE64
will boot on the POWERIII-2 cpu. However, it will not yet boot on a 32bit
cpu, because of CACHELINESIZE. Work remains to be done there to fix that.
 1.9  28-Jan-2008  garbled Apparently BRIDGE mode allows BAT registers, so re-enable that code.
Change the pegasos PCI_NETBSD_CONFIGURE arguments around to wire up mem
space into the correct area, and move the io regs a little to make it
work properly. Just avoid the secondary PCI entirely.
Change the list of things that we fiddle with in pci_conf_hook. Map mem
on the fwohci, avoid display cards, avoid IO on the auvia.
Change some printf's to aprint_*
Yank a call to genppc_pci_indirect_make_tag and change it to the
bus-independant pci call instead. (in pci_conf_hook)
 1.8  17-Jan-2008  garbled Add support to ofppc for the IBM 7044-270 machine. This is a POWER3-II
based machine. Currently the kernel to run on this machine is
incompatible with the standard GENERIC kernel, so for now, we have a
separate GENERIC_B64. Eventually, I hope to combine the two.

Please note, this is a port of 32bit ofppc, not a powerpc64 port.

Thanks to Matt Thomas and Kevin Bowling for helping to make this port
possible.

Summary of changes:

Change ofwpci to use the ofmethod config for configuring the PCI bus,
rather than indirect configuration.
Move the wiring of the interrupt controllers from at the start of the
boot, into the configuration of the first PCI bus.
Rewrite the map_isa_ioregs() hack to work on a machine without BATs
Fix a ton of bugs in the genofw_find_pics routine, and in the map_space code.
Split the pic_openpic into openpic_common and pic_openpic.
Create a new pic_distopenpic driver, for the distributed openpic found on
some newer IBM machines.
Fix a bad panic in pmap_extract on 64bit bridge mode
 1.7  09-Jan-2008  garbled ofwoea_batinit should be a nop when PPC_OEA is not defined
 1.6  26-Nov-2007  garbled branches: 1.6.6;
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.5  14-Nov-2007  garbled Commit a fix for the _SR regions that are needed by ofppc. Because this
platform tends to just declare anything from 0x8 to 0xf as mem or io
regions willy-nilly, we need to avoid batmapping a few of those in order
to save space for USER_SR, KERNEL_SR and KERNEL2_SR. I picked values for
these three that are least-commonly used or used for non-vital things.
 1.4  26-Oct-2007  garbled branches: 1.4.2; 1.4.4; 1.4.6;
Fix the ranges_bitmap function so it correctly finds the various ranges
on OFW, and passes them on to ofwoea_batmap correctly. With this fix,
ofppc now properly initializes all of it's batmappings.

Kept the macppc specific override of the bitmap, but surrounded it with
an #ifdef macppc. It would probably be worth testing macppc without this
ifdef to see if it works there as well.
 1.3  25-Oct-2007  garbled Add a bunch of fixes and minor rewrites to ofppc to bring it closer to
working properly. This is still a work in progress, and all work so far
has been based on the PegasosII machne.

1) Rewrite how the ISA memory and IO space maps are found. More work
will still need to be done in this area.
2) Add a new OFW method of pci configuration. So far I can only get this
to work on the primary PCI bus on the Pegasos. Unsure if this is a
pegasos bug or a code bug.
3) Add the rtas device to ofppc, and add an "rtas_reboot" function to
rtas to allow me to reboot the PegasosII. The rtas driver works, and is
a great start but needs to be changed slightly to allow easier access to
the functions from outside the driver.
4) Fix a number of bugs that existed in the shared PCI code for ofw that
probably weren't tickled by macppc.

There is much much more left to do here, this is all still a work in
progress, but this commit will allow other people to play around with the
code if they want to.
 1.2  17-Oct-2007  garbled branches: 1.2.2;
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.
 1.1  06-Jun-2007  garbled branches: 1.1.2; 1.1.6; 1.1.8; 1.1.10;
file ofwoea_machdep.c was initially added on branch ppcoea-renovation.
 1.1.10.3  18-Nov-2007  bouyer Sync with HEAD
 1.1.10.2  13-Nov-2007  bouyer Sync with HEAD
 1.1.10.1  25-Oct-2007  bouyer Sync with HEAD.
 1.1.8.1  18-Oct-2007  yamt sync with head.
 1.1.6.4  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.1.6.3  21-Nov-2007  joerg Sync with HEAD.
 1.1.6.2  28-Oct-2007  joerg Sync with HEAD.
 1.1.6.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.1.2.7  24-Sep-2007  macallan shutup debug output if options OFWOEA_DEBUG isn't given
 1.1.2.6  15-Aug-2007  macallan add a config option to control the number of ranges we can bus_space_map()
per bus, also bump it from 8 to 20 so all PCI devices in my iBook work
again.
 1.1.2.5  18-Jun-2007  macallan call ksyms_init()
 1.1.2.4  18-Jun-2007  macallan forgot to XXX an evil hack
 1.1.2.3  18-Jun-2007  macallan make this work on macppc
caveats:
- ISA is likely borked
- the way we set PCI memory and IO ranges might be macppc-specific and
should probably go into the host bridge drivers
 1.1.2.2  07-Jun-2007  garbled Convert macppc to powerpc bus_space. Lots of work here from Matt Thomas,
as well as the common ofwoea code from myself. Compile tested only,
still probably needs some fine tuning.

Also in this commit:
Convert macppc to new shared ofwoea routines.
Lots of KNF.
 1.1.2.1  06-Jun-2007  garbled Add new routines which should be common between macppc and ofppc. Not
used by either port yet.
 1.2.2.3  03-Dec-2007  ad Sync with HEAD.
 1.2.2.2  23-Oct-2007  ad Sync with head.
 1.2.2.1  17-Oct-2007  ad file ofwoea_machdep.c was added on branch vmlocking on 2007-10-23 20:36:10 +0000
 1.4.6.4  23-Mar-2008  matt sync with HEAD
 1.4.6.3  09-Jan-2008  matt sync with HEAD
 1.4.6.2  06-Nov-2007  matt sync with HEAD
 1.4.6.1  26-Oct-2007  matt file ofwoea_machdep.c was added on branch matt-armv6 on 2007-11-06 23:20:46 +0000
 1.4.4.3  18-Feb-2008  mjf Sync with HEAD.
 1.4.4.2  08-Dec-2007  mjf Sync with HEAD.
 1.4.4.1  19-Nov-2007  mjf Sync with HEAD.
 1.4.2.8  27-Feb-2008  yamt sync with head.
 1.4.2.7  11-Feb-2008  yamt sync with head.
 1.4.2.6  04-Feb-2008  yamt sync with head.
 1.4.2.5  21-Jan-2008  yamt sync with head
 1.4.2.4  07-Dec-2007  yamt sync with head
 1.4.2.3  15-Nov-2007  yamt sync with head.
 1.4.2.2  27-Oct-2007  yamt sync with head.
 1.4.2.1  26-Oct-2007  yamt file ofwoea_machdep.c was added on branch yamt-lazymbuf on 2007-10-27 11:27:54 +0000
 1.6.6.2  19-Jan-2008  bouyer Sync with HEAD
 1.6.6.1  10-Jan-2008  bouyer Sync with HEAD
 1.12.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.12.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.13.4.4  11-Aug-2010  yamt sync with head.
 1.13.4.3  11-Mar-2010  yamt sync with head
 1.13.4.2  04-May-2009  yamt sync with head.
 1.13.4.1  16-May-2008  yamt sync with head.
 1.13.2.1  18-May-2008  yamt sync with head.
 1.14.8.2  03-Mar-2009  skrll Sync with HEAD.
 1.14.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.14.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.16.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.18.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.20.8.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.26.6.2  02-Jun-2012  mrg sync to latest -current.
 1.26.6.1  18-Feb-2012  mrg merge to -current.
 1.26.2.4  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.26.2.3  30-Oct-2012  yamt sync with head
 1.26.2.2  23-May-2012  yamt sync with head.
 1.26.2.1  17-Apr-2012  yamt sync with head
 1.27.2.1  12-Jun-2012  riz Pull up following revision(s) (requested by macallan in ticket #321):
sys/arch/powerpc/oea/ofwoea_machdep.c: revision 1.29
provide a BAT mapping for the PCI IO range on Grackle/Heathrow based macs
now drivers that need PCI IO access work again
 1.30.2.4  03-Dec-2017  jdolecek update from HEAD
 1.30.2.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.30.2.2  23-Jun-2013  tls resync from head
 1.30.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.33.2.1  18-May-2014  rmind sync with head
 1.38.10.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.38.6.1  05-Feb-2017  skrll Sync with HEAD
 1.44.4.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.44.4.1  10-Jun-2019  christos Sync with HEAD
 1.44.2.1  28-Jul-2018  pgoyette Sync with HEAD
 1.45.6.1  29-Feb-2020  ad Sync with head.
 1.50.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.59.2.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed