// Copyright 2020 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto3";

package chromiumos.config.api;

option go_package = "go.chromium.org/chromiumos/config/go/api";

// Uniquely identifies a hardware configuration that will be developed
// for a given hardware design project.
message DesignConfigId {
  string value = 1;

  // Config used to scan an actual device to determine a given DesignConfig
  message ScanConfig {
    reserved 1, 2;
    reserved "smbios_name_match", "device_tree_compatible_match";

    oneof firmware_name_match {
      // String pattern (partial) that is matched against the
      // contents of first available:
      // /proc/device-tree/firmware/chromeos/readonly-firmware-version
      // /sys/devices/platform/chromeos_acpi/FRID
      string frid = 4;
    }

    // SKU configured during board manufacturing. Should match the value
    // returned by "cros_config /identity sku-id" (which abstracts how SKU is
    // encoded on the specific platform). Must be in the range [0, 0x7FFFFFFF].
    uint32 firmware_sku = 3;
  }
}
