2 * Copyright (C) 1997-2008 Alacritech, Inc. All rights reserved
6 * This file PHY microcode and register initialization data.
9 /**********************************************************************
12 * The following contains both PHY microcode and PHY register
13 * initialization data. It is specific to both the PHY and the
14 * type of transceiver.
16 **********************************************************************/
19 * Download for AEL2005C PHY with SR/LR transceiver (10GBASE-SR or 10GBASE-LR)
21 static struct PHY_UCODE PhyUcode[] = {
23 * NOTE: An address of 0 is a special case. When the download routine
24 * sees an address of 0, it does not write to the PHY. Instead, it
25 * delays the download. The length of the delay (in ms) is given in
28 * Delays are required at certain points.
32 * Platform-specific MDIO Patches:
33 * (include patches for 10G RX polarity flip, 50Mhz Synth, etc)
36 {0xc017, 0xfeb0}, /* flip RX_LOS polarity (mandatory */
37 /* patch for SFP+ applications) */
38 {0xC001, 0x0428}, /* flip RX serial polarity */
40 {0xc013, 0xf341}, /* invert lxmit clock (mandatory patch) */
41 {0xc210, 0x8000}, /* reset datapath (mandatory patch) */
42 {0xc210, 0x8100}, /* reset datapath (mandatory patch) */
43 {0xc210, 0x8000}, /* reset datapath (mandatory patch) */
44 {0xc210, 0x0000}, /* reset datapath (mandatory patch) */
45 {0x0000, 0x0032}, /* wait for 50ms for datapath reset to */
46 /* complete. (mandatory patch) */
48 /* Configure the LED's */
49 {0xc214, 0x0099}, /* configure the LED drivers */
50 {0xc216, 0x5f5f}, /* configure the Activity LED */
51 {0xc217, 0x33ff}, /* configure the Link LED */
53 /* Transceiver-specific MDIO Patches: */
54 {0xc010, 0x448a}, /* (bit 14) mask out high BER input from the */
55 /* LOS signal in 1.000A */
56 /* (mandatory patch for SR code) */
57 {0xc003, 0x0181}, /* (bit 7) enable the CDR inc setting in */
58 /* 1.C005 (mandatory patch for SR code) */
60 /* Transceiver-specific Microcontroller Initialization: */
61 {0xc04a, 0x5200}, /* activate microcontroller and pause */
62 {0x0000, 0x0032}, /* wait 50ms for microcontroller before */
63 /* writing in code. */
65 /* code block starts here: */
342 /* end of code block */
344 /* Unpause the microcontroller to start program */
347 {0x0000, 0x000A}, /* wait 10ms just to be safe */
348 {0xffff, 0xffff} /* table terminator */