Re: [edk2] [PATCH edk2-non-osi v2 4/4] Silicon/Hisilicon/D06: Add Oem Shell libraries

2018-08-15 Thread Ming


在 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 0x8
>> 2
>> provision serverIp -u user -p password -f os\minifs.cpio.gz -a
>> 0x0700
>> 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 
>> ---
>>  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 000..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 000..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

Re: [edk2] [PATCH edk2-non-osi v2 4/4] Silicon/Hisilicon/D06: Add Oem Shell libraries

2018-08-15 Thread 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?

> 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 0x8
> 2
> provision serverIp -u user -p password -f os\minifs.cpio.gz -a
> 0x0700
> 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.

/
Leif

> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ming Huang 
> ---
>  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 000..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 000..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.PcdMdioSubctrlAd