From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] arm: socfpga: Question about FPGA/HPS SDRAM Bridge
Date: Wed, 2 Sep 2015 14:49:28 +0200 [thread overview]
Message-ID: <201509021449.28168.marex@denx.de> (raw)
In-Reply-To: <55E6DDA0.6040405@boschrexroth.de>
On Wednesday, September 02, 2015 at 01:29:36 PM, Jian Luo wrote:
> Hi Marek,
Hi!
> 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.
Yeah, you should be able to control the bridges between the FPGA and the FPGA
loading independently for the particular case where the FPGA runs independently
of the HPS.
> Sorry for the confusion.
Well, I'm glad it got sorted out :)
prev parent reply other threads:[~2015-09-02 12:49 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-01 8:41 [U-Boot] arm: socfpga: Question about FPGA/HPS SDRAM Bridge Jian Luo
2015-09-01 9:03 ` Marek Vasut
2015-09-01 11:49 ` Jian Luo
2015-09-01 12:03 ` Marek Vasut
2015-09-01 12:32 ` Jian Luo
2015-09-02 10:27 ` Marek Vasut
2015-09-02 11:29 ` Jian Luo
2015-09-02 12:49 ` Marek Vasut [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201509021449.28168.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox