Releases: X16Community/x16-smc-bootloader
Releases · X16Community/x16-smc-bootloader
v3: Merge pull request #1 from stefan-b-jakobsson/20240828-add-build-action
This third release of the bootloader comes with a lot of improvements. It is a rewrite of large parts of the code.
Main differences to v2:
- The bootloader communicates over I2C as before, but it doesn't depend on interrupts, removing the need to install temporary vectors into flash memory page 0 during an update. This made it possible to improve bootloader security.
- The new bootloader supports recovery updates of a bricked SMC. If you hold down the Reset button while connecting the computer to power, the bootloader will turn on the computer and start the update process. An SMC update program running on the X16 can send the new firmware to the bootloader. Such an update requires that the update program doesn't need keyboard input from the user.
- The new bootloader also supports reading back the content of the firmware, which can be used to verify an update.
Test: Bootloader version 2
This is the second release of the X16 SMC bootloader.
It changes the functionality of the reboot command. When called it will now reset the SMC, which in turn will will power off the X16 computer. After the SMC update is done, and the SMC is reset, you should be able to turn on the computer using the Power button.
In version 1, the bootloader entered an infinite loop when you called the reboot command. The user needed to disconnect power from the system to reset the SMC.
The attached binary "bootloader.hex" is only the bootloader code that is stored at address 0x1E00 in the SMC flash memory.