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)
}
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')
{
......
......@@ -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
......
......@@ -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
......@@ -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.
......
......@@ -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];
......
......@@ -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
......
......@@ -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>
*/
......@@ -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
......
......@@ -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__)
......
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