[U-Boot] Question regarding FPGA firmware load in u-boot

Dieter Kiermaier dk-arm-linux at gmx.de
Mon Jun 22 11:36:22 CEST 2009


Am Montag 22 Juni 2009 11:17:34 schrieb André Schwarz:
> On Mon, 2009-06-22 at 11:00 +0200, Dieter Kiermaier wrote:
> > André,
> >
> > > Dieter,
> > >
> > > On Mon, 2009-06-22 at 08:19 +0200, Dieter Kiermaier wrote:
> > > > André,
> > > >
> > > > > Dieter,
> > > > >
> > > > > On Fri, 2009-06-19 at 17:46 +0200, Dieter Kiermaier wrote:
> > > > > > Hello List,
> > > > > >
> > > > > > I want to boot a (Lattice) FPGA from u-boot by using Slave Serial
> > > > > > configuration on a Marvell Kirkwood device.
> > > > >
> > > > > Should be no problem as long as you'll have access to GPIO.
> > > >
> > > > I'm working on it :)
> > > > But more likely I would have the SPI controller to do the serializing
> > > > of the bitstream. But maybe this would be the second step.
> > >
> > > Bitbanging is not critical and works pretty fast.
> > > You definitely have to control maximum frequency and observe errors
> > > during load. If you'll use SPI make sure to disconnect the bus from the
> > > FPGA and keep the config pins in a sane state.
> >
> > Do you have some time values how long your FPGA needs to boot by using
> > bitbanging?
>
> less than a second.
>
Thats fine!

> > > > > > As seen there is an (Xilinx and Altera) FPGA loader driver
> > > > > > allready available in u-boot.
> > > > > > Please can somebody explain how I have to provide a FPGA
> > > > > > bitstream image to u-boot?
> > > > >
> > > > > The easiest way is to reserve some unused flash sectors and use the
> > > > > first sector's start adress as arg for "fpga load".
> > > >
> > > > I assume this will only work with NOR flash, right?
> > >
> > > I'm using NOR flash, but it will work with any adressable memory.
> > >
> > > > If I'm using NAND flash I have to copy the image to ram first?
> > >
> > > yes.
> > >
> > > > > > It seems I have to create a image with mkimage?
> > >
> > > you can store e.g. fpga.bin as a single file inside jffs, read it and
> > > load your fpga.
> > >
> > > > > no - Lattice specififc bitstream can be stored in raw format.
> > > > > mkimage may be useful for update, but personally I prefer update
> > > > > via dedicated linux mtd partition.
> > > > >
> > > > > > This image have to be loaded into ram and the address has to be
> > > > > > provided to the load command?
> > > > >
> > > > > Usually an FPGA is *very* board specific. I'd suggest to use flash
> > > > > and create a corresponding mtd partition for linux, i.e. make it
> > > > > maintainable.
> > > >
> > > > Seems to be a good way.
> > >
> > > yes - but not for jffs2 on NAND. You can use a plain binary file
> > > instead.
> > >
> > > > Is there a cmd in u-boot to read a file from a jffs2 filesystem
> > > > inside a nand flash partition?
> > >
> > > Have a look at the end of common/cmd_jffs2.c : fsload is the one for
> > > you.
> >
> > Thanks for that link :)
> >
> > > > > > Is there a maintainer for the FPGA code inside u-boot?
> > > > > > I'm willing to contribute some extensions for Lattice FPGAs if
> > > > > > I'm successful!
> > > > >
> > > > > excellent - all you'll need is the Lattice specific bit toggle
> > > > > sequence.
> > > > >
> > > > > submitting a proper patch will surely do.
> > > >
> > > > I'm trying to get an idea what place is the best to integrate the
> > > > lattice architecture in to the fpga framework.
> > > > If I have any further questions - can I ask you again?
> > >
> > > of course, but since I'm a PowerPC user I can't tell anything specific
> > > to ARM ...
> >
> > Thanks again!
> >
> > So I would try to bring it up and see what happens :)
>
> yes - to get it done quickly I'd recommend to add a new Lattice device
> family. Please create e.g. drivers/fpga/lattice.c and lattice_ecp3.c
> (matching your device) according to the xilinx and altera templates.
> It will integrate into common/cmd_fpga.c smoothly.
>
> GPIO accessor functions have to be defined inside the board specific
> code. If you definitely want to use spi please do it there, i.e. *not*
> in the general code unless this is useful for all boards.
>
> You can have a look at board/matrix_vision/mvbc_p/fpga.c+h
>

Ahh, thats what I want to hear. This will save much time to figure  it all 
out.
Sorry, but I'm a newbie compared with all these experts here. So what is clear 
for everybody isn't clear for me (at least until now...)
But hopefully this becomes better :)

Many thanks!
Cheers,
Dieter


> Regards,
>
> André
>
> > Dieter
> >
> > > Cheers,
> > >
> > > André
> > >
> > > > > Regards,
> > > > >
> > > > > André
> > > >
> > > > Many thanks for helping,
> > > > Dieter
> > > >
> > > > > > Thanks to all,
> > > > > > Dieter
> > > > > > _______________________________________________
> > > > > > U-Boot mailing list
> > > > > > U-Boot at lists.denx.de
> > > > > > http://lists.denx.de/mailman/listinfo/u-boot
> > > > >
> > > > > MATRIX VISION GmbH, Talstrae 16, DE-71570 Oppenweiler
> > > > > Registergericht: Amtsgericht Stuttgart, HRB 271090
> > > > > Geschftsfhrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner,
> > > > > Hans-Joachim Reich
> > >
> > > MATRIX VISION GmbH, Talstrae 16, DE-71570 Oppenweiler
> > > Registergericht: Amtsgericht Stuttgart, HRB 271090
> > > Geschftsfhrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner,
> > > Hans-Joachim Reich
>
> MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler
> Registergericht: Amtsgericht Stuttgart, HRB 271090
> Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner,
> Hans-Joachim Reich




More information about the U-Boot mailing list