Commit e0420015 authored by Dean Camera's avatar Dean Camera
Browse files

Re-add signature byte defines to the DFU and CDC class bootloaders -- the...

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.
parent b2de4519
...@@ -424,9 +424,9 @@ void CDC_Task(void) ...@@ -424,9 +424,9 @@ void CDC_Task(void)
} }
else if (Command == 's') else if (Command == 's')
{ {
WriteNextResponseByte(SIGNATURE_2); WriteNextResponseByte(AVR_SIGNATURE_3);
WriteNextResponseByte(SIGNATURE_1); WriteNextResponseByte(AVR_SIGNATURE_2);
WriteNextResponseByte(SIGNATURE_0); WriteNextResponseByte(AVR_SIGNATURE_1);
} }
else if (Command == 'b') else if (Command == 'b')
{ {
......
...@@ -46,12 +46,7 @@ ...@@ -46,12 +46,7 @@
#include "Descriptors.h" #include "Descriptors.h"
#include <LUFA/Drivers/USB/USB.h> // USB Functionality #include <LUFA/Drivers/USB/USB.h>
/* 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
/* Macros: */ /* Macros: */
/** CDC Class Specific request to get the line encoding on a CDC-ACM virtual serial port, including the /** CDC Class Specific request to get the line encoding on a CDC-ACM virtual serial port, including the
......
...@@ -54,12 +54,5 @@ ...@@ -54,12 +54,5 @@
* <td><b>Location:</b></td> * <td><b>Location:</b></td>
* <td><b>Description:</b></td> * <td><b>Description:</b></td>
* </tr> * </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> * </table>
*/ */
\ No newline at end of file
...@@ -40,6 +40,46 @@ ...@@ -40,6 +40,46 @@
#include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/USB/USB.h>
/* Macros: */ /* 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 /** 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, * 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. * while allowing the sizeof() operator to return correct results.
......
...@@ -678,7 +678,7 @@ static void ProcessWriteCommand(void) ...@@ -678,7 +678,7 @@ static void ProcessWriteCommand(void)
static void ProcessReadCommand(void) static void ProcessReadCommand(void)
{ {
const uint8_t BootloaderInfo[3] = {BOOTLOADER_VERSION, BOOTLOADER_ID_BYTE1, BOOTLOADER_ID_BYTE2}; 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]; uint8_t DataIndexToRead = SentCommand.Data[1];
......
...@@ -47,12 +47,7 @@ ...@@ -47,12 +47,7 @@
#include "Descriptors.h" #include "Descriptors.h"
#include <LUFA/Drivers/USB/USB.h> // USB Functionality #include <LUFA/Drivers/USB/USB.h>
/* 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
/* Macros: */ /* Macros: */
/** Configuration define. Define this token to true to case the bootloader to reject all memory commands /** Configuration define. Define this token to true to case the bootloader to reject all memory commands
......
...@@ -73,12 +73,5 @@ ...@@ -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 * 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> * being dumped by unauthorized persons.</td>
* </tr> * </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> * </table>
*/ */
...@@ -65,22 +65,49 @@ ...@@ -65,22 +65,49 @@
#if defined(__AVR_AT90USB1286__) #if defined(__AVR_AT90USB1286__)
#define PRODUCT_ID_CODE 0x2FFB #define PRODUCT_ID_CODE 0x2FFB
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x97
#define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_AT90USB1287__) #elif defined(__AVR_AT90USB1287__)
#define PRODUCT_ID_CODE 0x2FFB #define PRODUCT_ID_CODE 0x2FFB
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x97
#define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_AT90USB646__) #elif defined(__AVR_AT90USB646__)
#define PRODUCT_ID_CODE 0x2FF9 #define PRODUCT_ID_CODE 0x2FF9
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x96
#define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_AT90USB647__) #elif defined(__AVR_AT90USB647__)
#define PRODUCT_ID_CODE 0x2FF9 #define PRODUCT_ID_CODE 0x2FF9
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x96
#define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_AT90USB162__) #elif defined(__AVR_AT90USB162__)
#define PRODUCT_ID_CODE 0x2FFA #define PRODUCT_ID_CODE 0x2FFA
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x94
#define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_AT90USB82__) #elif defined(__AVR_AT90USB82__)
#define PRODUCT_ID_CODE 0x2FF7 #define PRODUCT_ID_CODE 0x2FF7
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x94
#define AVR_SIGNATURE_3 0x82
#elif defined(__AVR_ATmega32U6__) #elif defined(__AVR_ATmega32U6__)
#define PRODUCT_ID_CODE 0x2FFB #define PRODUCT_ID_CODE 0x2FFB
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x95
#define AVR_SIGNATURE_3 0x88
#elif defined(__AVR_ATmega32U4__) #elif defined(__AVR_ATmega32U4__)
#define PRODUCT_ID_CODE 0x2FF4 #define PRODUCT_ID_CODE 0x2FF4
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x95
#define AVR_SIGNATURE_3 0x87
#elif defined(__AVR_ATmega16U4__) #elif defined(__AVR_ATmega16U4__)
#define PRODUCT_ID_CODE 0x2FF3 #define PRODUCT_ID_CODE 0x2FF3
#define AVR_SIGNATURE_1 0x1E
#define AVR_SIGNATURE_2 0x94
#define AVR_SIGNATURE_3 0x88
#else #else
#error The selected AVR part is not currently supported by this bootloader. #error The selected AVR part is not currently supported by this bootloader.
#endif #endif
......
...@@ -47,8 +47,7 @@ ...@@ -47,8 +47,7 @@
#include "Descriptors.h" #include "Descriptors.h"
#include <LUFA/Version.h> // Library Version Information #include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/USB/USB.h> // USB Functionality
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__AVR_AT90USB162__) #if !defined(__AVR_AT90USB162__)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment