# Dummy line before checksum
checksum: c83402d5afa4a70f16cba436b61c4e4ad52ff138
# Dummy line after checksum
board: CHROMEBOOK

encoding_patterns:
  0: default
  1: new pattern

image_id:
  0: EVT
  1: DVT
  2: MP

pattern:
  - image_ids: [0, 1]
    encoding_scheme: base32
    fields:
    - firmware: 5             # 5 bits

    - audio_codec: 1
    - battery: 2
    - bluetooth: 0
    - cellular: 1
    - chipset: 0
    - cpu: 1                  # 10 bits

    - display_panel: 0
    - dram: 1
    - keyboard: 1
    - video: 0
    - cpu: 1
    - storage: 2              # 15 bits

    - cpu: 1                  # 16 bits

  - image_ids: [2]
    encoding_scheme: base8192
    fields:
    - firmware: 5             # 5 bits

    - audio_codec: 1
    - battery: 2
    - bluetooth: 0
    - cellular: 1
    - chipset: 0
    - cpu: 1                  # 10 bits

    - display_panel: 0
    - dram: 1
    - keyboard: 1
    - video: 0
    - cpu: 1
    - storage: 2              # 15 bits

    - cpu: 1                  # 16 bits

encoded_fields:
  audio_codec:
    0:
      audio_codec: [codec_0, hdmi_0]
    1:
      audio_codec: [codec_1, hdmi_1]
  battery:
    0:
      battery: battery_small
    1:
      battery: battery_medium
    2:
      battery: battery_large
    3:
      battery: battery_huge
  bluetooth:
    0:
      bluetooth: bluetooth_0
  cellular:
    0:
      cellular: NULL
    1:
      cellular: cellular_0
  chipset:
    0:
      chipset: chipset_0
  cpu:
    0:
      cpu: cpu_0
    1:
      cpu: cpu_1
    2:
      cpu: cpu_2
    3:
      cpu: cpu_3
    4:
      cpu: cpu_4
    5:
      cpu: cpu_5
  display_panel:
    0:
      display_panel: display_panel_0
  dram:
    0:
      dram: dram_0
    1:
      dram: dram_1
  ec_flash_chip:
    0:
      ec_flash_chip: ec_flash_chip_0
  embedded_controller:
    0:
      embedded_controller: embedded_controller_0
  flash_chip:
    0:
      flash_chip: flash_chip_0
  keyboard:
    0:
      keyboard: keyboard_us
    1:
      keyboard: keyboard_gb
  storage:
    0:
      storage: storage_0
    1:
      storage: storage_1
    2:
      storage: storage_2
  video:
    0:
      video: camera_0
  firmware:
    0:
      hash_gbb: hash_gbb_0
      key_recovery: key_recovery_0
      key_root: key_root_0
      ro_ec_firmware: ro_ec_firmware_0
      ro_main_firmware: ro_main_firmware_0
    1:
      hash_gbb: hash_gbb_0
      key_recovery: key_recovery_0
      key_root: key_root_0
      ro_ec_firmware: ro_ec_firmware_0
      ro_main_firmware: ro_main_firmware_1
    2:
      hash_gbb: hash_gbb_0
      key_recovery: key_recovery_0
      key_root: key_root_0
      ro_ec_firmware: ro_ec_firmware_1
      ro_main_firmware: ro_main_firmware_0

components:
  audio_codec:
    items:
      codec_0:
        values: { compact_str: Codec 0 }

      codec_1:
        values: { compact_str: Codec 1 }

      hdmi_0:
        values: { compact_str: HDMI 0 }

      hdmi_1:
        values: { compact_str: HDMI 1 }

  battery:
    items:
      battery_small:
        values:
          tech: Battery Li-ion
          size: '2500000'

      battery_medium:
        values:
          tech: Battery Li-ion
          size: '5000000'

      battery_large:
        values:
          tech: Battery Li-ion
          size: '7500000'

      battery_huge:
        values:
          tech: Battery Li-ion
          size: '10000000'

  bluetooth:
    items:
      bluetooth_0:
        values:
          idVendor: '0123'
          idProduct: abcd
          bcd: '0001'

  cellular:
    items:
      cellular_0:
        values:
          idVendor: 89ab
          idProduct: abcd
          name: Cellular Card
        labels:
          technology: 3G

  chipset:
    items:
      chipset_0:
        values: { compact_str: 'cdef:abcd' }

  cpu:
    items:
      cpu_0:
        values:
          name: CPU @ 1.80GHz
          cores: '4'

      cpu_1:
        values:
          name: CPU @ 2.00GHz
          cores: '4'

      cpu_2:
        values:
          name: CPU @ 2.20GHz
          cores: '4'

      cpu_3:
        values:
          name: CPU @ 2.40GHz
          cores: '4'

      cpu_4:
        values:
          name: CPU @ 2.60GHz
          cores: '4'

      cpu_5:
        values:
          name: CPU @ 2.80GHz
          cores: '4'

  display_panel:
    probeable: False
    items:
      display_panel_0:
        values: NULL

  dram:
    items:
      dram_0:
        values:
          vendor: DRAM 0
          size: 4G
        labels:
          size: 4G

      dram_1:
        values:
          vendor: DRAM 1
          size: 4G
        labels:
          size: 4G

  ec_flash_chip:
    items:
      ec_flash_chip_0:
        values: { compact_str: EC Flash Chip }

  embedded_controller:
    items:
      embedded_controller_0:
        values: { compact_str: Embedded Controller }

  flash_chip:
    items:
      flash_chip_0:
        values: { compact_str: Flash Chip }

  keyboard:
    probeable: False
    items:
      keyboard_gb:
        values: NULL
        labels:
          layout: GB

      keyboard_us:
        values: NULL
        labels:
          layout: US

  storage:
    items:
      storage_0:
        values:
          type: SSD
          size: 16G
          serial: !re '^#123\d+$'
        labels:
          technology: SSD
          size: 16G

      storage_1:
        values:
          type: SSD
          size: 32G
          serial: !re '^#123\d+$'
        labels:
          technology: SSD
          size: 32G

      storage_2:
        values:
          type: HDD
          size: 500G
          serial: !re '^#123\d+$'
        labels:
          technology: HDD
          size: 500G

  video:
    items:
      camera_0:
        values:
          idVendor: '4567'
          idProduct: abcd
          type: webcam

  hash_gbb:
    items:
      hash_gbb_0:
        values: { compact_str: gv2#hash_gbb_0 }

  key_recovery:
    items:
      key_recovery_0:
        values: { compact_str : kv3#key_recovery_0 }

  key_root:
    items:
      key_root_0:
        values: { compact_str: kv3#key_root_0 }

  ro_ec_firmware:
    items:
      ro_ec_firmware_0:
        values: { compact_str: ev2#ro_ec_firmware_0 }
      ro_ec_firmware_1:
        status: unsupported
        values: { compact_str: ev2#ro_ec_firmware_1 }

  ro_main_firmware:
    items:
      ro_main_firmware_0:
        values: { compact_str: mv2#ro_main_firmware_0 }
      ro_main_firmware_1:
        status: deprecated
        values: { compact_str: mv2#ro_main_firmware_1 }

rules:
- name: device_info.component.has_cellular
  when: GetDeviceInfo('component.has_cellular')
  evaluate: SetComponent('cellular', 'cellular_0')
  otherwise: SetComponent('cellular', None)

- name: device_info.component.keyboard
  evaluate: >
      SetComponent(
          'keyboard', LookupMap(GetDeviceInfo('keyboard'), {
              'us': 'keyboard_us',
              'gb': 'keyboard_gb'
          }))

- name: device_info.component.dram
  evaluate: >
      SetComponent(
          'dram', LookupMap(GetDeviceInfo('component.dram'), {
              'foo': 'dram_0',
              'bar': 'dram_1'
          }))

- name: device_info.component.audio_codec
  evaluate: >
      SetComponent(
          'audio_codec', LookupMap(GetDeviceInfo('component.audio_codec'), {
              'set_0': ['codec_0', 'hdmi_0'],
              'set_1': ['codec_1', 'hdmi_1']
          }))

- name: verify.vpd.ro
  evaluate:
  - Assert(ValidVPDValue('ro', 'region'))
  - Assert(ValidVPDValue('ro', 'serial_number'))

- name: verify.vpd.rw
  evaluate:
  - CheckRegistrationCode(GetVPDValue('rw', 'gbind_attribute'))
  - CheckRegistrationCode(GetVPDValue('rw', 'ubind_attribute'))

- name: verify.test.rule_1
  when: ComponentEq('audio_codec', 'Codec 1') and
        ComponentEq('audio_codec', 'HDMI 1')
  evaluate:
  - Assert(ComponentEq('battery', 'battery_huge'))
  - Assert(ComponentEq('hash_gbb', 'hash_gbb_0'))
  - Assert(ComponentEq('key_recovery', 'key_recovery_0'))
  - Assert(ComponentEq('key_root', 'key_root_0'))
  - Assert(ComponentEq('ro_ec_firmware', 'ro_ec_firmware_0'))
  - Assert(ComponentEq('ro_main_firmware', 'ro_main_firmware_0'))

- name: verify.test.rule_2
  when: ComponentEq('dram', 'dram_0')
  evaluate:
  - Assert(ComponentEq('battery', 'battery_huge'))
  - Assert(ComponentEq('hash_gbb', 'hash_gbb_0'))
  - Assert(ComponentEq('key_recovery', 'key_recovery_0'))
  - Assert(ComponentEq('key_root', 'key_root_0'))
  - Assert(ComponentEq('ro_ec_firmware', 'ro_ec_firmware_0'))
  - Assert(ComponentEq('ro_main_firmware', 'ro_main_firmware_0'))
  - Assert(ComponentIn('cpu', ['cpu_1', 'cpu_2']))

- name: verify.test.rule_3
  when: ComponentEq('dram', 'dram_0') and ComponentEq('cellular', 'cellular_0')
  evaluate:
  - Assert(ComponentEq('battery', 'huge_battery'))
  - Assert(ComponentIn('cpu', ['cpu_1', 'cpu_2']))

- name: verify.test.rule_4
  when: not ComponentEq('cpu', None)
  evaluate:
  - Assert(ComponentEq('storage', ['SSD', '16G']))
  - Assert((not ComponentEq('battery', 'battery_small')) or
           (ComponentIn('cpu', ['cpu_1', 'cpu_2', 'cpu_3'])))

- name: verify.test.rule_5
  when: not ComponentEq('cpu', None)
  evaluate: Assert(ComponentEq('storage', 'SSD') or
                   ComponentEq('storage', '16G'))

- name: verify.test.rule_6
  evaluate: Assert(ComponentEq('storage', 'SSD') or
                   ComponentEq('storage', '16G'))

- name: verify.sku.us
  evaluate: >
      ComponentEq('audio_codec', ['hdmi_1', 'codec_1']) and
      ComponentEq('cpu', 'cpu_5') and
      ComponentEq('battery', 'battery_huge') and
      ComponentEq('keyboard', 'US') and
      ComponentEq('storage', ['SSD', '16G'])

- name: verify.sku.gb
  evaluate: >
      ComponentEq('audio_codec', ['hdmi_1', 'codec_1']) and
      ComponentEq('cpu', 'cpu_4') and
      ComponentEq('battery', 'battery_medium') and
      ComponentEq('keyboard', 'GB') and
      ComponentEq('storage', ['HDD', '500G'])
