Rebecca Cran 
							
						 
					 
					
						
						
							
						
						8ba392687b 
					 
					
						
						
							
							OvmfPkg: Update code to be more C11 compliant by using __func__  
						
						... 
						
						
						
						__FUNCTION__ is a pre-standard extension that gcc and Visual C++ among
others support, while __func__ was standardized in C99.
Since it's more standard, replace __FUNCTION__ with __func__ throughout
OvmfPkg.
Signed-off-by: Rebecca Cran <rebecca@bsdio.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Ard Biesheuvel <ardb@kernel.org >
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com > 
						
						
					 
					
						2023-04-10 14:19:57 +00:00 
						 
				 
			
				
					
						
							
							
								Michael Kubacki 
							
						 
					 
					
						
						
							
						
						ac0a286f4d 
					 
					
						
						
							
							OvmfPkg: Apply uncrustify changes  
						
						... 
						
						
						
						REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 
Apply uncrustify changes to .c/.h files in the OvmfPkg package
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Andrew Fish <afish@apple.com > 
						
						
					 
					
						2021-12-07 17:24:28 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						c635a56384 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Reset device on ExitBootServices()  
						
						... 
						
						
						
						This causes the device to forget about the reply frame. We allocated the
reply frame in EfiBootServicesData type memory, and code executing after
ExitBootServices() is permitted to overwrite it.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-13-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						505812ae1d 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Implement the PassThru method  
						
						... 
						
						
						
						Machines should be able to boot after this commit. Tested with different
Linux distributions (Ubuntu, CentOS) and different Windows
versions (Windows 7, Windows 10, Server 2016).
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-12-nikita.leshchenko@oracle.com >
[lersek@redhat.com: MPT_SCSI_DMA_ADDR_HIGH: drop redundant space char] 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						81cada9892 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Initialize hardware  
						
						... 
						
						
						
						Reset and send the IO controller initialization request. The reply is
read back to complete the doorbell function but it isn't useful to us
because it doesn't contain relevant data or status codes.
See "LSI53C1030 PCI-X to Dual Channel Ultra320 SCSI Multifunction
Controller" technical manual for more information.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Message-Id: <20200504210607.144434-11-nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						ecdbdba636 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Set and restore PCI attributes  
						
						... 
						
						
						
						Enable the IO Space and Bus Mastering and restore the original values
when the device is stopped. This is a standard procedure in PCI
drivers.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Liran Alon <liran.alon@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-10-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						da8c0b8f4d 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Open PciIo protocol for later use  
						
						... 
						
						
						
						This will give us an exclusive access to the PciIo of this device
after it was started and until is will be stopped.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Liran Alon <liran.alon@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-9-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						f9941d31dd 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Build and decode DevicePath  
						
						... 
						
						
						
						Used to identify the individual disks in the hardware tree.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Liran Alon <liran.alon@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-8-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						093cceaf79 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Report targets and one LUN  
						
						... 
						
						
						
						The controller supports up to 8 targets in practice (Not reported by the
controller, but based on the implementation of the virtual device),
report them in GetNextTarget and GetNextTargetLun. The firmware will
then try to communicate with them and create a block device for each one
that responds.
Support for multiple LUNs will be implemented in another series.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-7-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						a53e5b4174 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Install stubbed EXT_SCSI_PASS_THRU  
						
						... 
						
						
						
						Support dynamic insertion and removal of the protocol
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-6-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						f47074425d 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Probe PCI devices and look for MptScsi  
						
						... 
						
						
						
						The MptScsiControllerSupported function is called on handles passed in
by the ConnectController() boot service and if the handle is the
lsi53c1030 controller the function would return success. A successful
return value will attach our driver to the device.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Liran Alon <liran.alon@oracle.com >
Message-Id: <20200504210607.144434-5-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						be7fcaa1c9 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Report name of driver  
						
						... 
						
						
						
						Install Component Name protocols to have a nice display name for the
driver in places such as UEFI shell.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com >
Reviewed-by: Liran Alon <liran.alon@oracle.com >
Message-Id: <20200504210607.144434-4-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						ad8f2d6b07 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Install DriverBinding Protocol  
						
						... 
						
						
						
						In order to probe and connect to the MptScsi device we need this
protocol. Currently it does nothing.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Liran Alon <liran.alon@oracle.com >
Message-Id: <20200504210607.144434-3-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nikita Leshenko 
							
						 
					 
					
						
						
							
						
						feec20b28d 
					 
					
						
						
							
							OvmfPkg/MptScsiDxe: Create empty driver  
						
						... 
						
						
						
						In preparation for implementing LSI Fusion MPT SCSI devices, create a
basic scaffolding for a driver.
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2390 
Signed-off-by: Nikita Leshenko <nikita.leshchenko@oracle.com >
Reviewed-by: Liran Alon <liran.alon@oracle.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Message-Id: <20200504210607.144434-2-nikita.leshchenko@oracle.com > 
						
						
					 
					
						2020-05-05 20:43:02 +00:00