From dddca33d2f359e04906f160b4aa53b2691ebcdbe Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Fri, 10 Feb 2023 10:09:01 +0200 Subject: [PATCH] files-needed-by-factory: Move to separate document These are instructions for maintainers, and should be in a separate document. --- README.md | 1 + doc/buildAndProgram.md | 38 ---------------------------------- doc/files-needed-by-factory.md | 37 +++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 38 deletions(-) create mode 100644 doc/files-needed-by-factory.md diff --git a/README.md b/README.md index 7b8ddde1..b4a9cb65 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ Fast open-source firmware for the [PineTime smartwatch](https://www.pine64.org/p - [Versioning](doc/versioning.md) - [Project branches](doc/branches.md) - [Files included in the release notes](doc/filesInReleaseNotes.md) +- [Files needed by the factory](doc/files-needed-by-factory.md) ## Licenses diff --git a/doc/buildAndProgram.md b/doc/buildAndProgram.md index 78bea1b4..260ae8c5 100644 --- a/doc/buildAndProgram.md +++ b/doc/buildAndProgram.md @@ -89,41 +89,3 @@ Binary files are generated into the folder `src`: - **pinetime-mcuboot-ap-dfu** : DFU file of the firmware The same files are generated for **pinetime-recovery** and **pinetime-recoveryloader** - -### How to generate files needed by the factory - -These files are needed by the Pine64 factory to flash InfiniTime as the default firmware on the PineTimes. - -Two files are needed: an **HEX (.hex)** file that contains the content of the internal flash memory (bootloader + InfiniTime) and a **binary (.bin)** file that contains the content of the external flash memory (recovery firmware). - -#### merged-internal.hex - -First, convert the bootloader to hex: - -``` -/bin/arm-none-eabi-objcopy -I binary -O ihex ./bootloader.bin ./bootloader.hex -``` - -where `bootloader.bin` is the [last stable version](https://github.com/JF002/pinetime-mcuboot-bootloader/releases) of the [bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader). - -Then, convert the MCUBoot image of InfiniTime: - -``` -/bin/arm-none-eabi-objcopy -I binary -O ihex --change-addresses 0x8000 ./pinetime-mcuboot-app-image-1.6.0.bin ./pinetime-mcuboot-app-image-1.6.0.hex -``` - -where `pinetime-mcuboot-app-image-1.6.0.bin` is [the bin of the last MCUBoot image](https://github.com/InfiniTimeOrg/InfiniTime/releases) of [InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime). - -Pay attention to the parameter `--change-addresses 0x8000`. It's needed to ensure the image will be flashed at the offset expected by the bootloader (0x8000). - -Finally, merge them together with **mergehex**: - -``` -/opt/mergehex/mergehex -m ./bootloader.hex ./pinetime-mcuboot-app-image-1.6.0.hex -o merged-internal.hex -``` - -This file must be flashed at offset **0x00** of the internal memory of the NRF52832. - -#### spinor.bin - -This file is the MCUBoot image of the last stable version of the recovery firmware. It must be flashed at offset **0x00** of the external SPINOR flash memory. diff --git a/doc/files-needed-by-factory.md b/doc/files-needed-by-factory.md new file mode 100644 index 00000000..f99a29b6 --- /dev/null +++ b/doc/files-needed-by-factory.md @@ -0,0 +1,37 @@ +# How to generate files needed by the factory + +These files are needed by the Pine64 factory to flash InfiniTime as the default firmware on the PineTimes. + +Two files are needed: an **HEX (.hex)** file that contains the content of the internal flash memory (bootloader + InfiniTime) and a **binary (.bin)** file that contains the content of the external flash memory (recovery firmware). + +#### merged-internal.hex + +First, convert the bootloader to hex: + +``` +/bin/arm-none-eabi-objcopy -I binary -O ihex ./bootloader.bin ./bootloader.hex +``` + +where `bootloader.bin` is the [last stable version](https://github.com/JF002/pinetime-mcuboot-bootloader/releases) of the [bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader). + +Then, convert the MCUBoot image of InfiniTime: + +``` +/bin/arm-none-eabi-objcopy -I binary -O ihex --change-addresses 0x8000 ./pinetime-mcuboot-app-image-1.6.0.bin ./pinetime-mcuboot-app-image-1.6.0.hex +``` + +where `pinetime-mcuboot-app-image-1.6.0.bin` is [the bin of the last MCUBoot image](https://github.com/InfiniTimeOrg/InfiniTime/releases) of [InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime). + +Pay attention to the parameter `--change-addresses 0x8000`. It's needed to ensure the image will be flashed at the offset expected by the bootloader (0x8000). + +Finally, merge them together with **mergehex**: + +``` +/opt/mergehex/mergehex -m ./bootloader.hex ./pinetime-mcuboot-app-image-1.6.0.hex -o merged-internal.hex +``` + +This file must be flashed at offset **0x00** of the internal memory of the NRF52832. + +#### spinor.bin + +This file is the MCUBoot image of the last stable version of the recovery firmware. It must be flashed at offset **0x00** of the external SPINOR flash memory.