[indiana-discuss] [xwin-discuss] mesa/opengl/glx, drm and dri versus SPARC
Martin Bochnig
mb1x at gmx.com
Tue Sep 18 23:48:24 PDT 2007
Martin Bochnig wrote:
> Userland support for dri/drm on SPARC is already working as of now, credits to the Xorg developers.
>
> However, some drm kernel support for sparcv9 please ...
> (first the generic drm support from intel and common, then device specific ati [mach64, r128, radeon] and ffb support from linux)
> Looks promising already:
>
>
> [...]
> ultrasparc -mvis -fno-strict-aliasing -fno-unit-at-a-time -fno-optimize-sibling-calls -O2 -D_ASM_INLINES -Wall -Wno-unknown-pragmas -Wno-missing-braces -Wno-sign-compare -Wno-parentheses -Wno-uninitialized -Wno-implicit-function-declaration -Wno-unused -Wno-trigraphs -Wno-char-subscripts -Wno-switch -Werror -gdwarf-2 -std=gnu99 -fno-dwarf2-indirect-strings -std=gnu99 -mno-fpu -D_KERNEL -ffreestanding -D_SYSCALL32 -D_SYSCALL32_IMPL -D_ELF64 -D_DDI_STRICT -Dsun -D__sun -D__SVR4 -Dsun4u -D_MACHDEP -DSFMMU -DSPITFIRE_MINREV_SUPPORTED=0x21 -DSF_ERRATA_30 -DBB_ERRATA_1 -DSF_ERRATA_32 -DSF_ERRATA_51 -DSF_ERRATA_54 -DSF_ERRATA_57 -DSF_V9_TABLE_28 -DCHEETAH_MINREV_SUPPORTED=0x30 -DCHEETAHPLUS_ERRATUM_25 -DCHEETAH_ERRATUM_109 -DCHEETAH_ERRATUM_127 -DJALAPENO_ERRATA_85 -DCHEETAHPLUS_ERRATUM_34 -DC2_AUDIT -I../../intel/io/drm -I../../sun4 -I../../sun4u -I../../sfmmu -I../../sparc/v9 -I../../sparc -I../../sun -nostdinc -I../../common -c -o obj64/drm_scatter.o ../../common/io/drm/drm_scatt
> er.c
> /MartUX_0.3/usr/src/tools/proto/opt/onbld/bin/sparc/ctfconvert -i -L VERSION obj64/drm_scatter.o
> /usr/ccs/bin/ld -r -o obj64/drm obj64/drm_sunmod.o obj64/drm_kstat.o obj64/drm_agpsupport.o obj64/drm_asm.o obj64/drm_auth.o obj64/drm_bufs.o obj64/drm_context.o obj64/drm_dma.o obj64/drm_drawable.o obj64/drm_drv.o obj64/drm_fops.o obj64/drm_ioctl.o obj64/drm_irq.o obj64/drm_lock.o obj64/drm_memory.o obj64/drm_msg.o obj64/drm_pci.o obj64/drm_scatter.o
> ld: fatal: file obj64/drm_asm.o: open failed: No such file or directory
> ld: fatal: File processing errors. No output written to obj64/drm
> *** Error code 1
> make: Fatal error: Command failed for target `obj64/drm'
> Current working directory /MartUX_0.3/usr/src/uts/intel/drm
> *** Error code 1
> The following command caused the error:
> BUILD_TYPE=OBJ64 VERSION='MartUX_0.3' make def.targ
> make: Fatal error: Command failed for target `def.obj64'
> Current working directory /MartUX_0.3/usr/src/uts/intel/drm
> bash-3.00$ pwd
> /MartUX_0.3/usr/src/uts/intel/drm
> bash-3.00$ ls -al
> total 194
> drwxr-xr-x 3 bochnig other 512 Sep 19 03:54 .
> drwxr-xr-x 361 bochnig other 6144 Aug 16 08:10 ..
> -rw-r--r-- 1 bochnig other 84478 Sep 19 03:54 .make.state
> -rw-r--r-- 1 bochnig other 2252 Sep 19 03:53 Makefile
> -rw-r--r-- 1 bochnig other 2252 Aug 16 08:10 Makefile__ORIG
> drwxr-xr-x 2 bochnig other 512 Sep 19 03:54 obj64
> bash-3.00$ ls -al obj64
> total 546
> drwxr-xr-x 2 bochnig other 512 Sep 19 03:54 .
> drwxr-xr-x 3 bochnig other 512 Sep 19 03:54 ..
> -rw-r--r-- 1 bochnig other 18456 Sep 19 03:53 drm_agpsupport.o
> -rw-r--r-- 1 bochnig other 12680 Sep 19 03:54 drm_auth.o
> -rw-r--r-- 1 bochnig other 27200 Sep 19 03:54 drm_bufs.o
> -rw-r--r-- 1 bochnig other 17704 Sep 19 03:54 drm_context.o
> -rw-r--r-- 1 bochnig other 11600 Sep 19 03:54 drm_dma.o
> -rw-r--r-- 1 bochnig other 10320 Sep 19 03:54 drm_drawable.o
> -rw-r--r-- 1 bochnig other 59032 Sep 19 03:54 drm_drv.o
> -rw-r--r-- 1 bochnig other 10840 Sep 19 03:54 drm_fops.o
> -rw-r--r-- 1 bochnig other 15776 Sep 19 03:54 drm_ioctl.o
> -rw-r--r-- 1 bochnig other 13360 Sep 19 03:54 drm_irq.o
> -rw-r--r-- 1 bochnig other 11296 Sep 19 03:53 drm_kstat.o
> -rw-r--r-- 1 bochnig other 13304 Sep 19 03:54 drm_lock.o
> -rw-r--r-- 1 bochnig other 13256 Sep 19 03:54 drm_memory.o
> -rw-r--r-- 1 bochnig other 1728 Sep 19 03:54 drm_msg.o
> -rw-r--r-- 1 bochnig other 16136 Sep 19 03:54 drm_pci.o
> -rw-r--r-- 1 bochnig other 12480 Sep 19 03:54 drm_scatter.o
> -rw-r--r-- 1 bochnig other 2976 Sep 19 03:53 drm_sunmod.o
> bash-3.00$ uname -a
> SunOS SunBlade-2000 5.11 snv_70 sun4u sparc SUNW,Sun-Blade-1000
> bash-3.00$ /usr/bin/isainfo -k
> sparcv9
>
>
> p.s. Posted to xwin and CC'ed to indiana again, as I hope indiana will also ship for SPARC one day (next March?).
>
> %m
>
"drm" and "i915" kernel modules successfully built for sparcv9, but a
number of unresolved symbols.
Should not be too difficult to fix.
Note: "drm" is the general device-independant part. "i915" is the
device-specific one. One would have them in [...]/kernel/drv/'isainfo
-k'/i915 and [...]/kernel/misc/'isainfo -k'/drm.
"drm" is a submodule that gets pre-loaded by the device-specific
modules, currently limited to i915 on Solaris. But the framework should
be rather easily extensible to cover the other chipsets already
supported on linux and bsd.
References:
http://www.opensolaris.org/os/community/on/flag-days/pages/2006102901/
http://webcvs.freedesktop.org/dri/drm/bsd-core/
http://bolthole.com/solaris/drivers/DRI.html
http://dri.freedesktop.org/wiki/Solaris?highlight=%28CategoryOperatingSystem%29
http://webcvs.freedesktop.org/dri/drm/linux-core/README.drm?revision=1.1.1.4
Here the currently missing symbols:
Sep 19 08:25:35 SunBlade-2000 krtld: [ID 826211 kern.notice]
'drm_find_file_by_proc'
Sep 19 08:25:35 SunBlade-2000 krtld: [ID 472681 kern.notice] WARNING:
mod_load: cannot load module 'i915'
Sep 19 08:25:35 SunBlade-2000 krtld: [ID 749970 kern.notice] WARNING: i915:
Sep 19 08:25:35 SunBlade-2000 krtld: [ID 225575 kern.notice] unable to
resolve dependency, module 'misc/drm' not found
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/misc/sparcv9/drm: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice]
'find_first_zero_bit'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/misc/sparcv9/drm: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice]
'test_and_set_bit'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/misc/sparcv9/drm: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice]
'atomic_cmpset_int'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/misc/sparcv9/drm: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice] 'set_bit'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/misc/sparcv9/drm: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice] 'clear_bit'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 472681 kern.notice] WARNING:
mod_load: cannot load module 'drm'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice]
'drm_irq_uninstall'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice]
'agpmaster_ioctl'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice]
'drm_debug_flag'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice] 'drm_alloc'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice] 'drm_close'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice] 'drm_debug'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 826211 kern.notice] 'drm_error'
Sep 19 08:26:06 SunBlade-2000 krtld: [ID 819705 kern.notice]
/kernel/drv/sparcv9/i915: undefined symbol
Maybe soon ...
%m
p.s. Sorry for cross-posting. But at least I, as a SPARC user, find this
important enough. Further: It actually also covers enhancing DRI support
to the missing chipsets on x64/x86, because the framework of the ported
i915 can easily be cloned for the other devices.
More information about the indiana-discuss
mailing list