| Age | Commit message (Collapse) | Author | Files | Lines |
|
Add missing EFIAPI to MMBI IPMI infrastructure functions to bypass GCC build errors.
Signed-off-by: Darren Dong <darren.dong@intel.com>
|
|
Add missing EFIAPI in implementation of UEFI event
notification functions.
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
|
|
MemoryDiscovered
Description:
Currently, a page fault (PF#) is observed when accessing the PEI_IPMI_TRANSPORT_PPI in the post-memory phase.
The cause of this problem is that the PPI does not migrated from temporary RAM to permanent RAM.
Solution:
Register a memory shadow handler in the PeiGenericIpmi PEIM that performs pointer fixes for PEI_IPMI_TRANSPORT_PPI after MemoryDiscovered.
Signed-off-by: Ning Feng <ning.feng@intel.com>
|
|
As noted in the code, it was intended to update various manually specified
instances of [Components.IA32/X64] to [Components.$(DXE_ARCH)] or
[Components.$(PEI_ARCH)] as appropriate, once macro expansion in the
Components {ARCH} value was supported.
This support was added some time ago[1], but the marked changes were never
made.
[1]: https://bugzilla.tianocore.org/show_bug.cgi?id=2308
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
|
|
Replaced the deprecated EFI_D_{INFO,WARN,ERROR,VERBOSE} usage with
DEBUG_{INFO,WARN,ERROR,VERBOSE}.
Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
|
|
Fix gcc build failure:
IpmiFeaturePkg/GenericIpmi/Smm/SmmGenericIpmi.c:414:1:
error: conflicting types for 'InitializeSmmGenericIpmi'
414 | InitializeSmmGenericIpmi (
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
IpmiFeaturePkg/GenericIpmi/Smm/SmmGenericIpmi/DEBUG/AutoGen.h:138:1:
note: previous declaration of 'InitializeSmmGenericIpmi' was here
138 | InitializeSmmGenericIpmi (
| ^~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
|
|
GCC is unable to find a header file located into IpmiFeaturePkg:
fatal error: Library/ServerMgmtRtLib.h: No such file or directory
11 | #include <Library/ServerMgmtRtLib.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
|
|
Adding missed out call to FreePool API to free
the allocated memory.
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: PhanindraX Babu Pabba <phanindrax.babu.pabba@intel.com>
|
|
StandaloneMmGenericIpmi driver is not loaded successfully
due to wrong Depex. Set Depex to TRUE in StandaloneMmGenericImpi.inf.
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@intel.com>
|
|
The source file definition in INF file is ServerManagementELog.c,
while the actual file name is ServerManagementElog.c. The case is
mismatched. Correct the definition in INF file to fix this issue.
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
|
|
Refactor BmcElog to support Standalone MM.
Remove unused code.
Cc: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@intel.com>
|
|
Refactor GenericElog to support Standalone MM.
Remove unused function SmElogServiceInitialize.
Cc: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@intel.com>
|
|
Refactor BmcAcpiSwChild to support Standalone MM.
Cc: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Wei Xu <wei6.xu@intel.com>
|
|
Split the ServerManagementLib.c into two source files:
- ServerManagementELog.c to support Event Log functions.
- ServerManagementTime.c to support GetTimeStamp function.
- Replace gBS->Stall() with MicroSecondDelay() in TimerLib to
remove dependency on gBS.
Base Lib includes both of the two source files, StandaloneMm Lib only
includes the ServerManagementTime.c
Cc: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Wei Xu <wei6.xu@intel.com>
|
|
Fix GCC compiler error in StandaloneMmGenericIpmi.
Cc: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@intel.com>
|
|
Create a new PCD to hold the IRQ or GSI number for SPCR,
with default values of 4.
Update the ACPI SPCR table's IRQ value based on PCD.
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Abner Chang <abner.chang@amd.com>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
Change-Id: I7218903fa5572f8139ad45db598ab085f079713b
|
|
Sync change from SMM to StandaloneMm GenericIpmi driver.
Update SmmIpmbInterface and SmmSsifInterface Lib to support
MM_STANDALONE. And Format code with uncrustify.
Cc: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@intel.com>
|
|
Add missing MemoryAllocationLib dependency
Reviewed-by: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Add MM_STANDALONE type support for SmmIpmiBaseLib instance. Replace Smst
with Mmst. Remove unused UefiBootServicesTableLib reference.
Reviewed-by: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
|
|
Use AfterConsole event instead of ReadyToBoot for callback so the driver
can update SMBIOS table before booting to setup menu.
Signed-off-by: Zhen Gong <zhen.gong@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
|
|
Remove IpmiCommandLib from IpmiFeaturePkg as it was
migrated to ManageabilityPkg and has more IPMI
commands support.
Remove this IpmiFeaturePkg to avoid the confusion.
Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
|
|
Add Standalone Mm Generic Impi driver. And add type 'PcdsFixedAtBuild'
for PcdIpmiSmmIoBaseAddress to access in StandaloneMm driver
Reviewed-by: Abner Chang <Abner.Chang@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@intel.com>
|
|
Add GenericFruDriver and generate data based on SMBIOS data.
Signed-off-by: Zhen Gong <zhen.gong@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Add DXE and SMM drivers that send "Set ACPI Power State" command to BMC.
Signed-off-by: Zhen Gong <zhen.gong@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Lightweight lib to support Server Management drivers.
Signed-off-by: Zhen Gong <zhen.gong@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Add generic Elog driver and support BMC Elog operations.
Signed-off-by: Zhen Gong <zhen.gong@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Remove duplicate IpmiCommandLib.h and use the one
under MdeModulePKg instead.
Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
|
|
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4522
"if (FixedPcdGet8 (PcdKcsInterfaceSupport) == 1) {" will not be executed in current code,
put it within "case SysInterfaceKcs:" to avoid this issue.
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Yanbo Huang <yanbo.huang@intel.com>
|
|
Created IpmiTransport2 PPI/Protocol to support multiple
IPMI BMC Interface support such as KCS/BT/SSIF/IPMB with 2 API's
IpmiSubmitCommand2 & IpmiSubmitCommand2Ex.
IpmiSubmitCommand2 - This API use the default interface
(PcdDefaultSystemInterface) to send IPMI command.
IpmiSubmitCommand2Ex - This API use the specific interface type
to send IPMI command which is passed as an argument.
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Arun K <arunk@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Created IpmiTransport2 PPI/Protocol to support multiple
IPMI BMC Interface support such as KCS/BT/SSIF/IPMB with 2 API's
IpmiSubmitCommand2 & IpmiSubmitCommand2Ex.
IpmiSubmitCommand2 - This API use the default interface
(PcdDefaultSystemInterface) to send IPMI command.
IpmiSubmitCommand2Ex - This API use the specific interface type
to send IPMI command which is passed as an argument.
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Arun K <arunk@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Created IpmiTransport2 PPI/Protocol to support multiple
IPMI BMC Interface support such as KCS/BT/SSIF/IPMB with 2 API's
IpmiSubmitCommand2 & IpmiSubmitCommand2Ex.
IpmiSubmitCommand2 - This API use the default interface
(PcdDefaultSystemInterface) to send IPMI command.
IpmiSubmitCommand2Ex - This API use the specific interface type
to send IPMI command which is passed as an argument.
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Arun K <arunk@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Update the SPCR table based on PCD values, such as
base address, register bit width, access size and
address space id etc, along with OEM data.
Cc: Abner Chang <abner.chang@amd.com>
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
It is required to reinitialize DataSize variable before subsequent
IpmiSendCommand calls. It is especially required after processing
IpmiSendCommand with IPMI_GET_BMC_EXECUTION_CONTEXT because it returns
only 2 bytes as a response. So to the next call of IpmiSendCommand with
IPMI_APP_GET_DEVICE_ID DataSize=2 will be passed. Probably this call will
fail because the expected size of returned data either 12 or 16 bytes
depending on IPMI version supported.
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
Cc: Arunk <arunk@ami.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Use predefined type while accessing IPMI command returned data
instead of raw byte array.
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
There is no point to have temporary buffer in BMC instance data
used only for synchronous IPMI command as a transfer buffer.
Using local variables make things much simpler.
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Byte 0 of a response contains completion code for the command.
So, the examined data starts from byte 1. It's easy to make a mistake
here since specification counts response data from 1.
For the "Get Self Test Results" command Intelligent Platform Management
Interface Specification v2.0 rev 1.1 paragraph 20.4 defines response as:
+-----+---------------------------------------------------------------+
|byte | data field |
+-----+---------------------------------------------------------------+
| 1 | Completion Code |
| | |
| 2 | 55h = No error. All Self Tests Passed. |
| | 56h = Self Test function not implemented in this controller. |
| | 57h = Corrupted or inaccessible data or devices |
| | 58h = Fatal hardware error |
| | |
| 3 | For byte 2 = 55h, 56h, FFh: 00h |
| | For byte 2 = 58h, all other: Device-specific |
| | For byte 2 = 57h: self-test error bitfield. |
+-----+---------------------------------------------------------------+
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
Cc: Isaac Oram <Isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Isaac Oram <Isaac.w.oram@intel.com>
|
|
Fix some build issues with GCC5 targets
Add a Readme.md for AdvancedFeaturePkg
Add VS2019, CLANGPDB, and GCC5 build targets to Readme.md
for each feature
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Sai Chaganty <rangasai.v.chaganty@intel.com>
|
|
Add reference of IpmiBaseLib
Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Add functions to get system UUID and LAN
configuration parameter.
Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Add functions to get system UUID and LAN
configuration parameter.
Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Add a new feature package for Alert standard format support.
Alert Standard format specification(DSP0136)
REF:https://www.dmtf.org/sites/default/files/standards/documents/DSP0136.pdf
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: CrystalLee <CrystalLee@ami.com>
Reviewed-by: Isaac Oram <isaac.w.oram@intel.com>
|
|
Enable simpler initialation of the MinPlatformPkg feature
selection PCD. Most features and boards don't benefit from
initializing these.
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Fix compiler warnings for unused variables.
Fix PeimIpmiInterfaceInit to return initialization status instead of
EFI_SUCCESS.
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Also added feature enable flag
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Reviewed-by: Sai Chaganty <rangasai.v.chaganty@intel.com>
|
|
Packages should be at the root of a PACKAGES_PATH entry.
At some point, paths were relative to edk2-platforms/Features/Intel
which was functional, but interferes with the proper functioning
of packaging tools.
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Fix build issues with standalone build.
Switch to using MinPlatformPkg common core include for common modules.
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3708
The original code will cause FWTS V21.08.00 testing failed.
spcr: SPCR PC-AT compatible IRQ 0xff is invalid
spcr: SPCR PCI flags compatibility bit 0 is 0, expecting 1 for PCI device
Now modify the SpcrAcpi for following:
1. Disable the support of PC-AT compatible IRQ support.
Now only support IO-APIC interrupt type.
2. Set irq to 0.
3. Set the GSI to the value read from PCI device cfg space 0x3C.
4. Set PCI Flags to 1.
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Ming Tan <ming.tan@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Reviewed-by: Abdul Lateef Attar <abdattar@amd.com>
|
|
Adds CloseEvent in callback routine OutOfBandACPITableConstruction(),
to avoid multiple installation of SPCR table.
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
|
|
Building the IpmiFeaturePkg standalone
(not as part of a platform build) currently
fails because the IpmiPlatformHookLib was added
but the reference to the NULL implementation of
that LibraryClass was miseed.
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Manickavasakam Karpagavinayagam <manickavasakamk@ami.com>
Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
|