Merge pull request #1885 from Alejandro12120/pm3generic-flash

Add a proper way to check if a FW is RDV4
This commit is contained in:
Iceman 2023-01-29 04:29:03 +01:00 committed by GitHub
commit da8adace6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 2 deletions

View file

@ -13,4 +13,4 @@ PLATFORM=PM3RDV4
#export PATH := /usr/lib64/ccache:/usr/lib/ccache:${PATH} #export PATH := /usr/lib64/ccache:/usr/lib/ccache:${PATH}
# To install with sudo: # To install with sudo:
INSTALLSUDO=sudo INSTALLSUDO=sudo

View file

@ -453,6 +453,12 @@ static void SendCapabilities(void) {
capabilities.baudrate = g_usart_baudrate; capabilities.baudrate = g_usart_baudrate;
#endif #endif
#ifdef RDV4
capabilities.is_rdv4 = true;
#else
capabilities.is_rdv4 = false;
#endif
#ifdef WITH_FLASH #ifdef WITH_FLASH
capabilities.compiled_with_flash = true; capabilities.compiled_with_flash = true;
capabilities.hw_available_flash = FlashInit(); capabilities.hw_available_flash = FlashInit();

View file

@ -1298,6 +1298,10 @@ void pm3_version(bool verbose, bool oneliner) {
PrintAndLogEx(NORMAL, " FPC USART for BT add-on... %s", IfPm3FpcUsartHost() ? _GREEN_("present") : _YELLOW_("absent")); PrintAndLogEx(NORMAL, " FPC USART for BT add-on... %s", IfPm3FpcUsartHost() ? _GREEN_("present") : _YELLOW_("absent"));
} else { } else {
PrintAndLogEx(NORMAL, " firmware.................. %s", _YELLOW_("PM3 GENERIC")); PrintAndLogEx(NORMAL, " firmware.................. %s", _YELLOW_("PM3 GENERIC"));
if (IfPm3Flash()) {
PrintAndLogEx(NORMAL, " external flash............ %s", _GREEN_("present"));
}
if (IfPm3FpcUsartHost()) { if (IfPm3FpcUsartHost()) {
PrintAndLogEx(NORMAL, " FPC USART for BT add-on... %s", _GREEN_("present")); PrintAndLogEx(NORMAL, " FPC USART for BT add-on... %s", _GREEN_("present"));
} }

View file

@ -38,7 +38,7 @@ bool IfPm3Present(void) {
bool IfPm3Rdv4Fw(void) { bool IfPm3Rdv4Fw(void) {
if (!IfPm3Present()) if (!IfPm3Present())
return false; return false;
return (g_pm3_capabilities.compiled_with_flash) || (g_pm3_capabilities.compiled_with_smartcard); return (g_pm3_capabilities.is_rdv4);
} }
bool IfPm3Flash(void) { bool IfPm3Flash(void) {

View file

@ -95,6 +95,7 @@ ifeq ($(PLATFORM),PM3RDV4)
PLATFORM_DEFS = -DWITH_SMARTCARD -DWITH_FLASH -DRDV4 PLATFORM_DEFS = -DWITH_SMARTCARD -DWITH_FLASH -DRDV4
PLTNAME = Proxmark3 RDV4 PLTNAME = Proxmark3 RDV4
PLATFORM_FPGA = xc2s30 PLATFORM_FPGA = xc2s30
RDV4 = yes
else ifeq ($(PLATFORM),PM3OTHER) else ifeq ($(PLATFORM),PM3OTHER)
$(warning PLATFORM=PM3OTHER is deprecated, please use PLATFORM=PM3GENERIC) $(warning PLATFORM=PM3OTHER is deprecated, please use PLATFORM=PM3GENERIC)
PLTNAME = Proxmark3 generic target PLTNAME = Proxmark3 generic target

View file

@ -205,6 +205,7 @@ typedef struct {
// rdv4 // rdv4
bool hw_available_flash : 1; bool hw_available_flash : 1;
bool hw_available_smartcard : 1; bool hw_available_smartcard : 1;
bool is_rdv4 : 1;
} PACKED capabilities_t; } PACKED capabilities_t;
#define CAPABILITIES_VERSION 6 #define CAPABILITIES_VERSION 6
extern capabilities_t g_pm3_capabilities; extern capabilities_t g_pm3_capabilities;