Commit Graph

40 Commits

Author SHA1 Message Date
Gabriel Valcazar 419b8def29 dey-image-installer: generalize bootloader name to support imx-boot files
The generate_installer_zip() function had a hardcoded "u-boot" filename when adding
the bootloader to the list of files that are put in the installer .zip.

https://jira.digi.com/browse/DEL-6174

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2018-09-13 17:00:34 +02:00
Gabriel Valcazar dce71c9348 ccimx8x: prohibit dey-image-qt from building when trustfence is enabled
The message log level is "fatal" so the compilation ends as soon as possible.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2018-07-06 13:46:23 +02:00
Jose Diaz de Grenu 80626aa749 swupdate: update to 2017.07
Rename recipe and fix the path of the progress binary. Also on the
rocko branch of meta-swupdate several signing mechanisms are
supported, and the value is used as a string to determine which one
to use.

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2018-01-23 14:33:17 +01:00
Tatiana Leon 7d2a07cf2f dey-image: create an sdk/toolchain dey version file with params to identify it
This commit creates a new file called 'dey-version-${REAL_MULTIMACH_TARGET_SYS}'
(for example, 'dey-version-cortexa7hf-neon-dey-linux-gnueabi') at the same level
as 'version-${REAL_MULTIMACH_TARGET_SYS}',
'site-config-${REAL_MULTIMACH_TARGET_SYS}', and
'environment-setup-${REAL_MULTIMACH_TARGET_SYS}' files.

The file contains the following parameters:
   * Machine. The name of the platform the toolchain was built for (ccimx6sbc,
     ccimx6ulsbc, ccimx6ulstarter).
   * Version: A versioning system for the generated toolchains. Currently is the
     distro version followed by the timestamp on which the current build started.
   * Image: The name of the image that triggered the population of the SDK
     (core-image-base, dey-image-aws, dey-image-qt-${GRAPHICAL_BACKEND})

The purpose of the 'dey-version-*' file is to be parsed by Eclipse so toolchains
can be autodetected.

This file is packaged with the rest of SDK/toolchain resources ('version-*',
'site-config-*', and 'environment-setup-*' files, and 'sysroots' directory)
when creating the SDK tarball and later the installation script.

The 'dey-version-*' file could also be created in a 'meta-environment.bbappend'
appending to the 'create_sdk_files()'. But from this recipe there is no access
to the name of the image that triggers the creation of the SDK (core-image-base,
dey-image-aws, dey-image-qt, etc.).

Currently, we are redefining 'SDK_POSTPROCESS_COMMAND' (from
'poky/meta/classes/populate_sdk_base.bbclass') to insert the generation of the
'dey-version-*' file just before creating the SDK tarball.

https://jira.digi.com/browse/DEL-5074

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-10-03 15:18:52 +02:00
Javier Viguera f397ee2289 greengrass: add support to preconfigure the package
If values are provided in the local.conf, the package will have the
'config.json' file preconfigured.

https://jira.digi.com/browse/DEL-4274

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-05 13:43:28 +02:00
Javier Viguera 991a087e85 awsiotsdk-c: rename bbclass to aws-iot
Rename the class so it's not specific to the C version of the AWS IoT
Device SDK, and can be used for anything related with AWS IOT (for
example Greengrass).

https://jira.digi.com/browse/DEL-4274

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-05 13:43:28 +02:00
Tatiana Leon 8a1a67f592 aws-iot-sdk: add variable to establish the logging level
Variable 'AWS_IOT_LOGGING_LEVEL' can be used from the project 'local.conf' to
establish the logging level of the AWS IoT Device SDK.

There are 6 incremental levels: none, error, warn, info, debug, and trace.

Default is 'debug'.

https://jira.digi.com/browse/DEL-4101

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-05-11 19:10:10 +02:00
Tatiana Leon 9a296b79a3 meta-digi: add awsiotsdk-c configuration class
This commit adds an awsiotsdk-c class to encapsulate all AWS IoT device SDK
configurations.

In general, the variables are the macros that users can configure in their
'aws_iot_config.h' file.

See for example, the header file for the 'shadow_sample' at GitHub:
https://github.com/aws/aws-iot-device-sdk-embedded-C/blob/master/samples/linux/shadow_sample/aws_iot_config.h

https://jira.digi.com/browse/DEL-4101

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-05-11 19:10:10 +02:00
Javier Viguera dba3244a3e dey-image-installer: fix missing artifacts in ZIP installer
With the migration to Morty, some of the paths to the artifacts (boot
and rootfs images) need to be updated.

While on it, also remove the temporary README.txt file which is not
needed after it has been packed in the zip installer.

https://jira.digi.com/browse/DEL-4013

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-03-31 18:02:52 +02:00
Tatiana Leon 38740f9a04 trustfence: get bytes from the console passphrase to feed the hash method
In Python 3, feeding string objects into hash method is not supported. Hashes
work on bytes, not on characters.

So we use 'encode()' on the passphrase to get the bytes object.

See:
 * https://docs.python.org/3/howto/pyporting.html#text-versus-binary-data
 * https://docs.python.org/3/library/hashlib.html#module-hashlib

This commit fixes build failures as:

Exception: TypeError: Unicode-objects must be encoded before hashing

https://jira.digi.com/browse/DEL-3984

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-27 10:38:13 +02:00
David Escalona 00d22c3d7e swu-sign: do not expand private sign key in TrustFence class
- Trying to set the complete SWU packages signature key in the
  TrustFence class was causing a build error when keys were not
  yet generated. To avoid this, set only the key wildcard in the
  TrustFence class and expand the variable in the SWU packages
  recipes, when keys already exist.

https://jira.digi.com/browse/DEL-3913

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-15 12:02:17 +01:00
David Escalona 319576805a swupdate: add sign and hash support to swupdate packages generation
- Enabled signing support while generating the swupdate
  packages for 'core-image-base' and 'dey-image-qt'. The
  signing support is only enabled when 'TUSTFENCE_SIGN=1'
  and requires the recipe to set the private key that will
  be used to generate the signature.
- Enabled hash support while generating the swupdate
  packages for 'core-image-base' and 'dey-image-qt'. The
  hash support requires the sw-description files to include
  a new line for each image and/or file that will be added
  to the update package. The hash is automatically calculated
  and replaced in the sw-description files.

https://jira.digi.com/browse/DEL-3774

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-07 17:04:21 +01:00
Javier Viguera 55ba548d61 trustfence: add 'expand' parameter to getVar calls
Starting with Yocto 2.1, the 'expand' parameter of 'getVar' function is
mandatory. See:

http://www.yoctoproject.org/docs/2.2.1/ref-manual/ref-manual.html#migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory

This fixes build failures as:

Exception: TypeError: getVar() missing 1 required positional argument: 'expand'

https://jira.digi.com/browse/DEL-3834

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-03-01 18:06:36 +01:00
Javier Viguera aaf2524a08 meta-digi-dey: implement class to generate installer zip package
It's not enabled by default. It's controlled by DEY_IMAGE_INSTALLER
variable in the project's local.conf.

https://jira.digi.com/browse/DEL-3591

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-02-02 13:32:18 +01:00
Diaz de Grenu, Jose 262ade8908 Revert "trustfence: disable SDCARD image generation when encryption is enabled"
When encryption is enabled, the signed U-Boot image will be used for the uSD.
This allows the uSD image to boot the device and recover it from the U-Boot
console, which is its main purpose. Nevertheless, the uSD image will not be
able to boot Linux.

https://jira.digi.com/browse/DEL-2877

This reverts commit 2e13e194d9.
2016-10-31 17:03:26 +01:00
Javier Viguera ab5f50e16a meta-digi: trailing whitespace cleanup
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2016-08-31 13:52:15 +02:00
Javier Viguera 2e13e194d9 trustfence: disable SDCARD image generation when encryption is enabled
Currently we don't support booting encrypted images from an SDCARD, so
just disable the generation of such images.

https://jira.digi.com/browse/DEL-2876

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2016-08-10 16:45:38 +02:00
Diaz de Grenu, Jose 6746254558 meta-digi-dey: trustfence: add Yocto macro to unlock key revocation
By default, on closed devices you cannot revoke any key. To do so, it is
required to compile a U-Boot which instructs the HAB not to set the sticky
bit which write protects that field in the OCOTP controller.

This patch introduces a Yocto macro which allows to configure U-Boot in
that way.

In the ConnectCore 6, the value of this settings is ignored, because HAB never
sets the sticky bit which write protects that field.

https://jira.digi.com/browse/DUB-665

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-09 20:01:59 +02:00
Diaz de Grenu, Jose a9b8d74041 Revert "meta-digi-dey: trustfence: disable encryption for the ConnectCore 6UL"
Encryption is now supported in the ConnectCore 6UL

This reverts commit 454fff56ba.

https://jira.digi.com/browse/DEL-2857

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-08 13:15:22 +02:00
Diaz de Grenu, Jose 454fff56ba meta-digi-dey: trustfence: disable encryption for the ConnectCore 6UL
Encryption of U-Boot and kernel images is not yet supported in the Connect
Core 6 UL.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-04 10:34:46 +02:00
Alex Gonzalez 0588b4b388 meta-digi-dey: trustfence: Do not disable console access by default.
While performing usability testing on the TrustFence documentation, it has
been noted that in order to follow the secure boot instructions the
console needs to be enabled.

We have now moved the secure console section to the end of the
documentation so that disabling the console is the last configuration to
make in a secure system.

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-08-03 15:55:18 +02:00
Diaz de Grenu, Jose 9e5ee61851 meta-digi: use CAAM for environment encryption
https://jira.digi.com/browse/DUB-652

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-01 20:00:11 +02:00
Diaz de Grenu, Jose f23d8c6abb trustfence: simplify TRUSTFENCE_ configuration macros
Adapt the U-Boot recipe to the last U-Boot Kconfig entries changes.

Simplify the name of some TRUSTFENCE_ configuration macros. These were
used to configure U-Boot, but they will also configure the uImage signature
and encryption processes.

https://jira.digi.com/browse/DUB-602
https://jira.digi.com/browse/DUB-618
https://jira.digi.com/browse/DUB-534

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-19 15:48:12 +02:00
Javier Viguera 6f8c58291e meta-digi: add support for Trustfence secure rootfs
When Trustfence is enabled, this adds a dependence on the TF initramfs,
so it's built and added to the boot image.

It also modifies the u-boot boot script on the fly, to boot correctly
using the Trustfence initramfs.

https://jira.digi.com/browse/DEL-2278

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2016-07-07 18:04:08 +02:00
Diaz de Grenu, Jose d223bc68c2 meta-digi-dey: trustfence: fix TRUSTFENCE_UBOOT_DEK_SIZE setting
The TRUSTFENCE_UBOOT_DEK_SIZE Yocto macro maps to the UBOOT_DEK_SIZE U-Boot
Kconfig entry, which is defined as a choice entry. This makes necessary
to explicitly define the choice Kconfig entry for the configuration to
work.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-01 16:26:53 +02:00
Diaz de Grenu, Jose a91cc4e796 meta-digi-arm: u-boot: fix trustfence checks logic
There are several possible values for TRUSTFENCE_UBOOT_ENV_DEK:

* Not defined: if the trustfence support is not included.
               Should not include the feature.
* 32 characters: when defining a valid key.
                 Should include the feature.
* "0": when explicitly disabling the feature.
       Should not include the feature
* <other>: Invalid value, should trigger the error.

This commits fixes the logic so that 'None' (no defined) is taken as a valid
value.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-01 16:26:53 +02:00
Mike Engel f88ea99ed3 ccimx6ul: Removed CONSOLE_ENABLE_GPIO_NR platform specific naming.
This commit changes the CONFIG_CCIMX6SBC_CONSOLE_ENABLE_GPIO_NR define
into a platform independent setting.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://jira.digi.com/browse/DEL-2641
2016-06-29 17:23:21 +02:00
Jose Diaz de Grenu de Pedro 3ef4fe1f34 meta-digi-dey: trustfence: add default values for secure boot
Signed-off-by: Jose Diaz de Grenu de Pedro <Jose.DiazdeGrenudePedro@digi.com>
2016-06-20 09:39:04 +02:00
Jose Diaz de Grenu de Pedro 5c6de74288 meta-digi-dey: trustfence: Explicitely check for "1" for variable enable.
https://jira.digi.com/browse/DEL-2603

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
Signed-off-by: Jose Diaz de Grenu de Pedro <Jose.DiazdeGrenudePedro@digi.com>
2016-06-20 09:39:04 +02:00
Alex Gonzalez ac740b7fdc meta-digi-dey: trustfence: Explicitely check for "1" for variable enable
https://jira.digi.com/browse/DEL-2603

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-06-10 09:48:05 +02:00
Jose Diaz de Grenu de Pedro 5f45a87ebd meta-digi-arm: trustfence: implement Yocto secure boot configuration
Implement the set of TRUSTFENCE_ macros to configure each secure boot feature
available in U-Boot.

https://jira.digi.com/browse/DUB-570

Signed-off-by: Jose Diaz de Grenu de Pedro <Jose.DiazdeGrenudePedro@digi.com>
2016-06-03 17:46:52 +02:00
Alex Gonzalez 2e95ff7519 meta-digi: Add TrustFence configuration class.
This commit adds a trustfence class to encapsulate all trustfence
configurations.

https://jira.digi.com/browse/DEL-2257

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-05-31 17:51:00 +02:00
Javier Viguera 0732296873 dey-image: support building QT SDK for DEY images
The meta-qt5 layer provides a 'populate_sdk_qt5' class with all what's
needed to build a SDK based on an image recipe.

Inherit the class here so it's available for all DEY image recipes
depending on 'dey-qt' image feature.

https://jira.digi.com/browse/DEL-1973

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2015-12-01 19:35:06 +01:00
Javier Viguera ee1bf7d441 meta-digi-dey: remove sares-image bbclass
This was used just for SARES testing and according to the SA team it is
not needed anymore, so just remove it.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2015-08-27 11:10:15 +02:00
Javier Viguera 7f3e1a4d1a meta-digi-dey: use 'extrausers' class to set root password
This simplifies the code and as an extra allows to override the default
root password from the project's local.conf (setting MD5_ROOT_PASSWD
variable)

https://jira.digi.com/browse/DEL-1558

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2015-03-13 18:43:12 +01:00
Javier Viguera ef92164fb2 meta-digi-dey: use 'image-buildinfo' to create '/etc/build'
Poky added a new class that provides the same functionality we
implemented in our 'dey-image' class. So just use that class instead
of reimplementing it in our layer.

https://jira.digi.com/browse/DEL-1558

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2015-03-13 18:43:12 +01:00
Javier Viguera 8b2e4812fc meta-digi-dey: create sares-image bbclass
Remove 'dey-test' image feature and create a SARES bbclass with the
same functionality. This makes easier the creation of images suitable
for SARES testing just adding:

INHERIT += "sares-image"

to your project's local.conf

https://jira.digi.com/browse/DEL-1558

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2015-03-13 18:43:11 +01:00
Alex Gonzalez 36cdf24425 meta-digi-dey: move packagegroup definitions to distro configuration
After the upstream commit in d63c8a1597c9bd0a838cb59ca461ac432b630a90,
bitbake checks to see if the image feature has a valid packagegroup
associated.

For this check to work dey features need to be defined for all images,
not only dey images, so the definitions need to move to the distro
configuration file.

https://jira.digi.com/browse/DEL-852

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2014-01-17 13:27:37 +01:00
Javier Viguera 55ead71345 meta-digi: use SERIAL_CONSOLES instead of SERIAL_CONSOLE
SERIAL_CONSOLE variable has been deprecated in poky. The new
SERIAL_CONSOLES allows to configure multiple devices.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2014-01-14 17:19:38 +01:00
Alex Gonzalez 8988542df3 meta-digi: Rename from DEL to DEY.
The final product will be called "Digi Embedded for Yocto" or DEY for
short.

This commit renames all relevant files.

https://jira.digi.com/browse/DEL-474

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2013-06-12 13:18:37 +02:00