[Added cc of xwin-discuss at opensolaris.org]

Ian Murdock wrote:
> Alan Coopersmith wrote:
>> Ian Murdock wrote:
>>> What are time estimates for these things? We definitely want SPARC
>>> support in Indiana,
>>
>> Will you be working with the SPARC driver teams to convince them
>> to allow redistribution of their drivers then?   Open sourcing
>> the ones they can, even if it's for hardware they no longer sell?
> 
> Let me know what the blockers are, and I'll do my best to help remove them.

I can't speak to network drivers or anything other than graphics drivers,
so I'll leave others to chime in.    And while trying to answer this, I've
realized just how much background there is for people who haven't been
living this for the past few years (which is why it's taken so long to
answer), so I'll try to explain as much as I can for those who may or may
not know the status (not just Ian, but many of the other people on
indiana-discuss are new to this history).   [Note that I've been part of
one of the groups below for the past 8 years, so can't claim to be
unbiased, or accurately reporting the stories passed on to me from the
times before I got here, but I'll try my best.]

In the 90's, like all other Unix vendors, Sun took the X11 sources from
MIT/the X Consortium, and forked them and added their own proprietary
"value added features" - first as Xnews, then as Xsun.   Solaris today
includes Xsun forked from X11R6.0, with selected changes from X11R6.4,
6.6, 6.8 and XFree86 4.x integrated at points along the line.

Xsun though is only an Xserver, with no device specific knowledge - the
drivers for various graphics devices for Xsun come from 3 other groups
at Sun - SPARC Graphics, x86 Platform Drivers, and Sun Ray.

Originally, x86 Platform Drivers licensed XiG's AcceleratedX drivers for
Solaris x86, but then moved to writing their own.   In the late 90's,
Sun's x86 emphasis shifted more to servers and away from the desktop,
and it was less interesting to fund a Sun team to stay up with the
increasing pace of change in the graphics industry, while XFree86 at
the time was showing it could keep up there, so a "XFree86 porting
kit" was then developed so that XFree86 drivers could be rebuilt with
the Xsun headers and used with Xsun, and that's the current source of
many Xsun x86 drivers.   (The non-XF86 drivers have been announced for
EOL/removal in the next Solaris release.)

Of course, 2001/2002 was the infamous "indefinite delay" of Solaris 9 x86,
in which all the staff working on x86 was reassigned or laid off, and we
got quite far behind the state of the industry by the time that was undone.

In 2004, as Solaris 10 was coming into shape, Sun was also looking at
shipping their first AMD64 workstation, with nVidia chosen as the graphics
vendor.   In discussions with nVidia, the cost, effort and time to port
their Linux/XFree86 driver to Solaris was much greater if they had to port
to the different driver model of Xsun as well, and they asked if we could
ship XFree86 to support their driver.   Inside Sun, we were also looking at
how painful it had become to port the latest extensions from the XFree86
world to ours to keep up with the needs of the GNOME desktop, especially
GNOME accessibility (extensions such as Render, Damage, XFixes, etc.).

Plus, we were part of the discussions between the old X.Org industry 
consortium, people from many of the Linux distros, and the growing crowd
of developers unhappy with XFree86 that led to the formation of the X.Org
Foundation and the creation of the Xorg server (based on the XFree86
source base).

With all of those at the same time, we chose to move to Xorg for Solaris.
We shipped first on x86, with Solaris 10 FCS, since that's where all the
drivers already worked - most out of the box, since Solaris x86 had been a
supported XFree86 platform for years.

That left us with SPARC & Sun Ray drivers that only supported Xsun.   It's
taken a couple of years, due to differing schedules and priorities, but now
we've gotten to  both teams working with us to port their drivers to Xorg.

In the Sun Ray case, since they have one driver that covers all devices from
the oldest Sun Ray 1 to the newest Sun Ray 270, it's easy - they'll move all.

For SPARC though, given the limited resources still working on SPARC graphics,
they've agreed only to port the devices still sold by Sun today - and thanks
to the purge of cards that didn't comply with the European & Chinese Reduction
of Hazardous Substances (RoHS) rules last year, that's only the XVR-300 &
XVR-2500 PCI-E cards for the latest generation Ultra workstations and the
XVR-100 PCI card for previous generations.   (In years past, Sun designed it's
own graphics cards - for SPARCs with graphics on the Sbus or UPA bus, it's
got a Sun designed card - but the economics of that got to the point where Sun
moved to the PCI (and later PCI-E) busses and OEM'ed graphics cards - all PCI
graphics in SPARCs are OEM'ed from ATI, 3DLabs, or TechSource.)

This leaves most people who bought a SPARC workstation pre-2006 unable to run
Xorg as supplied/supported by Sun.    However, the XFree86/Linux/BSD
communities have in the past reverse engineered many of these drivers (or
ported the x86 versions of the drivers for the cards we OEM'ed from ATI &
3DLabs), and Martin Bochnig has made many of them work on OpenSolaris in his
Martux distro (currently the only non-Sun OpenSolaris distro that works on
SPARC).   He has had to fight to get the rights to redistribute the necessary
kernel drivers, even in binary format though.

So, now that I've bored everyone to sleep, this leaves us with these 
possibilities for Indiana on SPARC:

1) Ship Xsun binaries & existing SPARC Xsun driver binaries (all closed
    source)

2) Ship Xorg & use Martux's SPARC graphics drivers (all open source)
    with existing SPARC kernel driver binaries (all closed source)

For 1, we'd have to get legal review of the licenses for the 3rd-party
proprietary sources in Xsun (Adobe Display Postscript & Bitstream 4-in-1
font engine) to determine if we can allow binary redistribution - we've
never bothered since we planned to drop it and move to Xorg anyway.
(And while we could open source about 90% of Xsun - pretty much everything
  but the two above mentioned modules - we've also not bothered for the
  same reason.)

The SPARC graphics group has done a one-time drop of redistributable
kernel drivers, but I don't believe has done anything with Xsun drivers,
nor have they updated the drivers as time goes on.   They've also never
open sourced the drivers for the cards Sun created, and since their
resourcing/funding is strongly biased towards current hardware, not
stuff thats 5+ years old, probably never will without someone providing
resources or motivation.

For 2, we'd simply have the somewhat embarrassing situation of Sun, who
has all the code, docs, and  specs for these cards relying on drivers
created by reverse engineering by community members who have repeatedly
begged our SPARC graphics team to release those (where they can) and
fallen on deaf ears from the SPARC team.   We'd also have to deal with
redistribution rights for things like the AFB card's firmware, which is
loaded by the OS at runtime, and which Linux distros are still begging
us to allow them to legally redistribute for their users (see
http://blogs.sun.com/webmink/entry/hardware_archaeology#comment-1182282368000
for one just last week).

[BTW, I'm out all next week, so expect even longer response times to
  e-mail from me then.]

-- 
        -Alan Coopersmith-           alan.coopersmith at sun.com
         Sun Microsystems, Inc. - X Window System Engineering

Reply via email to