/****************************************************************************\ * * File Name atomfirmware.h * Project This is an interface header file between atombios and OS GPU drivers for SoC15 products * * Description header file of general definitions for OS and pre-OS video drivers * * Copyright 2014 Advanced Micro Devices, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software * and associated documentation files (the "Software"), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * \****************************************************************************/ /*IMPORTANT NOTES * If a change in VBIOS/Driver/Tool's interface is only needed for SoC15 and forward products, then the change is only needed in this atomfirmware.h header file. * If a change in VBIOS/Driver/Tool's interface is only needed for pre-SoC15 products, then the change is only needed in atombios.h header file. * If a change is needed for both pre and post SoC15 products, then the change has to be made separately and might be differently in both atomfirmware.h and atombios.h. */ #ifndef _ATOMFIRMWARE_H_ #define _ATOMFIRMWARE_H_ enum atom_bios_header_version_def{ … }; #ifdef _H2INC #ifndef uint32_t typedef unsigned long uint32_t; #endif #ifndef uint16_t typedef unsigned short uint16_t; #endif #ifndef uint8_t typedef unsigned char uint8_t; #endif #endif enum atom_crtc_def{ … }; enum atom_ppll_def{ … }; // define ASIC internal encoder id ( bit vector ), used for CRTC_SourceSel enum atom_dig_def{ … }; //ucEncoderMode enum atom_encode_mode_def { … }; enum atom_encoder_refclk_src_def{ … }; enum atom_scaler_def{ … }; enum atom_operation_def{ … }; enum atom_embedded_display_op_def{ … }; enum atom_spread_spectrum_mode{ … }; /* define panel bit per color */ enum atom_panel_bit_per_color{ … }; //ucVoltageType enum atom_voltage_type { … }; enum atom_dgpu_vram_type { … }; enum atom_dp_vs_preemph_def{ … }; #define BIOS_ATOM_PREFIX … #define BIOS_VERSION_PREFIX … #define BIOS_STRING_LENGTH … /* enum atom_string_def{ asic_bus_type_pcie_string = "PCI_EXPRESS", atom_fire_gl_string = "FGL", atom_bios_string = "ATOM" }; */ #pragma pack(1) /* BIOS data must use byte aligment*/ enum atombios_image_offset{ … }; /**************************************************************************** * Common header for all tables (Data table, Command function). * Every table pointed in _ATOM_MASTER_DATA_TABLE has this common header. * And the pointer actually points to this header. ****************************************************************************/ struct atom_common_table_header { … }; /**************************************************************************** * Structure stores the ROM header. ****************************************************************************/ struct atom_rom_header_v2_2 { … }; /*==============================hw function portion======================================================================*/ /**************************************************************************** * Structures used in Command.mtb, each function name is not given here since those function could change from time to time * The real functionality of each function is associated with the parameter structure version when defined * For all internal cmd function definitions, please reference to atomstruct.h ****************************************************************************/ struct atom_master_list_of_command_functions_v2_1{ … }; struct atom_master_command_function_v2_1 { … }; /**************************************************************************** * Structures used in every command function ****************************************************************************/ struct atom_function_attribute { … }; /**************************************************************************** * Common header for all hw functions. * Every function pointed by _master_list_of_hw_function has this common header. * And the pointer actually points to this header. ****************************************************************************/ struct atom_rom_hw_function_header { … }; /*==============================sw data table portion======================================================================*/ /**************************************************************************** * Structures used in data.mtb, each data table name is not given here since those data table could change from time to time * The real name of each table is given when its data structure version is defined ****************************************************************************/ struct atom_master_list_of_data_tables_v2_1{ … }; struct atom_master_data_table_v2_1 { … }; struct atom_dtd_format { … }; /* atom_dtd_format.modemiscinfo defintion */ enum atom_dtd_format_modemiscinfo{ … }; /* utilitypipeline * when format_revision==1 && content_revision==1, then this an info table for atomworks to use during debug session, no structure is associated with it. * the location of it can't change */ /* *************************************************************************** Data Table firmwareinfo structure *************************************************************************** */ struct atom_firmware_info_v3_1 { … }; /* Total 32bit cap indication */ enum atombios_firmware_capability { … }; enum atom_cooling_solution_id{ … }; struct atom_firmware_info_v3_2 { … }; struct atom_firmware_info_v3_3 { … }; struct atom_firmware_info_v3_4 { … }; struct atom_firmware_info_v3_5 { … }; /* *************************************************************************** Data Table lcd_info structure *************************************************************************** */ struct lcd_info_v2_1 { … }; /* lcd_info_v2_1.panel_misc defintion */ enum atom_lcd_info_panel_misc{ … }; //uceDPToLVDSRxId enum atom_lcd_info_dptolvds_rx_id { … }; /* *************************************************************************** Data Table gpio_pin_lut structure *************************************************************************** */ struct atom_gpio_pin_assignment { … }; /* atom_gpio_pin_assignment.gpio_id definition */ enum atom_gpio_pin_assignment_gpio_id { … }; struct atom_gpio_pin_lut_v2_1 { … }; /* * VBIOS/PRE-OS always reserve a FB region at the top of frame buffer. driver should not write * access that region. driver can allocate their own reservation region as long as it does not * overlap firwmare's reservation region. * if (pre-NV1X) atom data table firmwareInfoTable version < 3.3: * in this case, atom data table vram_usagebyfirmwareTable version always <= 2.1 * if VBIOS/UEFI GOP is posted: * VBIOS/UEFIGOP update used_by_firmware_in_kb = total reserved size by VBIOS * update start_address_in_kb = total_mem_size_in_kb - used_by_firmware_in_kb; * ( total_mem_size_in_kb = reg(CONFIG_MEMSIZE)<<10) * driver can allocate driver reservation region under firmware reservation, * used_by_driver_in_kb = driver reservation size * driver reservation start address = (start_address_in_kb - used_by_driver_in_kb) * Comment1[hchan]: There is only one reservation at the beginning of the FB reserved by * host driver. Host driver would overwrite the table with the following * used_by_firmware_in_kb = total reserved size for pf-vf info exchange and * set SRIOV_MSG_SHARE_RESERVATION mask start_address_in_kb = 0 * else there is no VBIOS reservation region: * driver must allocate driver reservation region at top of FB. * driver set used_by_driver_in_kb = driver reservation size * driver reservation start address = (total_mem_size_in_kb - used_by_driver_in_kb) * same as Comment1 * else (NV1X and after): * if VBIOS/UEFI GOP is posted: * VBIOS/UEFIGOP update: * used_by_firmware_in_kb = atom_firmware_Info_v3_3.fw_reserved_size_in_kb; * start_address_in_kb = total_mem_size_in_kb - used_by_firmware_in_kb; * (total_mem_size_in_kb = reg(CONFIG_MEMSIZE)<<10) * if vram_usagebyfirmwareTable version <= 2.1: * driver can allocate driver reservation region under firmware reservation, * driver set used_by_driver_in_kb = driver reservation size * driver reservation start address = start_address_in_kb - used_by_driver_in_kb * same as Comment1 * else driver can: * allocate it reservation any place as long as it does overlap pre-OS FW reservation area * set used_by_driver_region0_in_kb = driver reservation size * set driver_region0_start_address_in_kb = driver reservation region start address * Comment2[hchan]: Host driver can set used_by_firmware_in_kb and start_address_in_kb to * zero as the reservation for VF as it doesn’t exist. And Host driver should also * update atom_firmware_Info table to remove the same VBIOS reservation as well. */ struct vram_usagebyfirmware_v2_1 { … }; struct vram_usagebyfirmware_v2_2 { … }; /* *************************************************************************** Data Table displayobjectinfo structure *************************************************************************** */ enum atom_object_record_type_id { … }; struct atom_common_record_header { … }; struct atom_i2c_record { … }; struct atom_hpd_int_record { … }; struct atom_connector_caps_record { … }; struct atom_connector_speed_record { … }; // Bit maps for ATOM_ENCODER_CAP_RECORD.usEncoderCap enum atom_encoder_caps_def { … }; struct atom_encoder_caps_record { … }; enum atom_connector_caps_def { … }; struct atom_disp_connector_caps_record { … }; //The following generic object gpio pin control record type will replace JTAG_RECORD/FPGA_CONTROL_RECORD/DVI_EXT_INPUT_RECORD above gradually struct atom_gpio_pin_control_pair { … }; struct atom_object_gpio_cntl_record { … }; //Definitions for GPIO pin state enum atom_gpio_pin_control_pinstate_def { … }; // Indexes to GPIO array in GLSync record // GLSync record is for Frame Lock/Gen Lock feature. enum atom_glsync_record_gpio_index_def { … }; struct atom_connector_hpdpin_lut_record //record for ATOM_CONNECTOR_HPDPIN_LUT_RECORD_TYPE { … }; struct atom_connector_auxddc_lut_record //record for ATOM_CONNECTOR_AUXDDC_LUT_RECORD_TYPE { … }; struct atom_connector_forced_tmds_cap_record { … }; struct atom_connector_layout_info { … }; // define ATOM_CONNECTOR_LAYOUT_INFO.ucConnectorType to describe the display connector size enum atom_connector_layout_info_connector_type_def { … }; struct atom_bracket_layout_record { … }; struct atom_bracket_layout_record_v2 { … }; enum atom_connector_layout_info_mini_type_def { … }; enum atom_display_device_tag_def{ … }; struct atom_display_object_path_v2 { … }; struct atom_display_object_path_v3 { … }; struct display_object_info_table_v1_4 { … }; struct display_object_info_table_v1_5 { … }; /* *************************************************************************** Data Table dce_info structure *************************************************************************** */ struct atom_display_controller_info_v4_1 { … }; struct atom_display_controller_info_v4_2 { … }; struct atom_display_controller_info_v4_3 { … }; struct atom_display_controller_info_v4_4 { … }; struct atom_dc_golden_table_v1 { … }; enum dce_info_caps_def { … }; struct atom_display_controller_info_v4_5 { … }; /* *************************************************************************** Data Table ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO structure *************************************************************************** */ struct atom_ext_display_path { … }; //usCaps enum ext_display_path_cap_def { … }; struct atom_external_display_connection_info { … }; /* *************************************************************************** Data Table integratedsysteminfo structure *************************************************************************** */ struct atom_camera_dphy_timing_param { … }; struct atom_camera_dphy_elec_param { … }; struct atom_camera_module_info { … }; struct atom_camera_flashlight_info { … }; struct atom_camera_data { … }; struct atom_14nm_dpphy_dvihdmi_tuningset { … }; struct atom_14nm_dpphy_dp_setting{ … }; struct atom_14nm_dpphy_dp_tuningset{ … }; struct atom_14nm_dig_transmitter_info_header_v4_0{ … }; struct atom_14nm_combphy_tmds_vs_set { … }; struct atom_DCN_dpphy_dvihdmi_tuningset { … }; struct atom_DCN_dpphy_dp_setting{ … }; struct atom_DCN_dpphy_dp_tuningset{ … }; struct atom_i2c_reg_info { … }; struct atom_hdmi_retimer_redriver_set { … }; struct atom_integrated_system_info_v1_11 { … }; struct atom_integrated_system_info_v1_12 { … }; struct edp_info_table { … }; struct atom_integrated_system_info_v2_1 { … }; struct atom_n6_display_phy_tuning_set { … }; struct atom_display_phy_tuning_info { … }; struct atom_integrated_system_info_v2_2 { … }; struct uma_carveout_option { … }; struct atom_integrated_system_info_v2_3 { … }; // system_config enum atom_system_vbiosmisc_def{ … }; // gpucapinfo enum atom_system_gpucapinf_def{ … }; //dpphy_override enum atom_sysinfo_dpphy_override_def{ … }; //lvds_misc enum atom_sys_info_lvds_misc_def { … }; //memorytype DMI Type 17 offset 12h - Memory Type enum atom_dmi_t17_mem_type_def{ … }; // this Table is used starting from NL/AM, used by SBIOS and pass the IntegratedSystemInfoTable/PowerPlayInfoTable/SystemCameraInfoTable struct atom_fusion_system_info_v4 { … }; /* *************************************************************************** Data Table gfx_info structure *************************************************************************** */ struct atom_gfx_info_v2_2 { … }; struct atom_gfx_info_v2_3 { … }; struct atom_gfx_info_v2_4 { … }; struct atom_gfx_info_v2_7 { … }; struct atom_gfx_info_v3_0 { … }; /* *************************************************************************** Data Table smu_info structure *************************************************************************** */ struct atom_smu_info_v3_1 { … }; struct atom_smu_info_v3_2 { … }; struct atom_smu_info_v3_3 { … }; struct atom_smu_info_v3_5 { … }; struct atom_smu_info_v3_6 { … }; struct atom_smu_info_v4_0 { … }; /* *************************************************************************** Data Table smc_dpm_info structure *************************************************************************** */ struct atom_smc_dpm_info_v4_1 { … }; /* *************************************************************************** Data Table smc_dpm_info structure *************************************************************************** */ struct atom_smc_dpm_info_v4_3 { … }; struct smudpm_i2ccontrollerconfig_t { … }; struct atom_smc_dpm_info_v4_4 { … }; enum smudpm_v4_5_i2ccontrollername_e{ … }; enum smudpm_v4_5_i2ccontrollerthrottler_e{ … }; enum smudpm_v4_5_i2ccontrollerprotocol_e{ … }; struct smudpm_i2c_controller_config_v2 { … }; struct atom_smc_dpm_info_v4_5 { … }; struct atom_smc_dpm_info_v4_6 { … }; struct atom_smc_dpm_info_v4_7 { … }; struct smudpm_i2c_controller_config_v3 { … }; struct atom_smc_dpm_info_v4_9 { … }; struct atom_smc_dpm_info_v4_10 { … }; /* *************************************************************************** Data Table asic_profiling_info structure *************************************************************************** */ struct atom_asic_profiling_info_v4_1 { … }; struct atom_asic_profiling_info_v4_2 { … }; /* *************************************************************************** Data Table multimedia_info structure *************************************************************************** */ struct atom_multimedia_info_v2_1 { … }; /* *************************************************************************** Data Table umc_info structure *************************************************************************** */ struct atom_umc_info_v3_1 { … }; // umc_info.umc_config enum atom_umc_config_def { … }; struct atom_umc_info_v3_2 { … }; struct atom_umc_info_v3_3 { … }; enum atom_umc_config1_def { … }; struct atom_umc_info_v4_0 { … }; /* *************************************************************************** Data Table vram_info structure *************************************************************************** */ struct atom_vram_module_v9 { … }; struct atom_vram_info_header_v2_3 { … }; /* *************************************************************************** Data Table vram_info v3.0 structure *************************************************************************** */ struct atom_vram_module_v3_0 { … }; struct atom_vram_info_header_v3_0 { … }; struct atom_umc_register_addr_info{ … }; //atom_umc_register_addr_info. enum atom_umc_register_addr_info_flag{ … }; atom_umc_register_addr_info_access; struct atom_umc_reg_setting_id_config{ … }; atom_umc_reg_setting_id_config_access; struct atom_umc_reg_setting_data_block{ … }; struct atom_umc_init_reg_block{ … }; struct atom_vram_module_v10 { … }; struct atom_vram_info_header_v2_4 { … }; struct atom_vram_module_v11 { … }; struct atom_gddr6_ac_timing_v2_5 { … }; struct atom_gddr6_bit_byte_remap { … }; struct atom_gddr6_dram_data_remap { … }; struct atom_vram_info_header_v2_5 { … }; struct atom_vram_info_header_v2_6 { … }; /* *************************************************************************** Data Table voltageobject_info structure *************************************************************************** */ struct atom_i2c_data_entry { … }; struct atom_voltage_object_header_v4{ … }; // atom_voltage_object_header_v4.voltage_mode enum atom_voltage_object_mode { … }; struct atom_i2c_voltage_object_v4 { … }; // ATOM_I2C_VOLTAGE_OBJECT_V3.ucVoltageControlFlag enum atom_i2c_voltage_control_flag { … }; struct atom_voltage_gpio_map_lut { … }; struct atom_gpio_voltage_object_v4 { … }; struct atom_svid2_voltage_object_v4 { … }; struct atom_merged_voltage_object_v4 { … }; atom_voltage_object_v4; struct atom_voltage_objects_info_v4_1 { … }; /* *************************************************************************** All Command Function structure definition *************************************************************************** */ /* *************************************************************************** Structures used by asic_init *************************************************************************** */ struct asic_init_engine_parameters { … }; struct asic_init_mem_parameters { … }; struct asic_init_parameters_v2_1 { … }; struct asic_init_ps_allocation_v2_1 { … }; enum atom_asic_init_engine_flag { … }; enum atom_asic_init_mem_flag { … }; /* *************************************************************************** Structures used by setengineclock *************************************************************************** */ struct set_engine_clock_parameters_v2_1 { … }; struct set_engine_clock_ps_allocation_v2_1 { … }; enum atom_set_engine_mem_clock_flag { … }; /* *************************************************************************** Structures used by getengineclock *************************************************************************** */ struct get_engine_clock_parameter { … }; /* *************************************************************************** Structures used by setmemoryclock *************************************************************************** */ struct set_memory_clock_parameters_v2_1 { … }; struct set_memory_clock_ps_allocation_v2_1 { … }; /* *************************************************************************** Structures used by getmemoryclock *************************************************************************** */ struct get_memory_clock_parameter { … }; /* *************************************************************************** Structures used by setvoltage *************************************************************************** */ struct set_voltage_parameters_v1_4 { … }; //set_voltage_parameters_v2_1.voltagemode enum atom_set_voltage_command{ … }; struct set_voltage_ps_allocation_v1_4 { … }; /* *************************************************************************** Structures used by computegpuclockparam *************************************************************************** */ //ATOM_COMPUTE_CLOCK_FREQ.ulComputeClockFlag enum atom_gpu_clock_type { … }; struct compute_gpu_clock_input_parameter_v1_8 { … }; struct compute_gpu_clock_output_parameter_v1_8 { … }; /* *************************************************************************** Structures used by ReadEfuseValue *************************************************************************** */ struct read_efuse_input_parameters_v3_1 { … }; // ReadEfuseValue input/output parameter read_efuse_value_parameters_v3_1; /* *************************************************************************** Structures used by getsmuclockinfo *************************************************************************** */ struct atom_get_smu_clock_info_parameters_v3_1 { … }; enum atom_get_smu_clock_info_command { … }; enum atom_smu9_syspll0_clock_id { … }; enum atom_smu11_syspll_id { … }; enum atom_smu11_syspll0_clock_id { … }; enum atom_smu11_syspll1_0_clock_id { … }; enum atom_smu11_syspll1_1_clock_id { … }; enum atom_smu11_syspll1_2_clock_id { … }; enum atom_smu11_syspll2_clock_id { … }; enum atom_smu11_syspll3_0_clock_id { … }; enum atom_smu11_syspll3_1_clock_id { … }; enum atom_smu12_syspll_id { … }; enum atom_smu12_syspll0_clock_id { … }; enum atom_smu12_syspll1_clock_id { … }; enum atom_smu12_syspll2_clock_id { … }; enum atom_smu12_syspll3_0_clock_id { … }; enum atom_smu12_syspll3_1_clock_id { … }; struct atom_get_smu_clock_info_output_parameters_v3_1 { … }; /* *************************************************************************** Structures used by dynamicmemorysettings *************************************************************************** */ enum atom_dynamic_memory_setting_command { … }; /* when command = COMPUTE_MEMORY_PLL_PARAM or ADJUST_MC_SETTING_PARAM */ struct dynamic_mclk_settings_parameters_v2_1 { … }; /* when command = COMPUTE_ENGINE_PLL_PARAM */ struct dynamic_sclk_settings_parameters_v2_1 { … }; dynamic_memory_settings_parameters_v2_1; /* *************************************************************************** Structures used by memorytraining *************************************************************************** */ enum atom_umc6_0_ucode_function_call_enum_id { … }; struct memory_training_parameters_v2_1 { … }; /* *************************************************************************** Structures used by setpixelclock *************************************************************************** */ struct set_pixel_clock_parameter_v1_7 { … }; //ucMiscInfo enum atom_set_pixel_clock_v1_7_misc_info { … }; /* deep_color_ratio */ enum atom_set_pixel_clock_v1_7_deepcolor_ratio { … }; /* *************************************************************************** Structures used by setdceclock *************************************************************************** */ // SetDCEClock input parameter for DCE11.2( ELM and BF ) and above struct set_dce_clock_parameters_v2_1 { … }; //ucDCEClkType enum atom_set_dce_clock_clock_type { … }; //ucDCEClkFlag when ucDCEClkType == DPREFCLK enum atom_set_dce_clock_dprefclk_flag { … }; //ucDCEClkFlag when ucDCEClkType == PIXCLK enum atom_set_dce_clock_pixclk_flag { … }; struct set_dce_clock_ps_allocation_v2_1 { … }; /****************************************************************************/ // Structures used by BlankCRTC /****************************************************************************/ struct blank_crtc_parameters { … }; enum atom_blank_crtc_command { … }; /****************************************************************************/ // Structures used by enablecrtc /****************************************************************************/ struct enable_crtc_parameters { … }; /****************************************************************************/ // Structure used by EnableDispPowerGating /****************************************************************************/ struct enable_disp_power_gating_parameters_v2_1 { … }; struct enable_disp_power_gating_ps_allocation { … }; /****************************************************************************/ // Structure used in setcrtc_usingdtdtiming /****************************************************************************/ struct set_crtc_using_dtd_timing_parameters { … }; /****************************************************************************/ // Structures used by processi2cchanneltransaction /****************************************************************************/ struct process_i2c_channel_transaction_parameters { … }; //ucFlag enum atom_process_i2c_flag { … }; //status enum atom_process_i2c_status { … }; /****************************************************************************/ // Structures used by processauxchanneltransaction /****************************************************************************/ struct process_aux_channel_transaction_parameters_v1_2 { … }; /****************************************************************************/ // Structures used by selectcrtc_source /****************************************************************************/ struct select_crtc_source_parameters_v2_3 { … }; /****************************************************************************/ // Structures used by digxencodercontrol /****************************************************************************/ // ucAction: enum atom_dig_encoder_control_action { … }; //define ucPanelMode enum atom_dig_encoder_control_panelmode { … }; //ucDigId enum atom_dig_encoder_control_v5_digid { … }; struct dig_encoder_stream_setup_parameters_v1_5 { … }; struct dig_encoder_link_setup_parameters_v1_5 { … }; struct dp_panel_mode_set_parameters_v1_5 { … }; struct dig_encoder_generic_cmd_parameters_v1_5 { … }; dig_encoder_control_parameters_v1_5; /* *************************************************************************** Structures used by dig1transmittercontrol *************************************************************************** */ struct dig_transmitter_control_parameters_v1_6 { … }; struct dig_transmitter_control_ps_allocation_v1_6 { … }; //ucAction enum atom_dig_transmitter_control_action { … }; // digfe_sel enum atom_dig_transmitter_control_digfe_sel { … }; //ucHPDSel enum atom_dig_transmitter_control_hpd_sel { … }; // ucDPLaneSet enum atom_dig_transmitter_control_dplaneset { … }; /****************************************************************************/ // Structures used by ExternalEncoderControl V2.4 /****************************************************************************/ struct external_encoder_control_parameters_v2_4 { … }; // ucAction enum external_encoder_control_action_def { … }; // ucConfig enum external_encoder_control_v2_4_config_def { … }; struct external_encoder_control_ps_allocation_v2_4 { … }; /* *************************************************************************** AMD ACPI Table *************************************************************************** */ struct amd_acpi_description_header{ … }; struct uefi_acpi_vfct{ … }; struct vfct_image_header{ … }; struct gop_vbios_content { … }; struct gop_lib1_content { … }; /* *************************************************************************** Scratch Register definitions Each number below indicates which scratch regiser request, Active and Connect all share the same definitions as display_device_tag defines *************************************************************************** */ enum scratch_register_def{ … }; enum scratch_device_connect_info_bit_def{ … }; enum scratch_bl_bri_level_info_bit_def{ … }; enum scratch_active_info_bits_def{ … }; enum scratch_device_req_info_bits_def{ … }; enum scratch_acc_change_info_bitshift_def{ … }; enum scratch_acc_change_info_bits_def{ … }; enum scratch_pre_os_mode_info_bits_def{ … }; /* *************************************************************************** ATOM firmware ID header file !! Please keep it at end of the atomfirmware.h !! *************************************************************************** */ #include "atomfirmwareid.h" #pragma pack() #endif