/** @file\r
The XHCI controller driver.\r
\r
-Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2011 - 2022, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
// This xHC supports a page size of 2^(n+12) if bit n is Set. For example,\r
// if bit 0 is Set, the xHC supports 4k byte page sizes.\r
//\r
- PageSize = XhcReadOpReg (Xhc, XHC_PAGESIZE_OFFSET) & XHC_PAGESIZE_MASK;\r
+ PageSize = XhcReadOpReg (Xhc, XHC_PAGESIZE_OFFSET);\r
+ if ((PageSize & (~XHC_PAGESIZE_MASK)) != 0) {\r
+ DEBUG ((DEBUG_ERROR, "XhcCreateUsb3Hc: Reserved bits are not 0 for PageSize\n"));\r
+ goto ON_ERROR;\r
+ }\r
+\r
+ PageSize &= XHC_PAGESIZE_MASK;\r
Xhc->PageSize = 1 << (HighBitSet32 (PageSize) + 12);\r
\r
ExtCapReg = (UINT16)(Xhc->HcCParams.Data.ExtCapReg);\r