Root/target/linux/orion/files/arch/arm/mach-orion5x/dt2-common.h

1#ifndef __INC_DT2_COMMON_H
2#define __INC_DT2_COMMON_H
3
4#define ATAG_MV_UBOOT 0x41000403
5
6struct tag_mv_uboot {
7    u32 uboot_version;
8    u32 tclk;
9    u32 sysclk;
10    u32 isUsbHost;
11    u32 overEthAddr;
12    u8 dt2_eeprom[256];
13};
14
15#define DT2_EEPROM_ADDR 0x50
16#define DT2_EEPROM_OFFSET 0
17#define DT2_EEPROM_LENGTH 256
18
19#define DT2_SERIAL_NUMBER_DEFAULT "run on default\0"
20#define DT2_REVISION_DEFAULT_INIT 0xFF
21#define DT2_CONFIG_FLAGS_DEFAULT 0x00
22
23#define _PACKED_ __attribute__((packed))
24
25struct DT2_EEPROM_SD_CONFIG {
26    unsigned int ram_1;
27    unsigned int ram_2;
28    unsigned int ram_3;
29    unsigned int ram_4;
30    unsigned char ram_5;
31    unsigned char ram_6;
32    unsigned short ram_7;
33    unsigned int magic_id;
34    } _PACKED_; // 24 Bytes in total
35
36struct DT2_EEPROM_FC_CONFIG {
37    unsigned char rtc_sts_mask;
38    unsigned char rtc_sts_init;
39    unsigned char rtc_int_mask;
40    unsigned char rtc_int_init;
41    unsigned char rtc_atrim_init;
42    unsigned char rtc_dtrim_init;
43    unsigned char dummy1;
44    unsigned char dummy2;
45    unsigned char dt2_config_flags; /* 0x80 to load rtc_values to RTC */
46    unsigned char dt2_revision; /* upper nibble is HW, lower nibble is FW */
47    unsigned char dt2_serial_number[16]; /* Serial number of DT-2 */
48    } _PACKED_; // 26 Bytes in total
49
50#define CFG_LOAD_RTC_VALUES 0x80
51
52struct DT2_EEPROM_GW_CONFIG {
53    unsigned int dummy1;
54    unsigned int dummy2;
55    unsigned int dummy3;
56    unsigned char dummy4;
57    unsigned char tos_video_val1;
58    unsigned char tos_video_val2;
59    unsigned char tos_voip_val;
60    unsigned char qos_igmp_cfg;
61    unsigned char num_of_ifs;
62    unsigned short vlan_ports_if[3];
63    unsigned char mac_addr[3][6];
64    } _PACKED_; // 42 Bytes in total
65
66#define _SIZE_OF_ALL_STRUCTS_ (sizeof(struct DT2_EEPROM_SD_CONFIG) + sizeof(struct DT2_EEPROM_FC_CONFIG) + sizeof(struct DT2_EEPROM_GW_CONFIG))
67
68// MV = EEPROM - SD - FC - GW - CRC
69struct DT2_EEPROM_MV_CONFIG {
70    unsigned int reg_addr[(DT2_EEPROM_LENGTH - _SIZE_OF_ALL_STRUCTS_ - sizeof(unsigned int)) / (sizeof(unsigned int) * 2)];
71    unsigned int reg_data[(DT2_EEPROM_LENGTH - _SIZE_OF_ALL_STRUCTS_ - sizeof(unsigned int)) / (sizeof(unsigned int) * 2)];
72     } _PACKED_;
73
74struct DT2_EEPROM_STRUCT {
75    struct DT2_EEPROM_MV_CONFIG mv;
76    struct DT2_EEPROM_SD_CONFIG sd;
77    struct DT2_EEPROM_FC_CONFIG fc;
78    struct DT2_EEPROM_GW_CONFIG gw;
79    unsigned int crc;
80    } _PACKED_;
81
82#endif
83

Archive Download this file



interactive