Good catch. I wonder why that arbitrary restriction originated. Reviewed-by: Jaben Carsey <jaben.car...@intel.com>
> -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Ard Biesheuvel > Sent: Thursday, March 01, 2018 1:39 AM > To: edk2-devel@lists.01.org > Cc: Ni, Ruiyu <ruiyu...@intel.com>; Carsey, Jaben > <jaben.car...@intel.com>; heyi....@linaro.org; Ard Biesheuvel > <ard.biesheu...@linaro.org> > Subject: [edk2] [PATCH] ShellPkg/UefiShellDebug1CommandsLib: remove > I/O address limit from 'mm' > Importance: High > > Neither the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL nor the > EFI_CPU_IO2_PROTOCOL > impose any restrictions when it comes to the range of valid I/O > addresses. Even so, the 'mm' command in -IO mode refuses to perform > accesses to addresses >= 0xffff. > > It is not up to 'mm' to impose this restriction, so remove it. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org> > --- > ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c | > 11 ----- > ------ > > ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Commands > Lib.uni | 2 -- > 2 files changed, 13 deletions(-) > > diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c > b/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c > index 9f97f1d345f7..d1fd42b1cd4d 100644 > --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c > +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Mm.c > @@ -525,12 +525,6 @@ ShellCommandRunMm ( > goto Done; > } > > - if ((AccessType == ShellMmIo) && (Address + Size > MAX_UINT16 + 1)) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_MM_IO_ADDRESS_RANGE), gShellDebug1HiiHandle, L"mm"); > - ShellStatus = SHELL_INVALID_PARAMETER; > - goto Done; > - } > - > // > // locate IO protocol interface > // > @@ -592,11 +586,6 @@ ShellCommandRunMm ( > // > Complete = FALSE; > do { > - if ((AccessType == ShellMmIo) && (Address + Size > MAX_UINT16 + 1)) { > - ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_MM_ADDRESS_RANGE2), gShellDebug1HiiHandle, L"mm"); > - break; > - } > - > ShellMmAccess (AccessType, PciRootBridgeIo, CpuIo, TRUE, Address, > Size, &Buffer); > ShellPrintHiiEx (-1, -1, NULL, mShellMmAccessTypeStr[AccessType], > gShellDebug1HiiHandle); > ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_MM_ADDRESS), > gShellDebug1HiiHandle, Address); > diff --git > a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman > dsLib.uni > b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman > dsLib.uni > index b6a133a45444..011a7bfc2db6 100644 > --- > a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman > dsLib.uni > +++ > b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman > dsLib.uni > @@ -128,7 +128,6 @@ > > #string STR_MM_NOT_ALIGNED #language en-US "%H%s%N: Address > parameter %016LX is not aligned.\r\n" > #string STR_MM_PCIE_ADDRESS_RANGE #language en-US "%H%s%N: > Address parameter %016LX is not a valid PCI/PCIE address.\r\n" > -#string STR_MM_IO_ADDRESS_RANGE #language en-US "%H%s%N: IO > address out of range 0 - 0xFFFF\r\n" > #string STR_MM_MMIO #language en-US "%HMMIO%N" > #string STR_MM_IO #language en-US "%HIO%N" > #string STR_MM_PCI #language en-US "%HPCI%N" > @@ -136,7 +135,6 @@ > #string STR_MM_PCIE #language en-US "%HPCIE%N" > #string STR_MM_ADDRESS #language en-US " 0x%016lx : " > #string STR_MM_BUF #language en-US "0x%0*lx" > -#string STR_MM_ADDRESS_RANGE2 #language en-US "%H%s%N: IO > address out of range\r\n" > #string STR_MM_ERROR #language en-US "%H%s%N: Input had > incorrect format\r\n" > > #string STR_SETVAR_PRINT #language en-US "%g - %s - %04x Bytes\r\n" > -- > 2.11.0 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel