[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
Thu Dec 17 15:02:31 UTC 2015


 Hi all (here).


No, we won't need more of this non-coming "help".

I made some progress with finding out how the essential offsets are handled, with data structures of so called cookies (no, Nuland and other mass-slaughterers and war-criminals are not invited).


Here only a quick grep:


i915/src/i915_dma.c:1184:static unsigned int i915_vga_set_decode(void *cookie, bool state)
i915/src/i915_dma.c:1186:       struct drm_device *dev = cookie;
i915/src/i915_gem_gtt.c:138:    ddi_dma_cookie_t cookie;
i915/src/i915_gem_gtt.c:139:    uint_t cookie_cnt;
i915/src/i915_gem_gtt.c:141:    uint32_t paddr, cookie_end;
i915/src/i915_gem_gtt.c:161:        DDI_DMA_DONTWAIT, NULL, &cookie, &cookie_cnt)
i915/src/i915_gem_gtt.c:177:            for (paddr = cookie.dmac_address,
i915/src/i915_gem_gtt.c:178:                cookie_end = cookie.dmac_address + cookie.dmac_size;
i915/src/i915_gem_gtt.c:179:                paddr < cookie_end;
i915/src/i915_gem_gtt.c:185:            if (i >= cookie_cnt)
i915/src/i915_gem_gtt.c:187:            ddi_dma_nextcookie(ppgtt->dma_hdl, &cookie);
i915/src/i915_gem.c:1110:       struct ddi_umem_cookie *umem_cookie = obj->base.maplist.map->umem_cookie;
i915/src/i915_gem.c:1121:       umem_cookie->cvaddr = obj->base.gtt_map_kaddr;
i915/src/i915_gem.c:2455: * This function walks the fence regs looking for a free one for @obj,
i915/src/i915_gem.c__ORIG:1109: struct ddi_umem_cookie *umem_cookie = obj->base.maplist.map->umem_cookie;
i915/src/i915_gem.c__ORIG:1120: umem_cookie->cvaddr = obj->base.gtt_map_kaddr;
i915/src/i915_gem.c__ORIG:2429: * This function walks the fence regs looking for a free one for @obj,
i915/src/i915_irq.c:2964:       /* We detect FlipDone by looking for the change in PendingFlip from '1'
i915/src/i915_irq.c:3139:       /* We detect FlipDone by looking for the change in PendingFlip from '1'
i915/src/intel_bios.c:55:       /* walk the sections looking for section_id */
i915/src/intel_bios.c:710:      /* Scour memory looking for the VBT signature */
i915/src/intel_dp.c:109: * Thus the strange-looking division by 10 in intel_dp_link_required, to
Binary file mdb/modules/i915.so matches
sys/drm/drm_sun_pci.h:53:       ddi_iblock_cookie_t intr_block;
sys/drm/drm_sunmod.h:109:static int drm_sun_devmap(dev_t, devmap_cookie_t,
sys/drm/drmP.h:551:     ddi_umem_cookie_t umem_cookie;   /**< For SAREA alloc and free */
sys/drm/drmP.h:585:     devmap_cookie_t dhp;
sys/drm/drmP.h:647:     struct gfxp_pmem_cookie mempool_cookie;
sys/drm/drmP.h:729:     ddi_dma_cookie_t cookie;
sys/drm/drmP.h:730:     uint_t cookie_num;
sys/drm/drmP.h:742:     ddi_umem_cookie_t *umem_cookie;
sys/drm/drmP.h:1076: * the interrupt priority. Interrupt cookie in drm_device



That's a key aspect of getting it to work.
And I noted that even on old snv_147 aka Illumos's gfx_private we do already have:

 nm /platform/i86xpv/kernel/misc/amd64/gfx_private|grep ookie
00000000000009c0 T gfxp_umem_cookie_destroy
0000000000000970 T gfxp_umem_cookie_init


So, at least once step ahead.



%martin



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openindiana.org/pipermail/oi-dev/attachments/20151217/2ef45cdf/attachment-0005.html>


More information about the oi-dev mailing list