[U-Boot-Users] Some RFCs about U-Boot's the generic FPGA support

Matthias Fuchs matthias.fuchs at esd-electronics.com
Tue Aug 21 12:46:23 CEST 2007


Laurent,

now things are getting clearer.
All this sounds to me that the shift direction in 
slave serial mode is not compatible to the parallel download
code. When we say that fpga_load (and the fpga load command) should only
work for promgen files with mirrored bits and fpga_loadbitstream() 
(and the fpga loadb command) should be used for .bit files, I
would like to get rid of the mirroring at least for slave serial mode
because changing the shift order is much more efficient.

Bruce suggested a CONFIG option to turn on/off mirroring. This is
not the right way. It should be handled by the FPGA subsystem.
What about passing a bitorder flag down to the load functions?
So we get rid of the huge malloc in loadbitstream and we can 
just swap bits in parallel mode just before writing it to the 
FPGA port. For Slave serial mode the _load funtion can use
the correct shift direction and so swapping is needed.

Matthias

On Tuesday 21 August 2007 10:59, Laurent Pinchart wrote:
> > So what option are you using for and which bitsteam format/file are you
> > using?
> 
> I'm calling fpga_load directly from board-specific code, using PROMgen 
> generated data (with bit mirroring applied).
> 
> Bit mirroring might not be needed in slave serial mode, but is needed in slave 
> parallel mode. Bytes in the .bit file are stored with the LSB on the left 
> side. The bytes must then be reversed before being written in slave parallel 
> mode, as the FPGA expects the LSB on D0, not on D7.
> 
> In slave serial mode, you can choose the shift direction, so mirroring is not 
> required.
> 
> > I still vote for removing the bit mirror :-)
> 
> Without mirroring, bitstreams won't load in slave parallel mode. You should 
> keep mirroring, and change the slave serial code to shift bits the other way 
> around.
> 
> > Are you using .bit Images, PROM files and which fpga command option
> > do you use? load or loadb?
> 
> I don't use the fpga commands, but call fpga_load() directly from board 
> specific code. This is roughly equivalent to "fpga load". The data come from 
> a bit-mirrored PROM file. I used to use a .bit file, which required "fpga 
> loadb" to be loaded correctly.
> 





More information about the U-Boot mailing list