From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jian Luo Date: Wed, 2 Sep 2015 13:29:36 +0200 Subject: [U-Boot] arm: socfpga: Question about FPGA/HPS SDRAM Bridge In-Reply-To: <201509021227.48544.marex@denx.de> References: <55E564BB.3090505@boschrexroth.de> <201509011403.22313.marex@denx.de> <55E59ADA.3080403@boschrexroth.de> <201509021227.48544.marex@denx.de> Message-ID: <55E6DDA0.6040405@boschrexroth.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Marek, On 02.09.2015 12:27, Marek Vasut wrote: > On Tuesday, September 01, 2015 at 02:32:26 PM, Jian Luo wrote: >> Hi Marek, > > Hi! > >> 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? > > Right > >> And I don't want to enable the bridge here, just to latch the SDRAM >> configuration. > > So what you want to do is "bridge disable ; fpga load ... ; bridge enable", > isn't that the correct sequence ? I might be missing something though, sorry. No, you are right. Sorry, I didn't think it through. My original thought was, that "fpga load" should not depend on "bridge e/d" regardless of how fpga2sdram is configured. Now I think the dependency is a bad idea. Sorry for the confusion. > >> > 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 > > Best regards, > Marek Vasut Best regards, Jian Luo