| # 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']) |