tree: 56484679ce9c6bf1b3a59e3d9554718bf4cbf9af [path history] [tgz]
  1. bindings/
  2. docgen/
  3. brand_config.star
  4. build_metadata.star
  5. build_summary.star
  6. component.star
  7. config_bundle.star
  8. design.star
  9. device_brand.star
  10. flat_config.star
  11. generate.star
  12. hw_topology.star
  13. partner.star
  14. portage.star
  15. program.star
  16. public_replication.star
  17. README.md
  18. sw_config.star
  19. system_image.star
  20. test_plan.star
util/README.md

Config API Reference

Updating this Reference

This reference is automatically generated based on Starlark docstrings. If you change a Starlark util function, run util/docgen/generate.sh to regenerate. A few tips:

  • Templating is based on Go‘s text/template package. Usually, the contents this template file won’t need to be changed in order to regenerate.

  • Generation is based on docstrings, not the actual Starlark signatures. Thus, an “Args” section needs to be specified in the docstring in order for args to be picked up. Similarly, a “Returns” section needs to be specified in the docstring for returns to get picked up.

  • Specify “Required.” after an argument to make it a required argument in the generated documentation.

//config/util/brand_config.star

brand_config.create {#brand_config.create}

Builds a BrandConfig proto.

brand_config.create(device_brand_id, wallpaper = None, whitelabel_tag = None)

Arguments {#brand_config.create-args}

Returns {#brand_config.create-returns}

A BrandConfig proto.

//config/util/build_target.star

build_target.create {#build_target.create}

Builds a BuildTarget proto.

build_target.create(
    # Required arguments.
    name,

    # Optional arguments.
    public_fields = None,
    overlay_name = None,
    arc_device = None,
    first_api_level = None,
)

Arguments {#build_target.create-args}

  • name: Name of the build target, e.g. “galaxy”. Required.
  • public_fields: Fields replicated to public configs. See PublicReplication proto for details.
  • overlay_name: Name of the Portage overlay, e.g. “overlay-galaxy-private”. If not specified, “name” is used.
  • arc_device: Device name to report in ‘ro.product.device’. If not specified, “name”_cheets is used.
  • first_api_level: The first Android API level that this build shipped with.

Returns {#build_target.create-returns}

A BuildTarget proto.

//config/util/component.star

comp.create_soc_family {#comp.create_soc_family}

Builds a Component.Soc.Family proto.

comp.create_soc_family()

comp.create_soc_model {#comp.create_soc_model}

Builds a Component proto for an Soc.

comp.create_soc_model()

comp.create_bt {#comp.create_bt}

Builds a Component proto for Bluetooth.

comp.create_bt()

comp.create_display_panel {#comp.create_display_panel}

Builds a Component.DisplayPanel proto for touchscreen.

comp.create_display_panel()

comp.create_touchscreen {#comp.create_touchscreen}

Builds a Component.Touch proto for touchscreen.

comp.create_touchscreen()

comp.create_touchpad {#comp.create_touchpad}

Builds a Component.Touch proto for touchpad.

comp.create_touchpad()

comp.create_wifi {#comp.create_wifi}

Builds a Component proto for Wifi.

comp.create_wifi()

comp.create_qual {#comp.create_qual}

Builds a Component.Qualification proto.

comp.create_qual()

comp.create_quals {#comp.create_quals}

Builds a Component.Qualification proto for each of component_ids.

comp.create_quals()

comp.create_audio_codec {#comp.create_audio_codec}

Builds a Component.AudioCodec proto.

comp.create_audio_codec()

comp.create_battery {#comp.create_battery}

comp.create_battery()

comp.create_ec_flash_chip {#comp.create_ec_flash_chip}

Build a Component.FlashChip proto.

comp.create_ec_flash_chip()

comp.create_flash_chip {#comp.create_flash_chip}

Build a Component.FlashChip proto.

comp.create_flash_chip()

comp.create_embedded_controller {#comp.create_embedded_controller}

Build a Component.EmbeddedController proto.

comp.create_embedded_controller()

comp.create_storage_mmc {#comp.create_storage_mmc}

Build a Component.Storage proto for an MMC device.

comp.create_storage_mmc()

comp.create_tpm {#comp.create_tpm}

Build a Component.Tpm proto.

comp.create_tpm()

comp.create_usb {#comp.create_usb}

Builds a Interface.Usb proto.

comp.create_usb()

comp.create_pci {#comp.create_pci}

Builds a Interface.Pci proto.

comp.create_pci()

comp.append_display_panel {#comp.append_display_panel}

comp.append_display_panel()

comp.append_touchpad {#comp.append_touchpad}

comp.append_touchpad()

comp.append_touchscreen {#comp.append_touchscreen}

comp.append_touchscreen()

//config/util/config_bundle.star

config_bundle.create {#config_bundle.create}

Builds a ConfigBundle proto.

config_bundle.create()

config_bundle.generate {#config_bundle.generate}

Serializes a ConfigBundle to a file.

A json proto is written. Note that there is some post processing done by the gen_config script to convert this json output into a json output that uses ints for encoding enums.

config_bundle.generate()

//config/util/design.star

design.append_configs {#design.append_configs}

Creates and appends new SW and HW configs.

Create new Software and Hardware Design Configuration with the specified properties and then append them to the sw_configs and hw_configs arrays respectively. This ensures that all IDs are consistent.

design.append_configs(
    # Required arguments.
    sw_configs,
    hw_configs,
    design_id,
    config_id,

    # Optional arguments.
    hw_config_public_fields = None,
    sw_config_public_fields = None,
    hardware_topology = None,
    firmware = None,
    firmware_build_config = None,
    bluetooth = None,
    power = None,
    audio = None,
    wifi = None,
    smbios_name_match_override = None,
)

Arguments {#design.append_configs-args}

  • sw_configs: An array to append the new SoftwareConfig to. Required.
  • hw_configs: An array to append the new Design.Config to. Required.
  • design_id: A DesignId to use for the Design.Config and SoftwareConfig. Required.
  • config_id: A str or int used to construct the DesignConfigId for the Design.Config and SoftwareConfig. Required.
  • hw_config_public_fields: A list of str specifying fields on Design.Config that will be made public. See PublicReplication proto for details.
  • sw_config_public_fields: A list of str specifying fields on SoftwareConfig that will be made public. See PublicReplication proto for details.
  • hardware_topology: A HardwareTopology to be used in the Design.Config.
  • firmware: A FirmwareConfig to be used in the SoftwareConfig.
  • firmware_build_config: A FirmwareBuildConfig to be used in the SoftwareConfig.
  • bluetooth: A BluetoothConfig to be used in the SoftwareConfig.
  • power: A PowerConfig to be used in the SoftwareConfig.
  • audio: An AudioConfig to be used in the SoftwareConfig. Can be either a single AudioConfig or a list of AudioConfigs.
  • wifi: A WifiConfig to be used in the SoftwareConfig.
  • smbios_name_match_override: A str used for smbios_name_match in IdentityScanConfig. If not specified, the string in DesignId is used.

design.create_constraint {#design.create_constraint}

Builds a Design.Config.Constraint proto.

design.create_constraint()

design.create_constraints {#design.create_constraints}

Builds a Design.Config.Constrain proto for each of hw_features.

design.create_constraints()

design.create_design_id {#design.create_design_id}

Builds a DesignId proto.

design.create_design_id()

design.create_design {#design.create_design}

Builds a Design proto.

design.create_design()

design.generate

Serializes a ConfigBundle to a file.

A json proto is written. Note that there is some post processing done by the gen_config script to convert this json output into a json output that uses ints for encoding enums.

design.generate()

//config/util/device_brand.star

device_brand.create {#device_brand.create}

Builds a DeviceBrand proto.

device_brand.create()

//config/util/hw_topology.star

hw_topo.create_design_features {#hw_topo.create_design_features}

Builds a HardwareFeatures proto with form_factor.

hw_topo.create_design_features()

hw_topo.create_features {#hw_topo.create_features}

Builds a HardwareFeatures proto for each of form_factors.

hw_topo.create_features()

hw_topo.create_screen {#hw_topo.create_screen}

Builds a Topology proto for a screen.

hw_topo.create_screen()

hw_topo.create_form_factor {#hw_topo.create_form_factor}

Builds a Topology proto for a form factor.

hw_topo.create_form_factor(
    # Required arguments.
    form_factor,

    # Optional arguments.
    fw_configs = None,
    id = None,
    description = None,
)

Arguments {#hw_topo.create_form_factor-args}

  • form_factor: A FormFactorType enum. Required.
  • fw_configs: A list of FirmwareConfiguration protos for the form factor.
  • id: A string identifier for the Topology. If not passed, a default is provided based on form_factor.
  • description: An English description for the Topology. If not passed, a default is provided based on form_factor.

hw_topo.create_audio {#hw_topo.create_audio}

Builds a Topology proto for audio.

hw_topo.create_audio()

hw_topo.create_stylus {#hw_topo.create_stylus}

Builds a Topology proto for a stylus.

hw_topo.create_stylus()

hw_topo.create_keyboard {#hw_topo.create_keyboard}

Builds a Topology proto for a keyboard.

hw_topo.create_keyboard(
    # Required arguments.
    backlight,
    pwr_btn_present,
    kb_type,

    # Optional arguments.
    fw_configs = None,
    id = None,
    description = None,
)

Arguments {#hw_topo.create_keyboard-args}

  • backlight: True if a backlight is present. Required.
  • pwr_btn_present: True if a power button is present. Required.
  • kb_type: A KeyboardType enum. Required.
  • fw_configs: A list of FirmwareConfiguration protos for the form factor.
  • id: A string identifier for the Topology. If not passed, a default is provided.
  • description: An English description for the Topology. If not passed, a default is provided.

hw_topo.create_thermal {#hw_topo.create_thermal}

Builds a Topology proto for thermal.

hw_topo.create_thermal()

hw_topo.create_camera {#hw_topo.create_camera}

Builds a Topology proto for cameras.

hw_topo.create_camera(
    # Optional arguments.
    id = None,
    description = None,
    fw_configs = None,
    camera_devices = None,
    has_user_facing_camera = None,
    has_world_facing_camera = None,
    count = None,
)

Arguments {#hw_topo.create_camera-args}

  • id: A string identifier for the Topology.
  • description: An English description for the Topology.
  • fw_configs: A list of FirmwareConfiguration protos for the form factor.
  • camera_devices: A list of HardwareFeatures.Camera.Device protos.
  • has_user_facing_camera: If there is a user(front)-facing camera. Deprecated, use |camera_devices| instead.
  • has_world_facing_camera: If there is a world(back)-facing camera. Deprecated, use |camera_devices| instead.
  • count: The number of cameras. Deprecated, use |camera_devices| instead.

hw_topo.create_sensor {#hw_topo.create_sensor}

Builds a Topology proto for accelerometer/gyroscrope/magnometer sensors.

hw_topo.create_sensor()

hw_topo.create_fingerprint {#hw_topo.create_fingerprint}

Builds a Topology proto for a fingerprint reader.

hw_topo.create_fingerprint()

hw_topo.create_proximity_sensor {#hw_topo.create_proximity_sensor}

Builds a Topology proto for a proximity sensor.

hw_topo.create_proximity_sensor()

hw_topo.create_daughter_board {#hw_topo.create_daughter_board}

Builds a Topology proto for a daughter board.

hw_topo.create_daughter_board()

hw_topo.create_non_volatile_storage {#hw_topo.create_non_volatile_storage}

Builds a Topology proto for non-volatile storage.

hw_topo.create_non_volatile_storage()

hw_topo.create_wifi {#hw_topo.create_wifi}

Builds a Topology proto for a WiFi chip.

hw_topo.create_wifi()

hw_topo.create_lte_board {#hw_topo.create_lte_board}

Builds a Topology proto for a LTE board.

hw_topo.create_lte_board()

hw_topo.create_sd_reader {#hw_topo.create_sd_reader}

Builds a Topology proto for a SD reader.

hw_topo.create_sd_reader()

hw_topo.create_motherboard_usb {#hw_topo.create_motherboard_usb}

Builds a Topology proto for a motherboard.

hw_topo.create_motherboard_usb()

hw_topo.create_bluetooth {#hw_topo.create_bluetooth}

Builds a Topology proto for bluetooth.

hw_topo.create_bluetooth()

hw_topo.create_barreljack {#hw_topo.create_barreljack}

Builds a Topology proto for barreljack.

hw_topo.create_barreljack()

hw_topo.create_hardware_topology {#hw_topo.create_hardware_topology}

Builds a HardwareTopology proto from Topology protos.

hw_topo.create_hardware_topology()

hw_topo.create_power_button {#hw_topo.create_power_button}

Builds a Topology proto for a power button.

hw_topo.create_power_button(
    # Required arguments.
    region,
    edge,
    position,

    # Optional arguments.
    id = None,
    description = None,
)

Arguments {#hw_topo.create_power_button-args}

  • region: A HardwareFeatures.Button.Region enum. Required.
  • edge: A HardwareFeatures.Button.Edge enum. Required.
  • position: The percentage for button center position to the display‘s width/height in primary landscape screen orientation. If edge is LEFT or RIGHT, specifies the button’s center position as a fraction of region's height relative to the top of region. For TOP and BOTTOM, specifies the position as a fraction of region width relative to the left side of region. Must be in the range [0.0, 1.0]. Required.
  • id: A string identifier for the Topology. If not passed, a default is provided.
  • description: An English description for the Topology. If not passed, a default is provided.

hw_topo.create_volume_button {#hw_topo.create_volume_button}

Builds a Topology proto for a volume button.

hw_topo.create_volume_button(
    # Required arguments.
    region,
    edge,
    position,

    # Optional arguments.
    id = None,
    description = None,
)

Arguments {#hw_topo.create_volume_button-args}

  • region: A HardwareFeatures.Button.Region enum. Required.
  • edge: A HardwareFeatures.Button.Edge enum. Required.
  • position: The percentage for button center position to the display‘s width/height in primary landscape screen orientation. If edge is LEFT or RIGHT, specifies the button’s center position as a fraction of region's height relative to the top of region. For TOP and BOTTOM, specifies the position as a fraction of region width relative to the left side of region. Must be in the range [0.0, 1.0]. Required.
  • id: A string identifier for the Topology. If not passed, a default is provided.
  • description: An English description for the Topology. If not passed, a default is provided.

hw_topo.convert_to_hw_features {#hw_topo.convert_to_hw_features}

Converts a HardwareTopology proto to a HardwareFeatures proto.

hw_topo.convert_to_hw_features()

hw_topo.make_camera_device {#hw_topo.make_camera_device}

Builds a HardwareFeatures.Camera.Device proto.

hw_topo.make_camera_device()

hw_topo.make_fw_config {#hw_topo.make_fw_config}

Builds a HardwareFeatures.FirmwareConfiguration proto.

Takes a 32-bit mask for the field and an id. Shifts the id into the mask region and checks that the value fits within the bit mask.

hw_topo.make_fw_config()

//config/util/partner.star

partner.create

Builds a Partner proto.

partner.create()

//config/util/program.star

program.create

Builds a Program proto.

program.create()

program.create_firmware_configuration_segment {#program.create_firmware_configuration_segment}

Builds a FirmwareConfigurationSegment proto.

program.create_firmware_configuration_segment()

program.create_design_config_id_segment {#program.create_design_config_id_segment}

Builds a DesignConfigIdSegment proto.

program.create_design_config_id_segment()

program.create_signer_config {#program.create_signer_config}

Builds a DeviceSignerConfig proto.

program.create_signer_config()

program.create_signer_config_by_brand {#program.create_signer_config_by_brand}

program.create_signer_config_by_brand()

program.create_signer_configs_by_brand {#program.create_signer_configs_by_brand}

program.create_signer_configs_by_brand()

program.create_signer_config_by_design {#program.create_signer_config_by_design}

program.create_signer_config_by_design()

program.create_signer_configs_by_design {#program.create_signer_configs_by_design}

program.create_signer_configs_by_design()

program.generate

Serializes a ConfigBundle to a file.

A json proto is written. Note that there is some post processing done by the gen_config script to convert this json output into a json output that uses ints for encoding enums.

program.generate()

//config/util/public_replication.star

public_replication.create {#public_replication.create}

Creates a PublicReplication proto.

public_replication.create(public_fields)

Arguments {#public_replication.create-args}

  • public_fields: A list of strings specifying fields that should be made public. See comment on the PublicReplication proto for semantics and example of how the proto works. Required.

Returns {#public_replication.create-returns}

A PublicReplication proto, None if public_fields evaluates to False.

//config/util/sw_config.star

sw_config.create_ath10k {#sw_config.create_ath10k}

Builds a WifiConfig proto for use with ath10k drivers.

sw_config.create_ath10k(non_tablet_mode_transmit_power_chain, tablet_mode_transmit_power_chain)

Arguments {#sw_config.create_ath10k-args}

  • non_tablet_mode_transmit_power_chain: non-tablet mode power chain. Required.
  • tablet_mode_transmit_power_chain: tablet mode power chain. Required.

sw_config.create_ath10k_power_chain {#sw_config.create_ath10k_power_chain}

Builds a TransmitPowerChain for ath10k drivers.

sw_config.create_ath10k_power_chain(limit_2g, limit_5g)

Arguments {#sw_config.create_ath10k_power_chain-args}

  • limit_2g: 2G band power limit (dBm). Required.
  • limit_5g: 5G band power limit (dBm). Required.

sw_config.create_audio {#sw_config.create_audio}

Builds an AudioConfig proto.

sw_config.create_audio()

sw_config.create_bluetooth {#sw_config.create_bluetooth}

Builds a BluetoothConfig proto.

sw_config.create_bluetooth()

sw_config.create_fw_version {#sw_config.create_fw_version}

Builds a firmware Version proto.

If major_version is not specified, None is returned.

sw_config.create_fw_version()

sw_config.create_fw_payload {#sw_config.create_fw_payload}

Builds a FirmwarePayload proto.

sw_config.create_fw_payload()

sw_config.create_fw_config {#sw_config.create_fw_config}

Builds a FirmwareConfig proto.

sw_config.create_fw_config()

sw_config.create_fw_payloads_by_names {#sw_config.create_fw_payloads_by_names}

Builds a FirmwareConfig proto using common naming patterns.

sw_config.create_fw_payloads_by_names()

sw_config.create_fw_build_config {#sw_config.create_fw_build_config}

Builds a FirmwareBuildConfig proto.

sw_config.create_fw_build_config()

sw_config.create_fw_build_config_by_names {#sw_config.create_fw_build_config_by_names}

Builds a FirmwareBuildConfig proto using common naming patterns.

Build targets are set to be coreboot_name unless they are otherwise specified, e.g. depthcharge is set to coreboot_name unless depthcharge_name is specified. This function is provided as a convenience, as different firmware build targets often share the same name.

sw_config.create_fw_build_config_by_names()

sw_config.create_fw_build_targets {#sw_config.create_fw_build_targets}

Builds a FirmwareBuildConfig.BuildTargets proto.

sw_config.create_fw_build_targets()

sw_config.create_power {#sw_config.create_power}

Builds a PowerConfig proto.

sw_config.create_power()

sw_config.create_intel_geo_offsets {#sw_config.create_intel_geo_offsets}

Builds a GeoOffsets for intel drivers.

sw_config.create_intel_geo_offsets(
    # Required arguments.
    max_2g,
    offset_2g_a,
    offset_2g_b,
    max_5g,
    offset_5g_a,
    offset_5g_b,
)

Arguments {#sw_config.create_intel_geo_offsets-args}

  • max_2g: Defines the 2.4 GHz upper value for the allowed power to not be crossed by applying the Geo offset. Required.
  • offset_2g_a: Value to be added to the 2.4GHz WiFi band for chain a. (0.125 dBm) Required.
  • offset_2g_b: Value to be added to the 2.4GHz WiFi band for chain b. (0.125 dBm) Required.
  • max_5g: Defines the 5 GHz upper value for the allowed power to not be crossed by applying the Geo offset. Required.
  • offset_5g_a: Value to be added to 5GHz WiFi bands for chain a. (0.125 dBm) Required.
  • offset_5g_b: Value to be added to 5GHz WiFi bands for chain b. (0.125 dBm) Required.

sw_config.create_intel_power_chain {#sw_config.create_intel_power_chain}

Builds a TransmitPowerChain for intel drivers.

sw_config.create_intel_power_chain(
    # Required arguments.
    limit_2g,
    limit_5g_1,
    limit_5g_2,
    limit_5g_3,
    limit_5g_4,
)

Arguments {#sw_config.create_intel_power_chain-args}

  • limit_2g: 2G band power limit: All 2G band channels. (0.125 dBm). Required.
  • limit_5g_1: 5G band 1 power limit: 5.15G-5.35G channels. (0.125 dBm). Required.
  • limit_5g_2: 5G band 2 power limit: 5.35G-5.47G channels. (0.125 dBm). Required.
  • limit_5g_3: 5G band 3 power limit: 5.47G-5.725G channels. (0.125 dBm). Required.
  • limit_5g_4: 5G band 4 power limit: 5.725G-5.95G channels. (0.125 dBm). Required.

sw_config.create_intel_wifi {#sw_config.create_intel_wifi}

Builds a WifiConfig proto for use with intel drivers.

sw_config.create_intel_wifi(
    # Required arguments.
    non_tablet_mode_transmit_power_chain_a,
    non_tablet_mode_transmit_power_chain_b,
    tablet_mode_transmit_power_chain_a,
    tablet_mode_transmit_power_chain_b,
    fcc_offsets,
    eu_offsets,
    other_offsets,
)

Arguments {#sw_config.create_intel_wifi-args}

  • non_tablet_mode_transmit_power_chain_a: non-tablet mode power chain for chain a. Required.
  • non_tablet_mode_transmit_power_chain_b: non-tablet mode power chain for chain b. Required.
  • tablet_mode_transmit_power_chain_a: tablet mode power chain for chain a. Required.
  • tablet_mode_transmit_power_chain_b: tablet mode power chain for chain b. Required.
  • fcc_offsets: Offsets used for regulatory domains that follow FCC guidelines. Required.
  • eu_offsets: Offsets used for regulatory domains that follow ESTI guidelines. Required.
  • other_offsets: Offsets for regulatory domains that don't follow FCC or ETSI guidelines. Required.

sw_config.create_rtw88 {#sw_config.create_rtw88}

Builds a WifiConfig proto for use with rtw88 drivers.

sw_config.create_rtw88(
    # Required arguments.
    non_tablet_mode_transmit_power_chain,
    tablet_mode_transmit_power_chain,

    # Optional arguments.
    fcc_offsets = None,
    eu_offsets = None,
    other_offsets = None,
)

Arguments {#sw_config.create_rtw88-args}

  • non_tablet_mode_transmit_power_chain: non-tablet mode power chain. Required.
  • tablet_mode_transmit_power_chain: tablet mode power chain. Required.
  • fcc_offsets: Offsets used for regulatory domains that follow FCC guidelines
  • eu_offsets: Offsets used for regulatory domains that follow ESTI guidelines
  • other_offsets: Offsets for regulatory domains that don't follow FCC or ETSI guidelines

sw_config.create_rtw88_geo_offsets {#sw_config.create_rtw88_geo_offsets}

Builds a GeoOffsets from rtw88 drivers.

sw_config.create_rtw88_geo_offsets(offset_2g, offset_5g)

Arguments {#sw_config.create_rtw88_geo_offsets-args}

  • offset_2g: Value to be added to the 2.4GHz WiFi band. (0.125 dBm) Required.
  • offset_5g: Value to be added to all 5GHz WiFi bands. (0.125 dBm) Required.

sw_config.create_rtw88_power_chain {#sw_config.create_rtw88_power_chain}

Builds a TransmitPowerChain for rtw88 drivers.

sw_config.create_rtw88_power_chain(
    # Required arguments.
    limit_2g,
    limit_5g_1,
    limit_5g_3,
    limit_5g_4,
)

Arguments {#sw_config.create_rtw88_power_chain-args}

  • limit_2g: 2G band power limit: All 2G band channels. (0.125 dBm). Required.
  • limit_5g_1: 5G band 1 power limit: 5.15G-5.35G channels. (0.125 dBm). Required.
  • limit_5g_3: 5G band 3 power limit: 5.47G-5.725G channels. (0.125 dBm). Required.
  • limit_5g_4: 5G band 4 power limit: 5.725G-5.95G channels. (0.125 dBm). Required.