This structure is returned by the lv1_gpu_context_allocate
struct gpu_driver_info {
u32 version_driver;
u32 version_gpu;
u32 memory_size;
u32 hardware_channel;
u32 nvcore_frequency;
u32 memory_frequency;
u32 reserved[1063];
struct [[ps3:hypervisor:display_head]] display_head[8];
struct [[ps3:hypervisor:gpu_irq]] irq;
};
| Member | Description |
|---|---|
| version_driver | The kernel checks this for the value 0×00000211 |
| version_gpu | Unused by the Kernel, presumably a GPU version number |
| memory_size | Unused by the Kernel, presumably the size of memory attached to the GPU directly |
| hardware_channel | Unused by the Kernel, unknown. |
| nvcore_frequency | Unused by the Kernel, presumably the NV Core frequency in Hz |
| memory_frequency | unused by the Kernel, presumably the Frequency of the memory attached to the GPU directly in Hz |
| reserved[1063] | Contents unknown |
| display_head[8] | Only display_head[1] is used by the Kernel. See display_head |
| irq | See gpu_irq |
This structure is on the other side of the Hypervisor and the Kernel uses ioremap to get access to the address space of this structure. Also note, the Kernel maps 128KB but this structure is much smaller than 128KB, so what else is stored here, if anything?