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