[U-Boot] [PATCH v4] net/phy: Add support for CS4315/CS4340 PHY
York Sun
yorksun at freescale.com
Thu May 15 17:27:49 CEST 2014
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 at 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
More information about the U-Boot
mailing list