162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2020-2023 Intel Corporation 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef VPU_BOOT_API_H 762306a36Sopenharmony_ci#define VPU_BOOT_API_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/* 1062306a36Sopenharmony_ci * =========== FW API version information beginning ================ 1162306a36Sopenharmony_ci * The bellow values will be used to construct the version info this way: 1262306a36Sopenharmony_ci * fw_bin_header->api_version[VPU_BOOT_API_VER_ID] = (VPU_BOOT_API_VER_MAJOR << 16) | 1362306a36Sopenharmony_ci * VPU_BOOT_API_VER_MINOR; 1462306a36Sopenharmony_ci * VPU_BOOT_API_VER_PATCH will be ignored. KMD and compatibility is not affected if this changes. 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* 1862306a36Sopenharmony_ci * Major version changes that break backward compatibility. 1962306a36Sopenharmony_ci * Major version must start from 1 and can only be incremented. 2062306a36Sopenharmony_ci */ 2162306a36Sopenharmony_ci#define VPU_BOOT_API_VER_MAJOR 3 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci/* 2462306a36Sopenharmony_ci * Minor version changes when API backward compatibility is preserved. 2562306a36Sopenharmony_ci * Resets to 0 if Major version is incremented. 2662306a36Sopenharmony_ci */ 2762306a36Sopenharmony_ci#define VPU_BOOT_API_VER_MINOR 12 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci/* 3062306a36Sopenharmony_ci * API header changed (field names, documentation, formatting) but API itself has not been changed 3162306a36Sopenharmony_ci */ 3262306a36Sopenharmony_ci#define VPU_BOOT_API_VER_PATCH 2 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci/* 3562306a36Sopenharmony_ci * Index in the API version table 3662306a36Sopenharmony_ci * Must be unique for each API 3762306a36Sopenharmony_ci */ 3862306a36Sopenharmony_ci#define VPU_BOOT_API_VER_INDEX 0 3962306a36Sopenharmony_ci/* ------------ FW API version information end ---------------------*/ 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#pragma pack(push, 1) 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci/* 4462306a36Sopenharmony_ci * Firmware image header format 4562306a36Sopenharmony_ci */ 4662306a36Sopenharmony_ci#define VPU_FW_HEADER_SIZE 4096 4762306a36Sopenharmony_ci#define VPU_FW_HEADER_VERSION 0x1 4862306a36Sopenharmony_ci#define VPU_FW_VERSION_SIZE 32 4962306a36Sopenharmony_ci#define VPU_FW_API_VER_NUM 16 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_cistruct vpu_firmware_header { 5262306a36Sopenharmony_ci u32 header_version; 5362306a36Sopenharmony_ci u32 image_format; 5462306a36Sopenharmony_ci u64 image_load_address; 5562306a36Sopenharmony_ci u32 image_size; 5662306a36Sopenharmony_ci u64 entry_point; 5762306a36Sopenharmony_ci u8 vpu_version[VPU_FW_VERSION_SIZE]; 5862306a36Sopenharmony_ci u32 compression_type; 5962306a36Sopenharmony_ci u64 firmware_version_load_address; 6062306a36Sopenharmony_ci u32 firmware_version_size; 6162306a36Sopenharmony_ci u64 boot_params_load_address; 6262306a36Sopenharmony_ci u32 api_version[VPU_FW_API_VER_NUM]; 6362306a36Sopenharmony_ci /* Size of memory require for firmware execution */ 6462306a36Sopenharmony_ci u32 runtime_size; 6562306a36Sopenharmony_ci u32 shave_nn_fw_size; 6662306a36Sopenharmony_ci}; 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci/* 6962306a36Sopenharmony_ci * Firmware boot parameters format 7062306a36Sopenharmony_ci */ 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci#define VPU_BOOT_PLL_COUNT 3 7362306a36Sopenharmony_ci#define VPU_BOOT_PLL_OUT_COUNT 4 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci/** Values for boot_type field */ 7662306a36Sopenharmony_ci#define VPU_BOOT_TYPE_COLDBOOT 0 7762306a36Sopenharmony_ci#define VPU_BOOT_TYPE_WARMBOOT 1 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci/** Value for magic filed */ 8062306a36Sopenharmony_ci#define VPU_BOOT_PARAMS_MAGIC 0x10000 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci/** VPU scheduling mode. By default, OS scheduling is used. */ 8362306a36Sopenharmony_ci#define VPU_SCHEDULING_MODE_OS 0 8462306a36Sopenharmony_ci#define VPU_SCHEDULING_MODE_HW 1 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_cienum VPU_BOOT_L2_CACHE_CFG_TYPE { 8762306a36Sopenharmony_ci VPU_BOOT_L2_CACHE_CFG_UPA = 0, 8862306a36Sopenharmony_ci VPU_BOOT_L2_CACHE_CFG_NN = 1, 8962306a36Sopenharmony_ci VPU_BOOT_L2_CACHE_CFG_NUM = 2 9062306a36Sopenharmony_ci}; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci/** 9362306a36Sopenharmony_ci * Logging destinations. 9462306a36Sopenharmony_ci * 9562306a36Sopenharmony_ci * Logging output can be directed to different logging destinations. This enum 9662306a36Sopenharmony_ci * defines the list of logging destinations supported by the VPU firmware (NOTE: 9762306a36Sopenharmony_ci * a specific VPU FW binary may support only a subset of such output 9862306a36Sopenharmony_ci * destinations, depending on the target platform and compile options). 9962306a36Sopenharmony_ci */ 10062306a36Sopenharmony_cienum vpu_trace_destination { 10162306a36Sopenharmony_ci VPU_TRACE_DESTINATION_PIPEPRINT = 0x1, 10262306a36Sopenharmony_ci VPU_TRACE_DESTINATION_VERBOSE_TRACING = 0x2, 10362306a36Sopenharmony_ci VPU_TRACE_DESTINATION_NORTH_PEAK = 0x4, 10462306a36Sopenharmony_ci}; 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci/* 10762306a36Sopenharmony_ci * Processor bit shifts (for loggable HW components). 10862306a36Sopenharmony_ci */ 10962306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_ARM 0 11062306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_LRT 1 11162306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_LNN 2 11262306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_0 3 11362306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_1 4 11462306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_2 5 11562306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_3 6 11662306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_4 7 11762306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_5 8 11862306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_6 9 11962306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_7 10 12062306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_8 11 12162306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_9 12 12262306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_10 13 12362306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_11 14 12462306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_12 15 12562306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_13 16 12662306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_14 17 12762306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_SHV_15 18 12862306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_ACT_SHV_0 19 12962306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_ACT_SHV_1 20 13062306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_ACT_SHV_2 21 13162306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_ACT_SHV_3 22 13262306a36Sopenharmony_ci#define VPU_TRACE_PROC_NO_OF_HW_DEVS 23 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci/* KMB HW component IDs are sequential, so define first and last IDs. */ 13562306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_KMB_FIRST VPU_TRACE_PROC_BIT_LRT 13662306a36Sopenharmony_ci#define VPU_TRACE_PROC_BIT_KMB_LAST VPU_TRACE_PROC_BIT_SHV_15 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_cistruct vpu_boot_l2_cache_config { 13962306a36Sopenharmony_ci u8 use; 14062306a36Sopenharmony_ci u8 cfg; 14162306a36Sopenharmony_ci}; 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_cistruct vpu_warm_boot_section { 14462306a36Sopenharmony_ci u32 src; 14562306a36Sopenharmony_ci u32 dst; 14662306a36Sopenharmony_ci u32 size; 14762306a36Sopenharmony_ci u32 core_id; 14862306a36Sopenharmony_ci u32 is_clear_op; 14962306a36Sopenharmony_ci}; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_cistruct vpu_boot_params { 15262306a36Sopenharmony_ci u32 magic; 15362306a36Sopenharmony_ci u32 vpu_id; 15462306a36Sopenharmony_ci u32 vpu_count; 15562306a36Sopenharmony_ci u32 pad0[5]; 15662306a36Sopenharmony_ci /* Clock frequencies: 0x20 - 0xFF */ 15762306a36Sopenharmony_ci u32 frequency; 15862306a36Sopenharmony_ci u32 pll[VPU_BOOT_PLL_COUNT][VPU_BOOT_PLL_OUT_COUNT]; 15962306a36Sopenharmony_ci u32 perf_clk_frequency; 16062306a36Sopenharmony_ci u32 pad1[42]; 16162306a36Sopenharmony_ci /* Memory regions: 0x100 - 0x1FF */ 16262306a36Sopenharmony_ci u64 ipc_header_area_start; 16362306a36Sopenharmony_ci u32 ipc_header_area_size; 16462306a36Sopenharmony_ci u64 shared_region_base; 16562306a36Sopenharmony_ci u32 shared_region_size; 16662306a36Sopenharmony_ci u64 ipc_payload_area_start; 16762306a36Sopenharmony_ci u32 ipc_payload_area_size; 16862306a36Sopenharmony_ci u64 global_aliased_pio_base; 16962306a36Sopenharmony_ci u32 global_aliased_pio_size; 17062306a36Sopenharmony_ci u32 autoconfig; 17162306a36Sopenharmony_ci struct vpu_boot_l2_cache_config cache_defaults[VPU_BOOT_L2_CACHE_CFG_NUM]; 17262306a36Sopenharmony_ci u64 global_memory_allocator_base; 17362306a36Sopenharmony_ci u32 global_memory_allocator_size; 17462306a36Sopenharmony_ci /** 17562306a36Sopenharmony_ci * ShaveNN FW section VPU base address 17662306a36Sopenharmony_ci * On VPU2.7 HW this address must be within 2GB range starting from L2C_PAGE_TABLE base 17762306a36Sopenharmony_ci */ 17862306a36Sopenharmony_ci u64 shave_nn_fw_base; 17962306a36Sopenharmony_ci u64 save_restore_ret_address; /* stores the address of FW's restore entry point */ 18062306a36Sopenharmony_ci u32 pad2[43]; 18162306a36Sopenharmony_ci /* IRQ re-direct numbers: 0x200 - 0x2FF */ 18262306a36Sopenharmony_ci s32 watchdog_irq_mss; 18362306a36Sopenharmony_ci s32 watchdog_irq_nce; 18462306a36Sopenharmony_ci /* ARM -> VPU doorbell interrupt. ARM is notifying VPU of async command or compute job. */ 18562306a36Sopenharmony_ci u32 host_to_vpu_irq; 18662306a36Sopenharmony_ci /* VPU -> ARM job done interrupt. VPU is notifying ARM of compute job completion. */ 18762306a36Sopenharmony_ci u32 job_done_irq; 18862306a36Sopenharmony_ci /* VPU -> ARM IRQ line to use to request MMU update. */ 18962306a36Sopenharmony_ci u32 mmu_update_request_irq; 19062306a36Sopenharmony_ci /* ARM -> VPU IRQ line to use to notify of MMU update completion. */ 19162306a36Sopenharmony_ci u32 mmu_update_done_irq; 19262306a36Sopenharmony_ci /* ARM -> VPU IRQ line to use to request power level change. */ 19362306a36Sopenharmony_ci u32 set_power_level_irq; 19462306a36Sopenharmony_ci /* VPU -> ARM IRQ line to use to notify of power level change completion. */ 19562306a36Sopenharmony_ci u32 set_power_level_done_irq; 19662306a36Sopenharmony_ci /* VPU -> ARM IRQ line to use to notify of VPU idle state change */ 19762306a36Sopenharmony_ci u32 set_vpu_idle_update_irq; 19862306a36Sopenharmony_ci /* VPU -> ARM IRQ line to use to request counter reset. */ 19962306a36Sopenharmony_ci u32 metric_query_event_irq; 20062306a36Sopenharmony_ci /* ARM -> VPU IRQ line to use to notify of counter reset completion. */ 20162306a36Sopenharmony_ci u32 metric_query_event_done_irq; 20262306a36Sopenharmony_ci /* VPU -> ARM IRQ line to use to notify of preemption completion. */ 20362306a36Sopenharmony_ci u32 preemption_done_irq; 20462306a36Sopenharmony_ci /* Padding. */ 20562306a36Sopenharmony_ci u32 pad3[52]; 20662306a36Sopenharmony_ci /* Silicon information: 0x300 - 0x3FF */ 20762306a36Sopenharmony_ci u32 host_version_id; 20862306a36Sopenharmony_ci u32 si_stepping; 20962306a36Sopenharmony_ci u64 device_id; 21062306a36Sopenharmony_ci u64 feature_exclusion; 21162306a36Sopenharmony_ci u64 sku; 21262306a36Sopenharmony_ci /** PLL ratio for minimum clock frequency */ 21362306a36Sopenharmony_ci u32 min_freq_pll_ratio; 21462306a36Sopenharmony_ci /** PLL ratio for maximum clock frequency */ 21562306a36Sopenharmony_ci u32 max_freq_pll_ratio; 21662306a36Sopenharmony_ci /** 21762306a36Sopenharmony_ci * Initial log level threshold (messages with log level severity less than 21862306a36Sopenharmony_ci * the threshold will not be logged); applies to every enabled logging 21962306a36Sopenharmony_ci * destination and loggable HW component. See 'mvLog_t' enum for acceptable 22062306a36Sopenharmony_ci * values. 22162306a36Sopenharmony_ci */ 22262306a36Sopenharmony_ci u32 default_trace_level; 22362306a36Sopenharmony_ci u32 boot_type; 22462306a36Sopenharmony_ci u64 punit_telemetry_sram_base; 22562306a36Sopenharmony_ci u64 punit_telemetry_sram_size; 22662306a36Sopenharmony_ci u32 vpu_telemetry_enable; 22762306a36Sopenharmony_ci u64 crit_tracing_buff_addr; 22862306a36Sopenharmony_ci u32 crit_tracing_buff_size; 22962306a36Sopenharmony_ci u64 verbose_tracing_buff_addr; 23062306a36Sopenharmony_ci u32 verbose_tracing_buff_size; 23162306a36Sopenharmony_ci u64 verbose_tracing_sw_component_mask; /* TO BE REMOVED */ 23262306a36Sopenharmony_ci /** 23362306a36Sopenharmony_ci * Mask of destinations to which logging messages are delivered; bitwise OR 23462306a36Sopenharmony_ci * of values defined in vpu_trace_destination enum. 23562306a36Sopenharmony_ci */ 23662306a36Sopenharmony_ci u32 trace_destination_mask; 23762306a36Sopenharmony_ci /** 23862306a36Sopenharmony_ci * Mask of hardware components for which logging is enabled; bitwise OR of 23962306a36Sopenharmony_ci * bits defined by the VPU_TRACE_PROC_BIT_* macros. 24062306a36Sopenharmony_ci */ 24162306a36Sopenharmony_ci u64 trace_hw_component_mask; 24262306a36Sopenharmony_ci /** Mask of trace message formats supported by the driver */ 24362306a36Sopenharmony_ci u64 tracing_buff_message_format_mask; 24462306a36Sopenharmony_ci u64 trace_reserved_1[2]; 24562306a36Sopenharmony_ci /** 24662306a36Sopenharmony_ci * Period at which the VPU reads the temp sensor values into MMIO, on 24762306a36Sopenharmony_ci * platforms where that is necessary (in ms). 0 to disable reads. 24862306a36Sopenharmony_ci */ 24962306a36Sopenharmony_ci u32 temp_sensor_period_ms; 25062306a36Sopenharmony_ci /** PLL ratio for efficient clock frequency */ 25162306a36Sopenharmony_ci u32 pn_freq_pll_ratio; 25262306a36Sopenharmony_ci u32 pad4[28]; 25362306a36Sopenharmony_ci /* Warm boot information: 0x400 - 0x43F */ 25462306a36Sopenharmony_ci u32 warm_boot_sections_count; 25562306a36Sopenharmony_ci u32 warm_boot_start_address_reference; 25662306a36Sopenharmony_ci u32 warm_boot_section_info_address_offset; 25762306a36Sopenharmony_ci u32 pad5[13]; 25862306a36Sopenharmony_ci /* Power States transitions timestamps: 0x440 - 0x46F*/ 25962306a36Sopenharmony_ci struct { 26062306a36Sopenharmony_ci /* VPU_IDLE -> VPU_ACTIVE transition initiated timestamp */ 26162306a36Sopenharmony_ci u64 vpu_active_state_requested; 26262306a36Sopenharmony_ci /* VPU_IDLE -> VPU_ACTIVE transition completed timestamp */ 26362306a36Sopenharmony_ci u64 vpu_active_state_achieved; 26462306a36Sopenharmony_ci /* VPU_ACTIVE -> VPU_IDLE transition initiated timestamp */ 26562306a36Sopenharmony_ci u64 vpu_idle_state_requested; 26662306a36Sopenharmony_ci /* VPU_ACTIVE -> VPU_IDLE transition completed timestamp */ 26762306a36Sopenharmony_ci u64 vpu_idle_state_achieved; 26862306a36Sopenharmony_ci /* VPU_IDLE -> VPU_STANDBY transition initiated timestamp */ 26962306a36Sopenharmony_ci u64 vpu_standby_state_requested; 27062306a36Sopenharmony_ci /* VPU_IDLE -> VPU_STANDBY transition completed timestamp */ 27162306a36Sopenharmony_ci u64 vpu_standby_state_achieved; 27262306a36Sopenharmony_ci } power_states_timestamps; 27362306a36Sopenharmony_ci /* VPU scheduling mode. Values defined by VPU_SCHEDULING_MODE_* macros. */ 27462306a36Sopenharmony_ci u32 vpu_scheduling_mode; 27562306a36Sopenharmony_ci /* Present call period in milliseconds. */ 27662306a36Sopenharmony_ci u32 vpu_focus_present_timer_ms; 27762306a36Sopenharmony_ci /* Unused/reserved: 0x478 - 0xFFF */ 27862306a36Sopenharmony_ci u32 pad6[738]; 27962306a36Sopenharmony_ci}; 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ci/* 28262306a36Sopenharmony_ci * Magic numbers set between host and vpu to detect corruptio of tracing init 28362306a36Sopenharmony_ci */ 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci#define VPU_TRACING_BUFFER_CANARY (0xCAFECAFE) 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci/* Tracing buffer message format definitions */ 28862306a36Sopenharmony_ci#define VPU_TRACING_FORMAT_STRING 0 28962306a36Sopenharmony_ci#define VPU_TRACING_FORMAT_MIPI 2 29062306a36Sopenharmony_ci/* 29162306a36Sopenharmony_ci * Header of the tracing buffer. 29262306a36Sopenharmony_ci * The below defined header will be stored at the beginning of 29362306a36Sopenharmony_ci * each allocated tracing buffer, followed by a series of 256b 29462306a36Sopenharmony_ci * of ASCII trace message entries. 29562306a36Sopenharmony_ci */ 29662306a36Sopenharmony_cistruct vpu_tracing_buffer_header { 29762306a36Sopenharmony_ci /** 29862306a36Sopenharmony_ci * Magic number set by host to detect corruption 29962306a36Sopenharmony_ci * @see VPU_TRACING_BUFFER_CANARY 30062306a36Sopenharmony_ci */ 30162306a36Sopenharmony_ci u32 host_canary_start; 30262306a36Sopenharmony_ci /* offset from start of buffer for trace entries */ 30362306a36Sopenharmony_ci u32 read_index; 30462306a36Sopenharmony_ci u32 pad_to_cache_line_size_0[14]; 30562306a36Sopenharmony_ci /* End of first cache line */ 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci /** 30862306a36Sopenharmony_ci * Magic number set by host to detect corruption 30962306a36Sopenharmony_ci * @see VPU_TRACING_BUFFER_CANARY 31062306a36Sopenharmony_ci */ 31162306a36Sopenharmony_ci u32 vpu_canary_start; 31262306a36Sopenharmony_ci /* offset from start of buffer from write start */ 31362306a36Sopenharmony_ci u32 write_index; 31462306a36Sopenharmony_ci /* counter for buffer wrapping */ 31562306a36Sopenharmony_ci u32 wrap_count; 31662306a36Sopenharmony_ci /* legacy field - do not use */ 31762306a36Sopenharmony_ci u32 reserved_0; 31862306a36Sopenharmony_ci /** 31962306a36Sopenharmony_ci * Size of the log buffer include this header (@header_size) and space 32062306a36Sopenharmony_ci * reserved for all messages. If @alignment` is greater that 0 the @Size 32162306a36Sopenharmony_ci * must be multiple of @Alignment. 32262306a36Sopenharmony_ci */ 32362306a36Sopenharmony_ci u32 size; 32462306a36Sopenharmony_ci /* Header version */ 32562306a36Sopenharmony_ci u16 header_version; 32662306a36Sopenharmony_ci /* Header size */ 32762306a36Sopenharmony_ci u16 header_size; 32862306a36Sopenharmony_ci /* 32962306a36Sopenharmony_ci * Format of the messages in the trace buffer 33062306a36Sopenharmony_ci * 0 - null terminated string 33162306a36Sopenharmony_ci * 1 - size + null terminated string 33262306a36Sopenharmony_ci * 2 - MIPI-SysT encoding 33362306a36Sopenharmony_ci */ 33462306a36Sopenharmony_ci u32 format; 33562306a36Sopenharmony_ci /* 33662306a36Sopenharmony_ci * Message alignment 33762306a36Sopenharmony_ci * 0 - messages are place 1 after another 33862306a36Sopenharmony_ci * n - every message starts and multiple on offset 33962306a36Sopenharmony_ci */ 34062306a36Sopenharmony_ci u32 alignment; /* 64, 128, 256 */ 34162306a36Sopenharmony_ci /* Name of the logging entity, i.e "LRT", "LNN", "SHV0", etc */ 34262306a36Sopenharmony_ci char name[16]; 34362306a36Sopenharmony_ci u32 pad_to_cache_line_size_1[4]; 34462306a36Sopenharmony_ci /* End of second cache line */ 34562306a36Sopenharmony_ci}; 34662306a36Sopenharmony_ci 34762306a36Sopenharmony_ci#pragma pack(pop) 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci#endif 350