lsi: add 53C810 variant
Currently, treat it exactly as a 53C895A. 53C895A is a 53C810 with more capabilities, so this should work. However, this lets us test different code paths on Linux, which don't use lastest features if it detect a 810, or on some OSes which only support 810 and not 895A (like very old Windows NT versions). Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									689f5ff437
								
							
						
					
					
						commit
						ceae18bd74
					
				| @ -7,6 +7,12 @@ | ||||
|  * This code is licensed under the LGPL. | ||||
|  */ | ||||
| 
 | ||||
| /* Note:
 | ||||
|  * LSI53C810 emulation is incorrect, in the sense that it supports | ||||
|  * features added in later evolutions. This should not be a problem, | ||||
|  * as well-behaved operating systems will not try to use them. | ||||
|  */ | ||||
| 
 | ||||
| #include <assert.h> | ||||
| 
 | ||||
| #include "hw/hw.h" | ||||
| @ -275,6 +281,7 @@ typedef struct { | ||||
|     uint32_t script_ram[2048]; | ||||
| } LSIState; | ||||
| 
 | ||||
| #define TYPE_LSI53C810  "lsi53c810" | ||||
| #define TYPE_LSI53C895A "lsi53c895a" | ||||
| 
 | ||||
| #define LSI53C895A(obj) \ | ||||
| @ -2145,9 +2152,23 @@ static const TypeInfo lsi_info = { | ||||
|     .class_init    = lsi_class_init, | ||||
| }; | ||||
| 
 | ||||
| static void lsi53c810_class_init(ObjectClass *klass, void *data) | ||||
| { | ||||
|     PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); | ||||
| 
 | ||||
|     k->device_id = PCI_DEVICE_ID_LSI_53C810; | ||||
| } | ||||
| 
 | ||||
| static TypeInfo lsi53c810_info = { | ||||
|     .name          = TYPE_LSI53C810, | ||||
|     .parent        = TYPE_LSI53C895A, | ||||
|     .class_init    = lsi53c810_class_init, | ||||
| }; | ||||
| 
 | ||||
| static void lsi53c895a_register_types(void) | ||||
| { | ||||
|     type_register_static(&lsi_info); | ||||
|     type_register_static(&lsi53c810_info); | ||||
| } | ||||
| 
 | ||||
| type_init(lsi53c895a_register_types) | ||||
|  | ||||
| @ -53,6 +53,7 @@ | ||||
| /* Vendors and devices.  Sort key: vendor first, device next. */ | ||||
| 
 | ||||
| #define PCI_VENDOR_ID_LSI_LOGIC          0x1000 | ||||
| #define PCI_DEVICE_ID_LSI_53C810         0x0001 | ||||
| #define PCI_DEVICE_ID_LSI_53C895A        0x0012 | ||||
| #define PCI_DEVICE_ID_LSI_SAS1078        0x0060 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Hervé Poussineau
						Hervé Poussineau