diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-08 17:29:23 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-08 17:29:23 -0500 |
| commit | 00075462a5cf5e7a706d840cf9b6981795902f98 (patch) | |
| tree | cf15082d5f94292ba4b12967ae02be62c4ab6109 /kernel/bar_init.c | |
| parent | ba433a148b519124fbe7060a10854de7f7e1f4d0 (diff) | |
| download | open-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
