284 lines
9.7 KiB
Diff
284 lines
9.7 KiB
Diff
|
From 4332e5748301df5b608f894e451999f873bda307 Mon Sep 17 00:00:00 2001
|
||
|
From: Bhaskar Upadhaya <Bhaskar.Upadhaya@freescale.com>
|
||
|
Date: Wed, 1 Jun 2016 05:18:38 +0530
|
||
|
Subject: [PATCH 51/93] PPFE warnings Fix
|
||
|
|
||
|
Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@freescale.com>
|
||
|
---
|
||
|
Makefile | 1 +
|
||
|
arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 1 +
|
||
|
board/freescale/ls1012aqds/eth.c | 4 ++--
|
||
|
board/freescale/ls1012ardb/eth.c | 1 +
|
||
|
common/cmd_pfe_commands.c | 7 +++++--
|
||
|
drivers/net/pfe_eth/pfe.c | 7 ++++---
|
||
|
drivers/net/pfe_eth/pfe/pfe.h | 2 +-
|
||
|
drivers/net/pfe_eth/pfe_driver.c | 8 ++++----
|
||
|
drivers/net/pfe_eth/pfe_eth.c | 7 +------
|
||
|
drivers/net/pfe_eth/pfe_eth.h | 6 +++++-
|
||
|
drivers/net/pfe_eth/pfe_firmware.c | 2 +-
|
||
|
11 files changed, 26 insertions(+), 20 deletions(-)
|
||
|
|
||
|
diff --git a/Makefile b/Makefile
|
||
|
index 100de92..1c2818c 100644
|
||
|
--- a/Makefile
|
||
|
+++ b/Makefile
|
||
|
@@ -612,6 +612,7 @@ UBOOTINCLUDE := \
|
||
|
$(if $(CONFIG_SYS_THUMB_BUILD), $(if $(CONFIG_HAS_THUMB2),, \
|
||
|
-I$(srctree)/arch/$(ARCH)/thumb1/include),) \
|
||
|
-I$(srctree)/arch/$(ARCH)/include \
|
||
|
+ -I$(srctree)/drivers/net/pfe_eth \
|
||
|
-include $(srctree)/include/linux/kconfig.h
|
||
|
|
||
|
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
|
||
|
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
|
||
|
index 8f59577..bfd7078 100644
|
||
|
--- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
|
||
|
+++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
|
||
|
@@ -20,6 +20,7 @@
|
||
|
#include <fm_eth.h>
|
||
|
#include <fsl_debug_server.h>
|
||
|
#include <fsl-mc/fsl_mc.h>
|
||
|
+#include <pfe_eth.h>
|
||
|
#ifdef CONFIG_FSL_ESDHC
|
||
|
#include <fsl_esdhc.h>
|
||
|
#endif
|
||
|
diff --git a/board/freescale/ls1012aqds/eth.c b/board/freescale/ls1012aqds/eth.c
|
||
|
index 1bd7c9d..6fbbdbe 100644
|
||
|
--- a/board/freescale/ls1012aqds/eth.c
|
||
|
+++ b/board/freescale/ls1012aqds/eth.c
|
||
|
@@ -27,8 +27,6 @@
|
||
|
|
||
|
#define DEFAULT_PFE_MDIO_NAME "PFE_MDIO"
|
||
|
|
||
|
-static int mdio_mux[NUM_FM_PORTS];
|
||
|
-
|
||
|
static const char * const mdio_names[] = {
|
||
|
"NULL",
|
||
|
"LS1012AQDS_MDIO_RGMII",
|
||
|
@@ -85,6 +83,8 @@ static int ls1012aqds_mdio_reset(struct mii_dev *bus)
|
||
|
|
||
|
if(priv->realbus->reset)
|
||
|
return priv->realbus->reset(priv->realbus);
|
||
|
+ else
|
||
|
+ return -1;
|
||
|
}
|
||
|
|
||
|
static int ls1012aqds_mdio_init(char *realbusname, u8 muxval)
|
||
|
diff --git a/board/freescale/ls1012ardb/eth.c b/board/freescale/ls1012ardb/eth.c
|
||
|
index 638db95..7b0e450 100644
|
||
|
--- a/board/freescale/ls1012ardb/eth.c
|
||
|
+++ b/board/freescale/ls1012ardb/eth.c
|
||
|
@@ -17,6 +17,7 @@
|
||
|
|
||
|
#include "../../../drivers/net/pfe_eth/pfe_eth.h"
|
||
|
#include <asm/arch-fsl-layerscape/immap_lsch2.h>
|
||
|
+#include <i2c.h>
|
||
|
|
||
|
#define DEFAULT_PFE_MDIO_NAME "PFE_MDIO"
|
||
|
|
||
|
diff --git a/common/cmd_pfe_commands.c b/common/cmd_pfe_commands.c
|
||
|
index ca479d7..84999a6 100644
|
||
|
--- a/common/cmd_pfe_commands.c
|
||
|
+++ b/common/cmd_pfe_commands.c
|
||
|
@@ -602,7 +602,6 @@ void bmu(int id, void *base)
|
||
|
static void pfe_pe_status(int argc, char * const argv[])
|
||
|
{
|
||
|
int do_clear = 0;
|
||
|
- int j;
|
||
|
u32 id;
|
||
|
u32 dmem_addr;
|
||
|
u32 cpu_state;
|
||
|
@@ -612,9 +611,11 @@ static void pfe_pe_status(int argc, char * const argv[])
|
||
|
u32 drop;
|
||
|
char statebuf[5];
|
||
|
u32 class_debug_reg = 0;
|
||
|
+#ifdef CONFIG_PFE_WARN_WA
|
||
|
u32 debug_indicator;
|
||
|
u32 debug[16];
|
||
|
-
|
||
|
+ int j;
|
||
|
+#endif
|
||
|
if (argc == 4 && strcmp(argv[3], "clear") == 0)
|
||
|
do_clear = 1;
|
||
|
|
||
|
@@ -684,6 +685,7 @@ static void pfe_pe_status(int argc, char * const argv[])
|
||
|
statebuf, cpu_to_be32(activity_counter),
|
||
|
cpu_to_be32(rx), cpu_to_be32(tx), cpu_to_be32(drop));
|
||
|
}
|
||
|
+#ifdef CONFIG_PFE_WARN_WA
|
||
|
debug_indicator = pe_dmem_read(id, dmem_addr, 4);
|
||
|
dmem_addr += 4;
|
||
|
if (debug_indicator == cpu_to_be32('DBUG'))
|
||
|
@@ -705,6 +707,7 @@ static void pfe_pe_status(int argc, char * const argv[])
|
||
|
printf("%08x%s", cpu_to_be32(debug[j]), (j & 0x7) == 0x7 || j == last - 1 ? "\n" : " ");
|
||
|
}
|
||
|
}
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
}
|
||
|
diff --git a/drivers/net/pfe_eth/pfe.c b/drivers/net/pfe_eth/pfe.c
|
||
|
index 2c31cad..94cfe4e 100644
|
||
|
--- a/drivers/net/pfe_eth/pfe.c
|
||
|
+++ b/drivers/net/pfe_eth/pfe.c
|
||
|
@@ -368,6 +368,7 @@ void pe_lmem_write(u32 *src, u32 len, u32 offset)
|
||
|
class_bus_write(*src, PE_LMEM_BASE_ADDR + offset, (len & 0x03));
|
||
|
}
|
||
|
|
||
|
+#if !defined(CONFIG_UTIL_PE_DISABLED)
|
||
|
/** Writes UTIL program memory (DDR) from the host.
|
||
|
*
|
||
|
* @param[in] addr Address to write (virtual, must be aligned on size)
|
||
|
@@ -413,7 +414,7 @@ static void util_pmem_memcpy(void *dst, const void *src, unsigned int len)
|
||
|
if (len & 0x2)
|
||
|
util_pmem_write(*(u16 *)src, dst, len & 0x2);
|
||
|
}
|
||
|
-
|
||
|
+#endif
|
||
|
|
||
|
/** Loads an elf section into pmem
|
||
|
* Code needs to be at least 16bit aligned and only PROGBITS sections are supported
|
||
|
@@ -581,7 +582,7 @@ static int pe_load_ddr_section(int id, const void *data, Elf32_Shdr *shdr)
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
- memcpy(DDR_PFE_TO_VIRT(addr), data + offset, size);
|
||
|
+ memcpy((void *)DDR_PFE_TO_VIRT(addr), data + offset, size);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -620,7 +621,7 @@ static int pe_load_ddr_section(int id, const void *data, Elf32_Shdr *shdr)
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
- memcpy(DDR_PFE_TO_VIRT(addr), data + offset, size);
|
||
|
+ memcpy((void *)DDR_PFE_TO_VIRT(addr), data + offset, size);
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
diff --git a/drivers/net/pfe_eth/pfe/pfe.h b/drivers/net/pfe_eth/pfe/pfe.h
|
||
|
index 6994a20..9445155 100644
|
||
|
--- a/drivers/net/pfe_eth/pfe/pfe.h
|
||
|
+++ b/drivers/net/pfe_eth/pfe/pfe.h
|
||
|
@@ -50,7 +50,7 @@ extern void *ddr_base_addr;
|
||
|
#define PFE_CBUS_PHYS_BASE_ADDR 0xc0000000 /**< CBUS physical base address as seen by PE's. */
|
||
|
|
||
|
/* Host<->PFE Mapping */
|
||
|
-#define DDR_PFE_TO_VIRT(p) ((p ) + 0x80000000)
|
||
|
+#define DDR_PFE_TO_VIRT(p) ((unsigned long int)((p ) + 0x80000000))
|
||
|
#define CBUS_VIRT_TO_PFE(v) (((v) - CBUS_BASE_ADDR) + PFE_CBUS_PHYS_BASE_ADDR)
|
||
|
#define CBUS_PFE_TO_VIRT(p) (((p) - PFE_CBUS_PHYS_BASE_ADDR) + CBUS_BASE_ADDR)
|
||
|
|
||
|
diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c
|
||
|
index b06a352..2f4c385 100644
|
||
|
--- a/drivers/net/pfe_eth/pfe_driver.c
|
||
|
+++ b/drivers/net/pfe_eth/pfe_driver.c
|
||
|
@@ -87,7 +87,7 @@ int pfe_recv(unsigned int *pkt_ptr, int *phy_port)
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
- *pkt_ptr = (unsigned int )(hif_header + 1);
|
||
|
+ *pkt_ptr = (unsigned long)(hif_header + 1);
|
||
|
*phy_port = hif_header->port_no;
|
||
|
len -= sizeof(struct hif_header_s);
|
||
|
|
||
|
@@ -174,7 +174,7 @@ int pfe_send(int phy_port, void *data, int length)
|
||
|
length = MIN_PKT_SIZE;
|
||
|
}
|
||
|
|
||
|
- tx_buf_va = (u8 *)DDR_PFE_TO_VIRT(bd->data);
|
||
|
+ tx_buf_va = (void *)DDR_PFE_TO_VIRT(bd->data);
|
||
|
dprint("%s: tx_buf_va: %p, tx_buf_pa: %08x\n", __func__, tx_buf_va, bd->data);
|
||
|
|
||
|
/* Fill the gemac/phy port number to send this packet out */
|
||
|
@@ -388,7 +388,7 @@ static int hif_rx_desc_init(struct pfe *pfe)
|
||
|
ctrl = (MAX_FRAME_SIZE | BD_CTRL_DESC_EN | BD_CTRL_DIR | BD_CTRL_LIFM);
|
||
|
#endif
|
||
|
for (i=0; i < rx_desc->rxRingSize; i++) {
|
||
|
- bd_va->next = (u32 )(bd_pa + 1);
|
||
|
+ bd_va->next = (unsigned long)(bd_pa + 1);
|
||
|
bd_va->ctrl = ctrl;
|
||
|
bd_va->data = rx_buf_pa + (i * MAX_FRAME_SIZE);
|
||
|
// printf("status: %08x, ctrl: %08x, data: %08x, next: %p\n",
|
||
|
@@ -476,7 +476,7 @@ static int hif_tx_desc_init(struct pfe *pfe)
|
||
|
tx_buf_pa = pfe->ddr_phys_baseaddr + HIF_TX_PKT_DDR_BASEADDR;
|
||
|
|
||
|
for (i=0; i < tx_desc->txRingSize; i++) {
|
||
|
- bd_va->next = (u32 )(bd_pa + 1);
|
||
|
+ bd_va->next = (unsigned long)(bd_pa + 1);
|
||
|
bd_va->data = tx_buf_pa + (i * MAX_FRAME_SIZE);
|
||
|
// printf("status: %08x, ctrl: %08x, data: %08x, next: %p\n",
|
||
|
// bd_va->status, bd_va->ctrl, bd_va->data, bd_va->next);
|
||
|
diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c
|
||
|
index 4aa318d..4a935ca 100644
|
||
|
--- a/drivers/net/pfe_eth/pfe_eth.c
|
||
|
+++ b/drivers/net/pfe_eth/pfe_eth.c
|
||
|
@@ -53,10 +53,6 @@ static void ls1012a_gemac_disable(void *gemac_base)
|
||
|
writel(readl(gemac_base + EMAC_ECNTRL_REG) & ~EMAC_ECNTRL_ETHER_EN, gemac_base + EMAC_ECNTRL_REG);
|
||
|
}
|
||
|
|
||
|
-static void ls1012a_gemac_set_mode(void *gemac_base, u32 mode)
|
||
|
-{
|
||
|
-}
|
||
|
-
|
||
|
static void ls1012a_gemac_set_speed(void *gemac_base, u32 speed)
|
||
|
{
|
||
|
struct ccsr_scfg *scfg = (struct ccsr_scfg *)CONFIG_SYS_FSL_SCFG_ADDR;
|
||
|
@@ -125,7 +121,6 @@ static int ls1012a_eth_init(struct eth_device *dev, bd_t * bd)
|
||
|
struct ls1012a_eth_dev *priv = (struct ls1012a_eth_dev *)dev->priv;
|
||
|
struct gemac_s *gem = priv->gem;
|
||
|
int speed;
|
||
|
- int tmp;
|
||
|
|
||
|
/* set ethernet mac address */
|
||
|
ls1012a_gemac_set_ethaddr(gem->gemac_base, dev->enetaddr);
|
||
|
@@ -220,7 +215,7 @@ static int ls1012a_eth_recv(struct eth_device *dev)
|
||
|
}
|
||
|
|
||
|
// Pass the packet up to the protocol layers.
|
||
|
- net_process_received_packet((uchar *)pkt_buf, len);
|
||
|
+ net_process_received_packet((void *)(long int)pkt_buf, len);
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
diff --git a/drivers/net/pfe_eth/pfe_eth.h b/drivers/net/pfe_eth/pfe_eth.h
|
||
|
index c16b8c0..af6191d 100644
|
||
|
--- a/drivers/net/pfe_eth/pfe_eth.h
|
||
|
+++ b/drivers/net/pfe_eth/pfe_eth.h
|
||
|
@@ -26,6 +26,7 @@
|
||
|
|
||
|
|
||
|
#include "pfe_driver.h"
|
||
|
+#include <phy.h>
|
||
|
|
||
|
#ifndef SZ_1K
|
||
|
#define SZ_1K 1024
|
||
|
@@ -151,7 +152,10 @@ struct firmware {
|
||
|
|
||
|
int pfe_probe(struct pfe *pfe);
|
||
|
int pfe_remove(struct pfe *pfe);
|
||
|
-
|
||
|
+struct mii_dev *ls1012a_mdio_init(struct mdio_info *mdio_info);
|
||
|
+void ls1012a_set_mdio(int dev_id, struct mii_dev *bus);
|
||
|
+void ls1012a_set_phy_address_mode(int dev_id, int phy_id, int phy_mode);
|
||
|
+int ls1012a_gemac_initialize(bd_t * bis, int dev_id, char *devname);
|
||
|
|
||
|
//#define dprint(fmt, arg...) printf(fmt, ##arg)
|
||
|
#define dprint(fmt, arg...)
|
||
|
diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c
|
||
|
index 165eb3c..5957afd 100644
|
||
|
--- a/drivers/net/pfe_eth/pfe_firmware.c
|
||
|
+++ b/drivers/net/pfe_eth/pfe_firmware.c
|
||
|
@@ -45,7 +45,7 @@ int pfe_load_elf(int pe_mask, const struct firmware *fw)
|
||
|
printf("%s: no of sections: %d\n", __func__, sections);
|
||
|
|
||
|
/* Some sanity checks */
|
||
|
- if (strncmp(&elf_hdr->e_ident[EI_MAG0], ELFMAG, SELFMAG))
|
||
|
+ if (strncmp((char *)&elf_hdr->e_ident[EI_MAG0], ELFMAG, SELFMAG))
|
||
|
{
|
||
|
printf("%s: incorrect elf magic number\n", __func__);
|
||
|
return -1;
|
||
|
--
|
||
|
1.7.9.5
|
||
|
|