From a2cc7546d88bf9c4071f0f56f6c43d59654fc212 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Sun, 25 Aug 2024 11:37:30 -0400 Subject: Add DeviceData to bootloaders same vein as bootdata but for devices that need to pass info back to a running firmware Change-Id: I0cdcdc0475804dfbbee415ab487104ae8fc8ac69 --- apps/debug_menu.c | 36 ++++++++++++++++++++++++++++++++++++ apps/main.c | 11 +++++++++++ 2 files changed, 47 insertions(+) (limited to 'apps') diff --git a/apps/debug_menu.c b/apps/debug_menu.c index a101097004..8e16ff1c21 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -124,6 +124,10 @@ #include "talk.h" +#if defined(HAVE_DEVICEDATA)// && !defined(SIMULATOR) +#include "devicedata.h" +#endif + #if defined(HAVE_BOOTDATA) && !defined(SIMULATOR) #include "bootdata.h" #include "multiboot.h" @@ -2625,6 +2629,33 @@ static bool dbg_boot_data(void) } #endif /* defined(HAVE_BOOTDATA) && !defined(SIMULATOR) */ +#if defined(HAVE_DEVICEDATA)// && !defined(SIMULATOR) +static bool dbg_device_data(void) +{ + struct simplelist_info info; + info.scroll_all = true; + simplelist_info_init(&info, "Device data", 1, NULL); + simplelist_set_line_count(0); + + simplelist_addline("Device data"); + +#if defined(EROS_QN) + simplelist_addline("Lcd Version: %d", (int)device_data.lcd_version); +#endif + + simplelist_addline("Device data RAW:"); + for (size_t i = 0; i < device_data.length; i += 4) + { + simplelist_addline("%02x: %02x %02x %02x %02x", i, + device_data.payload[i + 0], device_data.payload[i + 1], + device_data.payload[i + 2], device_data.payload[i + 3]); + } + + return simplelist_show_list(&info); +} +#endif /* defined(HAVE_DEVICEDATA)*/ + + #if defined(IPOD_6G) && !defined(SIMULATOR) #define SYSCFG_MAX_ENTRIES 9 // 9 on iPod Classic/6G @@ -2823,6 +2854,11 @@ static const struct { #if defined(HAVE_BOOTDATA) && !defined(SIMULATOR) {"Boot data", dbg_boot_data }, #endif + +#if defined(HAVE_DEVICEDATA)// && !defined(SIMULATOR) + {"Device data", dbg_device_data }, +#endif + #if defined(IPOD_6G) && !defined(SIMULATOR) {"View SysCfg", dbg_syscfg }, #endif diff --git a/apps/main.c b/apps/main.c index 4c7689ce8c..1e8e872296 100644 --- a/apps/main.c +++ b/apps/main.c @@ -78,6 +78,10 @@ #include "bootchart.h" #include "logdiskf.h" #include "bootdata.h" +#if defined(HAVE_DEVICEDATA) +#include "devicedata.h" +#endif + #if (CONFIG_PLATFORM & PLATFORM_ANDROID) #include "notification.h" #endif @@ -176,6 +180,9 @@ int main(void) } list_init(); tree_init(); +#if defined(HAVE_DEVICEDATA) && !defined(BOOTLOADER) /* SIMULATOR */ + verify_device_data(); +#endif /* Keep the order of this 3 * Must be done before any code uses the multi-screen API */ #ifdef HAVE_USBSTACK @@ -459,6 +466,10 @@ static void init(void) verify_boot_data(); #endif +#if defined(HAVE_DEVICEDATA) && !defined(BOOTLOADER) + verify_device_data(); +#endif + /* early early early! */ filesystem_init(); -- cgit v1.2.3