no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
axi_sysid.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef AXI_SYSID_H_
34#define AXI_SYSOD_H_
35
36#include <stdint.h>
37#include <stdio.h>
38
39#define AXI_SYSID_VER_1_00_A 0x10061
40#define AXI_SYSID_VER_1_01_A 0x10161
41
42#define AXI_SYSID_WORD_SIZE sizeof(uint32_t)
43#define AXI_SYSID_REG_ROM_ADDR_WIDTH 0x40
44
45#define AXI_SYSID_REG_VERSION 0x0000
46#define AXI_SYSID_REG_PERIPH_ID 0x0004
47#define AXI_SYSID_REG_SCRATCH 0x0008
48#define AXI_SYSID_REG_ID 0x000c
49#define AXI_SYSID_REG_SYSROM_START 0x0800
50#define AXI_SYSID_REG_PRROM_START 0x1000
51
52#ifndef AXI_PCORE_VER_MAJOR
53#define AXI_PCORE_VER_MAJOR(version) (version >> 16)
54#endif
55#ifndef AXI_PCORE_VER_MINOR
56#define AXI_PCORE_VER_MINOR(version) ((version >> 8) & 0xff)
57#endif
58#ifndef AXI_PCORE_VER_LETTER
59#define AXI_PCORE_VER_LETTER(version) (version & 0xff)
60#endif
61
66
67struct axi_sysid {
68 uint32_t base;
70 uint32_t size;
71 uint32_t *mem;
72};
73
74struct __attribute__((__packed__)) sysid_header_v1 {
75 uint32_t version;
81 uint32_t padding[9];
82 uint32_t crc;
83};
84
85struct __attribute__((__packed__)) build_info_header_v1 {
86 int8_t git_hash[44];
87 int8_t git_clean_chk[4];
88 int8_t vadj_chk[4];
89 int8_t epoch[12];
90 uint8_t padding[4];
91 uint32_t crc;
92};
93
94struct __attribute__((__packed__)) build_info_header_v1_1 {
95 int8_t git_branch[28];
96 int8_t git_hash[44];
97 int8_t git_clean_chk[4];
98 int8_t vadj_chk[4];
99 int8_t epoch[12];
100 uint8_t padding[4];
101 uint32_t crc;
102};
103
105 uint32_t version;
107};
108
110 uint32_t base;
111};
112
113// Initialization function for AXI_SYID.
114int32_t axi_sysid_init(struct axi_sysid **sysid_core,
115 const struct axi_sysid_init_param *init);
116// Remove the SYSID instance.
117int32_t axi_sysid_remove(struct axi_sysid *sysid);
118// Get the board listed in SYSID.
119char *axi_sysid_get_fpga_board(struct axi_sysid *sysid);
120
121#endif
int32_t axi_sysid_init(struct axi_sysid **sysid_core, const struct axi_sysid_init_param *init)
Definition axi_sysid.c:211
sysid_header_version
Definition axi_sysid.h:62
@ AXI_SYSID_HEADER_V2
Definition axi_sysid.h:64
@ AXI_SYSID_HEADER_V1
Definition axi_sysid.h:63
char * axi_sysid_get_fpga_board(struct axi_sysid *sysid)
Definition axi_sysid.c:286
int32_t axi_sysid_remove(struct axi_sysid *sysid)
Definition axi_sysid.c:269
Definition axi_sysid.h:104
uint32_t version
Definition axi_sysid.h:105
uint32_t header_version
Definition axi_sysid.h:106
Definition axi_sysid.h:109
uint32_t base
Definition axi_sysid.h:110
Definition axi_sysid.h:67
uint32_t base
Definition axi_sysid.h:68
uint32_t * mem
Definition axi_sysid.h:71
uint32_t size
Definition axi_sysid.h:70
struct axi_sysid_core_info * info
Definition axi_sysid.h:69
Definition axi_sysid.h:94
int8_t git_hash[44]
Definition axi_sysid.h:96
uint8_t padding[4]
Definition axi_sysid.h:100
uint32_t crc
Definition axi_sysid.h:101
int8_t git_branch[28]
Definition axi_sysid.h:95
int8_t vadj_chk[4]
Definition axi_sysid.h:98
int8_t epoch[12]
Definition axi_sysid.h:99
int8_t git_clean_chk[4]
Definition axi_sysid.h:97
Definition axi_sysid.h:85
int8_t epoch[12]
Definition axi_sysid.h:89
uint32_t crc
Definition axi_sysid.h:91
int8_t vadj_chk[4]
Definition axi_sysid.h:88
int8_t git_hash[44]
Definition axi_sysid.h:86
uint8_t padding[4]
Definition axi_sysid.h:90
int8_t git_clean_chk[4]
Definition axi_sysid.h:87
Definition axi_sysid.h:74
uint32_t version
Definition axi_sysid.h:75
uint32_t custom_info_offs
Definition axi_sysid.h:79
uint32_t product_info_offs
Definition axi_sysid.h:78
uint32_t pr_custom_info_offs
Definition axi_sysid.h:80
uint32_t padding[9]
Definition axi_sysid.h:81
uint32_t build_info_offs
Definition axi_sysid.h:76
uint32_t board_info_offs
Definition axi_sysid.h:77
uint32_t crc
Definition axi_sysid.h:82