* Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @ 2022-11-23 7:29 Guo, Gua 2022-12-01 3:28 ` Guo, Gua 0 siblings, 1 reply; 5+ messages in thread From: Guo, Gua @ 2022-11-23 7:29 UTC (permalink / raw) To: Kinney, Michael D, Gao, Liming, devel@edk2.groups.io Cc: Chan, Laura, Prakashan, Krishnadas Veliyathuparambil, K N, Karthik, Lu, James, Chen, Arthur G, Chiu, Chasel, Zimmer, Vincent, Hsu, VictorX [-- Attachment #1: Type: text/plain, Size: 1831 bytes --] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> and @gaoliming<mailto:gaoliming@byosoft.com.cn> We want to add TraceHubDebug library support on Edk2. It's new added library on Edk2, so it doesn't have any backward and forward issue. May I know have any process we may need to follow up. Have any comment or concern please also share for me. Reviewers/Maintainers: @Prakashan, Krishnadas Veliyathuparambil<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>, @Chan, Laura<mailto:laura.chan@intel.com>, @K N, Karthik<mailto:karthik.k.n@intel.com>. USF UPL spec update: https://github.com/UniversalScalableFirmware/documentation/pull/52 (Done) Edk2 Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4144 (On-Going) Edk2 PR: https://github.com/tianocore/edk2/pull/3613 (On-Going) Background: * Problem: In the UPL (Universal Payload) binary which contains only the Edk2 drivers, Tracehub debug message are missing during the execution of early DXE Core modules (before ReportStatusCode is ready). * Solution: Add TraceHub lib on Edk2, to be consumed by the UPL. About TraceHubDebugLibSysT: * Library is consumed by the DebugLib and StatusCodeHandler to send the PostCodes, ProgressCodes and DEBUG messages to the TraceHub/NPK in MIPI SyS-T format. * The MIPI SyS-T APIs in this library are taken from the OpenSource implementation: https://github.com/MIPI-Alliance/public-mipi-sys-t. * Library changes done for upstreaming: MipiSystLib is rewritten to comply EDK2 coding standards and changed ways to pass trace address/verbosity with HOB directly instead of calling into TraceHubHookLib to get these info. * Proposal With UPL: consume HOB gUniversalPayloadTraceHubDebugInfoGuid to print TraceHub Debug message in DXE Core Thanks, Gua [-- Attachment #2: Type: text/html, Size: 8209 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] 2022-11-23 7:29 Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] Guo, Gua @ 2022-12-01 3:28 ` Guo, Gua 2022-12-28 9:50 ` Hsu, VictorX 0 siblings, 1 reply; 5+ messages in thread From: Guo, Gua @ 2022-12-01 3:28 UTC (permalink / raw) To: Kinney, Michael D, Gao, Liming, devel@edk2.groups.io Cc: Chan, Laura, Prakashan, Krishnadas Veliyathuparambil, K N, Karthik, Lu, James, Chen, Arthur G, Chiu, Chasel, Zimmer, Vincent, Hsu, VictorX [-- Attachment #1: Type: text/plain, Size: 3999 bytes --] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> As we offline sync, there are below opens like below. Have any open, please also share for us. 1. Need to add TraceHub PCD into edk2/MdeModulePkg.uni at master * tianocore/edk2 * GitHub<https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni> Answer: Will update it in next patch 1. What about the license ? Answer: It's BSD license, based on public-mipi-sys-t/LICENSE at master * MIPI-Alliance/public-mipi-sys-t (github.com)<https://github.com/MIPI-Alliance/public-mipi-sys-t/blob/master/LICENSE> 1. Is PcdTraceHubDebugAddress MMIO address ? If yes, why we use UINT32 Answer: It's MMIO address, we can change it to UINT64, it make sense to let the PCH more generic. Will update it in next patch. 1. For TraceHubWriteCataLog64_[0-6] try to use below macro to implement it. #define VA_START va_start #define VA_ARG va_arg #define VA_END va_end #define VA_LIST va_list Answer: Will update it in next patch 1. Is have SMM or MM version ? Answer: MdeModulePkg/Library/TraceHubDebugLibSysT/DxeTraceHubDebugLibSyst.inf can take care for SMM case. We can rename it like below to make it more clearly. MdeModulePkg/Library/TraceHubDebugLibSysT/DxeSmmTraceHubDebugLibSyst.inf 1. Whether have any chance to use .gitsubmodule to leverage https://github.com/MIPI-Alliance/public-mipi-sys-t. Answer: Will draft another PR and try to use gitsubmodule to check whether exist any predicament. Thanks Gua From: Guo, Gua Sent: Wednesday, November 23, 2022 3:29 PM To: Kinney, Michael D <michael.d.kinney@intel.com>; gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io Cc: Chan, Laura <laura.chan@intel.com>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com>; K N, Karthik <karthik.k.n@intel.com>; Lu, James <james.lu@intel.com>; Chen, Arthur G <arthur.g.chen@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Zimmer, Vincent <vincent.zimmer@intel.com>; Hsu, VictorX <victorx.hsu@intel.com> Subject: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> and @gaoliming<mailto:gaoliming@byosoft.com.cn> We want to add TraceHubDebug library support on Edk2. It's new added library on Edk2, so it doesn't have any backward and forward issue. May I know have any process we may need to follow up. Have any comment or concern please also share for me. Reviewers/Maintainers: @Prakashan, Krishnadas Veliyathuparambil<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>, @Chan, Laura<mailto:laura.chan@intel.com>, @K N, Karthik<mailto:karthik.k.n@intel.com>. USF UPL spec update: https://github.com/UniversalScalableFirmware/documentation/pull/52 (Done) Edk2 Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4144 (On-Going) Edk2 PR: https://github.com/tianocore/edk2/pull/3613 (On-Going) Background: * Problem: In the UPL (Universal Payload) binary which contains only the Edk2 drivers, Tracehub debug message are missing during the execution of early DXE Core modules (before ReportStatusCode is ready). * Solution: Add TraceHub lib on Edk2, to be consumed by the UPL. About TraceHubDebugLibSysT: * Library is consumed by the DebugLib and StatusCodeHandler to send the PostCodes, ProgressCodes and DEBUG messages to the TraceHub/NPK in MIPI SyS-T format. * The MIPI SyS-T APIs in this library are taken from the OpenSource implementation: https://github.com/MIPI-Alliance/public-mipi-sys-t. * Library changes done for upstreaming: MipiSystLib is rewritten to comply EDK2 coding standards and changed ways to pass trace address/verbosity with HOB directly instead of calling into TraceHubHookLib to get these info. * Proposal With UPL: consume HOB gUniversalPayloadTraceHubDebugInfoGuid to print TraceHub Debug message in DXE Core Thanks, Gua [-- Attachment #2: Type: text/html, Size: 18023 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] 2022-12-01 3:28 ` Guo, Gua @ 2022-12-28 9:50 ` Hsu, VictorX 2023-01-03 2:31 ` Guo, Gua 0 siblings, 1 reply; 5+ messages in thread From: Hsu, VictorX @ 2022-12-28 9:50 UTC (permalink / raw) To: Guo, Gua, Kinney, Michael D, Gao, Liming, devel@edk2.groups.io Cc: Chan, Laura, Prakashan, Krishnadas Veliyathuparambil, K N, Karthik, Lu, James, Chen, Arthur G, Chiu, Chasel, Zimmer, Vincent [-- Attachment #1: Type: text/plain, Size: 6151 bytes --] Hi @Kinney, Michael D<mailto:michael.d.kinney@intel.com> Please review https://github.com/tianocore/edk2/pull/3793 for below questions. 1. Need to add TraceHub PCD into edk2/MdeModulePkg.uni at master * tianocore/edk2 * GitHub<https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni> Answer: Done 1. What about the license ? Answer: It's BSD license, based on public-mipi-sys-t/LICENSE at master * MIPI-Alliance/public-mipi-sys-t (github.com)<https://github.com/MIPI-Alliance/public-mipi-sys-t/blob/master/LICENSE> 1. Is PcdTraceHubDebugAddress MMIO address ? If yes, why we use UINT32 Answer: Done 1. For TraceHubWriteCataLog64_[0-6] try to use below macro to implement it. #define VA_START va_start #define VA_ARG va_arg #define VA_END va_end #define VA_LIST va_list Answer: Done 1. Is have SMM or MM version ? Answer: Done, renamed to DxeSmmTraceHubDebugLibSyst.inf. 1. Whether have any chance to use .gitsubmodule to leverage https://github.com/MIPI-Alliance/public-mipi-sys-t. Answer:. https://github.com/tianocore/edk2/pull/3793 thanks From: Guo, Gua <gua.guo@intel.com> Sent: Thursday, December 1, 2022 11:29 AM To: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io Cc: Chan, Laura <laura.chan@intel.com>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com>; K N, Karthik <karthik.k.n@intel.com>; Lu, James <james.lu@intel.com>; Chen, Arthur G <arthur.g.chen@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Zimmer, Vincent <vincent.zimmer@intel.com>; Hsu, VictorX <victorx.hsu@intel.com> Subject: RE: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> As we offline sync, there are below opens like below. Have any open, please also share for us. 1. Need to add TraceHub PCD into edk2/MdeModulePkg.uni at master * tianocore/edk2 * GitHub<https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni> Answer: Will update it in next patch 1. What about the license ? Answer: It's BSD license, based on public-mipi-sys-t/LICENSE at master * MIPI-Alliance/public-mipi-sys-t (github.com)<https://github.com/MIPI-Alliance/public-mipi-sys-t/blob/master/LICENSE> 1. Is PcdTraceHubDebugAddress MMIO address ? If yes, why we use UINT32 Answer: It's MMIO address, we can change it to UINT64, it make sense to let the PCH more generic. Will update it in next patch. 1. For TraceHubWriteCataLog64_[0-6] try to use below macro to implement it. #define VA_START va_start #define VA_ARG va_arg #define VA_END va_end #define VA_LIST va_list Answer: Will update it in next patch 1. Is have SMM or MM version ? Answer: MdeModulePkg/Library/TraceHubDebugLibSysT/DxeTraceHubDebugLibSyst.inf can take care for SMM case. We can rename it like below to make it more clearly. MdeModulePkg/Library/TraceHubDebugLibSysT/DxeSmmTraceHubDebugLibSyst.inf 1. Whether have any chance to use .gitsubmodule to leverage https://github.com/MIPI-Alliance/public-mipi-sys-t. Answer: Will draft another PR and try to use gitsubmodule to check whether exist any predicament. Thanks Gua From: Guo, Gua Sent: Wednesday, November 23, 2022 3:29 PM To: Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; gaoliming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Chan, Laura <laura.chan@intel.com<mailto:laura.chan@intel.com>>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>>; K N, Karthik <karthik.k.n@intel.com<mailto:karthik.k.n@intel.com>>; Lu, James <james.lu@intel.com<mailto:james.lu@intel.com>>; Chen, Arthur G <arthur.g.chen@intel.com<mailto:arthur.g.chen@intel.com>>; Chiu, Chasel <chasel.chiu@intel.com<mailto:chasel.chiu@intel.com>>; Zimmer, Vincent <vincent.zimmer@intel.com<mailto:vincent.zimmer@intel.com>>; Hsu, VictorX <victorx.hsu@intel.com<mailto:victorx.hsu@intel.com>> Subject: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> and @gaoliming<mailto:gaoliming@byosoft.com.cn> We want to add TraceHubDebug library support on Edk2. It's new added library on Edk2, so it doesn't have any backward and forward issue. May I know have any process we may need to follow up. Have any comment or concern please also share for me. Reviewers/Maintainers: @Prakashan, Krishnadas Veliyathuparambil<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>, @Chan, Laura<mailto:laura.chan@intel.com>, @K N, Karthik<mailto:karthik.k.n@intel.com>. USF UPL spec update: https://github.com/UniversalScalableFirmware/documentation/pull/52 (Done) Edk2 Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4144 (On-Going) Edk2 PR: https://github.com/tianocore/edk2/pull/3613 (On-Going) Background: * Problem: In the UPL (Universal Payload) binary which contains only the Edk2 drivers, Tracehub debug message are missing during the execution of early DXE Core modules (before ReportStatusCode is ready). * Solution: Add TraceHub lib on Edk2, to be consumed by the UPL. About TraceHubDebugLibSysT: * Library is consumed by the DebugLib and StatusCodeHandler to send the PostCodes, ProgressCodes and DEBUG messages to the TraceHub/NPK in MIPI SyS-T format. * The MIPI SyS-T APIs in this library are taken from the OpenSource implementation: https://github.com/MIPI-Alliance/public-mipi-sys-t. * Library changes done for upstreaming: MipiSystLib is rewritten to comply EDK2 coding standards and changed ways to pass trace address/verbosity with HOB directly instead of calling into TraceHubHookLib to get these info. * Proposal With UPL: consume HOB gUniversalPayloadTraceHubDebugInfoGuid to print TraceHub Debug message in DXE Core Thanks, Gua [-- Attachment #2: Type: text/html, Size: 20179 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] 2022-12-28 9:50 ` Hsu, VictorX @ 2023-01-03 2:31 ` Guo, Gua 2023-01-06 3:00 ` Michael D Kinney 0 siblings, 1 reply; 5+ messages in thread From: Guo, Gua @ 2023-01-03 2:31 UTC (permalink / raw) To: Hsu, VictorX, Kinney, Michael D, Gao, Liming, devel@edk2.groups.io, Chan, Laura, Prakashan, Krishnadas Veliyathuparambil, K N, Karthik Cc: Lu, James, Chen, Arthur G, Chiu, Chasel, Zimmer, Vincent [-- Attachment #1: Type: text/plain, Size: 9082 bytes --] @Chan, Laura<mailto:laura.chan@intel.com>, @Prakashan, Krishnadas Veliyathuparambil<mailto:krishnadas.veliyathuparambil.prakashan@intel.com> and @K N, Karthik<mailto:karthik.k.n@intel.com> In parallel, please also help to review PR: https://github.com/tianocore/edk2/pull/3793 from TraceHubDebugLib owner viewpoint. TraceHubDebugLib.h API Change Origin firmware.boot.uefi.iafw.intel/TraceHubDebugLib.h at main * intel-restricted/firmware.boot.uefi.iafw.intel * GitHub<https://github.com/intel-restricted/firmware.boot.uefi.iafw.intel/blob/main/ClientOneSiliconPkg/Include/Library/TraceHubDebugLib.h> * TraceHubWriteCataLog64_0 (SeverityType, Id, ) * TraceHubWriteCataLog64_1 (SeverityType, Id, Param1, Param2) * TraceHubWriteCataLog64_2 (SeverityType, Id, Param1, Param2) * TraceHubWriteCataLog64_3 (SeverityType, Id, Param1, Param2, Param3) * TraceHubWriteCataLog64_4 (SeverityType, Id, Param1, Param2, Param3, Param4) * TraceHubWriteCataLog64_5 (SeverityType, Id, Param1, Param2, Param3, Param4, Param5) * TraceHubWriteCataLog64_6 (SeverityType, Id, Param1, Param2, Param3, Param4, Param5, Param6) Modify edk2_EXP/TraceHubDebugLib.h at th_leverageMIPI_v2 * hsuc1x/edk2_EXP * GitHub<https://github.com/hsuc1x/edk2_EXP/blob/th_leverageMIPI_v2/MdeModulePkg/Include/Library/TraceHubDebugLib.h> * TraceHubWriteCataLog64 (SeverityType, Id, 0) * TraceHubWriteCataLog64 (SeverityType, Id, 1, Param1) * TraceHubWriteCataLog64 (SeverityType, Id, 2, Param1, Param2) * TraceHubWriteCataLog64 (SeverityType, Id, 3, Param1, Param2, Param3) * TraceHubWriteCataLog64 (SeverityType, Id, 4, Param1, Param2, Param3, Param4) * TraceHubWriteCataLog64 (SeverityType, Id, 5, Param1, Param2, Param3, Param4, Param5) * TraceHubWriteCataLog64 (SeverityType, Id, 6, Param1, Param2, Param3, Param4, Param5, Param6) Thanks, Gua From: Hsu, VictorX <victorx.hsu@intel.com> Sent: Wednesday, December 28, 2022 5:51 PM To: Guo, Gua <gua.guo@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io Cc: Chan, Laura <laura.chan@intel.com>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com>; K N, Karthik <karthik.k.n@intel.com>; Lu, James <james.lu@intel.com>; Chen, Arthur G <arthur.g.chen@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Zimmer, Vincent <vincent.zimmer@intel.com> Subject: RE: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] Hi @Kinney, Michael D<mailto:michael.d.kinney@intel.com> Please review https://github.com/tianocore/edk2/pull/3793 for below questions. 1. Need to add TraceHub PCD into edk2/MdeModulePkg.uni at master * tianocore/edk2 * GitHub<https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni> Answer: Done 1. What about the license ? Answer: It's BSD license, based on public-mipi-sys-t/LICENSE at master * MIPI-Alliance/public-mipi-sys-t (github.com)<https://github.com/MIPI-Alliance/public-mipi-sys-t/blob/master/LICENSE> 1. Is PcdTraceHubDebugAddress MMIO address ? If yes, why we use UINT32 Answer: Done 1. For TraceHubWriteCataLog64_[0-6] try to use below macro to implement it. #define VA_START va_start #define VA_ARG va_arg #define VA_END va_end #define VA_LIST va_list Answer: Done 1. Is have SMM or MM version ? Answer: Done, renamed to DxeSmmTraceHubDebugLibSyst.inf. 1. Whether have any chance to use .gitsubmodule to leverage https://github.com/MIPI-Alliance/public-mipi-sys-t. Answer:. https://github.com/tianocore/edk2/pull/3793 thanks From: Guo, Gua <gua.guo@intel.com<mailto:gua.guo@intel.com>> Sent: Thursday, December 1, 2022 11:29 AM To: Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; Gao, Liming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Chan, Laura <laura.chan@intel.com<mailto:laura.chan@intel.com>>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>>; K N, Karthik <karthik.k.n@intel.com<mailto:karthik.k.n@intel.com>>; Lu, James <james.lu@intel.com<mailto:james.lu@intel.com>>; Chen, Arthur G <arthur.g.chen@intel.com<mailto:arthur.g.chen@intel.com>>; Chiu, Chasel <chasel.chiu@intel.com<mailto:chasel.chiu@intel.com>>; Zimmer, Vincent <vincent.zimmer@intel.com<mailto:vincent.zimmer@intel.com>>; Hsu, VictorX <victorx.hsu@intel.com<mailto:victorx.hsu@intel.com>> Subject: RE: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> As we offline sync, there are below opens like below. Have any open, please also share for us. 1. Need to add TraceHub PCD into edk2/MdeModulePkg.uni at master * tianocore/edk2 * GitHub<https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni> Answer: Will update it in next patch 1. What about the license ? Answer: It's BSD license, based on public-mipi-sys-t/LICENSE at master * MIPI-Alliance/public-mipi-sys-t (github.com)<https://github.com/MIPI-Alliance/public-mipi-sys-t/blob/master/LICENSE> 1. Is PcdTraceHubDebugAddress MMIO address ? If yes, why we use UINT32 Answer: It's MMIO address, we can change it to UINT64, it make sense to let the PCH more generic. Will update it in next patch. 1. For TraceHubWriteCataLog64_[0-6] try to use below macro to implement it. #define VA_START va_start #define VA_ARG va_arg #define VA_END va_end #define VA_LIST va_list Answer: Will update it in next patch 1. Is have SMM or MM version ? Answer: MdeModulePkg/Library/TraceHubDebugLibSysT/DxeTraceHubDebugLibSyst.inf can take care for SMM case. We can rename it like below to make it more clearly. MdeModulePkg/Library/TraceHubDebugLibSysT/DxeSmmTraceHubDebugLibSyst.inf 1. Whether have any chance to use .gitsubmodule to leverage https://github.com/MIPI-Alliance/public-mipi-sys-t. Answer: Will draft another PR and try to use gitsubmodule to check whether exist any predicament. Thanks Gua From: Guo, Gua Sent: Wednesday, November 23, 2022 3:29 PM To: Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; gaoliming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Chan, Laura <laura.chan@intel.com<mailto:laura.chan@intel.com>>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>>; K N, Karthik <karthik.k.n@intel.com<mailto:karthik.k.n@intel.com>>; Lu, James <james.lu@intel.com<mailto:james.lu@intel.com>>; Chen, Arthur G <arthur.g.chen@intel.com<mailto:arthur.g.chen@intel.com>>; Chiu, Chasel <chasel.chiu@intel.com<mailto:chasel.chiu@intel.com>>; Zimmer, Vincent <vincent.zimmer@intel.com<mailto:vincent.zimmer@intel.com>>; Hsu, VictorX <victorx.hsu@intel.com<mailto:victorx.hsu@intel.com>> Subject: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> and @gaoliming<mailto:gaoliming@byosoft.com.cn> We want to add TraceHubDebug library support on Edk2. It's new added library on Edk2, so it doesn't have any backward and forward issue. May I know have any process we may need to follow up. Have any comment or concern please also share for me. Reviewers/Maintainers: @Prakashan, Krishnadas Veliyathuparambil<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>, @Chan, Laura<mailto:laura.chan@intel.com>, @K N, Karthik<mailto:karthik.k.n@intel.com>. USF UPL spec update: https://github.com/UniversalScalableFirmware/documentation/pull/52 (Done) Edk2 Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4144 (On-Going) Edk2 PR: https://github.com/tianocore/edk2/pull/3613 (On-Going) Background: * Problem: In the UPL (Universal Payload) binary which contains only the Edk2 drivers, Tracehub debug message are missing during the execution of early DXE Core modules (before ReportStatusCode is ready). * Solution: Add TraceHub lib on Edk2, to be consumed by the UPL. About TraceHubDebugLibSysT: * Library is consumed by the DebugLib and StatusCodeHandler to send the PostCodes, ProgressCodes and DEBUG messages to the TraceHub/NPK in MIPI SyS-T format. * The MIPI SyS-T APIs in this library are taken from the OpenSource implementation: https://github.com/MIPI-Alliance/public-mipi-sys-t. * Library changes done for upstreaming: MipiSystLib is rewritten to comply EDK2 coding standards and changed ways to pass trace address/verbosity with HOB directly instead of calling into TraceHubHookLib to get these info. * Proposal With UPL: consume HOB gUniversalPayloadTraceHubDebugInfoGuid to print TraceHub Debug message in DXE Core Thanks, Gua [-- Attachment #2: Type: text/html, Size: 29372 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] 2023-01-03 2:31 ` Guo, Gua @ 2023-01-06 3:00 ` Michael D Kinney 0 siblings, 0 replies; 5+ messages in thread From: Michael D Kinney @ 2023-01-06 3:00 UTC (permalink / raw) To: Guo, Gua, Hsu, VictorX, Gao, Liming, devel@edk2.groups.io, Chan, Laura, Prakashan, Krishnadas Veliyathuparambil, K N, Karthik Cc: Lu, James, Chen, Arthur G, Chiu, Chasel, Zimmer, Vincent, Kinney, Michael D [-- Attachment #1: Type: text/plain, Size: 14598 bytes --] Hi Gua, I have some general feedback on this PR. I think once this feedback is integrated you can break the commit up into a patch series for edk2 email review. 1. Adding submodule for https://github.com/MIPI-Alliance/public-mipi-sys-t.git * .gitmodules change looks correct * .pytool change looks correct * Please add this external dependency to this section of edk2/ReadMe.rst i. https://github.com/tianocore/edk2#license-details ii. Please include edk2 stewards in review of ReadMe.rst to accept the new submodule and its license which is BSD 3 clause. 1. I am confused in the scope of the TraceHubDebugLibSysT library instance. By name it is not tied to Universal Payload, but the implementation of this lib references to Universal Payload structures. * Could TraceHubDebugLibSysT be used in non Universal Payload platforms? * Can Universal Payload concepts be removed from TraceHubDebugLibSysT and Universal Payload elements handled by a component in UefiPayloadPkg? * If they can not be separate, shouldn’t all this content be moved to the UefiPayloadPkg? 2. MdeModulePkg\Include\UniversalPayload\TraceHubDebugInfo.h * Should not include <Uefi.h> in these support includes. The module that includes this file will include top level include file like <Uefi.h> first. * Why is pragma pack(1) used? Most UEFI/PI spec includes do not use pragma pack(1). 3. MdeModulePkg\Include\Library\TraceHubDebugLib.h * Should not include <Uefi/UefiBaseTypes.h>. Module that uses this lib will include Uefi.h or PiDxe.h or PiPei.h that will get this include. * Why is #include <Guid/StatusCodeDataTypeDebug.h> included in this lib class. I do not see any definitions from that .h file used in the lib class iself. Recommend remove. * Why do TraceHubWriteCataLog64() and TraceHubWriteCataLog64StatusCode() have a return type of VOID. Can’t these fail due to bad input params or HW issues? Should they have a return type of EFI_STATUS or BOOLEAN? * TraceHubDebugWrite(). Should it define EFI_INVALID_PARAMETER if Buffer is NULL or NumberOfBytes is 0? I see ASSERT() for NumberOfBytes 0, and I see return EFI_SUCCESS for NumberOfBytes 0. Which is the correct behavior? 4. Split mipi and mipi support files out from TraceHubDebugLibSysT library instance * The mipi sub module provides the mipi-sys-t APIs that may be used by other lib instances in the future. By breaking it out into its own lib class/instance, it allows these mipi services to be used by more than once consumer. This is the same pattern that has been followed for other submodules such as OpenSSL, Cmocka, GoogleTest, etc. * Add MipiSysTLib class to MdeModulePkg.dec * MipiSysTLib class .h file should provide all the mipi related include files to support use of any of the mipi-sys-t APIs. * TraceHubDebugLibSysT will list the MipiSysTLib in its [LibraryClasses] section to use the mipi-sys-t APIs. 5. Please explain difference in features between BaseTraceHubLib and DxeSmmTraceHubLib and PeiTraceHubLib * If BaseTraceHubLib can be used by any module type, why do we need DxeSmmTraceHubLib or PeiTraceHubLib? * These features differences should be summarized in the INF file headers. 6. Looks like it would be a good idea to have an internal worker function to convert GUID value from little endan to big endian that can be shared. 7. I see use of AllocateRuntimePool(). Is RtData really required and the data need to be shared with OS after ExitBootServices()? 8. PcdTraceHubDebugVerbosity * I see use of BIT0, BIT1, BIT2 when looking at the PCD settings. I recommend you add defines/enums for these values to make it easier to understand the sources. Or perhaps add a structure with bitfields to access enable and debug level values. * This PCD is a mix of a bit mask for the enable and an enum for the debug level. Could this be split into 2 PCDs. One for enable and one for verbosity? 9. TraceHubDebugLibSystPlatform.c is using *(UINT32 *) to write MMIO register. These must be changed to use IoLib Mmio services 10. All internal worker functions of TraceHubDebugLibSysT should remove EFIAPI and be static. Thanks, Mike From: Guo, Gua <gua.guo@intel.com> Sent: Monday, January 2, 2023 6:32 PM To: Hsu, VictorX <victorx.hsu@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io; Chan, Laura <laura.chan@intel.com>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com>; K N, Karthik <karthik.k.n@intel.com> Cc: Lu, James <james.lu@intel.com>; Chen, Arthur G <arthur.g.chen@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Zimmer, Vincent <vincent.zimmer@intel.com> Subject: RE: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Chan, Laura<mailto:laura.chan@intel.com>, @Prakashan, Krishnadas Veliyathuparambil<mailto:krishnadas.veliyathuparambil.prakashan@intel.com> and @K N, Karthik<mailto:karthik.k.n@intel.com> In parallel, please also help to review PR: https://github.com/tianocore/edk2/pull/3793 from TraceHubDebugLib owner viewpoint. TraceHubDebugLib.h API Change Origin firmware.boot.uefi.iafw.intel/TraceHubDebugLib.h at main · intel-restricted/firmware.boot.uefi.iafw.intel · GitHub<https://github.com/intel-restricted/firmware.boot.uefi.iafw.intel/blob/main/ClientOneSiliconPkg/Include/Library/TraceHubDebugLib.h> * TraceHubWriteCataLog64_0 (SeverityType, Id, ) * TraceHubWriteCataLog64_1 (SeverityType, Id, Param1, Param2) * TraceHubWriteCataLog64_2 (SeverityType, Id, Param1, Param2) * TraceHubWriteCataLog64_3 (SeverityType, Id, Param1, Param2, Param3) * TraceHubWriteCataLog64_4 (SeverityType, Id, Param1, Param2, Param3, Param4) * TraceHubWriteCataLog64_5 (SeverityType, Id, Param1, Param2, Param3, Param4, Param5) * TraceHubWriteCataLog64_6 (SeverityType, Id, Param1, Param2, Param3, Param4, Param5, Param6) Modify edk2_EXP/TraceHubDebugLib.h at th_leverageMIPI_v2 · hsuc1x/edk2_EXP · GitHub<https://github.com/hsuc1x/edk2_EXP/blob/th_leverageMIPI_v2/MdeModulePkg/Include/Library/TraceHubDebugLib.h> * TraceHubWriteCataLog64 (SeverityType, Id, 0) * TraceHubWriteCataLog64 (SeverityType, Id, 1, Param1) * TraceHubWriteCataLog64 (SeverityType, Id, 2, Param1, Param2) * TraceHubWriteCataLog64 (SeverityType, Id, 3, Param1, Param2, Param3) * TraceHubWriteCataLog64 (SeverityType, Id, 4, Param1, Param2, Param3, Param4) * TraceHubWriteCataLog64 (SeverityType, Id, 5, Param1, Param2, Param3, Param4, Param5) * TraceHubWriteCataLog64 (SeverityType, Id, 6, Param1, Param2, Param3, Param4, Param5, Param6) Thanks, Gua From: Hsu, VictorX <victorx.hsu@intel.com<mailto:victorx.hsu@intel.com>> Sent: Wednesday, December 28, 2022 5:51 PM To: Guo, Gua <gua.guo@intel.com<mailto:gua.guo@intel.com>>; Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; Gao, Liming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Chan, Laura <laura.chan@intel.com<mailto:laura.chan@intel.com>>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>>; K N, Karthik <karthik.k.n@intel.com<mailto:karthik.k.n@intel.com>>; Lu, James <james.lu@intel.com<mailto:james.lu@intel.com>>; Chen, Arthur G <arthur.g.chen@intel.com<mailto:arthur.g.chen@intel.com>>; Chiu, Chasel <chasel.chiu@intel.com<mailto:chasel.chiu@intel.com>>; Zimmer, Vincent <vincent.zimmer@intel.com<mailto:vincent.zimmer@intel.com>> Subject: RE: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] Hi @Kinney, Michael D<mailto:michael.d.kinney@intel.com> Please review https://github.com/tianocore/edk2/pull/3793 for below questions. 1. Need to add TraceHub PCD into edk2/MdeModulePkg.uni at master · tianocore/edk2 · GitHub<https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni> Answer: Done 1. What about the license ? Answer: It’s BSD license, based on public-mipi-sys-t/LICENSE at master · MIPI-Alliance/public-mipi-sys-t (github.com)<https://github.com/MIPI-Alliance/public-mipi-sys-t/blob/master/LICENSE> 1. Is PcdTraceHubDebugAddress MMIO address ? If yes, why we use UINT32 Answer: Done 1. For TraceHubWriteCataLog64_[0-6] try to use below macro to implement it. #define VA_START va_start #define VA_ARG va_arg #define VA_END va_end #define VA_LIST va_list Answer: Done 1. Is have SMM or MM version ? Answer: Done, renamed to DxeSmmTraceHubDebugLibSyst.inf. 1. Whether have any chance to use .gitsubmodule to leverage https://github.com/MIPI-Alliance/public-mipi-sys-t. Answer:. https://github.com/tianocore/edk2/pull/3793 thanks From: Guo, Gua <gua.guo@intel.com<mailto:gua.guo@intel.com>> Sent: Thursday, December 1, 2022 11:29 AM To: Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; Gao, Liming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Chan, Laura <laura.chan@intel.com<mailto:laura.chan@intel.com>>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>>; K N, Karthik <karthik.k.n@intel.com<mailto:karthik.k.n@intel.com>>; Lu, James <james.lu@intel.com<mailto:james.lu@intel.com>>; Chen, Arthur G <arthur.g.chen@intel.com<mailto:arthur.g.chen@intel.com>>; Chiu, Chasel <chasel.chiu@intel.com<mailto:chasel.chiu@intel.com>>; Zimmer, Vincent <vincent.zimmer@intel.com<mailto:vincent.zimmer@intel.com>>; Hsu, VictorX <victorx.hsu@intel.com<mailto:victorx.hsu@intel.com>> Subject: RE: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> As we offline sync, there are below opens like below. Have any open, please also share for us. 1. Need to add TraceHub PCD into edk2/MdeModulePkg.uni at master · tianocore/edk2 · GitHub<https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.uni> Answer: Will update it in next patch 1. What about the license ? Answer: It’s BSD license, based on public-mipi-sys-t/LICENSE at master · MIPI-Alliance/public-mipi-sys-t (github.com)<https://github.com/MIPI-Alliance/public-mipi-sys-t/blob/master/LICENSE> 1. Is PcdTraceHubDebugAddress MMIO address ? If yes, why we use UINT32 Answer: It’s MMIO address, we can change it to UINT64, it make sense to let the PCH more generic. Will update it in next patch. 1. For TraceHubWriteCataLog64_[0-6] try to use below macro to implement it. #define VA_START va_start #define VA_ARG va_arg #define VA_END va_end #define VA_LIST va_list Answer: Will update it in next patch 1. Is have SMM or MM version ? Answer: MdeModulePkg/Library/TraceHubDebugLibSysT/DxeTraceHubDebugLibSyst.inf can take care for SMM case. We can rename it like below to make it more clearly. MdeModulePkg/Library/TraceHubDebugLibSysT/DxeSmmTraceHubDebugLibSyst.inf 1. Whether have any chance to use .gitsubmodule to leverage https://github.com/MIPI-Alliance/public-mipi-sys-t. Answer: Will draft another PR and try to use gitsubmodule to check whether exist any predicament. Thanks Gua From: Guo, Gua Sent: Wednesday, November 23, 2022 3:29 PM To: Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; gaoliming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Chan, Laura <laura.chan@intel.com<mailto:laura.chan@intel.com>>; Prakashan, Krishnadas Veliyathuparambil <krishnadas.veliyathuparambil.prakashan@intel.com<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>>; K N, Karthik <karthik.k.n@intel.com<mailto:karthik.k.n@intel.com>>; Lu, James <james.lu@intel.com<mailto:james.lu@intel.com>>; Chen, Arthur G <arthur.g.chen@intel.com<mailto:arthur.g.chen@intel.com>>; Chiu, Chasel <chasel.chiu@intel.com<mailto:chasel.chiu@intel.com>>; Zimmer, Vincent <vincent.zimmer@intel.com<mailto:vincent.zimmer@intel.com>>; Hsu, VictorX <victorx.hsu@intel.com<mailto:victorx.hsu@intel.com>> Subject: Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] @Kinney, Michael D<mailto:michael.d.kinney@intel.com> and @gaoliming<mailto:gaoliming@byosoft.com.cn> We want to add TraceHubDebug library support on Edk2. It’s new added library on Edk2, so it doesn’t have any backward and forward issue. May I know have any process we may need to follow up. Have any comment or concern please also share for me. Reviewers/Maintainers: @Prakashan, Krishnadas Veliyathuparambil<mailto:krishnadas.veliyathuparambil.prakashan@intel.com>, @Chan, Laura<mailto:laura.chan@intel.com>, @K N, Karthik<mailto:karthik.k.n@intel.com>. USF UPL spec update: https://github.com/UniversalScalableFirmware/documentation/pull/52 (Done) Edk2 Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4144 (On-Going) Edk2 PR: https://github.com/tianocore/edk2/pull/3613 (On-Going) Background: * Problem: In the UPL (Universal Payload) binary which contains only the Edk2 drivers, Tracehub debug message are missing during the execution of early DXE Core modules (before ReportStatusCode is ready). * Solution: Add TraceHub lib on Edk2, to be consumed by the UPL. About TraceHubDebugLibSysT: * Library is consumed by the DebugLib and StatusCodeHandler to send the PostCodes, ProgressCodes and DEBUG messages to the TraceHub/NPK in MIPI SyS-T format. * The MIPI SyS-T APIs in this library are taken from the OpenSource implementation: https://github.com/MIPI-Alliance/public-mipi-sys-t. * Library changes done for upstreaming: MipiSystLib is rewritten to comply EDK2 coding standards and changed ways to pass trace address/verbosity with HOB directly instead of calling into TraceHubHookLib to get these info. * Proposal With UPL: consume HOB gUniversalPayloadTraceHubDebugInfoGuid to print TraceHub Debug message in DXE Core Thanks, Gua [-- Attachment #2: Type: text/html, Size: 90477 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-01-06 3:01 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-11-23 7:29 Edk2 support MIPI SyS-T TraceHub Debug Library [TraceHubDebugLibSysT] Guo, Gua 2022-12-01 3:28 ` Guo, Gua 2022-12-28 9:50 ` Hsu, VictorX 2023-01-03 2:31 ` Guo, Gua 2023-01-06 3:00 ` Michael D Kinney
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox