diff --git a/Bootloaders/CDC/BootloaderCDC.c b/Bootloaders/CDC/BootloaderCDC.c index d72d128a12e390555bf1bebc94070883b117677e..92c2291c950e45d78680b273f21867d0d93df8d8 100644 --- a/Bootloaders/CDC/BootloaderCDC.c +++ b/Bootloaders/CDC/BootloaderCDC.c @@ -424,9 +424,9 @@ void CDC_Task(void) } else if (Command == 's') { - WriteNextResponseByte(SIGNATURE_2); - WriteNextResponseByte(SIGNATURE_1); - WriteNextResponseByte(SIGNATURE_0); + WriteNextResponseByte(AVR_SIGNATURE_3); + WriteNextResponseByte(AVR_SIGNATURE_2); + WriteNextResponseByte(AVR_SIGNATURE_1); } else if (Command == 'b') { diff --git a/Bootloaders/CDC/BootloaderCDC.h b/Bootloaders/CDC/BootloaderCDC.h index 97e32e9fb01fb7f475e578c4ff38185090ea00f1..fa98a15b3896f94f07c7eae07b065702b523a9aa 100644 --- a/Bootloaders/CDC/BootloaderCDC.h +++ b/Bootloaders/CDC/BootloaderCDC.h @@ -46,12 +46,7 @@ #include "Descriptors.h" - #include <LUFA/Drivers/USB/USB.h> // USB Functionality - - /* Preprocessor Checks: */ - #if !defined(SIGNATURE_0) || !defined(SIGNATURE_1) || !defined(SIGNATURE_2) - #error Device signature byte constants are not defined due to outdated avr-libc version. See demo documentation. - #endif + #include <LUFA/Drivers/USB/USB.h> /* Macros: */ /** CDC Class Specific request to get the line encoding on a CDC-ACM virtual serial port, including the diff --git a/Bootloaders/CDC/BootloaderCDC.txt b/Bootloaders/CDC/BootloaderCDC.txt index 1122e73ae841f3a3c146109225947dbaaaeb3a6c..c518195ebc1fe5ba55ae11e54268563bce4a6d58 100644 --- a/Bootloaders/CDC/BootloaderCDC.txt +++ b/Bootloaders/CDC/BootloaderCDC.txt @@ -54,12 +54,5 @@ * <td><b>Location:</b></td> * <td><b>Description:</b></td> * </tr> - * <tr> - * <td>SIGNATURE_0, SIGNATURE_1, SIGNATURE_2</td> - * <td>Makefile CDEFS</td> - * <td>AVR part signature bytes. These are normally defined as part of the AVR device header files in recent avr-libc - * distributions. If your avr-libc library is out of date and does not define these values, you can define them - * manually in the makefile CDEFS.</td> - * </tr> * </table> */ \ No newline at end of file diff --git a/Bootloaders/CDC/Descriptors.h b/Bootloaders/CDC/Descriptors.h index d913f45c0e9c261583dd06df2ba2a6abc81bca78..62d75986e5dd454858b351c3667a9f2931fb4f86 100644 --- a/Bootloaders/CDC/Descriptors.h +++ b/Bootloaders/CDC/Descriptors.h @@ -40,6 +40,46 @@ #include <LUFA/Drivers/USB/USB.h> /* Macros: */ + #if defined(__AVR_AT90USB1286__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x97 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB1287__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x97 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB646__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x96 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB647__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x96 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB162__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_AT90USB82__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x82 + #elif defined(__AVR_ATmega32U6__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x95 + #define AVR_SIGNATURE_3 0x88 + #elif defined(__AVR_ATmega32U4__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x95 + #define AVR_SIGNATURE_3 0x87 + #elif defined(__AVR_ATmega16U4__) + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x88 + #else + #error The selected AVR part is not currently supported by this bootloader. + #endif + /** Structure for a CDC class Functional descriptor, with a given data size. This is used instead of a * type define so that the same macro can be used for functional descriptors of varying data lengths, * while allowing the sizeof() operator to return correct results. diff --git a/Bootloaders/DFU/BootloaderDFU.c b/Bootloaders/DFU/BootloaderDFU.c index 58a7511883c2ce1688c85e02c4f8ecb66c92e1bb..ca0387ba76123dc82a455ed8ebc4cc4fa716b437 100644 --- a/Bootloaders/DFU/BootloaderDFU.c +++ b/Bootloaders/DFU/BootloaderDFU.c @@ -678,7 +678,7 @@ static void ProcessWriteCommand(void) static void ProcessReadCommand(void) { const uint8_t BootloaderInfo[3] = {BOOTLOADER_VERSION, BOOTLOADER_ID_BYTE1, BOOTLOADER_ID_BYTE2}; - const uint8_t SignatureInfo[3] = {SIGNATURE_0, SIGNATURE_1, SIGNATURE_2}; + const uint8_t SignatureInfo[3] = {AVR_SIGNATURE_1, AVR_SIGNATURE_2, AVR_SIGNATURE_3}; uint8_t DataIndexToRead = SentCommand.Data[1]; diff --git a/Bootloaders/DFU/BootloaderDFU.h b/Bootloaders/DFU/BootloaderDFU.h index 776281eb8a2b08054330fe11505ec221ba742b97..a47da3d5cb5cd367310127065928c62f426d6f8e 100644 --- a/Bootloaders/DFU/BootloaderDFU.h +++ b/Bootloaders/DFU/BootloaderDFU.h @@ -47,12 +47,7 @@ #include "Descriptors.h" - #include <LUFA/Drivers/USB/USB.h> // USB Functionality - - /* Preprocessor Checks: */ - #if !defined(SIGNATURE_0) || !defined(SIGNATURE_1) || !defined(SIGNATURE_2) - #error Device signature byte constants are not defined due to outdated avr-libc version. See demo documentation. - #endif + #include <LUFA/Drivers/USB/USB.h> /* Macros: */ /** Configuration define. Define this token to true to case the bootloader to reject all memory commands diff --git a/Bootloaders/DFU/BootloaderDFU.txt b/Bootloaders/DFU/BootloaderDFU.txt index eb6495e6ec506a7f8ee73d63f70976e5c9b0df82..05bfa71fa9ffcfc5076d8797036dba7cf13095bd 100644 --- a/Bootloaders/DFU/BootloaderDFU.txt +++ b/Bootloaders/DFU/BootloaderDFU.txt @@ -73,12 +73,5 @@ * erase has been performed. This can be used in conjunction with the AVR's lockbits to prevent the AVRs firmware from * being dumped by unauthorized persons.</td> * </tr> - * <tr> - * <td>SIGNATURE_0, SIGNATURE_1, SIGNATURE_2</td> - * <td>Makefile CDEFS</td> - * <td>AVR part signature bytes. These are normally defined as part of the AVR device header files in recent avr-libc - * distributions. If your avr-libc library is out of date and does not define these values, you can define them - * manually in the makefile CDEFS.</td> - * </tr> * </table> */ diff --git a/Bootloaders/DFU/Descriptors.h b/Bootloaders/DFU/Descriptors.h index 570bb6e08a0928a8e592313cb9b6eca52ecf2792..0943ef32b792d900f962881c5054f99f6cf25b6f 100644 --- a/Bootloaders/DFU/Descriptors.h +++ b/Bootloaders/DFU/Descriptors.h @@ -65,22 +65,49 @@ #if defined(__AVR_AT90USB1286__) #define PRODUCT_ID_CODE 0x2FFB + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x97 + #define AVR_SIGNATURE_3 0x82 #elif defined(__AVR_AT90USB1287__) #define PRODUCT_ID_CODE 0x2FFB + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x97 + #define AVR_SIGNATURE_3 0x82 #elif defined(__AVR_AT90USB646__) #define PRODUCT_ID_CODE 0x2FF9 + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x96 + #define AVR_SIGNATURE_3 0x82 #elif defined(__AVR_AT90USB647__) #define PRODUCT_ID_CODE 0x2FF9 + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x96 + #define AVR_SIGNATURE_3 0x82 #elif defined(__AVR_AT90USB162__) #define PRODUCT_ID_CODE 0x2FFA + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x82 #elif defined(__AVR_AT90USB82__) #define PRODUCT_ID_CODE 0x2FF7 + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x82 #elif defined(__AVR_ATmega32U6__) #define PRODUCT_ID_CODE 0x2FFB + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x95 + #define AVR_SIGNATURE_3 0x88 #elif defined(__AVR_ATmega32U4__) #define PRODUCT_ID_CODE 0x2FF4 + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x95 + #define AVR_SIGNATURE_3 0x87 #elif defined(__AVR_ATmega16U4__) #define PRODUCT_ID_CODE 0x2FF3 + #define AVR_SIGNATURE_1 0x1E + #define AVR_SIGNATURE_2 0x94 + #define AVR_SIGNATURE_3 0x88 #else #error The selected AVR part is not currently supported by this bootloader. #endif diff --git a/Bootloaders/TeensyHID/TeensyHID.h b/Bootloaders/TeensyHID/TeensyHID.h index 9414eec774c60e4477c1d124f0ae92796558dcfb..b7d4d6bac4b77a72bb217b454d124cd40f822ff4 100644 --- a/Bootloaders/TeensyHID/TeensyHID.h +++ b/Bootloaders/TeensyHID/TeensyHID.h @@ -47,8 +47,7 @@ #include "Descriptors.h" - #include <LUFA/Version.h> // Library Version Information - #include <LUFA/Drivers/USB/USB.h> // USB Functionality + #include <LUFA/Drivers/USB/USB.h> /* Preprocessor Checks: */ #if !defined(__AVR_AT90USB162__)