aboutsummaryrefslogtreecommitdiff
path: root/common/bootloader.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/bootloader.c')
-rw-r--r--common/bootloader.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/common/bootloader.c b/common/bootloader.c
index e45295cd5..612b94964 100644
--- a/common/bootloader.c
+++ b/common/bootloader.c
@@ -24,12 +24,22 @@
24 24
25void bootloader_jump(void) { 25void bootloader_jump(void) {
26 cli(); 26 cli();
27
28 //
29 //Teensy
30 //
31#if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
27 // disable watchdog, if enabled 32 // disable watchdog, if enabled
28 // disable all peripherals 33 // disable all peripherals
29 UDCON = 1; 34 UDCON = 1;
30 USBCON = (1<<FRZCLK); // disable USB 35 USBCON = (1<<FRZCLK); // disable USB
31 UCSR1B = 0; 36 UCSR1B = 0;
32 _delay_ms(5); 37 _delay_ms(5);
38#else
39 // This makes custom USBasploader come up.
40 MCUSR = 0;
41#endif
42
33#if defined(__AVR_AT90USB162__) 43#if defined(__AVR_AT90USB162__)
34 EIMSK = 0; PCICR = 0; SPCR = 0; ACSR = 0; EECR = 0; 44 EIMSK = 0; PCICR = 0; SPCR = 0; ACSR = 0; EECR = 0;
35 TIMSK0 = 0; TIMSK1 = 0; UCSR1B = 0; 45 TIMSK0 = 0; TIMSK1 = 0; UCSR1B = 0;
@@ -52,6 +62,26 @@ void bootloader_jump(void) {
52 PORTA = 0; PORTB = 0; PORTC = 0; PORTD = 0; PORTE = 0; PORTF = 0; 62 PORTA = 0; PORTB = 0; PORTC = 0; PORTD = 0; PORTE = 0; PORTF = 0;
53#endif 63#endif
54 64
65
66 //
67 //USBasp
68 //
69#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P)
70 // This makes custom USBasploader come up.
71 MCUSR = 0;
72
73 // initialize ports
74 PORTB = 0; PORTC= 0; PORTD = 0;
75 DDRB = 0; DDRC= 0; DDRD = 0;
76
77 // disable interrupts
78 EIMSK = 0; EECR = 0; SPCR = 0;
79 ACSR = 0; SPMCSR = 0; WDTCSR = 0; PCICR = 0;
80 TIMSK0 = 0; TIMSK1 = 0; TIMSK2 = 0;
81 ADCSRA = 0; TWCR = 0; UCSR0B = 0;
82#endif
83
84
55 // start Bootloader 85 // start Bootloader
56 ((void (*)(void))BOOTLOADER_START)(); 86 ((void (*)(void))BOOTLOADER_START)();
57} 87}