X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Finclude%2Favr.h;h=99e9fbf1776cb55d5d2da13c2c1304c7cd970017;hp=cd19a38a7d59e8a40149bd7a5f91675a85756456;hb=f3480afd0970eb232b17070d8596e5d09aef2c7e;hpb=43d125b5bca16f0941450bee6ba7bd94ab41dc72 diff --git a/firmware/include/avr.h b/firmware/include/avr.h index cd19a38..99e9fbf 100644 --- a/firmware/include/avr.h +++ b/firmware/include/avr.h @@ -3,7 +3,14 @@ \brief AVR SPI Programmer */ +#ifndef AVR_H +#define AVR_H + #include "spi.h" +#include "app.h" + +/* AVR is a known macro for the AVR C includes */ +#define XAVR 0x32 //! Setup the AVR pins. void avrsetup(); @@ -14,24 +21,27 @@ void avrconnect(); //! Enable AVR programming mode. void avr_prgen(); //! Read AVR device code. -u8 avr_sig(u8 i); +uint8_t avr_sig(uint8_t i); //! Erase an AVR device void avr_erase(); //! Read lock bits. -u8 avr_lockbits(); +uint8_t avr_lockbits(); +//! Write lock bits. +void avr_setlock(uint8_t bits); + //! Read a byte of Flash -u8 avr_peekflash(u16 adr); +uint8_t avr_peekflash(uint16_t adr); //! Read a byte of EEPROM. -u8 avr_peekeeprom(u16 adr); +uint8_t avr_peekeeprom(uint16_t adr); //! Read a byte of EEPROM. -u8 avr_pokeeeprom(u16 adr, u8 val); +uint8_t avr_pokeeeprom(uint16_t adr, uint8_t val); //! Is the AVR ready or busy? -u8 avr_isready(); +uint8_t avr_isready(); //Command codes. -//! Performa chip erase. +//! Perform a chip erase. #define AVR_ERASE 0xF0 //! Fetch RDY/!BSY byte. #define AVR_RDYBSY 0xF1 @@ -44,9 +54,17 @@ u8 avr_isready(); #define AVR_POKEEEPROM 0x91 //! Read lock bits. #define AVR_PEEKLOCK 0x82 +//! Write lock its. +#define AVR_POKELOCK 0x92 //! Read signature. #define AVR_PEEKSIG 0x83 //! Read fuse bits. #define AVR_READFUSES 0x84 //! Read calibration byte. #define AVR_READCAL 0x85 +//! Bulk load data +#define AVR_BULKLOAD 0x86 + +extern app_t const avr_app; + +#endif // AVR_H