From e0420015df848f18d5eb1672da4ccac578d454cf Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 21 Jun 2009 05:04:18 +0000 Subject: [PATCH] Re-add signature byte defines to the DFU and CDC class bootloaders -- the SIGNATURE_x defines in the AVR device header files only exist in a newer version of avr-libc than is in the Debian repositories, causing build issues on Linux. --- Bootloaders/CDC/BootloaderCDC.c | 6 ++--- Bootloaders/CDC/BootloaderCDC.h | 7 +----- Bootloaders/CDC/BootloaderCDC.txt | 7 ------ Bootloaders/CDC/Descriptors.h | 40 +++++++++++++++++++++++++++++++ Bootloaders/DFU/BootloaderDFU.c | 2 +- Bootloaders/DFU/BootloaderDFU.h | 7 +----- Bootloaders/DFU/BootloaderDFU.txt | 7 ------ Bootloaders/DFU/Descriptors.h | 27 +++++++++++++++++++++ Bootloaders/TeensyHID/TeensyHID.h | 3 +-- 9 files changed, 74 insertions(+), 32 deletions(-) diff --git a/Bootloaders/CDC/BootloaderCDC.c b/Bootloaders/CDC/BootloaderCDC.c index d72d128a12..92c2291c95 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 97e32e9fb0..fa98a15b38 100644 --- a/Bootloaders/CDC/BootloaderCDC.h +++ b/Bootloaders/CDC/BootloaderCDC.h @@ -46,12 +46,7 @@ #include "Descriptors.h" - #include // 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 /* 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 1122e73ae8..c518195ebc 100644 --- a/Bootloaders/CDC/BootloaderCDC.txt +++ b/Bootloaders/CDC/BootloaderCDC.txt @@ -54,12 +54,5 @@ * Location: * Description: * - * - * SIGNATURE_0, SIGNATURE_1, SIGNATURE_2 - * Makefile CDEFS - * 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. - * * */ \ No newline at end of file diff --git a/Bootloaders/CDC/Descriptors.h b/Bootloaders/CDC/Descriptors.h index d913f45c0e..62d75986e5 100644 --- a/Bootloaders/CDC/Descriptors.h +++ b/Bootloaders/CDC/Descriptors.h @@ -40,6 +40,46 @@ #include /* 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 58a7511883..ca0387ba76 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 776281eb8a..a47da3d5cb 100644 --- a/Bootloaders/DFU/BootloaderDFU.h +++ b/Bootloaders/DFU/BootloaderDFU.h @@ -47,12 +47,7 @@ #include "Descriptors.h" - #include // 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 /* 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 eb6495e6ec..05bfa71fa9 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. * - * - * SIGNATURE_0, SIGNATURE_1, SIGNATURE_2 - * Makefile CDEFS - * 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. - * * */ diff --git a/Bootloaders/DFU/Descriptors.h b/Bootloaders/DFU/Descriptors.h index 570bb6e08a..0943ef32b7 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 9414eec774..b7d4d6bac4 100644 --- a/Bootloaders/TeensyHID/TeensyHID.h +++ b/Bootloaders/TeensyHID/TeensyHID.h @@ -47,8 +47,7 @@ #include "Descriptors.h" - #include // Library Version Information - #include // USB Functionality + #include /* Preprocessor Checks: */ #if !defined(__AVR_AT90USB162__)