aboutsummaryrefslogtreecommitdiffstats
path: root/lib/lufa/Projects/AVRISP-MKII/Lib/V2ProtocolConstants.h
blob: 121eae7f3fc7d3de58bcf88c8ac26b5cdde0a51b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
             LUFA Library
     Copyright (C) Dean Camera, 2017.

  dean [at] fourwalledcubicle [dot] com
           www.lufa-lib.org
*/

/*
  Copyright 2017  Dean Camera (dean [at] fourwalledcubicle [dot] com)

  Permission to use, copy, modify, distribute, and sell this
  software and its documentation for any purpose is hereby granted
  without fee, provided that the above copyright notice appear in
  all copies and that both that the copyright notice and this
  permission notice and warranty disclaimer appear in supporting
  documentation, and that the name of the author not be used in
  advertising or publicity pertaining to distribution of the
  software without specific, written prior permission.

  The author disclaims all warranties with regard to this
  software, including all implied warranties of merchantability
  and fitness.  In no event shall the author be liable for any
  special, indirect or consequential damages or any damages
  whatsoever resulting from loss of use, data or profits, whether
  in an action of contract, negligence or other tortious action,
  arising out of or in connection with the use or performance of
  this software.
*/

/** \file
 *
 *  Macros for the V2 Protocol Packet Commands and Responses.
 */

#ifndef _V2_PROTOCOL_CONSTANTS_
#define _V2_PROTOCOL_CONSTANTS_

	/* Macros: */
		#define CMD_SIGN_ON                 0x01
		#define CMD_SET_PARAMETER           0x02
		#define CMD_GET_PARAMETER           0x03
		#define CMD_OSCCAL                  0x05
		#define CMD_LOAD_ADDRESS            0x06
		#define CMD_FIRMWARE_UPGRADE        0x07
		#define CMD_RESET_PROTECTION        0x0A
		#define CMD_ENTER_PROGMODE_ISP      0x10
		#define CMD_LEAVE_PROGMODE_ISP      0x11
		#define CMD_CHIP_ERASE_ISP          0x12
		#define CMD_PROGRAM_FLASH_ISP       0x13
		#define CMD_READ_FLASH_ISP          0x14
		#define CMD_PROGRAM_EEPROM_ISP      0x15
		#define CMD_READ_EEPROM_ISP         0x16
		#define CMD_PROGRAM_FUSE_ISP        0x17
		#define CMD_READ_FUSE_ISP           0x18
		#define CMD_PROGRAM_LOCK_ISP        0x19
		#define CMD_READ_LOCK_ISP           0x1A
		#define CMD_READ_SIGNATURE_ISP      0x1B
		#define CMD_READ_OSCCAL_ISP         0x1C
		#define CMD_SPI_MULTI               0x1D
		#define CMD_XPROG                   0x50
		#define CMD_XPROG_SETMODE           0x51

		#define STATUS_CMD_OK               0x00
		#define STATUS_CMD_TOUT             0x80
		#define STATUS_RDY_BSY_TOUT         0x81
		#define STATUS_SET_PARAM_MISSING    0x82
		#define STATUS_CMD_FAILED           0xC0
		#define STATUS_CMD_UNKNOWN          0xC9
		#define STATUS_CMD_ILLEGAL_PARAM    0xCA
		#define STATUS_ISP_READY            0x00
		#define STATUS_CONN_FAIL_MOSI       0x01
		#define STATUS_CONN_FAIL_RST        0x02
		#define STATUS_CONN_FAIL_SCK        0x04
		#define STATUS_TGT_NOT_DETECTED     0x10
		#define STATUS_TGT_REVERSE_INSERTED 0x20

		#define PARAM_BUILD_NUMBER_LOW      0x80
		#define PARAM_BUILD_NUMBER_HIGH     0x81
		#define PARAM_HW_VER                0x90
		#define PARAM_SW_MAJOR              0x91
		#define PARAM_SW_MINOR              0x92
		#define PARAM_VTARGET               0x94
		#define PARAM_SCK_DURATION          0x98
		#define PARAM_RESET_POLARITY        0x9E
		#define PARAM_STATUS_TGT_CONN       0xA1
		#define PARAM_DISCHARGEDELAY        0xA4

#endif
XendAPIStore from xen.xend import uuid as genuuid class XendPSCSI(XendBase): """Representation of a physical SCSI device.""" def getClass(self): return "PSCSI" def getAttrRO(self): attrRO = ['host', 'physical_host', 'physical_channel', 'physical_target', 'physical_lun', 'physical_HCTL', 'HBA', 'vendor_name', 'model', 'type_id', 'type', 'dev_name', 'sg_name', 'revision', 'scsi_id', 'scsi_level'] return XendBase.getAttrRO() + attrRO def getAttrRW(self): attrRW = [] return XendBase.getAttrRW() + attrRW def getAttrInst(self): attrInst = [] return XendBase.getAttrInst() + attrInst def getMethods(self): methods = [] return XendBase.getMethods() + methods def getFuncs(self): funcs = [] return XendBase.getFuncs() + funcs getClass = classmethod(getClass) getAttrRO = classmethod(getAttrRO) getAttrRW = classmethod(getAttrRW) getAttrInst = classmethod(getAttrInst) getMethods = classmethod(getMethods) getFuncs = classmethod(getFuncs) def get_by_HCTL(self, physical_HCTL): for pscsi in XendAPIStore.get_all("PSCSI"): if pscsi.get_physical_HCTL() == physical_HCTL: return pscsi.get_uuid() return None get_by_HCTL = classmethod(get_by_HCTL) def __init__(self, uuid, record): self.physical_HCTL = record['physical_HCTL'] self.physical_HBA = record['HBA'] self.vendor_name = record['vendor_name'] self.model = record['model'] self.type_id = record['type_id'] self.type = record['type'] self.dev_name = record['dev_name'] self.sg_name = record['sg_name'] self.revision = record['revision'] self.scsi_id = record['scsi_id'] self.scsi_level = record['scsi_level'] p_hctl = self.physical_HCTL.split(':') self.physical_host = int(p_hctl[0]) self.physical_channel = int(p_hctl[1]) self.physical_target = int(p_hctl[2]) self.physical_lun = int(p_hctl[3]) XendBase.__init__(self, uuid, record) def get_host(self): from xen.xend import XendNode return XendNode.instance().get_uuid() def get_physical_host(self): return self.physical_host def get_physical_channel(self): return self.physical_channel def get_physical_target(self): return self.physical_target def get_physical_lun(self): return self.physical_lun def get_physical_HCTL(self): return self.physical_HCTL def get_HBA(self): return self.physical_HBA def get_vendor_name(self): return self.vendor_name def get_model(self): return self.model def get_type_id(self): return self.type_id def get_type(self): return self.type def get_dev_name(self): return self.dev_name def get_sg_name(self): return self.sg_name def get_revision(self): return self.revision def get_scsi_id(self): return self.scsi_id def get_scsi_level(self): return self.scsi_level class XendPSCSI_HBA(XendBase): """Representation of a physical SCSI HBA.""" def getClass(self): return "PSCSI_HBA" def getAttrRO(self): attrRO = ['host', 'physical_host', 'PSCSIs'] return XendBase.getAttrRO() + attrRO def getAttrRW(self): attrRW = [] return XendBase.getAttrRW() + attrRW def getAttrInst(self): attrInst = [] return XendBase.getAttrInst() + attrInst def getMethods(self): methods = [] return XendBase.getMethods() + methods def getFuncs(self): funcs = [] return XendBase.getFuncs() + funcs getClass = classmethod(getClass) getAttrRO = classmethod(getAttrRO) getAttrRW = classmethod(getAttrRW) getAttrInst = classmethod(getAttrInst) getMethods = classmethod(getMethods) getFuncs = classmethod(getFuncs) def get_by_physical_host(self, physical_host): for pscsi_HBA in XendAPIStore.get_all('PSCSI_HBA'): if pscsi_HBA.get_physical_host() == physical_host: return pscsi_HBA.get_uuid() return None get_by_physical_host = classmethod(get_by_physical_host) def __init__(self, uuid, record): self.physical_host = record['physical_host'] XendBase.__init__(self, uuid, record) def get_host(self): from xen.xend import XendNode return XendNode.instance().get_uuid() def get_physical_host(self): return self.physical_host def get_PSCSIs(self): PSCSIs = [] uuid = self.get_uuid() for pscsi in XendAPIStore.get_all('PSCSI'): if pscsi.get_HBA() == uuid: PSCSIs.append(pscsi.get_uuid()) return PSCSIs