summaryrefslogtreecommitdiffstats
path: root/kernel/bar_init.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-08 17:29:23 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-08 17:29:23 -0500
commit00075462a5cf5e7a706d840cf9b6981795902f98 (patch)
treecf15082d5f94292ba4b12967ae02be62c4ab6109 /kernel/bar_init.c
parentba433a148b519124fbe7060a10854de7f7e1f4d0 (diff)
downloadopen-iov-00075462a5cf5e7a706d840cf9b6981795902f98.tar.gz
open-iov-00075462a5cf5e7a706d840cf9b6981795902f98.zip
vgsp-disp: resolve the display instance table in the guest BAR2 shadow
The guest kernel RM builds the 64 KiB display instance block in FB but writes it through the guest's BAR2 virtual aperture (memdescMapInternal -> BAR2 with RMCFG_FEATURE_PLATFORM_GSP=0), while control 0x20800a49 hands only the FB PA to the display engine. The hash table therefore never appears in the FB shadow or guest RAM, which is why the notifier context-DMA handles 0x10013/0x10075 could not be resolved and FINISHED was never written (r1633). - add a BAR2-shadow hash/object-entry search (8-byte entry walk, 4 KiB block-base candidates, target/limit validation) to the resolution chain after FB/shadow/RAM; - fix the hash instance field mask to 11 bits (0x7ff); - carry the object target and route the notifier status through the FB shadow for target 1, guest PA for sysmem targets 2/3; - SET_NOTIFIER_CONTROL.OFFSET is in 16-byte units (was scaled by 4).
Diffstat (limited to 'kernel/bar_init.c')
0 files changed, 0 insertions, 0 deletions