Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/linux-sunxi/sunxi-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/fel.c
diff options
context:
space:
mode:
authorBernhard Nortmann <bernhard.nortmann@web.de>2016-11-20 23:29:11 +0300
committerBernhard Nortmann <bernhard.nortmann@web.de>2016-11-29 16:45:36 +0300
commitdfc93db131830fa50ebdd1f102c0f74b4cad1380 (patch)
treed65d8e11e57badc69d6f5af33bc58a3a79cc7869 /fel.c
parentfeccad1391a12d29b36ee97e0bb0ebd50328d7b5 (diff)
fel_lib: Add a human-readable SoC name field to the device handle
open_fel_device() will automatically provide this member field, based on the SoC ID from FEL/BROM version data. The field will either receive a human-readable identifier, or the ID in 4-digit hexadecimal representation (for unknown SoCs). Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Diffstat (limited to 'fel.c')
-rw-r--r--fel.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/fel.c b/fel.c
index 8877066..63d6745 100644
--- a/fel.c
+++ b/fel.c
@@ -86,22 +86,10 @@ int get_image_type(const uint8_t *buf, size_t len)
void aw_fel_print_version(feldev_handle *dev)
{
struct aw_fel_version buf = dev->soc_version;
+ const char *soc_name = dev->soc_name;
- const char *soc_name="unknown";
- switch (buf.soc_id) {
- case 0x1623: soc_name="A10"; break;
- case 0x1625: soc_name="A13"; break;
- case 0x1633: soc_name="A31"; break;
- case 0x1651: soc_name="A20"; break;
- case 0x1650: soc_name="A23"; break;
- case 0x1689: soc_name="A64"; break;
- case 0x1639: soc_name="A80"; break;
- case 0x1667: soc_name="A33"; break;
- case 0x1673: soc_name="A83T"; break;
- case 0x1680: soc_name="H3"; break;
- case 0x1701: soc_name="R40"; break;
- case 0x1718: soc_name="H5"; break;
- }
+ if (soc_name[0] == '0') /* hexadecimal ID -> unknown SoC */
+ soc_name = "unknown";
printf("%.8s soc=%08x(%s) %08x ver=%04x %02x %02x scratchpad=%08x %08x %08x\n",
buf.signature, buf.soc_id, soc_name, buf.unknown_0a,
@@ -314,8 +302,8 @@ void aw_fel_print_sid(feldev_handle *dev)
for (i = 0; i <= 3; i++)
printf("%08x%c", key[i], i < 3 ? ':' : '\n');
} else {
- printf("SID registers for your SoC (id=%04X) are unknown or inaccessible.\n",
- soc_info->soc_id);
+ printf("SID registers for your SoC (%s) are unknown or inaccessible.\n",
+ dev->soc_name);
}
}
@@ -894,8 +882,8 @@ void aw_rmr_request(feldev_handle *dev, uint32_t entry_point, bool aarch64)
soc_info_t *soc_info = dev->soc_info;
if (!soc_info->rvbar_reg) {
fprintf(stderr, "ERROR: Can't issue RMR request!\n"
- "RVBAR is not supported or unknown for your SoC (id=%04X).\n",
- soc_info->soc_id);
+ "RVBAR is not supported or unknown for your SoC (%s).\n",
+ dev->soc_name);
return;
}