| // Copyright 2019 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. |
| |
| syntax = "proto3"; |
| |
| package device; |
| |
| option go_package = "go.chromium.org/chromiumos/infra/proto/go/device"; |
| |
| import "device/config_id.proto"; |
| |
| // These are the distinct configs combinations that will constitue a ChromeOS |
| // device. |
| |
| // Next tag: 21 |
| message Config { |
| |
| // Required. Unique ID of the device config. |
| ConfigId id = 1; |
| |
| // NOTE: anytime a proto field is removed, make sure to add them to these |
| // "reserved" lists below (see |
| // https://developers.google.com/protocol-buffers/docs/proto3#reserved) |
| |
| // For removing `carrier = 2` |
| reserved 2; |
| reserved "carrier"; |
| |
| // Next tag: 8 |
| enum FormFactor { |
| FORM_FACTOR_UNSPECIFIED = 0; |
| FORM_FACTOR_CLAMSHELL = 1; |
| FORM_FACTOR_CONVERTIBLE = 2; |
| FORM_FACTOR_DETACHABLE = 3; |
| FORM_FACTOR_CHROMEBASE = 4; |
| FORM_FACTOR_CHROMEBOX = 5; |
| FORM_FACTOR_CHROMEBIT = 6; |
| FORM_FACTOR_CHROMESLATE = 7; |
| } |
| |
| FormFactor form_factor = 3; |
| |
| // e.g: "haswell", "tegra",... |
| string gpu_family = 4; |
| |
| // Next Tag: 3 |
| enum Graphics { |
| GRAPHICS_UNSPECIFIED = 0; |
| GRAPHICS_GL = 1; |
| GRAPHICS_GLE = 2; |
| } |
| |
| Graphics graphics = 5; |
| |
| // Next Tag: 12 |
| enum HardwareFeature { |
| HARDWARE_FEATURE_UNSPECIFIED = 0; |
| HARDWARE_FEATURE_BLUETOOTH = 1; |
| HARDWARE_FEATURE_FLASHROM = 2; |
| // Indicate if the device support audio hotwording, an audio listening module |
| // included with Google Chrome and Chromium to support Google Assistant. |
| // https://chromeos.google.com/partner/dlm/docs/latest-requirements/chromebook.html#audio-hotwording-always-on-listening |
| HARDWARE_FEATURE_HOTWORDING = 3; |
| HARDWARE_FEATURE_INTERNAL_DISPLAY = 4; |
| // Indicate if the device has support for lucid sleep (a connected lower power state, |
| // in which the device should still has some network communications) |
| // https://chromeos.google.com/partner/dlm/docs/p-hardware-specs/lucidsleep.html |
| HARDWARE_FEATURE_LUCID_SLEEP = 5; |
| HARDWARE_FEATURE_WEBCAM = 6; |
| HARDWARE_FEATURE_STYLUS = 7; |
| HARDWARE_FEATURE_TOUCHPAD = 8; |
| HARDWARE_FEATURE_TOUCHSCREEN = 9; |
| // Indicate if the device has detachable keyboard. |
| // https://chromeos.google.com/partner/dlm/docs/latest-requirements/detachable.html#keyboard-external |
| HARDWARE_FEATURE_DETACHABLE_KEYBOARD = 10; |
| // Indicate if the device has fingerprint sensor. |
| HARDWARE_FEATURE_FINGERPRINT = 11; |
| } |
| |
| // If a hardware feature isn't specified, one can assume that it doesn't |
| // exist on the device. |
| repeated HardwareFeature hardware_features = 6; |
| |
| // Indicate the device's power supply. |
| // Next Tag: 3 |
| enum PowerSupply { |
| POWER_SUPPLY_UNSPECIFIED = 0; |
| POWER_SUPPLY_BATTERY = 1; |
| POWER_SUPPLY_AC_ONLY = 2; |
| } |
| PowerSupply power = 8; |
| |
| // Next Tag: 6 |
| enum Storage { |
| STORAGE_UNSPECIFIED = 0; |
| STORAGE_SSD = 1; |
| STORAGE_HDD = 2; |
| STORAGE_MMC = 3; |
| STORAGE_NVME = 4; |
| STORAGE_UFS = 5; |
| } |
| // Indicate the device's storage type. |
| Storage storage = 9; |
| |
| // Next tag: 13 |
| enum VideoAcceleration { |
| VIDEO_UNSPECIFIED = 0; |
| VIDEO_ACCELERATION_H264 = 1; |
| VIDEO_ACCELERATION_ENC_H264 = 2; |
| VIDEO_ACCELERATION_VP8 = 3; |
| VIDEO_ACCELERATION_ENC_VP8 = 4; |
| VIDEO_ACCELERATION_VP9 = 5; |
| VIDEO_ACCELERATION_ENC_VP9 = 6; |
| VIDEO_ACCELERATION_VP9_2 = 7; |
| VIDEO_ACCELERATION_ENC_VP9_2 = 8; |
| VIDEO_ACCELERATION_H265 = 9; |
| VIDEO_ACCELERATION_ENC_H265 = 10; |
| VIDEO_ACCELERATION_MJPG = 11; |
| VIDEO_ACCELERATION_ENC_MJPG = 12; |
| } |
| repeated VideoAcceleration video_acceleration_supports = 10; |
| |
| // Next Tag: 33 |
| enum SOC { |
| SOC_UNSPECIFIED = 0; |
| // Aka AML-Y |
| SOC_AMBERLAKE_Y = 1; |
| SOC_APOLLO_LAKE = 2; |
| SOC_BAY_TRAIL = 3; |
| SOC_BRASWELL = 4; |
| SOC_BROADWELL = 5; |
| SOC_CANNON_LAKE_Y = 6; |
| SOC_COMET_LAKE_U = 7; |
| SOC_EXYNOS_5250 = 8; |
| SOC_EXYNOS_5420 = 9; |
| // Aka GLK |
| SOC_GEMINI_LAKE = 10; |
| SOC_HASWELL = 11; |
| SOC_ICE_LAKE_Y = 12; |
| SOC_IVY_BRIDGE = 13; |
| SOC_KABYLAKE_U = 14; |
| // KabyLake U refresh |
| SOC_KABYLAKE_U_R = 15; |
| SOC_KABYLAKE_Y = 16; |
| SOC_MT8173 = 17; |
| SOC_MT8176 = 18; |
| SOC_MT8183 = 19; |
| SOC_PICASSO = 20; |
| SOC_PINE_TRAIL = 21; |
| SOC_RK3288 = 22; |
| SOC_RK3399 = 23; |
| SOC_SANDY_BRIDGE = 24; |
| SOC_SDM845 = 25; |
| SOC_SKYLAKE_U = 26; |
| SOC_SKYLAKE_Y = 27; |
| SOC_STONEY_RIDGE = 28; |
| SOC_TEGRA_K1 = 29; |
| SOC_WHISKEY_LAKE_U = 30; |
| SOC_SC7180 = 31; |
| SOC_JASPER_LAKE = 32; |
| } |
| |
| SOC soc = 11; |
| |
| // Full email address for TAMs responsible for device |
| repeated string tam = 12; |
| |
| // Full email address for Google EEs responsible for device |
| repeated string ee = 13; |
| |
| // Next Tag: 6 |
| enum ODM { |
| ODM_UNSPECIFIED = 0; |
| ODM_QUANTA = 1; |
| ODM_BITLAND = 2; |
| ODM_SAMSUNG = 3; |
| ODM_PEGATRON = 4; |
| ODM_COMPAL = 5; |
| } |
| |
| // ODM for device |
| ODM odm = 14; |
| |
| // Group email address for this device's odm contact in buganizer (@google.com) |
| string odm_email_group = 15; |
| |
| enum OEM { |
| OEM_UNSPECIFIED = 0; |
| OEM_ACER = 1; |
| OEM_DELL = 2; |
| OEM_SAMSUNG = 3; |
| OEM_HP = 4; |
| OEM_LENOVO = 5; |
| OEM_ASUS = 6; |
| OEM_NEC = 7; |
| } |
| |
| // OEM for device |
| OEM oem = 16; |
| |
| // Group email address for this device's oem contact in buganizer (@google.com) |
| string oem_email_group = 17; |
| |
| // Group email address for this device's SoC contact in buganizer (@google.com) |
| string soc_email_group = 18; |
| |
| // A bit field used by firmware to make decisions. The definition of this |
| // firmware configuration field is per firmware build. This does not have |
| // 1st-class definitions for values in the top-level configuration proto since |
| // each firmware build target can appropriate the bits within this 32-bit |
| // field differently. Each firmware build can vary significantly in the |
| // configuration space that needs customization. |
| uint32 firmware_configuration = 19; |
| |
| enum Architecture { |
| ARCHITECTURE_UNDEFINED = 0; |
| X86 = 1; |
| X86_64 = 2; |
| ARM = 3; |
| ARM64 = 4; |
| } |
| Architecture cpu = 20; |
| } |
| |
| // Message contains all ChromeOS device configs. |
| message AllConfigs { |
| repeated Config configs = 1; |
| } |