From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chee, Tien Fong Date: Fri, 15 Feb 2019 08:35:31 +0000 Subject: [U-Boot] [PATCH v8 2/8] ARM: socfpga: Add default FPGA bitstream fitImage for Arria10 SoCDK In-Reply-To: <3876bc07-e062-09bb-ff8c-b5f7c6c174af@denx.de> References: <1550067518-2542-1-git-send-email-tien.fong.chee@intel.com> <1550067518-2542-3-git-send-email-tien.fong.chee@intel.com> <2f584adfddbd3f40366aeb5d5f6954373f4735f8.camel@linux.intel.com> <10b352b5-ef80-546f-5d25-ea6c6bda4669@denx.de> <1550124283.10728.16.camel@intel.com> <1550143436.10728.59.camel@intel.com> <1550157101.10728.78.camel@intel.com> <42b3a5a0-b1a0-6659-9868-808cfda3531d@denx.de> <1550159255.10728.100.camel@intel.com> <3876bc07-e062-09bb-ff8c-b5f7c6c174af@denx.de> Message-ID: <1550219730.10113.1.camel@intel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de On Thu, 2019-02-14 at 17:26 +0100, Marek Vasut wrote: > On 2/14/19 4:47 PM, Chee, Tien Fong wrote: > > > > On Thu, 2019-02-14 at 16:13 +0100, Marek Vasut wrote: > > > > > > On 2/14/19 4:11 PM, Chee, Tien Fong wrote: > > > > > > > > > > > > On Thu, 2019-02-14 at 13:24 +0100, Marek Vasut wrote: > > > > > > > > > > > > > > > On 2/14/19 12:23 PM, Chee, Tien Fong wrote: > > > > > > > > > > > > > > > > > > > > > > > > On Thu, 2019-02-14 at 11:35 +0100, Marek Vasut wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > On 2/14/19 7:04 AM, Chee, Tien Fong wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, 2019-02-14 at 00:04 +0100, Marek Vasut wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On 2/13/19 11:45 PM, Dalon L Westergreen wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, 2019-02-13 at 17:10 +0100, Marek Vasut > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On 2/13/19 3:18 PM, tien.fong.chee at intel.com > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > From: Tien Fong Chee > > > > > > > > > > > > > > > > > > > > > > > > Add default fitImage file bundling FPGA > > > > > > > > > > > > bitstreams > > > > > > > > > > > > for > > > > > > > > > > > > Arria10. > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Tien Fong Chee > > > > > > > > > > > ntel > > > > > > > > > > > > .com > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --- > > > > > > > > > > > > > > > > > > > > > > > > changes for v8 > > > > > > > > > > > > - Changed the FPGA node name to fpga-core and > > > > > > > > > > > > fpga- > > > > > > > > > > > > periph > > > > > > > > > > > > for > > > > > > > > > > > > both core and > > > > > > > > > > > >   periph bitstreams respectively. > > > > > > > > > > > > --- > > > > > > > > > > > >  board/altera/arria10-socdk/fit_spl_fpga.its | > > > > > > > > > > > > 39 > > > > > > > > > > > > +++++++++++++++++++++++++++++ > > > > > > > > > > > >  1 file changed, 39 insertions(+) > > > > > > > > > > > >  create mode 100644 board/altera/arria10- > > > > > > > > > > > > socdk/fit_spl_fpga.its > > > > > > > > > > > > > > > > > > > > > > > > diff --git a/board/altera/arria10- > > > > > > > > > > > > socdk/fit_spl_fpga.its > > > > > > > > > > > > b/board/altera/arria10-socdk/fit_spl_fpga.its > > > > > > > > > > > > new file mode 100644 > > > > > > > > > > > > index 0000000..8ce175b > > > > > > > > > > > > --- /dev/null > > > > > > > > > > > > +++ b/board/altera/arria10- > > > > > > > > > > > > socdk/fit_spl_fpga.its > > > > > > > > > > > > @@ -0,0 +1,39 @@ > > > > > > > > > > > > +// SPDX-License-Identifier: GPL-2.0 > > > > > > > > > > > > + /* > > > > > > > > > > > > + * Copyright (C) 2019 Intel Corporation > > > > > > > > > > > ntel > > > > > > > > > > > > .com > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > + * > > > > > > > > > > > > + */ > > > > > > > > > > > > + > > > > > > > > > > > > +/dts-v1/; > > > > > > > > > > > > + > > > > > > > > > > > > +/ { > > > > > > > > > > > > + description = "FIT image with FPGA > > > > > > > > > > > > bistream"; > > > > > > > > > > > > + #address-cells = <1>; > > > > > > > > > > > > + > > > > > > > > > > > > + images { > > > > > > > > > > > > + fpga-core at 1 { > > > > > > > > > > > > + description = "FPGA > > > > > > > > > > > > core > > > > > > > > > > > > bitstream"; > > > > > > > > > > > > + data = > > > > > > > > > > > > /incbin/("../../../ghrd_10as066n2.core.rbf"); > > > > > > > > > > > > + type = "fpga"; > > > > > > > > > > > > + arch = "arm"; > > > > > > > > > > > > + compression = "none"; > > > > > > > > > > > > + load = <0x400>; > > > > > > > > > > > Is the load address required ? > > > > > > > > It is optional for telling destination address of DDR > > > > > > > > where > > > > > > > > this > > > > > > > > core.rbf going to be loaded. If load property, the > > > > > > > > default > > > > > > > > OCRAM > > > > > > > > buffer > > > > > > > > would be used, bad for performance when loading chunk > > > > > > > > by > > > > > > > > chunk. > > > > > > > So if I have something at 0x400 in DRAM and use this > > > > > > > example > > > > > > > in > > > > > > > U- > > > > > > > Boot, > > > > > > > it will be overwritten ? > > > > > > This is used for SPL only, at least for now, so that is > > > > > > before > > > > > > loading > > > > > > the U-Boot, DDR is blank. > > > > > > But, you can define the blank location. > > > > > > If load property is not defined, the driver would use small > > > > > > buffer > > > > > > from > > > > > > OCRAM. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > How is OCRAM bad for performance ? > > > > > > With DDR, the performance can up to 85-90%. > > > > > > It is because very limited space in OCRAM, so very small > > > > > > buffer > > > > > > is > > > > > > used > > > > > > for loading bitstream, so the bitstream has to be loaded > > > > > > chunk > > > > > > by > > > > > > chunk. > > > > > > For DDR, where whole bitstream can be loaded. > > > > > Shouldn't the logic to determine where the buffer is be in > > > > > the > > > > > code ? > > > > > I mean, once you have DRAM available, you have all the malloc > > > > > space, > > > > > so > > > > > you can use larger buffer.Why encode that knowledge into the > > > > > fitImage > > > > > ? > > > > In previosly, we hard code the dest location for loading the > > > > core > > > > bitstream in SPL, because by that time DDR up running, but > > > > malloc > > > > is > > > > still pointed to OCRAM. > > > > Now, we let user to define the dest location through the load > > > > property. > > > But the user shouldn't care where the buffer is, the buffer > > > should be > > > in > > > the best possible location and the SPL can determine that (if > > > DRAM is > > > running, in DRAM, otherwise in OCRAM), no ? > > Yes, most of the time user don't need to change the dest value at > > load > > property, unless they have very good reason to do so. > > SPL would smart enough to read the load property after the DDR is > > up > > running, and loading the bitstream to dest location, and > > programming > > FPGA from there. > Then we don't need the 'load' property by default ? I will add a default ddr load address in the code, and enable the load property to overwrite it if it is defined. So, that means the load property is optional. >