Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board
record_type_definitions.h
Go to the documentation of this file.
1 /*!
2 
3 Copyright 2018(c) Analog Devices, Inc.
4 
5 All rights reserved.
6 
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions are met:
9  - Redistributions of source code must retain the above copyright
10  notice, this list of conditions and the following disclaimer.
11  - Redistributions in binary form must reproduce the above copyright
12  notice, this list of conditions and the following disclaimer in
13  the documentation and/or other materials provided with the
14  distribution.
15  - Neither the name of Analog Devices, Inc. nor the names of its
16  contributors may be used to endorse or promote products derived
17  from this software without specific prior written permission.
18  - The use of this software may or may not infringe the patent rights
19  of one or more patent holders. This license does not release you
20  from the requirement that you obtain separate licenses from these
21  patent holders to use this software.
22  - Use of the software either in source or binary form, must be run
23  on or directly connected to an Analog Devices Inc. component.
24 
25 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
26 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
27 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28 IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
29 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
31 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 */
36 /*! @file
37  @ingroup LTPSM_InFlightUpdate
38  Library Header File
39 */
40 
41 #ifndef RECORD_TYPE_DEFINITIONS_
42 #define RECORD_TYPE_DEFINITIONS_
43 
44 #include <stdint.h>
45 #include "record_type_basic_definitions.h" /* Basic Record Type Definitions that the following specific record types are built upon */
46 
47 /*******************************************************************/
48 /******** Record Type Definitions at a Glance **********************/
49 /*******************************************************************/
50 /*
51  0x01 - RECORD_TYPE_PMBUS_WRITE_BYTE
52  0x02 - RECORD_TYPE_PMBUS_WRITE_WORD
53  0x03 - RECORD_TYPE_PMBUS_WRITE_BLOCK
54  0x04 - RECORD_TYPE_PMBUS_READ_BYTE_EXPECT
55  0x05 - RECORD_TYPE_PMBUS_READ_WORD_EXPECT
56  0x06 - RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT
57  0x07 - RECORD_TYPE_DEVICE_ADDRESS -- OBSOLETED
58  0x08 - RECORD_TYPE_PACKING_CODE -- OBSOLETED
59  0x09 - RECORD_TYPE_NVM_DATA -- FUNCTIONALITY CHANGED 25/01/2011
60  0x0A - RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK
61  0x0B - RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK
62  0x0C - RECORD_TYPE_PMBUS_POLL_UNTIL_ACK_NOPEC
63  0x0D - RECORD_TYPE_DELAY_MS
64  0x0E - RECORD_TYPE_PMBUS_SEND_BYTE
65  0x0F - RECORD_TYPE_PMBUS_WRITE_BYTE_NOPEC
66  0x10 - RECORD_TYPE_PMBUS_WRITE_WORD_NOPEC
67  0x11 - RECORD_TYPE_PMBUS_WRITE_BLOCK_NOPEC
68  0x12 - RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_NOPEC
69  0x13 - RECORD_TYPE_PMBUS_READ_WORD_EXPECT_NOPEC
70  0x14 - RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT_NOPEC
71  0x15 - RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK_NOPEC
72  0x16 - RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK_NOPEC
73  0x17 - RECORD_TYPE_PMBUS_SEND_BYTE_NOPEC
74  0x18 - RECORD_TYPE_EVENT
75  0x19 - RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_MASK_NOPEC
76  0x1A - RECORD_TYPE_PMBUS_READ_WORD_EXPECT_MASK_NOPEC
77  0x1B - RECORD_TYPE_VARIABLE_META_DATA
78  0x1C - RECORD_TYPE_MODIFY_WORD_NOPEC
79  0x1D - RECORD_TYPE_MODIFY_BYTE_NOPEC
80  0x1E - RECORD_TYPE_PMBUS_WRITE_EE_DATA
81  0x1F - RECORD_TYPE_PMBUS_READ_AND_VERIFY_EE_DATA
82  0x20 - RECORD_TYPE_PMBUS_MODIFY_BYTE
83  0x21 - RECORD_TYPE_PMBUS_MODIFY_WORD
84  0x22 - RECORD_TYPE_END_OF_RECORDS
85 */
86 
87 
88 #pragma pack(push, 1)
89 
90 
91 /*******************************************************************/
92 /******** Record Type Definitions in Detail *************/
93 /******** Please refer to the PDF for more info *************/
94 /*******************************************************************/
95 
96 /********************************************************************
97  * Struct: t_RECORD_PMBUS_WRITE_BYTE
98  *
99  * Overview: PMBus write byte with optional PEC
100  * Note: RECORD_TYPE_PMBUS_WRITE_BYTE with value of 0x01 uses this struct
101  *******************************************************************/
102 #define RECORD_TYPE_PMBUS_WRITE_BYTE (1)
103 typedef struct
104 {
107  uint8_t dataByte;
109 
110 
111 
112 
113 
114 /********************************************************************
115  * Struct: t_RECORD_PMBUS_WRITE_WORD
116  *
117  * Overview: PMBus write word with optional PEC
118  * Note: RECORD_TYPE_PMBUS_WRITE_WORD with value of 0x02 uses this struct
119  *******************************************************************/
120 #define RECORD_TYPE_PMBUS_WRITE_WORD (2)
121 typedef struct
122 {
125  uint16_t dataWord;
127 
128 
129 
130 
131 
132 /********************************************************************
133  * Struct: NOT DEFINED
134  *
135  * Overview: PMBus Write Block with optional PEC
136  * Note: RECORD_TYPE_PMBUS_WRITE_BLOCK with value of 0x03 would use this struct
137  * RECORD TYPE NOT USED AND NOT DEFINED
138  *******************************************************************/
139 #define RECORD_TYPE_PMBUS_WRITE_BLOCK (3)
140 
141 
142 
143 
144 
145 /********************************************************************
146  * Struct: t_RECORD_PMBUS_READ_BYTE_EXPECT
147  *
148  * Overview: PMBus Read Byte with optional PEC, and expect a specified value (fail if different)
149  * Note: RECORD_TYPE_PMBUS_READ_BYTE_EXPECT with value of 0x04 uses this struct
150  *******************************************************************/
151 #define RECORD_TYPE_PMBUS_READ_BYTE_EXPECT (4)
152 typedef struct
153 {
158 
159 
160 
161 
162 
163 /********************************************************************
164  * Struct: t_RECORD_PMBUS_READ_WORD_EXPECT
165  *
166  * Overview: PMBus Read Word with optional PEC, and expect a specified value (fail if different)
167  * Note: t_RECORD_PMBUS_READ_WORD_EXPECT with value of 0x05 uses this struct
168  *******************************************************************/
169 #define RECORD_TYPE_PMBUS_READ_WORD_EXPECT (5)
170 typedef struct
171 {
176 
177 
178 
179 
180 
181 /********************************************************************
182  * Struct: NOT DEFINED
183  *
184  * Overview: PMBus Read Block with optional PEC, and expect a specified value (fail if different)
185  * Note: RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT with value of 0x06 would use this struct
186  * RECORD TYPE NOT USED AND NOT DEFINED
187  *******************************************************************/
188 #define RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT (6)
189 
190 
191 
192 
193 
194 /********************************************************************
195  * Struct: NOT DEFINED
196  *
197  * Overview: Not Available
198  * Note: RECORD_TYPE_DEVICE_ADDRESS with value of 0x07 would use this struct
199  * RECORD TYPE NOT USED AND NOT DEFINED
200  *******************************************************************/
201 #define RECORD_TYPE_DEVICE_ADDRESS (7)
202 
203 
204 
205 
206 
207 /********************************************************************
208  * Struct: t_RECORD_PACKING_CODE
209  *
210  * Overview: Not Available
211  * Note: RECORD_TYPE_PACKING_CODE with value of 0x08 would use this struct
212  * RECORD TYPE NOT USED BUT IS DEFINED
213  *******************************************************************/
214 #define RECORD_TYPE_PACKING_CODE (8)
215 typedef struct
216 {
218  uint16_t packingCode;
220 
221 
222 
223 
224 
225 /********************************************************************
226  * Struct: t_RECORD_NVM_DATA
227  *
228  * Overview: A block of NVM Data to be written as a block of bytes
229  * Note: t_RECORD_NVM_DATA with value of 0x09 uses this struct
230  * The actual NVM Data to be written is not absolutely defined in this
231  * struct because the length of the NVM data is variable
232  *******************************************************************/
233 #define RECORD_TYPE_NVM_DATA (9)
234 typedef struct
235 {
239 
240 
241 /********************************************************************
242  * Struct: t_RECORD_PMBUS_READ_BYTE_LOOP_MASK
243  *
244  * Overview: PMBus Read Byte with optional PEC in a loop until the device returns a specified value
245  * Note: RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK with value of 0x0A uses this struct
246  *******************************************************************/
247 #define RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK (0xA)
248 typedef struct
249 {
252  uint8_t byteMask;
255 
256 
257 
258 
259 
260 /********************************************************************
261  * Struct: t_RECORD_PMBUS_READ_WORD_LOOP_MASK
262  *
263  * Overview: PMBus Read Word with optional PEC in a loop until the device returns a specified value
264  * Note: RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK with value of 0x0B uses this struct
265  *******************************************************************/
266 #define RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK (0xB)
267 typedef struct
268 {
271  uint16_t wordMask;
274 
275 
276 
277 
278 
279 /********************************************************************
280  * Struct: t_RECORD_PMBUS_POLL_READ_BYTE_UNTIL_ACK
281  *
282  * Overview: Poll a device at an address until it Acknowledges (ACKs)
283  * Note: t_RECORD_PMBUS_POLL_READ_BYTE_UNTIL_ACK with value
284  * of 0x0C uses this struct. This record type indicates
285  * that the software should continually attempt to
286  * execute a PMBus read byte operation until the
287  * slave devices acknowledges the command code or until
288  * the timeout value in milliseconds is reached. This
289  * is typically used to wait until the device is
290  * non-busy. This never uses PEC
291  *******************************************************************/
292 #define RECORD_TYPE_PMBUS_POLL_UNTIL_ACK_NOPEC (0xC)
293 typedef struct
294 {
297  uint16_t timeout_in_ms;
299 
300 
301 
302 
303 
304 /********************************************************************
305  * Struct: t_RECORD_DELAY_MS
306  *
307  * Overview: Simple delay function. Idle the bus for a specified
308  * amount of time
309  * Note: RECORD_TYPE_DELAY_MS with value of 0x0D uses this
310  * struct. This record type indicates that the software
311  * should delay execution for a specified number of
312  * milliseconds before proceeding.
313  *******************************************************************/
314 #define RECORD_TYPE_DELAY_MS (0xD)
315 typedef struct
316 {
318  uint16_t numMs;
320 
321 
322 
323 
324 
325 /********************************************************************
326  * Struct: t_RECORD_PMBUS_SEND_BYTE
327  *
328  * Overview: This record type indicates that the software
329  * should execute a PMBus send byte operation
330  * Note: RECORD_TYPE_PMBUS_SEND_BYTE with value of 0x0E
331  * uses this struct
332  *******************************************************************/
333 #define RECORD_TYPE_PMBUS_SEND_BYTE (0xE)
334 typedef struct
335 {
339 
340 
341 
342 
343 
344 /********************************************************************
345  * Struct: t_RECORD_PMBUS_WRITE_BYTE_NOPEC
346  *
347  * Overview: PMBus write byte WITHOUT optional PEC. PEC is *never* used
348  * Note: RECORD_TYPE_PMBUS_WRITE_BYTE_NOPEC with value of 0x0F uses this struct
349  *******************************************************************/
350 #define RECORD_TYPE_PMBUS_WRITE_BYTE_NOPEC (0xF)
351 typedef struct
352 {
355  uint8_t dataByte;
357 
358 
359 
360 
361 
362 /********************************************************************
363  * Struct: t_RECORD_PMBUS_WRITE_WORD_NOPEC
364  *
365  * Overview: PMBus write word WITHOUT optional PEC. PEC is *never* used
366  * Note: RECORD_TYPE_PMBUS_WRITE_WORD_NOPEC with value of 0x10 uses this struct
367  *******************************************************************/
368 #define RECORD_TYPE_PMBUS_WRITE_WORD_NOPEC (0x10)
369 typedef struct
370 {
373  uint16_t dataWord;
375 
376 
377 
378 
379 
380 /********************************************************************
381  * Struct: NOT DEFINED
382  *
383  * Overview: Same as RECORD_TYPE_PMBUS_WRITE_BLOCK except PEC is never used
384  * Note: RECORD_TYPE_PMBUS_WRITE_BLOCK_NOPEC with value of 0x11 would use this struct
385  * RECORD TYPE NOT USED AND NOT DEFINED
386  *******************************************************************/
387 /* RECORD TYPE NOT USED AND NOT DEFINED */
388 #define RECORD_TYPE_PMBUS_WRITE_BLOCK_NOPEC (0x11)
389 
390 
391 
392 
393 
394 /********************************************************************
395  * Struct: t_RECORD_PMBUS_READ_BYTE_EXPECT_NOPEC
396  *
397  * Overview: PMBus Read Byte without PEC, and expect a specified value (fail if different)
398  * Note: RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_NOPEC with value of 0x12 uses this struct
399  *******************************************************************/
400 #define RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_NOPEC (0x12)
401 typedef struct
402 {
407 
408 
409 
410 
411 
412 /********************************************************************
413  * Struct: t_RECORD_PMBUS_READ_WORD_EXPECT_NOPEC
414  *
415  * Overview: PMBus Read Word without PEC, and expect a specified value (fail if different)
416  * Note: RECORD_TYPE_PMBUS_READ_WORD_EXPECT_NOPEC with value of 0x13 uses this struct
417  *******************************************************************/
418 #define RECORD_TYPE_PMBUS_READ_WORD_EXPECT_NOPEC (0x13)
419 typedef struct
420 {
425 
426 
427 
428 
429 
430 /********************************************************************
431  * Struct: NOT DEFINED
432  *
433  * Overview: Same as RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT except PEC is never used
434  * Note: RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT_NOPEC with value of 0x14 would use this struct
435  * RECORD TYPE NOT USED AND NOT DEFINED
436  *******************************************************************/
437 #define RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT_NOPEC (0x14)
438 
439 
440 
441 
442 
443 /********************************************************************
444  * Struct: t_RECORD_PMBUS_READ_BYTE_LOOP_MASK_NOPEC
445  *
446  * Overview: PMBus Read Byte without PEC in a loop until the
447  * device returns a specified value
448  * Note: RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK_NOPEC with
449  * value of 0x15 uses this struct
450  *******************************************************************/
451 #define RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK_NOPEC (0x15)
452 typedef struct
453 {
456  uint8_t byteMask;
459 
460 
461 
462 
463 
464 /********************************************************************
465  * Struct: t_RECORD_PMBUS_READ_WORD_LOOP_MASK_NOPEC
466  *
467  * Overview: PMBus Read Word without PEC in a loop until the
468  * device returns a specified value
469  * Note: RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK_NOPEC with
470  * value of 0x16 uses this struct
471  *******************************************************************/
472 #define RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK_NOPEC (0x16)
473 typedef struct
474 {
477  uint16_t wordMask;
480 
481 
482 
483 
484 
485 /********************************************************************
486  * Struct: t_RECORD_PMBUS_SEND_BYTE_NOPEC
487  *
488  * Overview: This record type indicates that the software should execute a PMBus send byte operation and never using PEC
489  * Note: RECORD_TYPE_PMBUS_SEND_BYTE_NOPEC with value of 0x17 uses this struct
490  *******************************************************************/
491 #define RECORD_TYPE_PMBUS_SEND_BYTE_NOPEC (0x17)
492 typedef struct
493 {
497 
498 
499 
500 
501 
502 /********************************************************************
503  * Struct: t_RECORD_EVENT
504  *
505  * Overview: Indicates that we are at a particular place in
506  * the In-Circuit Programming file [recipe file]
507  * Note: RECORD_TYPE_EVENT with value of 0x18 uses this
508  * struct. This can be used for custom user
509  * interactions or at a basic level debug prompts/actions
510  *******************************************************************/
511 #define RECORD_TYPE_EVENT (0x18)
512 typedef struct
513 {
515  uint16_t eventId;
517 
518 /********************************************************************
519  * Definitions: NAME (VALUE) NOTE
520  * BEFORE_BEGIN (0) This event is fired before any
521  * commands are issued to communicate
522  * with the system
523  * SYSTEM_BEFORE_PROGRAM (1) This event is fired before any
524  * commands are issued to program
525  * the NVM
526  * SYSTEM_BEFORE_VERIFY (2) This event is fired after programming
527  * the system before any commands are
528  * issued to verify the NVM
529  * AFTER_DONE (3) This event is fired after the end
530  * of the entire programming and
531  * verification sequence is complete
532  *******************************************************************/
533 #define BEFORE_BEGIN (0x00)
534 #define BEFORE_INSYSTEM_PROGRAMMING_BEGIN (0x10)
535 #define SYSTEM_BEFORE_PROGRAM (0x01)
536 #define INSYSTEM_CHIP_BEFORE_PROGRAM (0x11)
537 #define SYSTEM_BEFORE_VERIFY (0x02)
538 #define INSYSTEM_CHIP_BEFORE_VERIFY (0x12)
539 #define INSYSTEM_CHIP_AFTER_VERIFY (0x13)
540 #define SYSTEM_AFTER_VERIFY (0x04)
541 #define AFTER_DONE (0x03)
542 
543 
544 /********************************************************************
545  * Struct: t_RECORD_PMBUS_READ_BYTE_EXPECT_MASK_NOPEC
546  *
547  * Overview: PMBus Read Byte without PEC, and expect a specified
548  * value bitwise ANDed with the Mask (fail if different)
549  * Note: RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_MASK_NOPEC with
550  * value of 0x19 uses this struct
551  *******************************************************************/
552 #define RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_MASK_NOPEC (0x19)
553 typedef struct
554 {
558  uint8_t byteMask;
560 
561 
562 
563 
564 
565 
566 /********************************************************************
567  * Struct: t_RECORD_PMBUS_READ_WORD_EXPECT_MASK_NOPEC
568  *
569  * Overview: PMBus Read Word without PEC, and expect a specified
570  * value bitwise ANDed with the Mask (fail if different)
571  * Note: RECORD_TYPE_PMBUS_READ_WORD_EXPECT_MASK_NOPEC with
572  * value of 0x1A uses this struct
573  *******************************************************************/
574 #define RECORD_TYPE_PMBUS_READ_WORD_EXPECT_MASK_NOPEC (0x1A)
575 typedef struct
576 {
580  uint16_t wordMask;
582 
583 
584 
585 
586 
587 /********************************************************************
588  * Struct: t_RECORD_VARIABLE_META_DATA
589  *
590  * Overview: Generic instruction used to communicate meta data
591  * to the host processor
592  * Note: RECORD_TYPE_VARIABLE_META_DATA with value of 0x1B
593  * uses this struct. Currently setting the global
594  * base address and serialization are supported
595  *******************************************************************/
596 #define RECORD_TYPE_VARIABLE_META_DATA (0x1B)
597 typedef struct
598 {
600  uint16_t metaDataType;
602 
603 /********************************************************************
604  * Struct: t_RECORD_META_SET_GLOBAL_BASE_ADDRESS
605  * Overview: A META DATA struct containing the new global base address
606  *******************************************************************/
607 #define META_SET_GLOBAL_BASE_ADDRESS (0)
608 typedef struct
609 {
613 
614 
615 /********************************************************************
616  * Struct: t_RECORD_META_OEM_SERIAL_NUMBER
617  * Overview: A META DATA struct containing the serial number of the device to program
618  *******************************************************************/
619 #define META_OEM_SERIAL_NUMBER (1)
620 typedef struct
621 {
623  uint16_t serialNumber;
625 
626 
627 
628 
629 
630 /********************************************************************
631  * Struct: t_RECORD_TYPE__MODIFY_WORD_NOPEC
632  *
633  * Overview: This record type indicates that the software should
634  * read a word, apply a mask with new data to it, and
635  * then write it back to the device never using PEC
636  * Note: RECORD_TYPE_MODIFY_WORD_NOPEC with value of 0x1C
637  * uses this struct. Modify only the specified bits
638  * (set to 1 in wordMask) to be desiredDataWord,
639  * never use PEC
640  *******************************************************************/
641 #define RECORD_TYPE_MODIFY_WORD_NOPEC (0x1C)
642 typedef struct
643 {
646  uint16_t wordMask;
647  uint16_t desiredDataWord;
649 
650 
651 
652 
653 
654 /********************************************************************
655  * Struct: t_RECORD_TYPE__MODIFY_BYTE_NOPEC
656  *
657  * Overview: This record type indicates that the software should
658  * read a byte, apply a mask with new data to it, and
659  * then write it back to the device never using PEC
660  * Note: RECORD_TYPE_MODIFY_BYTE_NOPEC with value of 0x1D
661  * uses this struct. Modify only the specified bits
662  * (set to 1 in byteMask) to be desiredDataByte,
663  * never use PEC
664  *******************************************************************/
665 #define RECORD_TYPE_MODIFY_BYTE_NOPEC (0x1D)
666 typedef struct
667 {
670  uint8_t byteMask;
673 
674 
675 
676 
677 
678 /********************************************************************
679  * Struct: t_RECORD_TYPE_PMBUS_WRITE_EE_DATA
680  *
681  * Overview: Write data that was previously specified in the
682  * NVM_DATA record and stored in the global linked
683  * list to the slave
684  * Note: RECORD_TYPE_PMBUS_WRITE_EE_DATA with value of 0x1E
685  * uses this struct
686  *******************************************************************/
687 #define RECORD_TYPE_PMBUS_WRITE_EE_DATA (0x1E)
688 typedef struct
689 {
692 
694 
695 
696 
697 
698 
699 /********************************************************************
700  * Struct: t_RECORD_TYPE_PMBUS_VERIFY_EE_DATA
701  *
702  * Overview: Read back and verify NVM data that was previously specified in the NVM_DATA record and stored in the global linked list from the slave
703  * Note: RECORD_TYPE_PMBUS_READ_AND_VERIFY_EE_DATA with value of 0x1F uses this struct
704  *******************************************************************/
705 #define RECORD_TYPE_PMBUS_READ_AND_VERIFY_EE_DATA (0x1F)
706 typedef struct
707 {
710 
712 
713 
714 
715 
716 
717 /********************************************************************
718  * Struct: t_RECORD_PMBUS_MODIFY_BYTE
719  *
720  * Overview: This record type indicates that the software should
721  * read a byte, apply a mask with new data to it, and
722  * then write it back to the device optionally using PEC
723  * Note: RECORD_TYPE_PMBUS_MODIFY_BYTE with value of 0x20
724  * uses this struct. Modify only the specified bits
725  * (set to 1 in byteMask) to be desiredDataByte,
726  * optionally using PEC
727  *******************************************************************/
728 // Modify only the specified word bits (set to 1 in MaskData) to be DesiredData, optional PEC
729 #define RECORD_TYPE_PMBUS_MODIFY_BYTE (0x20)
730 typedef struct
731 {
734  uint8_t byteMask;
737 
738 
739 
740 
741 
742 /********************************************************************
743  * Struct: t_RECORD_PMBUS_MODIFY_WORD
744  *
745  * Overview: This record type indicates that the software should
746  * read a word, apply a mask with new data to it, and
747  * then write it back to the device optionally using PEC
748  * Note: RECORD_TYPE_PMBUS_MODIFY_WORD with value of 0x21
749  * uses this struct. Modify only the specified bits
750  * (set to 1 in wordMask) to be desiredDataWord,
751  * optionally using PEC
752  *******************************************************************/
753 #define RECORD_TYPE_PMBUS_MODIFY_WORD (0x21)
754 typedef struct
755 {
758  uint16_t wordMask;
759  uint16_t desiredDataWord;
761 
762 /********************************************************************
763  * Struct: t_RECORD_TYPE_END_OF_RECORDS
764  *
765  * Overview: This record type indicates there are no more records.
766  * Note:
767  *******************************************************************/
768 #define RECORD_TYPE_END_OF_RECORDS (0x22)
769 typedef struct
770 {
774 
775 #pragma pack(pop)
776 /////////////////////////////////////////////////////
777 // End of Record Type Definitions
778 /////////////////////////////////////////////////////
779 #endif
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
Copyright 2018(c) Analog Devices, Inc.
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
t_RECORD_VARIABLE_META_DATA metaHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
Basic Record Type Definitions.
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader
tRecordHeaderLengthAndType baseRecordHeader