No need for such an elaborate and potentially annoying scheme (most people will lose those dongles). Just make it so that only the firmware can update itself, and it only accepts cryptographically signed updates.
You can get memory ICs that can be locked against reading and writing until power cycled. The firmware does what it needs to do, locks the whole firmware against writing early in the boot process, and maybe locks any sensitive data (like crypto keys) against reading as well. If software wants to update the firmware it writes a new image into a separate writeable memory area and then asks the power management controller to do a power cycle. The firmware picks the image up and verifies its crypto signature before applying the update.
Apple did try to do something like that with its battery firmware, but screwed up by including the private key in the updater application. If you can avoid such obviously stupidity then this scheme is adequately secure, low cost and reliable for most consumer purposes.