blob: 3c2b7a36a3b2965cff4414c142609f01d1980441 [file] [log] [blame]
# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"$schema": http://json-schema.org/draft-04/schema#
typeDefs:
bcs-file-name: &bcs_file_name
type: string
description: Name of the file located in BCS under the respective bcs-overlay.
firmware-build-target: &firmware_build_target
type: string
description: Build target that will be considered dirty when building/testing
locally.
system-file: &system_file
type: object
properties:
source:
description: Source of the file relative to the build system.
type: string
destination:
description: Installation path for the file on the system image.
type: string
additionalProperties: false
firmware-file: &firmware_file
type: object
properties:
source:
description: Source of the file relative to the build system ${FILESDIR}
type: string
destination:
description: Installation path for the file on the system image.
type: string
symlink:
description: Symlink file that will be installed pointing to the destination.
type: string
additionalProperties: false
type: object
properties:
chromeos:
type: object
properties:
models:
type: array
items:
type: object
properties:
arc:
type: object
properties:
build-properties:
type: object
properties:
product:
description: |
Product name to report in 'ro.product.name'.
This may be the model name, or it can be something else, to allow
several models to be grouped into one product.
type: string
device:
description: |
Device name to report in 'ro.product.device'. This
is often '{product}_cheets' but it can be something else if
desired.
type: string
oem:
description: |
Original Equipment Manufacturer for this model. This
generally means the OEM name printed on the device.
type: string
marketing-name:
description: |
Name of this model as it is called in the
market, reported in 'ro.product.model'. This often starts
with '{oem}'.
type: string
metrics-tag:
description: |
Tag to use to track metrics for this model.
The tag can be shared across many models if desired, but
this will result in larger granularity for metrics
reporting. Ideally the metrics system should support
collation of metrics with different tags into groups, but if
this is not supported, this tag can be used to achieve the
same end. This is reported in 'ro.product.metrics.tag'.
type: string
first-api-level:
description: |
The first Android API level that this model shipped with.
type: string
additionalProperties: false
files:
type: array
items: *system_file
additionalProperties: false
audio:
type: object
properties:
main:
type: object
properties:
cras-config-dir:
description: Subdirectory for model-specific configuration.
type: string
disable-profile:
description: Optional --disable_profile parameter for CRAS deamon.
type: string
ucm-suffix:
description: Optional UCM suffix used to determine model specific
config.
type: string
files:
type: array
items: *system_file
additionalProperties: false
required:
- cras-config-dir
additionalProperties: false
required:
- main
brand-code:
description: Brand code of the model (also called RLZ code).
type: string
pattern: "^[A-Z]{4}$"
firmware:
type: object
properties:
bcs-overlay:
description: BCS overlay path used to determine BCS file path for binary
firmware downloads.
type: string
build-targets:
type: object
properties:
coreboot: *firmware_build_target
cr50: *firmware_build_target
depthcharge: *firmware_build_target
ec: *firmware_build_target
libpayload: *firmware_build_target
additionalProperties: false
ec-image: *bcs_file_name
pd-image: *bcs_file_name
key-id:
description: Key ID from the signer key set that is used to sign the
given firmware image.
type: string
main-image: *bcs_file_name
main-rw-image: *bcs_file_name
no-firmware:
description: |
If present this indicates that this model has no firmware at present.
This means that it will be omitted from the firmware updater
(chromeos-firmware- ebuild) and it will not be included in the signer
instructions file sent to the signer.
This option is often useful when a model is first added,
since it may not have firmware at that point.
type: boolean
pattern: "^[A-Z|_|0-9]*$"
additionalProperties: false
firmware-signing:
type: object
properties:
key-id:
description: Key ID from the signer key set that is used to sign the
given firmware image.
type: string
signature-id:
description: ID used to generate keys/keyblocks in the firmware
signing output. This is also the value provided to mosys platform
signature for the updater4.sh script.
type: string
sig-id-in-customization-id:
description: |
Indicates that this model cannot be decoded by the mapping table.
Instead the model is stored in the VPD (Vital Product Data) region in the
customization_id property. This allows us to determine the
model to use in the factory during the finalization stage. Note
that if the VPD is wiped then the model will be lost. This may
mean that the device will revert back to a generic model, or
may not work. It is not possible in general to test whether the
model in the VPD is correct at run-time. We simply assume that
it is. The advantage of using this property is that no hardware
changes are needed to change one model into another. For example
we can create 20 different whitelabel boards, all with the same
hardware, just by changing the customization_id that is written
into SPI flash.
type: boolean
required:
- key-id
- signature-id
additionalProperties: false
identity:
type: object
properties:
customization-id:
description: Customization ID set in the VPD during manufacturing.
type: string
sku-id:
description: SKU/Board strapping pins configured during board manufacturing.
type: integer
platform-name:
description: Indicates the platform name for this platform.
This is reported by 'mosys platform name'. It is
typically the family name with the first letter capitalized.
type: string
smbios-name-match:
description: Firmware name built into the firmware and reflected back
out in the SMBIOS tables.
type: string
additionalProperties: false
name:
type: string
pattern: "^[_a-zA-Z0-9]{3,}"
description: Unique name for the given model.
powerd-prefs:
description: Powerd config that should be used.
type: string
test-label:
description: Test alias (model) label that will be applied in Autotest and
reported for test results.
type: string
thermal:
type: object
properties:
files:
type: array
items: *system_file
additionalProperties: false
required:
- files
touch:
type: object
properties:
present:
description: Whether touch is present or needs to be probed for.
type: string
enum:
# Put these in quotes to avoid them meaning True / False
- "yes"
- "no"
- probe
probe-regex:
description: If probe is set, the regex used to look for touch.
type: string
files:
type: array
items: *firmware_file
additionalProperties: false
wallpaper:
description: |
Base filename of the default wallpaper to show on this device.
type: string
additionalProperties: false
required:
- firmware
- name
additionalProperties: false
required:
- models