From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Dyer Date: Wed, 27 Apr 2005 10:05:12 -0500 Subject: [U-Boot-Users] [PATCH] Spartan3 family support In-Reply-To: <01dd01c54b36$60b94940$0b01a8c0@PCKURT> References: <6.2.1.2.0.20050427114207.02d1b4e8@192.168.2.1> <01dd01c54b36$60b94940$0b01a8c0@PCKURT> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 4/27/05, Kurt Stremerch wrote: > > 3) I tried to use both the "fpga load" and "fpga loadb" commands > > respectively with the .bin and .bit files. The first one runs > succesfully > > while the latter fails. In this case the header is parsed correctly > > but the FPGA is not programmed and the DONE does not go high. > > The loadb function is a wrapper around the load function that converts > your bitstream file first. Could you check what the difference is > between your manually converted bitsteam file and the data that loadb > creates? Imagine that the fpga startup clock configuration is set to the > JTAG clock. Your conversion tool could change this automatically into > the config clock. But the loadb doesn't make any change to your > bitstream before the conversion takes place. This results in a > successful configuration in "fpga load" but not in "fpga loadb". I posted a patch to change the loadb command on Jan 11 (see the archives) that's not yet into cvs. Here's the issue: 1) fixes a bug with the 'fpga loadb' command The bug is in calculating the config data size - 4 bytes of length info were being read as signed chars, casted to long, shifted and added. The cast to long was doing sign extension and causing an incorrect result if a byte was greater than 0x80. For me this caused the fpga load to end early and time out waiting for the hardware completion. There's some other stuff in the patch, too. I think the file has changed since I posted my patch, so there might be some breakage in applying it, but it's pretty simple and I'm sure you can do it by hand :-) -- Hardware, n.: The parts of a computer system that can be kicked.