| # 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 |