
On 04/11/2014 03:14 AM, Shengzhou Liu wrote:
Add support for Cortina CS4315/CS4340 10G PHY.
- This driver loads CS43xx firmware to initialize Cortina PHY.
- To define macro CONFIG_PHY_CORTINA will enable this driver.
- Cortina PHY has non-standard offset of PHY ID registers, so define own get_phy_id().
Signed-off-by: Shengzhou Liu Shengzhou.Liu@freescale.com
v4: add support for loading cortina phy ucode from NAND/SPI/SD/REMOTE v3: move devad as '0' in cortina.c instead of in phy.c v2: no change.
drivers/net/phy/Makefile | 1 + drivers/net/phy/cortina.c | 320 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/net/phy/phy.c | 3 + include/cortina.h | 73 +++++++++++ include/phy.h | 2 + 5 files changed, 399 insertions(+) create mode 100644 drivers/net/phy/cortina.c create mode 100644 include/cortina.h
<snip>
+void cs4340_upload_firmware(struct phy_device *phydev) +{
- char line_temp[0x50] = {0};
- char reg_addr[0x50] = {0};
- char reg_data[0x50] = {0};
- int i = 0;
- int line_cnt = 0;
- int column_cnt = 0;
- struct cortina_reg_config fw_temp;
- char *addr = NULL;
+#if defined(CONFIG_SYS_CORTINA_FW_IN_NOR) || \
- defined(CONFIG_SYS_CORTINA_FW_IN_REMOTE)
- addr = (char *)CONFIG_CORTINA_FW_ADDR;
+#elif defined(CONFIG_SYS_CORTINA_FW_IN_NAND)
- size_t fw_length = CONFIG_CORTINA_FW_LENGTH;
- addr = malloc(CONFIG_CORTINA_FW_LENGTH);
- rc = nand_read(&nand_info[0], (loff_t)CONFIG_CORTINA_FW_ADDR,
&fw_length, (u_char *)addr);
- if (rc == -EUCLEAN) {
printf("NAND read of Cortina firmware at 0x%x failed %d\n",
CONFIG_CORTINA_FW_ADDR, rc);
- }
Where is "rc" declared?
York