On Fri, Feb 13, 2009 at 4:41 PM, Martin Bochnig <[email protected]> wrote: > On Fri, Feb 13, 2009 at 4:09 PM, John Martin <[email protected]> wrote: > ALSO: Someone who has those sources can link that kernel driver > against Xorg, after having removed all obsolete Xsun symbols.
Err, I mean the old Xsun ddx modules' sources. And the major init() functions contained in them (which in turn call the /dev/fb kernel driver and open and map the device after which the server can establish a root window at the end). This is exactly what the SPARC-gfx group must have been doing (or is still doing) with the limited set of ddx modules which they decided to port from Xsun to Xorg (such as kfb http://opensolaris.org/os/community/arc/caselog/2008/180/ and in the future maybe a quite short list of others [e.g. still XVR-100, announced in summer 2007]). As for the init function I was talking about (which you can nicely see in the 2.6 DDK for the TurboGX aka cg6, let's have a look: # nm /platform/sun4u/kernel/drv/sparcv9/m64|grep nit [138] | 748| 168|FUNC |GLOB |0 |1 |_init [76] | 28916| 416|FUNC |LOCL |0 |1 |ati_set_monitor_power [91] | 17732| 792|FUNC |LOCL |0 |1 |atim64_initCT [90] | 17436| 32|FUNC |LOCL |0 |1 |atim64_initGT [100] | 17468| 176|FUNC |LOCL |0 |1 |atim64_initGT_9A [92] | 17288| 8|FUNC |LOCL |0 |1 |atim64_initGX [93] | 18524| 864|FUNC |LOCL |0 |1 |atim64_initVT [101] | 17644| 88|FUNC |LOCL |0 |1 |atim64_palette_init [190] | 0| 0|FUNC |GLOB |0 |UNDEF |cv_init [211] | 0| 0|FUNC |GLOB |0 |UNDEF |ddi_soft_state_init [133] | 36652| 448|FUNC |LOCL |0 |1 |m64_context_init [205] | 0| 0|FUNC |GLOB |0 |UNDEF |mutex_init # nm /usr/openwin/server/modules/ddxSUNWm64.so.1|grep nit [318] | 0| 0|FUNC |GLOB |0 |UNDEF |FBPMPMInit [331] | 0| 0|FUNC |GLOB |0 |UNDEF |cfbInitVisuals [400] | 0| 0|FUNC |GLOB |0 |UNDEF |cmapScreenInit [377] | 0| 0|FUNC |GLOB |0 |UNDEF |dgaScreenInit [350] | 0| 0|FUNC |GLOB |0 |UNDEF |initPixmap [71] | 26628| 92|FUNC |LOCL |0 |7 |m64DpaInit [172] | 123688| 92|FUNC |LOCL |0 |7 |m64DpaInitMPG [223] | 85812| 88|FUNC |GLOB |0 |7 |m64FbMemInit [299] | 130144| 1208|FUNC |GLOB |0 |7 |m64Init32 [176] | 129072| 324|FUNC |LOCL |0 |7 |m64InitPixmaps32 [435] | 23932| 1044|FUNC |GLOB |0 |7 |m64ScreenInit [27] | 0| 0|FILE |LOCL |0 |ABS |m64init.c [336] | 0| 0|FUNC |GLOB |0 |UNDEF |miScreenInit [375] | 0| 0|FUNC |GLOB |0 |UNDEF |mpgScreenInit [314] | 0| 0|FUNC |GLOB |0 |UNDEF |sunCGScreenInit [269] | 0| 0|FUNC |GLOB |0 |UNDEF |sunCursorInitialize [216] | 0| 0|FUNC |GLOB |0 |UNDEF |sunDPAScreenInit [306] | 0| 0|FUNC |GLOB |0 |UNDEF |sunGetMonitorRes [305] | 20224| 2532|FUNC |GLOB |0 |7 |sunM64Init [333] | 0| 0|FUNC |GLOB |0 |UNDEF |sunScreenInit # uname -a SunOS SunBlade-2000 5.11 snv_95 sun4u sparc SUNW,Sun-Blade-1000 # What we were talking about is sunM64Init() in the ddx module. Every Xsun ddx module has had such an entry function. In legacy OWconfig you were required to specify exactly it. It is the first function that gets called by InitOutput() from all Xsun legacy servers since X11R6 / from 1994/95 on. It would be interesting to make real use of the /dev/fb kernel drivers by accessing them with private knowledge. This is only possible if somebody ports the old Xsun ddx modules to Xorg (or writes future ones in a similar fashion). That's what the SPARC gfx group seems to be doing since 2007. C L O S E D SRC. :-( At the > end could you call the corresponding init function of that /dev/fb > driver, which would initialize the frame buffer after InitOutput() > during the server initialization. This is the only way I see, how they > (SPARC-gfx group in combination with X11-group) can be able to bypass > (disable) libpciaccess's bus scanning (such as what Alan Coopersmith > has put in place and described: By not calling xf86BusProbe(); during > Server initialization on SPARC inhw/xfree86/common/xf86Init.c). > For further information have a look at the Solaris 2.6 X11R6 DDK, > specifically at how the cgsix /dev/fb kernel driver and the cg6 Xsun > ddx module interact. This interaction had made it possible to leave > the Xsun server tree without any user mode bus scanning knowledge (in > sharp contrast to all Xorg versions prior to server 1.5 / Xorg 7.4, as > well as with all XFree86 versions developed after 1998). _______________________________________________ driver-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/driver-discuss
