From 5dd8165f1754e156a0f9fb16c7a6bfa90e99ed60 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Mon, 14 Sep 2026 06:43:11 -0400 Subject: VFIO device registration fix + IOMMUFD callbacks + VFIO ioctl handlers - Removed IOMMU group addition before vfio_register_emulated_iommu_dev() in nv_vgpu_mdev_create() - Added IOMMUFD callbacks (bind_iommufd, unbind_iommufd, attach_ioas, detach_ioas) using kernel's vfio_iommufd_emulated_* functions - Implemented VFIO ioctl handlers: GET_INFO, GET_REGION_INFO, GET_IRQ_INFO, SET_IRQS, MMAP - Added config space read/write handlers at offset 0x70000000000 - Mmap handler for config space, BAR0 (emulation shadow), BAR1-5 (physical VRAM/registers) - Interrupt handler for VFIO_DEVICE_SET_IRQS (DATA_EVENTFD, DATA_NONE, DATA_BOOL) - Added udev rules for vfio group permissions - Created stack_manager.sh unified tool - Fixed mdev remove crash with deferred cleanup in vfio_device_release callback - Kernel 6.8+ IOMMUFD compatibility - QEMU launches successfully with vGPU passthrough --- firmware/57X-GSP/570.144/memory_blocks.json | 371 ++++++++++++++++++++++++++++ 1 file changed, 371 insertions(+) create mode 100644 firmware/57X-GSP/570.144/memory_blocks.json (limited to 'firmware/57X-GSP/570.144/memory_blocks.json') diff --git a/firmware/57X-GSP/570.144/memory_blocks.json b/firmware/57X-GSP/570.144/memory_blocks.json new file mode 100644 index 0000000..1175dac --- /dev/null +++ b/firmware/57X-GSP/570.144/memory_blocks.json @@ -0,0 +1,371 @@ +[ + { + "name": "segment_0.1", + "start": "ram:04000000", + "end": "ram:04000fff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".ga100_data", + "start": "ram:04001000", + "end": "ram:0400216f", + "size": 4464, + "execute": false, + "read": true, + "write": true + }, + { + "name": "segment_0.3", + "start": "ram:04002170", + "end": "ram:04002fff", + "size": 3728, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".tu10x_data", + "start": "ram:04003000", + "end": "ram:0400416f", + "size": 4464, + "execute": false, + "read": true, + "write": true + }, + { + "name": "segment_0.5", + "start": "ram:04004170", + "end": "ram:04004fff", + "size": 3728, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".ga100_text", + "start": "ram:04005000", + "end": "ram:04006413", + "size": 5140, + "execute": true, + "read": true, + "write": false + }, + { + "name": "segment_0.7", + "start": "ram:04006414", + "end": "ram:04006fff", + "size": 3052, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".tu10x_text", + "start": "ram:04007000", + "end": "ram:04008413", + "size": 5140, + "execute": true, + "read": true, + "write": false + }, + { + "name": "segment_0.9", + "start": "ram:04008414", + "end": "ram:04008fff", + "size": 3052, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".bootstrap", + "start": "ram:04009000", + "end": "ram:04009073", + "size": 116, + "execute": true, + "read": true, + "write": false + }, + { + "name": "segment_0.11", + "start": "ram:04009074", + "end": "ram:04009fff", + "size": 3980, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".ga100_resident_text", + "start": "ram:0400a000", + "end": "ram:0400cfff", + "size": 12288, + "execute": true, + "read": true, + "write": true + }, + { + "name": ".ga100_resident_data", + "start": "ram:0400d000", + "end": "ram:0400dfff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".tu10x_resident_text", + "start": "ram:0400e000", + "end": "ram:04010fff", + "size": 12288, + "execute": true, + "read": true, + "write": true + }, + { + "name": ".tu10x_resident_data", + "start": "ram:04011000", + "end": "ram:04011fff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".acl", + "start": "ram:04012000", + "end": "ram:04012160", + "size": 353, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".manifest", + "start": "ram:04012168", + "end": "ram:04012fff", + "size": 3736, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".header", + "start": "ram:04013000", + "end": "ram:0401300f", + "size": 16, + "execute": false, + "read": true, + "write": false + }, + { + "name": ".memory_region_init_arguments", + "start": "ram:04013010", + "end": "ram:0401306f", + "size": 96, + "execute": false, + "read": true, + "write": false + }, + { + "name": ".section_task_init_elf_rodata_instance", + "start": "ram:04014000", + "end": "ram:04014fff", + "size": 4096, + "execute": false, + "read": true, + "write": false + }, + { + "name": ".section_task_init_elf_data_instance", + "start": "ram:04015000", + "end": "ram:04016fff", + "size": 8192, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_init_elf_paged_data_instance", + "start": "ram:04017000", + "end": "ram:04017fff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_init_elf_text_instance", + "start": "ram:04018000", + "end": "ram:0401cfff", + "size": 20480, + "execute": true, + "read": true, + "write": false + }, + { + "name": ".section_task_init_elf_paged_text_instance", + "start": "ram:0401d000", + "end": "ram:0401dfff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_elf_rodata_instance", + "start": "ram:0401e000", + "end": "ram:041dafff", + "size": 1822720, + "execute": false, + "read": true, + "write": false + }, + { + "name": ".section_task_rm_elf_data_instance", + "start": "ram:041db000", + "end": "ram:04c57fff", + "size": 10997760, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_elf_text_instance", + "start": "ram:04c58000", + "end": "ram:05b21fff", + "size": 15507456, + "execute": true, + "read": true, + "write": false + }, + { + "name": ".section_task_init_dmem_64kb_instance", + "start": "ram:05b22000", + "end": "ram:05b31fff", + "size": 65536, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_log_init_buffer_instance", + "start": "ram:05b32000", + "end": "ram:05b41fff", + "size": 65536, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_args_buffer_instance", + "start": "ram:05b42000", + "end": "ram:05b42fff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_msgq_work_areas_instance", + "start": "ram:05b43000", + "end": "ram:05b63fff", + "size": 135168, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_message_timing_buffer_instance", + "start": "ram:05b64000", + "end": "ram:05b64fff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_memcpy_buffer_instance", + "start": "ram:05b65000", + "end": "ram:05b65fff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_memset_buffer_instance", + "start": "ram:05b66000", + "end": "ram:05b66fff", + "size": 4096, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_log_rm_buffer_instance", + "start": "ram:05b67000", + "end": "ram:05ba6fff", + "size": 262144, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_init_stack_instance", + "start": "ram:05ba7000", + "end": "ram:05ba8fff", + "size": 8192, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".section_task_rm_stack_instance", + "start": "ram:05ba9000", + "end": "ram:05bb8fff", + "size": 65536, + "execute": false, + "read": true, + "write": true + }, + { + "name": "csr", + "start": "csreg:0000", + "end": "csreg:0fff.7", + "size": 32768, + "execute": false, + "read": true, + "write": true + }, + { + "name": ".comment", + "start": ".comment::00000000", + "end": ".comment::00000055", + "size": 86, + "execute": false, + "read": false, + "write": false + }, + { + "name": ".shstrtab", + "start": ".shstrtab::00000000", + "end": ".shstrtab::00000414", + "size": 1045, + "execute": false, + "read": false, + "write": false + }, + { + "name": "_elfSectionHeaders", + "start": "_elfSectionHeaders::00000000", + "end": "_elfSectionHeaders::000009bf", + "size": 2496, + "execute": false, + "read": false, + "write": false + } +] \ No newline at end of file -- cgit v1.2.3