162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci====================================== 462306a36Sopenharmony_ciUltraSoc - HW Assisted Tracing on SoC 562306a36Sopenharmony_ci====================================== 662306a36Sopenharmony_ci :Author: Qi Liu <liuqi115@huawei.com> 762306a36Sopenharmony_ci :Date: January 2023 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciIntroduction 1062306a36Sopenharmony_ci------------ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciUltraSoc SMB is a per SCCL (Super CPU Cluster) hardware. It provides a 1362306a36Sopenharmony_ciway to buffer and store CPU trace messages in a region of shared system 1462306a36Sopenharmony_cimemory. The device acts as a coresight sink device and the 1562306a36Sopenharmony_cicorresponding trace generators (ETM) are attached as source devices. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciSysfs files and directories 1862306a36Sopenharmony_ci--------------------------- 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciThe SMB devices appear on the existing coresight bus alongside other 2162306a36Sopenharmony_cidevices:: 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci $# ls /sys/bus/coresight/devices/ 2462306a36Sopenharmony_ci ultra_smb0 ultra_smb1 ultra_smb2 ultra_smb3 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciThe ``ultra_smb<N>`` names SMB device associated with SCCL.:: 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci $# ls /sys/bus/coresight/devices/ultra_smb0 2962306a36Sopenharmony_ci enable_sink mgmt 3062306a36Sopenharmony_ci $# ls /sys/bus/coresight/devices/ultra_smb0/mgmt 3162306a36Sopenharmony_ci buf_size buf_status read_pos write_pos 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciKey file items are: 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci * ``read_pos``: Shows the value on the read pointer register. 3662306a36Sopenharmony_ci * ``write_pos``: Shows the value on the write pointer register. 3762306a36Sopenharmony_ci * ``buf_status``: Shows the value on the status register. 3862306a36Sopenharmony_ci BIT(0) is zero value which means the buffer is empty. 3962306a36Sopenharmony_ci * ``buf_size``: Shows the buffer size of each device. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciFirmware Bindings 4262306a36Sopenharmony_ci----------------- 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciThe device is only supported with ACPI. Its binding describes device 4562306a36Sopenharmony_ciidentifier, resource information and graph structure. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciThe device is identified as ACPI HID "HISI03A1". Device resources are allocated 4862306a36Sopenharmony_ciusing the _CRS method. Each device must present two base address; the first one 4962306a36Sopenharmony_ciis the configuration base address of the device, the second one is the 32-bit 5062306a36Sopenharmony_cibase address of shared system memory. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciExample:: 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci Device(USMB) { \ 5562306a36Sopenharmony_ci Name(_HID, "HISI03A1") \ 5662306a36Sopenharmony_ci Name(_CRS, ResourceTemplate() { \ 5762306a36Sopenharmony_ci QWordMemory (ResourceConsumer, , MinFixed, MaxFixed, NonCacheable, \ 5862306a36Sopenharmony_ci ReadWrite, 0x0, 0x95100000, 0x951FFFFF, 0x0, 0x100000) \ 5962306a36Sopenharmony_ci QWordMemory (ResourceConsumer, , MinFixed, MaxFixed, Cacheable, \ 6062306a36Sopenharmony_ci ReadWrite, 0x0, 0x50000000, 0x53FFFFFF, 0x0, 0x4000000) \ 6162306a36Sopenharmony_ci }) \ 6262306a36Sopenharmony_ci Name(_DSD, Package() { \ 6362306a36Sopenharmony_ci ToUUID("ab02a46b-74c7-45a2-bd68-f7d344ef2153"), \ 6462306a36Sopenharmony_ci /* Use CoreSight Graph ACPI bindings to describe connections topology */ 6562306a36Sopenharmony_ci Package() { \ 6662306a36Sopenharmony_ci 0, \ 6762306a36Sopenharmony_ci 1, \ 6862306a36Sopenharmony_ci Package() { \ 6962306a36Sopenharmony_ci 1, \ 7062306a36Sopenharmony_ci ToUUID("3ecbc8b6-1d0e-4fb3-8107-e627f805c6cd"), \ 7162306a36Sopenharmony_ci 8, \ 7262306a36Sopenharmony_ci Package() {0x8, 0, \_SB.S00.SL11.CL28.F008, 0}, \ 7362306a36Sopenharmony_ci Package() {0x9, 0, \_SB.S00.SL11.CL29.F009, 0}, \ 7462306a36Sopenharmony_ci Package() {0xa, 0, \_SB.S00.SL11.CL2A.F010, 0}, \ 7562306a36Sopenharmony_ci Package() {0xb, 0, \_SB.S00.SL11.CL2B.F011, 0}, \ 7662306a36Sopenharmony_ci Package() {0xc, 0, \_SB.S00.SL11.CL2C.F012, 0}, \ 7762306a36Sopenharmony_ci Package() {0xd, 0, \_SB.S00.SL11.CL2D.F013, 0}, \ 7862306a36Sopenharmony_ci Package() {0xe, 0, \_SB.S00.SL11.CL2E.F014, 0}, \ 7962306a36Sopenharmony_ci Package() {0xf, 0, \_SB.S00.SL11.CL2F.F015, 0}, \ 8062306a36Sopenharmony_ci } \ 8162306a36Sopenharmony_ci } \ 8262306a36Sopenharmony_ci }) \ 8362306a36Sopenharmony_ci } 84