• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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