From ea9938bdc08787a2ca547bb74d580fdf20cef5b2 Mon Sep 17 00:00:00 2001 From: Georg Date: Wed, 18 Jan 2017 10:01:02 +0100 Subject: [PATCH] fixed MifareClassic 1k 7B init -- thanks to Niels van Dijkhuizen for submitting the patch --- .../Application/MifareClassic.c | 9 ++++++ .../Application/MifareClassic.h | 1 + Firmware/Chameleon-Mini/Configuration.c | 30 +++++++++---------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/Firmware/Chameleon-Mini/Application/MifareClassic.c b/Firmware/Chameleon-Mini/Application/MifareClassic.c index 63fccac..ed6cef6 100644 --- a/Firmware/Chameleon-Mini/Application/MifareClassic.c +++ b/Firmware/Chameleon-Mini/Application/MifareClassic.c @@ -143,6 +143,15 @@ void MifareClassicAppInit1K(void) FromHalt = false; } +void MifareClassicAppInit1K7B(void) +{ + State = STATE_IDLE; + CardATQAValue = MFCLASSIC_1K_7B_ATQA_VALUE; + CardSAKValue = MFCLASSIC_1K_SAK_VALUE; + FromHalt = false; +} + + void MifareClassicAppInit4K(void) { State = STATE_IDLE; diff --git a/Firmware/Chameleon-Mini/Application/MifareClassic.h b/Firmware/Chameleon-Mini/Application/MifareClassic.h index d8beabc..618ae64 100644 --- a/Firmware/Chameleon-Mini/Application/MifareClassic.h +++ b/Firmware/Chameleon-Mini/Application/MifareClassic.h @@ -16,6 +16,7 @@ #define MIFARE_CLASSIC_4K_MEM_SIZE 4096 void MifareClassicAppInit1K(void); +void MifareClassicAppInit1K7B(void); void MifareClassicAppInit4K(void); void MifareClassicAppReset(void); void MifareClassicAppTask(void); diff --git a/Firmware/Chameleon-Mini/Configuration.c b/Firmware/Chameleon-Mini/Configuration.c index de0ed18..d7cad61 100644 --- a/Firmware/Chameleon-Mini/Configuration.c +++ b/Firmware/Chameleon-Mini/Configuration.c @@ -104,21 +104,21 @@ static const PROGMEM ConfigurationType ConfigurationTable[] = { }, #endif #ifdef CONFIG_MF_CLASSIC_1K_7B_SUPPORT - [CONFIG_MF_CLASSIC_1K_7B] = { - .CodecInitFunc = ISO14443ACodecInit, - .CodecDeInitFunc = ISO14443ACodecDeInit, - .CodecTaskFunc = ISO14443ACodecTask, - .ApplicationInitFunc = MifareClassicAppInit1K, - .ApplicationResetFunc = MifareClassicAppReset, - .ApplicationTaskFunc = MifareClassicAppTask, - .ApplicationTickFunc = ApplicationTickDummy, - .ApplicationProcessFunc = MifareClassicAppProcess, - .ApplicationGetUidFunc = MifareClassicGetUid, - .ApplicationSetUidFunc = MifareClassicSetUid, - .UidSize = ISO14443A_UID_SIZE_DOUBLE, - .MemorySize = MIFARE_CLASSIC_1K_MEM_SIZE, - .ReadOnly = false - }, + [CONFIG_MF_CLASSIC_1K_7B] = { + .CodecInitFunc = ISO14443ACodecInit, + .CodecDeInitFunc = ISO14443ACodecDeInit, + .CodecTaskFunc = ISO14443ACodecTask, + .ApplicationInitFunc = MifareClassicAppInit1K7B, + .ApplicationResetFunc = MifareClassicAppReset, + .ApplicationTaskFunc = MifareClassicAppTask, + .ApplicationTickFunc = ApplicationTickDummy, + .ApplicationProcessFunc = MifareClassicAppProcess, + .ApplicationGetUidFunc = MifareClassicGetUid, + .ApplicationSetUidFunc = MifareClassicSetUid, + .UidSize = ISO14443A_UID_SIZE_DOUBLE, + .MemorySize = MIFARE_CLASSIC_1K_MEM_SIZE, + .ReadOnly = false + }, #endif #ifdef CONFIG_MF_CLASSIC_4K_SUPPORT [CONFIG_MF_CLASSIC_4K] = {