gpu: nvgpu: Retrieve VBIOS version from dGPU

Retrieve VBIOS version from biosdata VBIOS structure.

Bug 1811880

Change-Id: I24f4114ce7c8925bde4b195888da62454707b8e6
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/1218062
(cherry picked from commit fb23e9522bc268fcf0d71cc7f2ae9a0bc6cfda23)
Reviewed-on: http://git-master/r/1234089
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
This commit is contained in:
Terje Bergstrom
2016-09-09 10:35:05 -07:00
committed by mobile promotions
parent 0568f26b8a
commit 18c7268cbb
2 changed files with 30 additions and 1 deletions

View File

@@ -63,12 +63,24 @@ struct bit {
u8 header_checksum;
} __packed;
#define TOKEN_ID_BIOSDATA 0x42
#define TOKEN_ID_NVINIT_PTRS 0x49
#define TOKEN_ID_FALCON_DATA 0x70
#define TOKEN_ID_PERF_PTRS 0x50
#define TOKEN_ID_CLOCK_PTRS 0x43
#define TOKEN_ID_VIRT_PTRS 0x56
struct biosdata {
u32 version;
u8 oem_version;
u8 checksum;
u16 int15callbackspost;
u16 int16callbackssystem;
u16 boardid;
u16 framecount;
u8 biosmoddate[8];
} __packed;
struct nvinit_ptrs {
u16 initscript_table_ptr;
u16 macro_index_table_ptr;
@@ -252,6 +264,19 @@ static int gm206_bios_parse_rom(struct gk20a *g)
return 0;
}
static void gm206_bios_parse_biosdata(struct gk20a *g, int offset)
{
struct biosdata biosdata;
memcpy(&biosdata, &g->bios.data[offset], sizeof(biosdata));
gk20a_dbg_fn("bios version %x, oem version %x",
biosdata.version,
biosdata.oem_version);
g->gpu_characteristics.vbios_version = biosdata.version;
g->gpu_characteristics.vbios_oem_version = biosdata.oem_version;
}
static void gm206_bios_parse_nvinit_ptrs(struct gk20a *g, int offset)
{
struct nvinit_ptrs nvinit_ptrs;
@@ -506,6 +531,9 @@ static void gm206_bios_parse_bit(struct gk20a *g, int offset)
bit_token.data_size, bit_token.data_version);
switch (bit_token.token_id) {
case TOKEN_ID_BIOSDATA:
gm206_bios_parse_biosdata(g, bit_token.data_ptr);
break;
case TOKEN_ID_NVINIT_PTRS:
gm206_bios_parse_nvinit_ptrs(g, bit_token.data_ptr);
break;

View File

@@ -203,7 +203,8 @@ struct nvgpu_gpu_characteristics {
__u16 pci_subsystem_vendor_id, pci_subsystem_device_id;
__u16 pci_class;
__u8 pci_revision;
__u8 reserved2[5];
__u8 vbios_oem_version;
__u32 vbios_version;
/* Notes:
- This struct can be safely appended with new fields. However, always