1// Copyright 2021 The ChromiumOS Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto3"; 6 7package chromiumos.config.api.software; 8 9import "chromiumos/build/api/factory.proto"; 10import "chromiumos/build/api/firmware_config.proto"; 11import "chromiumos/build/api/system_image.proto"; 12import "chromiumos/config/api/design_config_id.proto"; 13import "chromiumos/config/api/resource_config.proto"; 14import "chromiumos/config/api/software/audio_config.proto"; 15import "chromiumos/config/api/software/bluetooth_config.proto"; 16import "chromiumos/config/api/software/camera_config.proto"; 17import "chromiumos/config/api/software/disk_layout.proto"; 18import "chromiumos/config/api/software/firmware_info.proto"; 19import "chromiumos/config/api/software/health_config.proto"; 20import "chromiumos/config/api/software/nnpalm_config.proto"; 21import "chromiumos/config/api/software/power_config.proto"; 22import "chromiumos/config/api/software/rma_config.proto"; 23import "chromiumos/config/api/software/ui_config.proto"; 24import "chromiumos/config/api/software/usb_config.proto"; 25import "chromiumos/config/api/wifi_config.proto"; 26import "chromiumos/config/public_replication/public_replication.proto"; 27 28option go_package = "go.chromium.org/chromiumos/config/go/api/software"; 29 30// Contains all of the hardware-design-specific configuration that can be 31// updated via new software builds/releases. 32// 33// During manufacturing, the SoftwareConfigId will be set for a given device, 34// which will subsequently determine what SoftwareConfig shall be selected from 35// the current software-build installed on the device. 36// 37// SoftwareConfig payloads can be shared across different 38// hardware-design-configs, if the software payloads are the same. 39// 40// NEXT ID: 25 41message SoftwareConfig { 42 // Configures fields of AudioConfig that are made public. 43 chromiumos.config.public_replication.PublicReplication public_replication = 44 12; 45 46 // Defines the hardware design config this software config supports. 47 DesignConfigId design_config_id = 7; 48 49 // Scanning config used to determine the DesignConfigId 50 DesignConfigId.ScanConfig id_scan_config = 8; 51 52 // Defines firmware version pinning details (for non-development workflows). 53 chromiumos.build.api.FirmwareConfig firmware = 3; 54 55 // TODO(shapiroc): Remove once configs are migrated to firmware_build_targets 56 // This establishes consistent naming so the difference between build targets, 57 // build version pinning, and build metadata is clear (versus Config catch 58 // all naming). 59 chromiumos.build.api.FirmwareBuildConfig firmware_build_config = 9; 60 chromiumos.build.api.Firmware.BuildTargets firmware_build_targets = 16; 61 chromiumos.build.api.SystemImage.BuildTarget system_build_target = 13; 62 chromiumos.build.api.Factory.BuildTarget factory_build_target = 14; 63 64 BluetoothConfig bluetooth_config = 4; 65 66 PowerConfig power_config = 5; 67 68 ResourceConfig resource_config = 19; 69 70 repeated AudioConfig audio_configs = 10; 71 72 WifiConfig wifi_config = 11; 73 74 HealthConfig health_config = 18; 75 76 CameraConfig camera_config = 15; 77 78 UiConfig ui_config = 17; 79 80 UsbConfig usb_config = 20; 81 82 NnpalmConfig nnpalm_config = 21; 83 84 RmaConfig rma_config = 22; 85 86 FirmwareInfo firmware_info = 23; 87 88 DiskLayout disk_layout = 24; 89 90 reserved 1, 2, 6; 91} 92