[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