[oi-dev] [OpenIndiana-discuss] Sun/Oracle China's DRM//KMS Sol11.2 port backported to function on old-style gfxp_private from pre-2010 era but still immediatedly PANICS

Мартин Бохниг opensxce at mail.ru
Sat Dec 12 13:25:00 UTC 2015


root at solaris:~# grep -n i915 /etc/*
/etc/driver_aliases:8:i915 "pci8086,102"
/etc/driver_aliases:9:i915 "pci8086,106"
/etc/driver_aliases:10:i915 "pci8086,10a"
/etc/driver_aliases:11:i915 "pci8086,112"
/etc/driver_aliases:12:i915 "pci8086,116"
/etc/driver_aliases:13:i915 "pci8086,122"
/etc/driver_aliases:14:i915 "pci8086,126"
/etc/driver_aliases:15:i915 "pci8086,2562"
/etc/driver_aliases:16:i915 "pci8086,2572"
/etc/driver_aliases:17:i915 "pci8086,2582"
/etc/driver_aliases:18:i915 "pci8086,2592"
/etc/driver_aliases:19:i915 "pci8086,2772"
/etc/driver_aliases:20:i915 "pci8086,27a2"
/etc/driver_aliases:21:i915 "pci8086,27ae"
/etc/driver_aliases:22:i915 "pci8086,2972"
/etc/driver_aliases:23:i915 "pci8086,2982"
/etc/driver_aliases:24:i915 "pci8086,2992"
/etc/driver_aliases:25:i915 "pci8086,29a2"
/etc/driver_aliases:26:i915 "pci8086,29b2"
/etc/driver_aliases:27:i915 "pci8086,29c2"
/etc/driver_aliases:28:i915 "pci8086,29d2"
/etc/driver_aliases:29:i915 "pci8086,2a02"
/etc/driver_aliases:30:i915 "pci8086,2a12"
/etc/driver_aliases:31:i915 "pci8086,2a42"
/etc/driver_aliases:32:i915 "pci8086,2e02.8086.2e02"
/etc/driver_aliases:33:i915 "pci8086,2e12"
/etc/driver_aliases:34:i915 "pci8086,2e22"
/etc/driver_aliases:35:i915 "pci8086,2e32"
/etc/driver_aliases:36:i915 "pci8086,2e42"
/etc/driver_aliases:37:i915 "pci8086,42"
/etc/driver_aliases:38:i915 "pci8086,46"
/etc/driver_aliases:39:i915 "pci8086,a001"
/etc/driver_aliases:40:i915 "pci8086,a011"
/etc/minor_perm:8:i915:* 0644 root sys
/etc/name_to_major:7:i915 2
/etc/path_to_inst:22:"/pci at 0,0/display at 2" 0 "i915"
/etc/path_to_inst.old:22:"/pci at 0,0/display at 2" 0 "i915"
root at solaris:~# grep -n agp /etc/*
/etc/driver_aliases:793:agptarget "pci1022,7454"
/etc/driver_aliases:794:agptarget "pci8086,100"
/etc/driver_aliases:795:agptarget "pci8086,104"
/etc/driver_aliases:796:agptarget "pci8086,108"
/etc/driver_aliases:797:agptarget "pci8086,1130"
/etc/driver_aliases:798:agptarget "pci8086,2560"
/etc/driver_aliases:799:agptarget "pci8086,2570"
/etc/driver_aliases:800:agptarget "pci8086,2580"
/etc/driver_aliases:801:agptarget "pci8086,2590"
/etc/driver_aliases:802:agptarget "pci8086,2770"
/etc/driver_aliases:803:agptarget "pci8086,27a0"
/etc/driver_aliases:804:agptarget "pci8086,27ac"
/etc/driver_aliases:805:agptarget "pci8086,2970"
/etc/driver_aliases:806:agptarget "pci8086,2980"
/etc/driver_aliases:807:agptarget "pci8086,2990"
/etc/driver_aliases:808:agptarget "pci8086,29a0"
/etc/driver_aliases:809:agptarget "pci8086,29b0"
/etc/driver_aliases:810:agptarget "pci8086,29c0"
/etc/driver_aliases:811:agptarget "pci8086,29d0"
/etc/driver_aliases:812:agptarget "pci8086,2a00"
/etc/driver_aliases:813:agptarget "pci8086,2a10"
/etc/driver_aliases:814:agptarget "pci8086,2a40"
/etc/driver_aliases:815:agptarget "pci8086,2e00"
/etc/driver_aliases:816:agptarget "pci8086,2e10"
/etc/driver_aliases:817:agptarget "pci8086,2e20"
/etc/driver_aliases:818:agptarget "pci8086,2e30"
/etc/driver_aliases:819:agptarget "pci8086,2e40"
/etc/driver_aliases:820:agptarget "pci8086,3575"
/etc/driver_aliases:821:agptarget "pci8086,3580"
/etc/driver_aliases:822:agptarget "pci8086,40"
/etc/driver_aliases:823:agptarget "pci8086,44"
/etc/driver_aliases:824:agptarget "pci8086,62"
/etc/driver_aliases:825:agptarget "pci8086,6a"
/etc/driver_aliases:826:agptarget "pci8086,7120"
/etc/driver_aliases:827:agptarget "pci8086,7122"
/etc/driver_aliases:828:agptarget "pci8086,7124"
/etc/minor_perm:72:agptarget:* 0644 root sys
/etc/minor_perm:73:agpgart:* 0644 root sys
/etc/name_to_major:67:agptarget 62
/etc/name_to_major:68:agpgart 63
/etc/path_to_inst:6:"/agpgart" 0 "agpgart"
/etc/path_to_inst:36:"/pci at 0,0/pci8086,100 at 0" 0 "agptarget"
/etc/path_to_inst.old:6:"/agpgart" 0 "agpgart"
/etc/path_to_inst.old:36:"/pci at 0,0/pci8086,100 at 0" 0 "agptarget"
root at solaris:~# uname -a
SunOS solaris 5.11 11.0 i86pc i386 i86pc
root at solaris:~# cat /etc/release
                           Oracle Solaris 11 11/11 X86
  Copyright (c) 1983, 2011, Oracle and/or its affiliates.  All rights reserved.
                            Assembled 18 October 2011
root at solaris:~# 




and YES, I recalled everything correctly, that's at least how it was on Sol11.0 (which I still used as reference back in 2013) :


root at solaris:/usr/include/sys/agp# grep -n SANDY *
agpdefs.h:94:#define	INTEL_BR_SANDYBRIDGE		0x01008086
agpdefs.h:95:#define	INTEL_BR_SANDYBRIDGE_M		0x01048086
agpdefs.h:96:#define	INTEL_BR_SANDYBRIDGE_S		0x01088086
agpdefs.h:169:#define	INTEL_IGD_SANDYBRIDGE_GT1	0x01028086
agpdefs.h:170:#define	INTEL_IGD_SANDYBRIDGE_GT2	0x01128086
agpdefs.h:171:#define	INTEL_IGD_SANDYBRIDGE_GT2_PLUS	0x01228086
agpdefs.h:172:#define	INTEL_IGD_SANDYBRIDGE_M_GT1	0x01068086
agpdefs.h:173:#define	INTEL_IGD_SANDYBRIDGE_M_GT2	0x01168086
agpdefs.h:174:#define	INTEL_IGD_SANDYBRIDGE_M_GT2_PLUS	0x01268086
agpdefs.h:175:#define	INTEL_IGD_SANDYBRIDGE_S		0x010A8086
agpdefs.h:204:#define	IS_SNB(device)		((device == INTEL_IGD_SANDYBRIDGE_GT1) || \
agpdefs.h:205:	(device == INTEL_IGD_SANDYBRIDGE_GT2) ||        \
agpdefs.h:206:	(device == INTEL_IGD_SANDYBRIDGE_GT2_PLUS) ||   \
agpdefs.h:207:	(device == INTEL_IGD_SANDYBRIDGE_M_GT1) ||      \
agpdefs.h:208:	(device == INTEL_IGD_SANDYBRIDGE_M_GT2) ||      \
agpdefs.h:209:	(device == INTEL_IGD_SANDYBRIDGE_M_GT2_PLUS) || \
agpdefs.h:210:	(device == INTEL_IGD_SANDYBRIDGE_S))
root at solaris:/usr/include/sys/agp# grep -n IVY *
root at solaris:/usr/include/sys/agp# 


As you see, at least back then, agp stuff was not only used for agp.
And Sandy related pciids (such as 100, 104, 108) did appear in agp headers and agptarget was attached to them.
As I don't have Sun's code other than the header files in your public releases and the pci bindings in your ips manifests, how is it may fault that I wasn't fully aware, that Sun changed everything again since 20011?


Nevertheless, unfortunately I doubt that these new findings help in getting the 2013 SunDRM/GEM/KMS port to function on 11.0 or earlier.
Because one of the many things I tested was this:

A) Special test-BE under Sol11.0

B) mounted that BEand renamed /kernel, /platform, /lib and /sbin, then replaced it with copies of Sol11.1's counterparts (without touching /etc or any device aliases)

C) rebooted into that new BE (grub 0.97, Sol11.0 BE) and Sol11.0's /etc, but with Sol11.1's kernel.
And voila: X11 starts fine via KMS.

D) Repeated that while earlier having also replaced all agp modules/submodules.
Still works.


The reason for the panic are somewhere in what Sun added to gfxp between 11.0 and 11.1
That's what I found by the law of narrowing down through exclusion.



More information about the oi-dev mailing list