Robust Ethernet bootloader

Philipp Burch <[email protected]> Mon, 4 Jun 2018 15:06:05 +0200
Newsgroups gmane.comp.hardware.microcontrollers.ethernut
Message-ID <[email protected]>
Hi everyone,

I'm in a project where we will soon have to deploy some boards running
Nut/OS into "the field". Those boards are all connected to a local
computer using Ethernet, but the computer itself is usually only
accessible over the net. In the first prototype, we simply put a J-Link
into the machine to be able to update the MCU firmware (or even debug
it), in case a problem arises, but this definitely is no productive
solution. We use Ethernet to have a robust and isolated connection after
all, which USB and JTAG is not.

Our target platform is a TIVA TM4C1294NCPDT processor, which has an
integrated Ethernet MAC and PHY. My primary concern is robustness of the
bootloader, it should be rather hard to brick the device. I see that
there is some Ethernet-based bootloader functionality in the ROM of this
MCU, but as far as I can tell, this must be invoked from the application
code. So in case the update fails, there will most likely be no way to
re-flash the firmware without local intervention. What I would prefer is
a small self-contained bootloader that always runs when the firmware
starts (after power-on, watchdog-reset, hard-fault, etc.), validates the
firmware image and then starts the application. In case the validation
fails, it should sit there and wait for a new image to be downloaded.

My questions:

- What are your experiences and suggestions for Ethernet bootloaders?

- Did I miss anything important?

- Does Nut/OS offer some functionality for this?

- How do I need to compile the target application, so that it can be
started from the bootloader? Especially considering the interrupt vector
table and such stuff.

Thank you and best regards,
Philipp
_______________________________________________
http://lists.egnite.de/mailman/listinfo/en-nut-discussion