layerscape: add 64b/32b target for ls1012ardb device
[openwrt/openwrt.git] / package / boot / uboot-layerscape / patches / 0051-PPFE-warnings-Fix.patch
1 From 4332e5748301df5b608f894e451999f873bda307 Mon Sep 17 00:00:00 2001
2 From: Bhaskar Upadhaya <Bhaskar.Upadhaya@freescale.com>
3 Date: Wed, 1 Jun 2016 05:18:38 +0530
4 Subject: [PATCH 51/93] PPFE warnings Fix
5
6 Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@freescale.com>
7 ---
8 Makefile | 1 +
9 arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 1 +
10 board/freescale/ls1012aqds/eth.c | 4 ++--
11 board/freescale/ls1012ardb/eth.c | 1 +
12 common/cmd_pfe_commands.c | 7 +++++--
13 drivers/net/pfe_eth/pfe.c | 7 ++++---
14 drivers/net/pfe_eth/pfe/pfe.h | 2 +-
15 drivers/net/pfe_eth/pfe_driver.c | 8 ++++----
16 drivers/net/pfe_eth/pfe_eth.c | 7 +------
17 drivers/net/pfe_eth/pfe_eth.h | 6 +++++-
18 drivers/net/pfe_eth/pfe_firmware.c | 2 +-
19 11 files changed, 26 insertions(+), 20 deletions(-)
20
21 diff --git a/Makefile b/Makefile
22 index 100de92..1c2818c 100644
23 --- a/Makefile
24 +++ b/Makefile
25 @@ -612,6 +612,7 @@ UBOOTINCLUDE := \
26 $(if $(CONFIG_SYS_THUMB_BUILD), $(if $(CONFIG_HAS_THUMB2),, \
27 -I$(srctree)/arch/$(ARCH)/thumb1/include),) \
28 -I$(srctree)/arch/$(ARCH)/include \
29 + -I$(srctree)/drivers/net/pfe_eth \
30 -include $(srctree)/include/linux/kconfig.h
31
32 NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
33 diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
34 index 8f59577..bfd7078 100644
35 --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
36 +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
37 @@ -20,6 +20,7 @@
38 #include <fm_eth.h>
39 #include <fsl_debug_server.h>
40 #include <fsl-mc/fsl_mc.h>
41 +#include <pfe_eth.h>
42 #ifdef CONFIG_FSL_ESDHC
43 #include <fsl_esdhc.h>
44 #endif
45 diff --git a/board/freescale/ls1012aqds/eth.c b/board/freescale/ls1012aqds/eth.c
46 index 1bd7c9d..6fbbdbe 100644
47 --- a/board/freescale/ls1012aqds/eth.c
48 +++ b/board/freescale/ls1012aqds/eth.c
49 @@ -27,8 +27,6 @@
50
51 #define DEFAULT_PFE_MDIO_NAME "PFE_MDIO"
52
53 -static int mdio_mux[NUM_FM_PORTS];
54 -
55 static const char * const mdio_names[] = {
56 "NULL",
57 "LS1012AQDS_MDIO_RGMII",
58 @@ -85,6 +83,8 @@ static int ls1012aqds_mdio_reset(struct mii_dev *bus)
59
60 if(priv->realbus->reset)
61 return priv->realbus->reset(priv->realbus);
62 + else
63 + return -1;
64 }
65
66 static int ls1012aqds_mdio_init(char *realbusname, u8 muxval)
67 diff --git a/board/freescale/ls1012ardb/eth.c b/board/freescale/ls1012ardb/eth.c
68 index 638db95..7b0e450 100644
69 --- a/board/freescale/ls1012ardb/eth.c
70 +++ b/board/freescale/ls1012ardb/eth.c
71 @@ -17,6 +17,7 @@
72
73 #include "../../../drivers/net/pfe_eth/pfe_eth.h"
74 #include <asm/arch-fsl-layerscape/immap_lsch2.h>
75 +#include <i2c.h>
76
77 #define DEFAULT_PFE_MDIO_NAME "PFE_MDIO"
78
79 diff --git a/common/cmd_pfe_commands.c b/common/cmd_pfe_commands.c
80 index ca479d7..84999a6 100644
81 --- a/common/cmd_pfe_commands.c
82 +++ b/common/cmd_pfe_commands.c
83 @@ -602,7 +602,6 @@ void bmu(int id, void *base)
84 static void pfe_pe_status(int argc, char * const argv[])
85 {
86 int do_clear = 0;
87 - int j;
88 u32 id;
89 u32 dmem_addr;
90 u32 cpu_state;
91 @@ -612,9 +611,11 @@ static void pfe_pe_status(int argc, char * const argv[])
92 u32 drop;
93 char statebuf[5];
94 u32 class_debug_reg = 0;
95 +#ifdef CONFIG_PFE_WARN_WA
96 u32 debug_indicator;
97 u32 debug[16];
98 -
99 + int j;
100 +#endif
101 if (argc == 4 && strcmp(argv[3], "clear") == 0)
102 do_clear = 1;
103
104 @@ -684,6 +685,7 @@ static void pfe_pe_status(int argc, char * const argv[])
105 statebuf, cpu_to_be32(activity_counter),
106 cpu_to_be32(rx), cpu_to_be32(tx), cpu_to_be32(drop));
107 }
108 +#ifdef CONFIG_PFE_WARN_WA
109 debug_indicator = pe_dmem_read(id, dmem_addr, 4);
110 dmem_addr += 4;
111 if (debug_indicator == cpu_to_be32('DBUG'))
112 @@ -705,6 +707,7 @@ static void pfe_pe_status(int argc, char * const argv[])
113 printf("%08x%s", cpu_to_be32(debug[j]), (j & 0x7) == 0x7 || j == last - 1 ? "\n" : " ");
114 }
115 }
116 +#endif
117 }
118
119 }
120 diff --git a/drivers/net/pfe_eth/pfe.c b/drivers/net/pfe_eth/pfe.c
121 index 2c31cad..94cfe4e 100644
122 --- a/drivers/net/pfe_eth/pfe.c
123 +++ b/drivers/net/pfe_eth/pfe.c
124 @@ -368,6 +368,7 @@ void pe_lmem_write(u32 *src, u32 len, u32 offset)
125 class_bus_write(*src, PE_LMEM_BASE_ADDR + offset, (len & 0x03));
126 }
127
128 +#if !defined(CONFIG_UTIL_PE_DISABLED)
129 /** Writes UTIL program memory (DDR) from the host.
130 *
131 * @param[in] addr Address to write (virtual, must be aligned on size)
132 @@ -413,7 +414,7 @@ static void util_pmem_memcpy(void *dst, const void *src, unsigned int len)
133 if (len & 0x2)
134 util_pmem_write(*(u16 *)src, dst, len & 0x2);
135 }
136 -
137 +#endif
138
139 /** Loads an elf section into pmem
140 * Code needs to be at least 16bit aligned and only PROGBITS sections are supported
141 @@ -581,7 +582,7 @@ static int pe_load_ddr_section(int id, const void *data, Elf32_Shdr *shdr)
142 return -1;
143 }
144
145 - memcpy(DDR_PFE_TO_VIRT(addr), data + offset, size);
146 + memcpy((void *)DDR_PFE_TO_VIRT(addr), data + offset, size);
147 }
148 }
149
150 @@ -620,7 +621,7 @@ static int pe_load_ddr_section(int id, const void *data, Elf32_Shdr *shdr)
151 }
152 else
153 {
154 - memcpy(DDR_PFE_TO_VIRT(addr), data + offset, size);
155 + memcpy((void *)DDR_PFE_TO_VIRT(addr), data + offset, size);
156 }
157
158 break;
159 diff --git a/drivers/net/pfe_eth/pfe/pfe.h b/drivers/net/pfe_eth/pfe/pfe.h
160 index 6994a20..9445155 100644
161 --- a/drivers/net/pfe_eth/pfe/pfe.h
162 +++ b/drivers/net/pfe_eth/pfe/pfe.h
163 @@ -50,7 +50,7 @@ extern void *ddr_base_addr;
164 #define PFE_CBUS_PHYS_BASE_ADDR 0xc0000000 /**< CBUS physical base address as seen by PE's. */
165
166 /* Host<->PFE Mapping */
167 -#define DDR_PFE_TO_VIRT(p) ((p ) + 0x80000000)
168 +#define DDR_PFE_TO_VIRT(p) ((unsigned long int)((p ) + 0x80000000))
169 #define CBUS_VIRT_TO_PFE(v) (((v) - CBUS_BASE_ADDR) + PFE_CBUS_PHYS_BASE_ADDR)
170 #define CBUS_PFE_TO_VIRT(p) (((p) - PFE_CBUS_PHYS_BASE_ADDR) + CBUS_BASE_ADDR)
171
172 diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c
173 index b06a352..2f4c385 100644
174 --- a/drivers/net/pfe_eth/pfe_driver.c
175 +++ b/drivers/net/pfe_eth/pfe_driver.c
176 @@ -87,7 +87,7 @@ int pfe_recv(unsigned int *pkt_ptr, int *phy_port)
177 }
178 #endif
179
180 - *pkt_ptr = (unsigned int )(hif_header + 1);
181 + *pkt_ptr = (unsigned long)(hif_header + 1);
182 *phy_port = hif_header->port_no;
183 len -= sizeof(struct hif_header_s);
184
185 @@ -174,7 +174,7 @@ int pfe_send(int phy_port, void *data, int length)
186 length = MIN_PKT_SIZE;
187 }
188
189 - tx_buf_va = (u8 *)DDR_PFE_TO_VIRT(bd->data);
190 + tx_buf_va = (void *)DDR_PFE_TO_VIRT(bd->data);
191 dprint("%s: tx_buf_va: %p, tx_buf_pa: %08x\n", __func__, tx_buf_va, bd->data);
192
193 /* Fill the gemac/phy port number to send this packet out */
194 @@ -388,7 +388,7 @@ static int hif_rx_desc_init(struct pfe *pfe)
195 ctrl = (MAX_FRAME_SIZE | BD_CTRL_DESC_EN | BD_CTRL_DIR | BD_CTRL_LIFM);
196 #endif
197 for (i=0; i < rx_desc->rxRingSize; i++) {
198 - bd_va->next = (u32 )(bd_pa + 1);
199 + bd_va->next = (unsigned long)(bd_pa + 1);
200 bd_va->ctrl = ctrl;
201 bd_va->data = rx_buf_pa + (i * MAX_FRAME_SIZE);
202 // printf("status: %08x, ctrl: %08x, data: %08x, next: %p\n",
203 @@ -476,7 +476,7 @@ static int hif_tx_desc_init(struct pfe *pfe)
204 tx_buf_pa = pfe->ddr_phys_baseaddr + HIF_TX_PKT_DDR_BASEADDR;
205
206 for (i=0; i < tx_desc->txRingSize; i++) {
207 - bd_va->next = (u32 )(bd_pa + 1);
208 + bd_va->next = (unsigned long)(bd_pa + 1);
209 bd_va->data = tx_buf_pa + (i * MAX_FRAME_SIZE);
210 // printf("status: %08x, ctrl: %08x, data: %08x, next: %p\n",
211 // bd_va->status, bd_va->ctrl, bd_va->data, bd_va->next);
212 diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c
213 index 4aa318d..4a935ca 100644
214 --- a/drivers/net/pfe_eth/pfe_eth.c
215 +++ b/drivers/net/pfe_eth/pfe_eth.c
216 @@ -53,10 +53,6 @@ static void ls1012a_gemac_disable(void *gemac_base)
217 writel(readl(gemac_base + EMAC_ECNTRL_REG) & ~EMAC_ECNTRL_ETHER_EN, gemac_base + EMAC_ECNTRL_REG);
218 }
219
220 -static void ls1012a_gemac_set_mode(void *gemac_base, u32 mode)
221 -{
222 -}
223 -
224 static void ls1012a_gemac_set_speed(void *gemac_base, u32 speed)
225 {
226 struct ccsr_scfg *scfg = (struct ccsr_scfg *)CONFIG_SYS_FSL_SCFG_ADDR;
227 @@ -125,7 +121,6 @@ static int ls1012a_eth_init(struct eth_device *dev, bd_t * bd)
228 struct ls1012a_eth_dev *priv = (struct ls1012a_eth_dev *)dev->priv;
229 struct gemac_s *gem = priv->gem;
230 int speed;
231 - int tmp;
232
233 /* set ethernet mac address */
234 ls1012a_gemac_set_ethaddr(gem->gemac_base, dev->enetaddr);
235 @@ -220,7 +215,7 @@ static int ls1012a_eth_recv(struct eth_device *dev)
236 }
237
238 // Pass the packet up to the protocol layers.
239 - net_process_received_packet((uchar *)pkt_buf, len);
240 + net_process_received_packet((void *)(long int)pkt_buf, len);
241
242 return 0;
243 }
244 diff --git a/drivers/net/pfe_eth/pfe_eth.h b/drivers/net/pfe_eth/pfe_eth.h
245 index c16b8c0..af6191d 100644
246 --- a/drivers/net/pfe_eth/pfe_eth.h
247 +++ b/drivers/net/pfe_eth/pfe_eth.h
248 @@ -26,6 +26,7 @@
249
250
251 #include "pfe_driver.h"
252 +#include <phy.h>
253
254 #ifndef SZ_1K
255 #define SZ_1K 1024
256 @@ -151,7 +152,10 @@ struct firmware {
257
258 int pfe_probe(struct pfe *pfe);
259 int pfe_remove(struct pfe *pfe);
260 -
261 +struct mii_dev *ls1012a_mdio_init(struct mdio_info *mdio_info);
262 +void ls1012a_set_mdio(int dev_id, struct mii_dev *bus);
263 +void ls1012a_set_phy_address_mode(int dev_id, int phy_id, int phy_mode);
264 +int ls1012a_gemac_initialize(bd_t * bis, int dev_id, char *devname);
265
266 //#define dprint(fmt, arg...) printf(fmt, ##arg)
267 #define dprint(fmt, arg...)
268 diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c
269 index 165eb3c..5957afd 100644
270 --- a/drivers/net/pfe_eth/pfe_firmware.c
271 +++ b/drivers/net/pfe_eth/pfe_firmware.c
272 @@ -45,7 +45,7 @@ int pfe_load_elf(int pe_mask, const struct firmware *fw)
273 printf("%s: no of sections: %d\n", __func__, sections);
274
275 /* Some sanity checks */
276 - if (strncmp(&elf_hdr->e_ident[EI_MAG0], ELFMAG, SELFMAG))
277 + if (strncmp((char *)&elf_hdr->e_ident[EI_MAG0], ELFMAG, SELFMAG))
278 {
279 printf("%s: incorrect elf magic number\n", __func__);
280 return -1;
281 --
282 1.7.9.5
283