blob: 819a27e0d05ba0d52f2e207d6134db27fbd85937 [file] [log] [blame]
newt mfg
---------
Commands to create, build, and upload manufacturing image.
Usage:
^^^^^^
.. code-block:: console
newt mfg [flags]
newt mfg [command]
Available Commands:
^^^^^^^^^^^^^^^^^^^
.. code-block:: console
create Create a manufacturing flash image
deploy Build and upload a manufacturing image (build + load)
load Load a manufacturing flash image onto a device
Global Flags:
^^^^^^^^^^^^^
.. code-block:: console
-h, --help Help for newt commands
-j, --jobs int Number of concurrent build jobs (default 8)
-l, --loglevel string Log level (default "WARN")
-o, --outfile string Filename to tee output to
-q, --quiet Be quiet; only display error output
-s, --silent Be silent; don't output anything
-v, --verbose Enable verbose output when executing commands
Description
^^^^^^^^^^^
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Sub-command | Explanation |
+===============+================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+
| create | A manufacturing image specifies 1) a boot loader target, and 2) one or more image targets. Assuming the manufacturing entity has been created and defined in the ``mfgs/<mfg image name>/`` package (see Examples below), this command collects the manufacturing related files in the newly created ``bin/mfgs/<mfg image name>`` directory. The collection includes the image file, the hex file, and the manifests with the image build time, version, manufacturing package build time, image ID (or hash) etc. It is essentially a snapshot of the image data and metadata uploaded to the device flash at manufacturing time. Note that the command expects the targets and images to have already been built using ``newt build`` and ``newt create-image`` commands. |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| deploy | A combination of build and load commands to put together and upload manufacturing image on to the device. |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| load | Loads the manufacturing package onto to the flash of the connected device. |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Examples
^^^^^^^^
Suppose you have created two targets (one for the bootloader and one for the ``blinky`` app).
.. code-block:: console
$ newt target show
targets/my_blinky_sim
app=apps/blinky
bsp=@apache-mynewt-core/hw/bsp/native
build_profile=debug
targets/rb_blinky
app=apps/blinky
bsp=@apache-mynewt-core/hw/bsp/rb-nano2
build_profile=debug
targets/rb_boot
app=@apache-mynewt-core/apps/boot
bsp=@apache-mynewt-core/hw/bsp/rb-nano2
build_profile=optimized
Create the directory to hold the mfg packages.
.. code-block:: console
$ mkdir -p mfgs/rb_blinky_rsa
The ``rb_blinky_rsa`` package needs a pkg.yml file. In addition, it needs a mfg.yml file to specify the two constituent targets. An example of each file is shown below.
.. code-block:: console
$ more mfgs/rb_blinky_rsa/pkg.yml
pkg.name: "mfgs/rb_blinky_rsa"
pkg.type: "mfg"
pkg.description:
pkg.author:
pkg.homepage:
.. code-block:: console
$ more mfgs/rb_blinky_rsa/mfg.yml
mfg.bsp: "@apache-mynewt-core/hw/bsp/rb-nano2"
mfg.targets:
- rb_boot:
name: "targets/rb_boot"
area: FLASH_AREA_BOOTLOADER
offset: 0x0
- rb_blinky:
name: "targets/rb_blinky"
area: FLASH_AREA_IMAGE_0
offset: 0x0
mfg.meta:
area: FLASH_AREA_BOOTLOADER
Build the bootloader and app images.
.. code-block:: console
$ newt build rb_boot
$ newt create-image rb_blinky 0.0.1
Run the ``newt mfg create`` command to collect all the manufacturing snapshot files.
.. code-block:: console
$ newt mfg create rb_blinky_rsa 0.0.1
Creating a manufacturing image from the following files:
<snip>
Generated the following files:
<snip>
A description of the generated files is available in the implementation's `readme <https://github.com/apache/mynewt-newt/blob/master/newt/mfg/README.md#file-structure>`_