board/ls2085rdb: Export functions for standalone AQ FW load apps
authorPrabhakar Kushwaha <prabhakar@freescale.com>
Sun, 28 Jun 2015 05:33:59 +0000 (11:03 +0530)
committerYork Sun <yorksun@freescale.com>
Mon, 20 Jul 2015 18:44:37 +0000 (11:44 -0700)
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>
board/freescale/ls2085ardb/eth_ls2085rdb.c
common/exports.c
include/_exports.h
include/configs/ls2085ardb.h
include/exports.h

index 60af07954f2ba3b1ee64e1b0d3df60615632312f..0a1163ab8ed15e83d35e34818efc1f138d363492 100644 (file)
 #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);
 }
index 333107c74c3c68f9244eea3cdbd44a6f0c1c2802..b4f1f7af152997607aeab793637d2a832380abab 100644 (file)
@@ -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));
index 279017e87f6fd0a2d568af05345000ddd7045d7f..74a882a680eea36404e1e1190c17437dc1f9a5a9 100644 (file)
                    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
index 891fabe78e348fae400d6cc6ca9ae6f8ae0fd876..dfd590072f2bdd7c39e76d5586cad8ae4385a542 100644 (file)
@@ -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 */
index 1a01e430bbc60cac93c7dd6e4ca05a22364bff86..a3e0469d40e8d0e5cf8d51a12ff0a03d2de6b1b0 100644 (file)
@@ -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;