在 8/15/2018 11:22 PM, Leif Lindholm 写道:
On Tue, Aug 14, 2018 at 04:04:51PM +0800, Ming Huang wrote:
Add Hisilicon Oem Shell libraries for some commands,such as biosupdate, getmac, setmac, provision, acpistartos, brdinfo, sfpinfo.
biosupdate example: ifconfig -s eth2 static 192.168.2.68 255.255.255.0 192.168.2.1 biosupdate serverIp -u user -p password -f D06.fd -m master
Is this expected to be used in reality? There is capsule update and there is a BMC - why do you need a magic platform-specific command in the Shell? Is it a debug feature?
Yes, it is a debug feature. Think about this case, we don't have a hpm file, and only have fd file or .cap file. for capsule update in uefi shell, ramdisk or USB disk is needed, or we must boot to OS to update .cap. It is convenient to update fd file in uefi shell.
acpistartos example: ifconfig -s eth2 static 192.168.2.69 255.255.255.0 192.168.2.1 provision serverIp -u user -p password -f os\Image -a 0x80000 2 provision serverIp -u user -p password -f os\minifs.cpio.gz -a 0x07000000 2 acpistartos
Why is there a magic Shell comand to load a Linux kernel and initramfs? This is the opposite of what UEFI is for.
This is also for debug. It is convenient to boot OS while we don't have disk in board and PXE setting.
/ Leif
Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ming Huang ming.huang@linaro.org
Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.inf | 41 ++++++++++++++ Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.inf | 59 ++++++++++++++++++++ Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.lib | Bin 0 -> 144880 bytes Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.lib | Bin 0 -> 1109382 bytes 4 files changed, 100 insertions(+)
diff --git a/Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.inf b/Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.inf new file mode 100644 index 0000000..3dea3fb --- /dev/null +++ b/Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.inf @@ -0,0 +1,41 @@ +/** @file +* +* Copyright (c) 2018, Hisilicon Limited. All rights reserved. +* Copyright (c) 2018, Linaro Limited. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/
+[Defines]
- INF_VERSION = 0x0001001A
- BASE_NAME = HisiD06ShellCmdLib
- FILE_GUID = 41878264-1668-460f-b0bf-26bdc89d464c
- MODULE_TYPE = UEFI_APPLICATION
- VERSION_STRING = 1.0
- LIBRARY_CLASS = NULL|UEFI_APPLICATION UEFI_DRIVER
- CONSTRUCTOR = HisiD06ShellCmdLibConstructor
- DESTRUCTOR = HisiD06ShellCmdLibDestructor
+[Binaries.AARCH64]
- LIB|HisiD06ShellCmdLib.lib|*
+[Packages]
- ShellPkg/ShellPkg.dec
- Silicon/Hisilicon/HisiPkg.dec
+[LibraryClasses]
- I2CLib
- ShellLib
+[Guids]
- HisiPlatformShellSampleHiiGuid ## CONSUMES ## HII
diff --git a/Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.inf b/Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.inf new file mode 100644 index 0000000..a81af92 --- /dev/null +++ b/Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.inf @@ -0,0 +1,59 @@ +/** @file +* +* Copyright (c) 2018, Hisilicon Limited. All rights reserved. +* Copyright (c) 2018, Linaro Limited. All rights reserved. +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/
+[Defines]
- INF_VERSION = 0x0001001A
- BASE_NAME = HisiShellCmdLib
- FILE_GUID = 88324505-C49D-4eac-8253-75D324457B88
- MODULE_TYPE = UEFI_APPLICATION
- VERSION_STRING = 1.0
- LIBRARY_CLASS = NULL|UEFI_APPLICATION UEFI_DRIVER
- CONSTRUCTOR = HisiShellCmdLibConstructor
- DESTRUCTOR = HisiShellCmdLibDestructor
+[Binaries.AARCH64]
- LIB|HisiShellCmdLib.lib|*
+[Packages]
- ArmPkg/ArmPkg.dec
- ShellPkg/ShellPkg.dec
- Silicon/Hisilicon/HisiPkg.dec
+[LibraryClasses]
- ArmSmcLib
- IpmiCmdLib
- PcdLib
- ShellCommandLib
- ShellLib
+[Pcd]
- gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask ## CONSUMES
- gHisiTokenSpaceGuid.PcdMdioSubctrlAddress ## CONSUMES
- gHisiTokenSpaceGuid.PcdStartOsParameter ## CONSUMES
+[FixedPcd.common]
- gArmTokenSpaceGuid.PcdFdSize ## CONSUMES
- gHisiTokenSpaceGuid.PcdBaseBoardProductName ## CONSUMES
- gHisiTokenSpaceGuid.PcdTrustedFirmwareEnable ## CONSUMES
+[Protocols]
- gHisiSpiFlashProtocolGuid ## CONSUMES
- gOemNicProtocolGuid ## CONSUMES
- gUniNorFlashProtocolGuid ## CONSUMES
+[Guids]
- gVersionInfoHobGuid ## CONSUMES
- HisiShellSampleHiiGuid ## CONSUMES ## HII
diff --git a/Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.lib b/Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.lib new file mode 100644 index 0000000..9ba14a2 Binary files /dev/null and b/Silicon/Hisilicon/Hi1620/Library/HisiD06ShellCmdLib/HisiD06ShellCmdLib.lib differ diff --git a/Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.lib b/Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.lib new file mode 100644 index 0000000..d3ca398 Binary files /dev/null and b/Silicon/Hisilicon/Library/HisiShellCmdLib/HisiShellCmdLib.lib differ -- 2.17.0