[U-Boot] [PATCH] arm: socfpga: Fix ethernet reset handling

The following patch caused cpu_eth_init() to not be called anymore for DM-capable boards:
commit c32a6fd07b1839e4a45729587ebc8e1c55601a4d Date: Sun Jan 17 14:51:56 2016 -0700 net: Don't call board/cpu_eth_init() with driver model
This breaks ethernet on SoCFPGA, since we use that function to un-reset the ethernet blocks. Invoke the ethernet reset function from arch_misc_init() instead to fix the breakage.
Signed-off-by: Marek Vasut marex@denx.de Cc: Dinh Nguyen dinguyen@opensource.altera.com Cc: Chin Liang See clsee@altera.com Cc: Denis Bakhvalov denis.bakhvalov@nokia.com --- arch/arm/mach-socfpga/misc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-socfpga/misc.c b/arch/arm/mach-socfpga/misc.c index 9b43b92..ce3ff0a 100644 --- a/arch/arm/mach-socfpga/misc.c +++ b/arch/arm/mach-socfpga/misc.c @@ -104,7 +104,7 @@ static void dwmac_deassert_reset(const unsigned int of_reset_id) socfpga_per_reset(reset, 0); }
-int cpu_eth_init(bd_t *bis) +static int socfpga_eth_reset(void) { const void *fdt = gd->fdt_blob; struct fdtdec_phandle_args args; @@ -137,6 +137,11 @@ int cpu_eth_init(bd_t *bis)
return 0; } +#else +static int socfpga_eth_reset(void) +{ + return 0 +}; #endif
struct { @@ -232,7 +237,7 @@ int arch_misc_init(void) setenv("bootmode", bsel_str[bsel].mode); if (fpga_id >= 0) setenv("fpgatype", socfpga_fpga_model[fpga_id].var); - return 0; + return socfpga_eth_reset(); } #endif

On 11.02.2016 16:41, Marek Vasut wrote:
The following patch caused cpu_eth_init() to not be called anymore for DM-capable boards:
commit c32a6fd07b1839e4a45729587ebc8e1c55601a4d Date: Sun Jan 17 14:51:56 2016 -0700 net: Don't call board/cpu_eth_init() with driver model
This breaks ethernet on SoCFPGA, since we use that function to un-reset the ethernet blocks. Invoke the ethernet reset function from arch_misc_init() instead to fix the breakage.
Signed-off-by: Marek Vasut marex@denx.de Cc: Dinh Nguyen dinguyen@opensource.altera.com Cc: Chin Liang See clsee@altera.com Cc: Denis Bakhvalov denis.bakhvalov@nokia.com
Works for me as well. So:
Tested-by: Stefan Roese sr@denx.de
Thanks, Stefan

On 02/11/2016 09:53 AM, Stefan Roese wrote:
On 11.02.2016 16:41, Marek Vasut wrote:
The following patch caused cpu_eth_init() to not be called anymore for DM-capable boards:
commit c32a6fd07b1839e4a45729587ebc8e1c55601a4d Date: Sun Jan 17 14:51:56 2016 -0700 net: Don't call board/cpu_eth_init() with driver model
This breaks ethernet on SoCFPGA, since we use that function to un-reset the ethernet blocks. Invoke the ethernet reset function from arch_misc_init() instead to fix the breakage.
Signed-off-by: Marek Vasut marex@denx.de Cc: Dinh Nguyen dinguyen@opensource.altera.com Cc: Chin Liang See clsee@altera.com Cc: Denis Bakhvalov denis.bakhvalov@nokia.com
Works for me as well. So:
Tested-by: Stefan Roese sr@denx.de
For me as well.
Tested-by: Dinh Nguyen dinguyen@opensource.altera.com
participants (3)
-
Dinh Nguyen
-
Marek Vasut
-
Stefan Roese