[hpsdr] Programming Hermes Help

Jeremy McDermond mcdermj at xenotropic.com
Sun Dec 2 17:19:17 PST 2012


On Dec 2, 2012, at 4:47 PM, Tim O'Rourke <w4yn at earthlink.net> wrote:

> Tnx Jeremy
> My fault, no geek on this end, just a user.
> The confusion stemmed from all the chatter about missing boot loader install.
> I did learn a lot today, I may have some confusion left over.
> I thought you could reprogram bootloader and firmware from byte blaster interface.
> After reading a bit it seems the bootloader gets programmed via byte blaster but the firmware needs a different interface, P1 on Hermes.
> Files for Bootloader and firmware have different extensions so that should have been a clue for me.
> All is good to go now and I understand a bit more on FPGA programming, will forget most when 66 year old brain sleeps on it!

The ByteBlaster interface can be used to program your board.  It's the only way that can reprogram the bootloader.

Essentially, the flash holds a large image that is two images glued together.  The first image is the bootloader, which is kinda a misnomer.  It's really a "recovery image" so that if things get screwy, you can recover your board without using a ByteBlaster to do so.  It's designed to be very simple and small so that it's easy to debug and extremely reliable.

The second image is the "main image" of the board.  This is the one that you use normally.  It starts at a specific address in the large image.  When the FPGA boots, it checks the position of the jumper to see from what address in the flash it should start loading.  If the jumper is on, it loads from the beginning.  If it's off, it starts from 0x10000.

There is a pitfall here, and one should pay attention if they ever want to use a USB Blaster to reload their firmware.  HPSDRProgrammer and the various HPSDR factory images know that they're supposed to rewrite the flash starting at 0x10000 ignoring the bootloader which is in the low part of the flash.  This means that it will always make sure the booloader does the right thing.  If you use a USB Blaster, it's not aware of this setup.  If you merely program the same image you use with HPSDRProgrammer, you will overwrite your bootloader.  The box will boot up and start, but it will not have the booloader functionality.  You must create a combined image of the bootloader and the application image to use with a USB Blaster.

So, if you have any desire to use a USB Blaster to reprogram your board, see:

http://svn.tapr.org/filedetails.php?repname=OpenHPSDR+Main&path=%2Ftrunk%2FMetis%2FDocumentation%2FArchive%2FMetis-+How+it+works_V1.27.pdf

in Appendix A.

Also notice that when it comes to network protocols, flash programming and a great number of other things, Hermes is a Metis.  They are equivalent functionality.  So, if you're wondering about some of the things like this, looking at the Metis documentation can help immensely.  Please don't forget that Hermes wasn't born out of the Ether, it was based on Metis/PennyLane/Mercury, and one should look to those projects for clues as well.

Please also don't get the idea that I'm blaming anyone.  I unfortunately write e-mails like this in a fairly straight forward fashion and it usually comes off more harshly than I intend.  I mainly want to get this information out clearly on the mailing list so that people who search will find clear explanations.

> Tnx for all your work.
> Tim

--
Jeremy McDermond (NH6Z)
Xenotropic Systems
mcdermj at xenotropic.com




 1354497557.0


More information about the Hpsdr mailing list