All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] board/ls2085rdb: Export functions for standalone AQ FW load apps
@ 2015-06-28  5:33 Prabhakar Kushwaha
  0 siblings, 0 replies; only message in thread
From: Prabhakar Kushwaha @ 2015-06-28  5:33 UTC (permalink / raw)
  To: u-boot

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>
---
 board/freescale/ls2085ardb/eth_ls2085rdb.c | 15 +++++++++++++++
 common/exports.c                           |  7 +++++++
 include/_exports.h                         | 13 +++++++++++++
 include/configs/ls2085ardb.h               |  1 +
 include/exports.h                          | 13 ++++++++++++-
 5 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/board/freescale/ls2085ardb/eth_ls2085rdb.c b/board/freescale/ls2085ardb/eth_ls2085rdb.c
index 60af079..0a1163a 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 333107c..b4f1f7a 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 279017e..74a882a 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 9f0a96f..b5f2d39 100644
--- a/include/configs/ls2085ardb.h
+++ b/include/configs/ls2085ardb.h
@@ -325,6 +325,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 1a01e43..a3e0469 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;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-06-28  5:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-28  5:33 [U-Boot] [PATCH] board/ls2085rdb: Export functions for standalone AQ FW load apps Prabhakar Kushwaha

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.