diff options
Diffstat (limited to 'kernel/firmware_analyzer.c')
| -rw-r--r-- | kernel/firmware_analyzer.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/kernel/firmware_analyzer.c b/kernel/firmware_analyzer.c index 2d8d84d..9873181 100644 --- a/kernel/firmware_analyzer.c +++ b/kernel/firmware_analyzer.c @@ -3,6 +3,8 @@ * Auto-discovers RPC handler addresses, struct layouts, and firmware signatures */ +#define pr_fmt(fmt) "vgsp-fw-analyzer: " fmt + #include <linux/module.h> #include <linux/kernel.h> #include <linux/slab.h> @@ -116,19 +118,19 @@ static int analyze_rpc_dispatcher(const u8 *fw, size_t fw_len, struct fw_address ret = find_pattern(fw, fw_len, pattern_rpc_dispatch, sizeof(pattern_rpc_dispatch), &offset); if (ret == 0) { addrs->rpc_dispatch_primary = GSP_FW_BASE + offset; - pr_info("FW_ANALYZER: Found RPC dispatcher at 0x%llx\n", addrs->rpc_dispatch_primary); + pr_info("Found RPC dispatcher at 0x%llx\n", addrs->rpc_dispatch_primary); } ret = find_pattern(fw, fw_len, pattern_jump_table, sizeof(pattern_jump_table), &offset); if (ret == 0) { addrs->rpc_jump_table = GSP_FW_BASE + offset; - pr_info("FW_ANALYZER: Found RPC jump table at 0x%llx\n", addrs->rpc_jump_table); + pr_info("Found RPC jump table at 0x%llx\n", addrs->rpc_jump_table); } ret = find_pattern(fw, fw_len, pattern_alloc, sizeof(pattern_alloc), &offset); if (ret == 0) { addrs->alloc_main = GSP_FW_BASE + offset; - pr_info("FW_ANALYZER: Found ALLOC handler at 0x%llx\n", addrs->alloc_main); + pr_info("Found ALLOC handler at 0x%llx\n", addrs->alloc_main); } return 0; @@ -153,8 +155,8 @@ int fw_analyzer_analyze(const u8 *fw_data, size_t fw_len, struct fw_analysis_res if (ret) return ret; - pr_info("FW_ANALYZER: Firmware size=%zu, CRC32=0x%08x\n", fw_len, result->crc32); - pr_info("FW_ANALYZER: SHA256: %*phN\n", 32, result->sha256); + pr_info("Firmware size=%zu, CRC32=0x%08x\n", fw_len, result->crc32); + pr_info("SHA256: %*phN\n", 32, result->sha256); /* Match against known signatures */ for (size_t i = 0; i < ARRAY_SIZE(known_signatures); i++) { @@ -163,13 +165,13 @@ int fw_analyzer_analyze(const u8 *fw_data, size_t fw_len, struct fw_analysis_res strncpy(result->version, known_signatures[i].version, sizeof(result->version) - 1); result->addresses = known_signatures[i].addrs; result->matched = true; - pr_info("FW_ANALYZER: Matched known firmware version: %s\n", result->version); + pr_info("Matched known firmware version: %s\n", result->version); return 0; } } /* Auto-discover addresses if no match */ - pr_info("FW_ANALYZER: No known signature match, attempting auto-discovery\n"); + pr_info("No known signature match, attempting auto-discovery\n"); ret = analyze_rpc_dispatcher(fw_data, fw_len, &result->addresses); if (ret == 0) { result->matched = false; @@ -186,7 +188,7 @@ int fw_analyzer_load_and_analyze(const char *fw_path, struct fw_analysis_result ret = request_firmware(&fw, fw_path, NULL); if (ret) { - pr_err("FW_ANALYZER: Failed to load firmware %s: %d\n", fw_path, ret); + pr_err("Failed to load firmware %s: %d\n", fw_path, ret); return ret; } |
