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.




Reply via email to