From mboxrd@z Thu Jan 1 00:00:00 1970 From: York Sun Date: Thu, 15 May 2014 10:27:49 -0500 Subject: [U-Boot] [PATCH v4] net/phy: Add support for CS4315/CS4340 PHY In-Reply-To: <1397204058-7568-2-git-send-email-Shengzhou.Liu@freescale.com> References: <1397204058-7568-1-git-send-email-Shengzhou.Liu@freescale.com> <1397204058-7568-2-git-send-email-Shengzhou.Liu@freescale.com> Message-ID: <5374DCF5.1060406@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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 > > +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