diff options
author | Prabhakar Kushwaha <prabhakar@freescale.com> | 2015-06-28 11:03:59 +0530 |
---|---|---|
committer | York Sun <yorksun@freescale.com> | 2015-07-20 11:44:37 -0700 |
commit | 95279315076c6f719be9ff0501a6a5addc061416 (patch) | |
tree | 08e327979c07e3ed17188a813100035c54941852 | |
parent | 56c57cf7e9bc760d6d02b50f8d0b384fbb58d0fb (diff) |
board/ls2085rdb: Export functions for standalone AQ FW load apps
Export functions required by Aquntia PHY firmware load application.
functions are memset, strcpy, mdelay, mdio_get_current_dev,
phy_find_by_mask, mdio_phydev_for_ethname and miiphy_set_current_dev
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
-rw-r--r-- | board/freescale/ls2085ardb/eth_ls2085rdb.c | 15 | ||||
-rw-r--r-- | common/exports.c | 7 | ||||
-rw-r--r-- | include/_exports.h | 13 | ||||
-rw-r--r-- | include/configs/ls2085ardb.h | 1 | ||||
-rw-r--r-- | include/exports.h | 13 |
5 files changed, 48 insertions, 1 deletions
diff --git a/board/freescale/ls2085ardb/eth_ls2085rdb.c b/board/freescale/ls2085ardb/eth_ls2085rdb.c index 60af07954f2..0a1163ab8ed 100644 --- a/board/freescale/ls2085ardb/eth_ls2085rdb.c +++ b/board/freescale/ls2085ardb/eth_ls2085rdb.c @@ -14,10 +14,13 @@ #include <phy.h> #include <fm_eth.h> #include <asm/io.h> +#include <exports.h> #include <asm/arch/fsl_serdes.h> #include <asm/arch-fsl-lsch3/immap_lsch3.h> #include <fsl-mc/ldpaa_wriop.h> +DECLARE_GLOBAL_DATA_PTR; + int load_firmware_cortina(struct phy_device *phy_dev) { if (phy_dev->drv->config) @@ -129,5 +132,17 @@ int board_eth_init(bd_t *bis) cpu_eth_init(bis); #endif /* CONFIG_FMAN_ENET */ +#ifdef CONFIG_PHY_AQUANTIA + /* + * Export functions to be used by AQ firmware + * upload application + */ + gd->jt->strcpy = strcpy; + gd->jt->mdelay = mdelay; + gd->jt->mdio_get_current_dev = mdio_get_current_dev; + gd->jt->phy_find_by_mask = phy_find_by_mask; + gd->jt->mdio_phydev_for_ethname = mdio_phydev_for_ethname; + gd->jt->miiphy_set_current_dev = miiphy_set_current_dev; +#endif return pci_eth_init(bis); } diff --git a/common/exports.c b/common/exports.c index 333107c74c3..b4f1f7af152 100644 --- a/common/exports.c +++ b/common/exports.c @@ -16,6 +16,13 @@ unsigned long get_version(void) #define EXPORT_FUNC(f, a, x, ...) gd->jt->x = f; +#ifndef CONFIG_PHY_AQUANTIA +# define mdio_get_current_dev dummy +# define phy_find_by_mask dummy +# define mdio_phydev_for_ethname dummy +# define miiphy_set_current_dev dummy +#endif + void jumptable_init(void) { gd->jt = malloc(sizeof(struct jt_funcs)); diff --git a/include/_exports.h b/include/_exports.h index 279017e87f6..74a882a680e 100644 --- a/include/_exports.h +++ b/include/_exports.h @@ -73,3 +73,16 @@ const char *, char **, unsigned int) EXPORT_FUNC(ustrtoull, unsigned long long, ustrtoull, const char *, char **, unsigned int) + EXPORT_FUNC(strcpy, char *, strcpy, char *dest, const char *src) + EXPORT_FUNC(mdelay, void, mdelay, unsigned long msec) +#ifdef CONFIG_PHY_AQUANTIA + EXPORT_FUNC(mdio_get_current_dev, struct mii_dev *, + mdio_get_current_dev, void) + EXPORT_FUNC(phy_find_by_mask, struct phy_device *, phy_find_by_mask, + struct mii_dev *bus, unsigned phy_mask, + phy_interface_t interface) + EXPORT_FUNC(mdio_phydev_for_ethname, struct phy_device *, + mdio_phydev_for_ethname, const char *ethname) + EXPORT_FUNC(miiphy_set_current_dev, int, miiphy_set_current_dev, + const char *devname) +#endif diff --git a/include/configs/ls2085ardb.h b/include/configs/ls2085ardb.h index 891fabe78e3..dfd590072f2 100644 --- a/include/configs/ls2085ardb.h +++ b/include/configs/ls2085ardb.h @@ -322,6 +322,7 @@ unsigned long get_board_sys_clk(void); #define CONFIG_MII #define CONFIG_ETHPRIME "DPNI1" #define CONFIG_PHY_GIGE +#define CONFIG_PHY_AQUANTIA #endif #endif /* __LS2_RDB_H */ diff --git a/include/exports.h b/include/exports.h index 1a01e430bbc..a3e0469d40e 100644 --- a/include/exports.h +++ b/include/exports.h @@ -2,6 +2,10 @@ #define __EXPORTS_H__ #ifndef __ASSEMBLY__ +#ifdef CONFIG_PHY_AQUANTIA +#include <miiphy.h> +#include <phy.h> +#endif struct spi_slave; @@ -34,6 +38,13 @@ unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base); int i2c_write (uchar, uint, int , uchar* , int); int i2c_read (uchar, uint, int , uchar* , int); #endif +#ifdef CONFIG_PHY_AQUANTIA +struct mii_dev *mdio_get_current_dev(void); +struct phy_device *phy_find_by_mask(struct mii_dev *bus, unsigned phy_mask, + phy_interface_t interface); +struct phy_device *mdio_phydev_for_ethname(const char *ethname); +int miiphy_set_current_dev(const char *devname); +#endif void app_startup(char * const *); @@ -46,7 +57,7 @@ struct jt_funcs { }; -#define XF_VERSION 7 +#define XF_VERSION 8 #if defined(CONFIG_X86) extern gd_t *global_data; |