@ -20,16 +20,24 @@ static int dm_test_pci_base(struct unit_test_state *uts)
}
DM_TEST ( dm_test_pci_base , DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT ) ;
/* Test that sandbox PCI bus numbering works correctly */
static int dm_test_pci_busnum ( struct unit_test_state * uts )
/* Test that sandbox PCI bus numbering and device works correctly */
static int dm_test_pci_busdev ( struct unit_test_state * uts )
{
struct udevice * bus ;
struct udevice * emul , * swap ;
ut_assertok ( uclass_get_device_by_seq ( UCLASS_PCI , 0 , & bus ) ) ;
ut_assertok ( uclass_get_device ( UCLASS_PCI_EMUL , 0 , & emul ) ) ;
ut_assertok ( dm_pci_bus_find_bdf ( PCI_BDF ( 0 , 0x00 , 0 ) , & swap ) ) ;
ut_assert ( device_active ( swap ) ) ;
ut_assertok ( uclass_get_device ( UCLASS_PCI_EMUL , 1 , & emul ) ) ;
ut_assertok ( dm_pci_bus_find_bdf ( PCI_BDF ( 0 , 0x1f , 0 ) , & swap ) ) ;
ut_assert ( device_active ( swap ) ) ;
return 0 ;
}
DM_TEST ( dm_test_pci_busnum , DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT ) ;
DM_TEST ( dm_test_pci_busdev , DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT ) ;
/* Test that we can use the swapcase device correctly */
static int dm_test_pci_swapcase ( struct unit_test_state * uts )
@ -38,7 +46,28 @@ static int dm_test_pci_swapcase(struct unit_test_state *uts)
ulong io_addr , mem_addr ;
char * ptr ;
/* Check that asking for the device automatically fires up PCI */
/* Check that asking for the device 0 automatically fires up PCI */
ut_assertok ( dm_pci_bus_find_bdf ( PCI_BDF ( 0 , 0x00 , 0 ) , & swap ) ) ;
/* First test I/O */
io_addr = dm_pci_read_bar32 ( swap , 0 ) ;
outb ( 2 , io_addr ) ;
ut_asserteq ( 2 , inb ( io_addr ) ) ;
/*
* Now test memory mapping - note we must unmap and remap to cause
* the swapcase emulation to see our data and response .
*/
mem_addr = dm_pci_read_bar32 ( swap , 1 ) ;
ptr = map_sysmem ( mem_addr , 20 ) ;
strcpy ( ptr , " This is a TesT " ) ;
unmap_sysmem ( ptr ) ;
ptr = map_sysmem ( mem_addr , 20 ) ;
ut_asserteq_str ( " tHIS IS A tESt " , ptr ) ;
unmap_sysmem ( ptr ) ;
/* Check that asking for the device 1 automatically fires up PCI */
ut_assertok ( dm_pci_bus_find_bdf ( PCI_BDF ( 0 , 0x1f , 0 ) , & swap ) ) ;
/* First test I/O */