Message ID | 1455205275-14308-1-git-send-email-marex@denx.de |
---|---|
State | Accepted |
Commit | e6e34ca3ad43eae88faccb01282385416d23e6e7 |
Delegated to: | Joe Hershberger |
Headers | show |
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>
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
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(-)