[U-Boot] arm: socfpga: Question about FPGA/HPS SDRAM Bridge

Jian Luo Jian.Luo4 at boschrexroth.de
Tue Sep 1 14:32:26 CEST 2015


Hi Marek,

On 01.09.2015 14:03, Marek Vasut wrote:
 > On Tuesday, September 01, 2015 at 01:49:43 PM, Jian Luo wrote:

----snip----
 >> What about calling socfpga_sdram_apply_static_cfg() direct in
 >> socfpga_load() in drivers/fpga/socfpga.c to make it generic?
 >
 > Which code exactly do you refer to ?

I mean something like this.

diff --git a/drivers/fpga/socfpga.c b/drivers/fpga/socfpga.c
index 4448250..d0f67f6 100644
--- a/drivers/fpga/socfpga.c
+++ b/drivers/fpga/socfpga.c
@@ -300,5 +300,12 @@ int socfpga_load(Altera_desc *desc, const void 
*rbf_data, size_t rbf_size)
                 return status;

         /* Ensure the FPGA entering user mode */
-       return fpgamgr_program_poll_usermode();
+       status = fpgamgr_program_poll_usermode();
+       if (status)
+               return status;
+
+       /* Latch FPGA2SDRAM bridge configuration */
+       socfpga_sdram_apply_static_cfg();
+
+       return 0;
  }

 >
 >> socfpga_load() already did step 1 and 2.
 >> Is there any side effect  when fpga2sdram bridge is not used?
 >
 > The idea is to keep the FPGA programming code and the code which controls
 > the bridges separate. The reason for that is that you can have content in
 > the FPGA which is running completely independent of the HPS software. You
 > don't always need to enable the bridges.

No, it's the other way around here.
socfpga_load() runs eventually when command "fpga load" is called.
So when I explicitly use "fpga load" command, the old FPGA program is 
expected to stop running, right?

And I don't want to enable the bridge here, just to latch the SDRAM 
configuration.

 >
 > The FPGA2SDRAM bridge (or, more like fpga2hps bridge) is used for stuff
 > like framebuffers implemented in the FPGA, so that the FPGA can fetch
 > data from the SDRAM.
 >
 > Best regards,
 > Marek Vasut

Best regards,

Jian Luo


More information about the U-Boot mailing list