+/**\r
+ Translates I/O port address to memory address.\r
+\r
+ This function translates I/O port address to memory address by adding the 64MB\r
+ aligned I/O Port space to the I/O address.\r
+ If I/O Port space base is not 64MB aligned, then ASSERT (). \r
+\r
+ @param Port The I/O port to read.\r
+\r
+ @return The memory address.\r
+\r
+**/\r
+UINTN\r
+InternalGetMemoryMapAddress (\r
+ IN UINTN Port\r
+ )\r
+{\r
+ UINTN Address;\r
+ UINTN IoBlockBaseAddress;\r
+\r
+ Address = MAP_PORT_BASE_TO_MEM (Port);\r
+ IoBlockBaseAddress = PcdGet64(PcdIoBlockBaseAddressForIpf);\r
+\r
+ //\r
+ // Make sure that the I/O Port space base is 64MB aligned.\r
+ // \r
+ ASSERT ((IoBlockBaseAddress & 0x3ffffff) == 0);\r
+ Address += IoBlockBaseAddress;\r
+\r
+ return Address;\r
+}\r
+\r