0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <core/subdev.h>
0023 #include <nvfw/hs.h>
0024
0025 const struct nvfw_hs_header *
0026 nvfw_hs_header(struct nvkm_subdev *subdev, const void *data)
0027 {
0028 const struct nvfw_hs_header *hdr = data;
0029 nvkm_debug(subdev, "hsHeader:\n");
0030 nvkm_debug(subdev, "\tsigDbgOffset : 0x%x\n", hdr->sig_dbg_offset);
0031 nvkm_debug(subdev, "\tsigDbgSize : 0x%x\n", hdr->sig_dbg_size);
0032 nvkm_debug(subdev, "\tsigProdOffset : 0x%x\n", hdr->sig_prod_offset);
0033 nvkm_debug(subdev, "\tsigProdSize : 0x%x\n", hdr->sig_prod_size);
0034 nvkm_debug(subdev, "\tpatchLoc : 0x%x\n", hdr->patch_loc);
0035 nvkm_debug(subdev, "\tpatchSig : 0x%x\n", hdr->patch_sig);
0036 nvkm_debug(subdev, "\thdrOffset : 0x%x\n", hdr->hdr_offset);
0037 nvkm_debug(subdev, "\thdrSize : 0x%x\n", hdr->hdr_size);
0038 return hdr;
0039 }
0040
0041 const struct nvfw_hs_load_header *
0042 nvfw_hs_load_header(struct nvkm_subdev *subdev, const void *data)
0043 {
0044 const struct nvfw_hs_load_header *hdr = data;
0045 int i;
0046
0047 nvkm_debug(subdev, "hsLoadHeader:\n");
0048 nvkm_debug(subdev, "\tnonSecCodeOff : 0x%x\n",
0049 hdr->non_sec_code_off);
0050 nvkm_debug(subdev, "\tnonSecCodeSize : 0x%x\n",
0051 hdr->non_sec_code_size);
0052 nvkm_debug(subdev, "\tdataDmaBase : 0x%x\n", hdr->data_dma_base);
0053 nvkm_debug(subdev, "\tdataSize : 0x%x\n", hdr->data_size);
0054 nvkm_debug(subdev, "\tnumApps : 0x%x\n", hdr->num_apps);
0055 for (i = 0; i < hdr->num_apps; i++) {
0056 nvkm_debug(subdev,
0057 "\tApp[%d] : offset 0x%x size 0x%x\n", i,
0058 hdr->apps[(i * 2) + 0], hdr->apps[(i * 2) + 1]);
0059 }
0060
0061 return hdr;
0062 }