/[dynamips]/upstream/dynamips-0.2.7-RC2/cisco_eeprom.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /upstream/dynamips-0.2.7-RC2/cisco_eeprom.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

upstream/dynamips-0.2.6-RC2/cisco_eeprom.c revision 3 by dpavlin, Sat Oct 6 16:05:34 2007 UTC upstream/dynamips-0.2.7-RC2/cisco_eeprom.c revision 8 by dpavlin, Sat Oct 6 16:24:54 2007 UTC
# Line 1  Line 1 
1  /*    /*  
2   * Cisco C7200 (Predator) simulation platform.   * Cisco router simulation platform.
3   * Copyright (c) 2006 Christophe Fillot.  All rights reserved.   * Copyright (c) 2006 Christophe Fillot.  All rights reserved.
4   *   *
5   * Cisco EEPROM manipulation functions.   * Cisco EEPROM manipulation functions.
# Line 18  Line 18 
18  /* ====================================================================== */  /* ====================================================================== */
19  /* NM-1E: 1 Ethernet Port Network Module EEPROM                           */  /* NM-1E: 1 Ethernet Port Network Module EEPROM                           */
20  /* ====================================================================== */  /* ====================================================================== */
21  static const m_uint16_t eeprom_nm_1e_data[16] = {  static m_uint16_t eeprom_nm_1e_data[] = {
22     0x0143, 0x0100, 0x0075, 0xCD81, 0x500D, 0xA201, 0x0000, 0x0000,     0x0143, 0x0100, 0x0075, 0xCD81, 0x500D, 0xA201, 0x0000, 0x0000,
23     0x5800, 0x0000, 0x9803, 0x2000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5800, 0x0000, 0x9803, 0x2000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
24  };  };
# Line 26  static const m_uint16_t eeprom_nm_1e_dat Line 26  static const m_uint16_t eeprom_nm_1e_dat
26  /* ====================================================================== */  /* ====================================================================== */
27  /* NM-4E: 4 Ethernet Port Network Module EEPROM                           */  /* NM-4E: 4 Ethernet Port Network Module EEPROM                           */
28  /* ====================================================================== */  /* ====================================================================== */
29  static const m_uint16_t eeprom_nm_4e_data[16] = {  static m_uint16_t eeprom_nm_4e_data[] = {
30     0x0142, 0x0100, 0x0075, 0xCD81, 0x500D, 0xA201, 0x0000, 0x0000,     0x0142, 0x0100, 0x0075, 0xCD81, 0x500D, 0xA201, 0x0000, 0x0000,
31     0x5800, 0x0000, 0x9803, 0x2000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5800, 0x0000, 0x9803, 0x2000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
32  };  };
# Line 34  static const m_uint16_t eeprom_nm_4e_dat Line 34  static const m_uint16_t eeprom_nm_4e_dat
34  /* ====================================================================== */  /* ====================================================================== */
35  /* NM-1FE-TX: 1 FastEthernet Port Network Module EEPROM                   */  /* NM-1FE-TX: 1 FastEthernet Port Network Module EEPROM                   */
36  /* ====================================================================== */  /* ====================================================================== */
37  static const m_uint16_t eeprom_nm_1fe_tx_data[16] = {  static m_uint16_t eeprom_nm_1fe_tx_data[] = {
38     0x0144, 0x0100, 0x0075, 0xCD81, 0x500D, 0xA201, 0x0000, 0x0000,     0x0144, 0x0100, 0x0075, 0xCD81, 0x500D, 0xA201, 0x0000, 0x0000,
39     0x5800, 0x0000, 0x9803, 0x2000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5800, 0x0000, 0x9803, 0x2000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
40  };  };
# Line 56  static m_uint16_t eeprom_nm_16esw_data[] Line 56  static m_uint16_t eeprom_nm_16esw_data[]
56  /* ====================================================================== */  /* ====================================================================== */
57  /* NM-4T: 4 Serial Network Module EEPROM                                  */  /* NM-4T: 4 Serial Network Module EEPROM                                  */
58  /* ====================================================================== */  /* ====================================================================== */
59  static m_uint16_t eeprom_nm_4t_data[64] = {  static m_uint16_t eeprom_nm_4t_data[] = {
60     0x0154, 0x0101, 0x009D, 0x2D64, 0x5009, 0x0A02, 0x0000, 0x0000,     0x0154, 0x0101, 0x009D, 0x2D64, 0x5009, 0x0A02, 0x0000, 0x0000,
61     0x5800, 0x0000, 0x9811, 0x0300, 0x0005, 0xFFFF, 0xFFFF, 0xFFFF,     0x5800, 0x0000, 0x9811, 0x0300, 0x0005, 0xFFFF, 0xFFFF, 0xFFFF,
62  };  };
63    
64  /* ====================================================================== */  /* ====================================================================== */
65    /* NM-2E2W: 2 Ethernet ports with 2 WIC slots Module EEPROM               */
66    /* ====================================================================== */
67    static m_uint16_t eeprom_nm_2e2w_data[] = {
68       0x011E, 0x0102, 0x009A, 0xEBB1, 0x5004, 0x9305, 0x0000, 0x0000,
69       0x5000, 0x0000, 0x9808, 0x1217, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
70    };
71    
72    /* ====================================================================== */
73    /* NM-2W: 2 WIC slots Module EEPROM                                       */
74    /* ====================================================================== */
75    static m_uint16_t eeprom_nm_2w_data[] = {
76       0x04FF, 0x4000, 0xD641, 0x0100, 0xC046, 0x0320, 0x0012, 0xBF01,
77       0x4247, 0x3080, 0x0000, 0x0000, 0x0205, 0xC18B, 0x4A41, 0x4430,
78       0x3730, 0x3330, 0x375A, 0x3203, 0x0081, 0x0000, 0x0000, 0x0400,
79       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
80       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
81       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
82       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
83       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
84    };
85    
86    /* ====================================================================== */
87    /* NM-1A-OC3MM: 1 ATM OC3 port Module EEPROM                              */
88    /* ====================================================================== */
89    static m_uint16_t eeprom_nm_1a_oc3mm_data[] = {
90       0x019A, 0x0100, 0x015B, 0x41D9, 0x500E, 0x7402, 0x0000, 0x0000,
91       0x7800, 0x0000, 0x0011, 0x2117, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
92    };
93    
94    /* ====================================================================== */
95  /* NM EEPROMs                                                             */  /* NM EEPROMs                                                             */
96  /* ====================================================================== */  /* ====================================================================== */
97    
98  static const struct cisco_eeprom eeprom_nm_array[] = {  static const struct cisco_eeprom eeprom_nm_array[] = {
99     { "NM-1E", (m_uint16_t *)eeprom_nm_1e_data, sizeof(eeprom_nm_1e_data)/2 },     { "NM-1E", eeprom_nm_1e_data, sizeof(eeprom_nm_1e_data)/2 },
100     { "NM-4E", (m_uint16_t *)eeprom_nm_4e_data, sizeof(eeprom_nm_4e_data)/2 },     { "NM-4E", eeprom_nm_4e_data, sizeof(eeprom_nm_4e_data)/2 },
101     { "NM-1FE-TX", (m_uint16_t *)eeprom_nm_1fe_tx_data,     { "NM-1FE-TX", eeprom_nm_1fe_tx_data, sizeof(eeprom_nm_1fe_tx_data)/2 },
102       sizeof(eeprom_nm_1fe_tx_data)/2 },     { "NM-16ESW", eeprom_nm_16esw_data, sizeof(eeprom_nm_16esw_data)/2 },
    { "NM-16ESW", (m_uint16_t *)eeprom_nm_16esw_data,  
      sizeof(eeprom_nm_16esw_data)/2 },  
103     { "NM-4T", eeprom_nm_4t_data, sizeof(eeprom_nm_4t_data)/2 },     { "NM-4T", eeprom_nm_4t_data, sizeof(eeprom_nm_4t_data)/2 },
104       { "NM-2E2W", eeprom_nm_2e2w_data, sizeof(eeprom_nm_2e2w_data)/2 },
105       { "NM-2W", eeprom_nm_2w_data, sizeof(eeprom_nm_2w_data)/2 },
106       { "NM-1A-OC3MM", eeprom_nm_1a_oc3mm_data,
107         sizeof(eeprom_nm_1a_oc3mm_data)/2 },
108     { NULL, NULL, 0 },     { NULL, NULL, 0 },
109  };  };
110    
# Line 85  const struct cisco_eeprom *cisco_eeprom_ Line 117  const struct cisco_eeprom *cisco_eeprom_
117  /* ====================================================================== */  /* ====================================================================== */
118  /* PA-FE-TX: 1 FastEthernet Port Adapter EEPROM                           */  /* PA-FE-TX: 1 FastEthernet Port Adapter EEPROM                           */
119  /* ====================================================================== */  /* ====================================================================== */
120  static const m_uint16_t eeprom_pa_fe_tx_data[16] = {  static m_uint16_t eeprom_pa_fe_tx_data[] = {
121     0x0111, 0x0102, 0xffff, 0xffff, 0x4906, 0x9804, 0x0000, 0x0000,     0x0111, 0x0102, 0xffff, 0xffff, 0x4906, 0x9804, 0x0000, 0x0000,
122     0x6000, 0x0000, 0x9812, 0x1700, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x6000, 0x0000, 0x9812, 0x1700, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
123  };  };
124    
125  /* ====================================================================== */  /* ====================================================================== */
126    /* PA-2FE-TX: 2 FastEthernet Port Adapter EEPROM                          */
127    /* ====================================================================== */
128    static m_uint16_t eeprom_pa_2fe_tx_data[] = {
129       0x04FF, 0x4002, 0x2441, 0x0100, 0xC18B, 0x5858, 0x5830, 0x3030,
130       0x3030, 0x3030, 0x3082, 0x4915, 0x2C04, 0x4241, 0x3003, 0x0081,
131       0x0000, 0x0000, 0x0400, 0x8000, 0x0000, 0x00CB, 0x9450, 0x412D,
132       0x3246, 0x452D, 0x4658, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020,
133       0x20C0, 0x4603, 0x2000, 0x20A0, 0x04FF, 0xFFFF, 0xFFFF, 0xFFFF,
134       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
135       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
136       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
137    };
138    
139    /* ====================================================================== */
140    /* PA-GE: 1 GigabitEthernet Port Adapter EEPROM                           */
141    /* ====================================================================== */
142    static m_uint16_t eeprom_pa_ge_data[] = {
143       0x0198, 0x0100, 0x0000, 0x0000, 0x000C, 0x4803, 0x0000, 0x0000,
144       0x5000, 0x0000, 0x9906, 0x0300, 0x0001, 0xFFFF, 0xFFFF, 0xFFFF,
145    };
146    
147    /* ====================================================================== */
148  /* PA-4E: 4 Ethernet Port Adapter EEPROM                                  */  /* PA-4E: 4 Ethernet Port Adapter EEPROM                                  */
149  /* ====================================================================== */  /* ====================================================================== */
150  static const m_uint16_t eeprom_pa_4e_data[16] = {  static m_uint16_t eeprom_pa_4e_data[] = {
151     0x0102, 0x010E, 0xFFFF, 0xFFFF, 0x4906, 0x1404, 0x0000, 0x0000,     0x0102, 0x010E, 0xFFFF, 0xFFFF, 0x4906, 0x1404, 0x0000, 0x0000,
152     0x5000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
153  };  };
# Line 101  static const m_uint16_t eeprom_pa_4e_dat Line 155  static const m_uint16_t eeprom_pa_4e_dat
155  /* ====================================================================== */  /* ====================================================================== */
156  /* PA-8E: 8 Ethernet Port Adapter EEPROM                                  */  /* PA-8E: 8 Ethernet Port Adapter EEPROM                                  */
157  /* ====================================================================== */  /* ====================================================================== */
158  static const m_uint16_t eeprom_pa_8e_data[16] = {  static m_uint16_t eeprom_pa_8e_data[] = {
159     0x0101, 0x010E, 0xFFFF, 0xFFFF, 0x4906, 0x1404, 0x0000, 0x0000,     0x0101, 0x010E, 0xFFFF, 0xFFFF, 0x4906, 0x1404, 0x0000, 0x0000,
160     0x5000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
161  };  };
# Line 109  static const m_uint16_t eeprom_pa_8e_dat Line 163  static const m_uint16_t eeprom_pa_8e_dat
163  /* ====================================================================== */  /* ====================================================================== */
164  /* PA-4T+: 4 Serial Port Adapter EEPROM                                   */  /* PA-4T+: 4 Serial Port Adapter EEPROM                                   */
165  /* ====================================================================== */  /* ====================================================================== */
166  static m_uint16_t eeprom_pa_4t_data[64] = {  static m_uint16_t eeprom_pa_4t_data[] = {
167     0x010C, 0x010F, 0xffff, 0xffff, 0x4906, 0x2E07, 0x0000, 0x0000,     0x010C, 0x010F, 0xffff, 0xffff, 0x4906, 0x2E07, 0x0000, 0x0000,
168     0x5000, 0x0000, 0x0010, 0x2400, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5000, 0x0000, 0x0010, 0x2400, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
169  };  };
# Line 117  static m_uint16_t eeprom_pa_4t_data[64] Line 171  static m_uint16_t eeprom_pa_4t_data[64]
171  /* ====================================================================== */  /* ====================================================================== */
172  /* PA-8T: 8 Serial Port Adapter EEPROM                                    */  /* PA-8T: 8 Serial Port Adapter EEPROM                                    */
173  /* ====================================================================== */  /* ====================================================================== */
174  static m_uint16_t eeprom_pa_8t_data[64] = {  static m_uint16_t eeprom_pa_8t_data[] = {
175     0x010E, 0x010F, 0xffff, 0xffff, 0x4906, 0x2E07, 0x0000, 0x0000,     0x010E, 0x010F, 0xffff, 0xffff, 0x4906, 0x2E07, 0x0000, 0x0000,
176     0x5000, 0x0000, 0x0010, 0x2400, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5000, 0x0000, 0x0010, 0x2400, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
177  };  };
# Line 125  static m_uint16_t eeprom_pa_8t_data[64] Line 179  static m_uint16_t eeprom_pa_8t_data[64]
179  /* ====================================================================== */  /* ====================================================================== */
180  /* PA-A1: 1 ATM Port Adapter EEPROM                                       */  /* PA-A1: 1 ATM Port Adapter EEPROM                                       */
181  /* ====================================================================== */  /* ====================================================================== */
182  static const m_uint16_t eeprom_pa_a1_data[64] = {  static m_uint16_t eeprom_pa_a1_data[] = {
183     0x0117, 0x010F, 0xffff, 0xffff, 0x4906, 0x2E07, 0x0000, 0x0000,     0x0117, 0x010F, 0xffff, 0xffff, 0x4906, 0x2E07, 0x0000, 0x0000,
184     0x5000, 0x0000, 0x0010, 0x2400, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,     0x5000, 0x0000, 0x0010, 0x2400, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
185  };  };
# Line 133  static const m_uint16_t eeprom_pa_a1_dat Line 187  static const m_uint16_t eeprom_pa_a1_dat
187  /* ====================================================================== */  /* ====================================================================== */
188  /* PA-POS-OC3: 1 POS Port Adapter EEPROM                                   */  /* PA-POS-OC3: 1 POS Port Adapter EEPROM                                   */
189  /* ====================================================================== */  /* ====================================================================== */
190  static const m_uint16_t eeprom_pa_pos_oc3_data[64] = {  static m_uint16_t eeprom_pa_pos_oc3_data[] = {
191     0x0196, 0x0202, 0xffff, 0xffff, 0x490C, 0x7806, 0x0000, 0x0000,     0x0196, 0x0202, 0xffff, 0xffff, 0x490C, 0x7806, 0x0000, 0x0000,
192     0x5000, 0x0000, 0x0208, 0x1900, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,     0x5000, 0x0000, 0x0208, 0x1900, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
193  };  };
# Line 141  static const m_uint16_t eeprom_pa_pos_oc Line 195  static const m_uint16_t eeprom_pa_pos_oc
195  /* ====================================================================== */  /* ====================================================================== */
196  /* PA-4B: 4 BRI Port Adapter EEPROM                                       */  /* PA-4B: 4 BRI Port Adapter EEPROM                                       */
197  /* ====================================================================== */  /* ====================================================================== */
198  static const m_uint16_t eeprom_pa_4b_data[64] = {  static m_uint16_t eeprom_pa_4b_data[] = {
199     0x013D, 0x0202, 0xffff, 0xffff, 0x490C, 0x7806, 0x0000, 0x0000,     0x013D, 0x0202, 0xffff, 0xffff, 0x490C, 0x7806, 0x0000, 0x0000,
200     0x5000, 0x0000, 0x0208, 0x1900, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,     0x5000, 0x0000, 0x0208, 0x1900, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
201  };  };
202    
203  /* ====================================================================== */  /* ====================================================================== */
204    /* PA-MC-8TE1                                                             */
205    /* ====================================================================== */
206    static m_uint16_t eeprom_pa_mc8te1_data[] = {
207       0x04FF, 0x4003, 0x4E41, 0x0200, 0xC18B, 0x4A41, 0x4530, 0x3834,
208       0x3159, 0x3251, 0x3082, 0x491D, 0x7D02, 0x4241, 0x3003, 0x0081,
209       0x0000, 0x0000, 0x0400, 0x8000, 0x0127, 0x9BCB, 0x9450, 0x412D,
210       0x4D43, 0x2D38, 0x5445, 0x312B, 0x2020, 0x2020, 0x2020, 0x2020,
211       0x20C0, 0x4603, 0x2000, 0x4BBB, 0x02FF, 0xFFFF, 0xFFFF, 0xFFFF,
212       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
213       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
214       0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
215    };
216    
217    /* ====================================================================== */
218  /* PA EEPROMs                                                             */  /* PA EEPROMs                                                             */
219  /* ====================================================================== */  /* ====================================================================== */
220    
221  static const struct cisco_eeprom eeprom_pa_array[] = {  static const struct cisco_eeprom eeprom_pa_array[] = {
222     { "PA-FE-TX", (m_uint16_t *)eeprom_pa_fe_tx_data,     { "PA-FE-TX", eeprom_pa_fe_tx_data, sizeof(eeprom_pa_fe_tx_data)/2 },
223       sizeof(eeprom_pa_fe_tx_data)/2 },     { "PA-2FE-TX", eeprom_pa_2fe_tx_data, sizeof(eeprom_pa_2fe_tx_data)/2 },
224     { "PA-4E", (m_uint16_t *)eeprom_pa_4e_data, sizeof(eeprom_pa_4e_data)/2 },     { "PA-GE", eeprom_pa_ge_data, sizeof(eeprom_pa_ge_data)/2 },
225     { "PA-8E", (m_uint16_t *)eeprom_pa_8e_data, sizeof(eeprom_pa_8e_data)/2 },     { "PA-4E", eeprom_pa_4e_data, sizeof(eeprom_pa_4e_data)/2 },
226       { "PA-8E", eeprom_pa_8e_data, sizeof(eeprom_pa_8e_data)/2 },
227     { "PA-4T+", eeprom_pa_4t_data, sizeof(eeprom_pa_4t_data)/2 },     { "PA-4T+", eeprom_pa_4t_data, sizeof(eeprom_pa_4t_data)/2 },
228     { "PA-8T", eeprom_pa_8t_data, sizeof(eeprom_pa_8t_data)/2 },     { "PA-8T", eeprom_pa_8t_data, sizeof(eeprom_pa_8t_data)/2 },
229     { "PA-A1", (m_uint16_t *)eeprom_pa_a1_data, sizeof(eeprom_pa_a1_data)/2 },     { "PA-A1", eeprom_pa_a1_data, sizeof(eeprom_pa_a1_data)/2 },
230     { "PA-POS-OC3", (m_uint16_t *)eeprom_pa_pos_oc3_data,     { "PA-POS-OC3", eeprom_pa_pos_oc3_data, sizeof(eeprom_pa_pos_oc3_data)/2 },
231       sizeof(eeprom_pa_pos_oc3_data)/2 },     { "PA-4B", eeprom_pa_4b_data, sizeof(eeprom_pa_4b_data)/2 },
232     { "PA-4B", (m_uint16_t *)eeprom_pa_4b_data, sizeof(eeprom_pa_4b_data)/2 },     { "PA-MC-8TE1", eeprom_pa_mc8te1_data, sizeof(eeprom_pa_mc8te1_data)/2 },
233     { NULL, NULL, 0 },     { NULL, NULL, 0 },
234  };  };
235    

Legend:
Removed from v.3  
changed lines
  Added in v.8

  ViewVC Help
Powered by ViewVC 1.1.26