Lines Matching refs:dev

104 pci_device_freebsd_map_range(struct pci_device *dev,  in pci_device_freebsd_map_range()  argument
149 pci_device_freebsd_unmap_range( struct pci_device *dev, in pci_device_freebsd_unmap_range() argument
178 return pci_device_generic_unmap_range(dev, map); in pci_device_freebsd_unmap_range()
182 pci_device_freebsd_read( struct pci_device * dev, void * data, in pci_device_freebsd_read() argument
189 io.pi_sel.pc_domain = dev->domain; in pci_device_freebsd_read()
191 io.pi_sel.pc_bus = dev->bus; in pci_device_freebsd_read()
192 io.pi_sel.pc_dev = dev->dev; in pci_device_freebsd_read()
193 io.pi_sel.pc_func = dev->func; in pci_device_freebsd_read()
222 pci_device_freebsd_write( struct pci_device * dev, const void * data, in pci_device_freebsd_write() argument
229 io.pi_sel.pc_domain = dev->domain; in pci_device_freebsd_write()
231 io.pi_sel.pc_bus = dev->bus; in pci_device_freebsd_write()
232 io.pi_sel.pc_dev = dev->dev; in pci_device_freebsd_write()
233 io.pi_sel.pc_func = dev->func; in pci_device_freebsd_write()
266 pci_device_freebsd_read_rom( struct pci_device * dev, void * buffer ) in pci_device_freebsd_read_rom() argument
268 struct pci_device_private *priv = (struct pci_device_private *) dev; in pci_device_freebsd_read_rom()
275 if ( ( dev->device_class & 0x00ffff00 ) != in pci_device_freebsd_read_rom()
292 pci_device_cfg_read_u16( dev, &reg, PCIR_COMMAND ); in pci_device_freebsd_read_rom()
293 pci_device_cfg_write_u16( dev, reg | PCIM_CMD_MEMEN, PCIR_COMMAND ); in pci_device_freebsd_read_rom()
294 pci_device_cfg_read_u32( dev, &rom, PCIR_BIOS ); in pci_device_freebsd_read_rom()
295 pci_device_cfg_write_u32( dev, rom | PCIM_BIOS_ENABLE, PCIR_BIOS ); in pci_device_freebsd_read_rom()
303 bios = mmap( NULL, dev->rom_size, PROT_READ, 0, memfd, rom_base ); in pci_device_freebsd_read_rom()
309 memcpy( buffer, bios, dev->rom_size ); in pci_device_freebsd_read_rom()
311 munmap( bios, dev->rom_size ); in pci_device_freebsd_read_rom()
315 pci_device_cfg_write_u32( dev, PCIR_BIOS, rom ); in pci_device_freebsd_read_rom()
316 pci_device_cfg_write_u16( dev, PCIR_COMMAND, reg ); in pci_device_freebsd_read_rom()
325 pci_device_freebsd_get_num_regions( struct pci_device * dev ) in pci_device_freebsd_get_num_regions() argument
327 struct pci_device_private *priv = (struct pci_device_private *) dev; in pci_device_freebsd_get_num_regions()
345 pci_device_freebsd_probe( struct pci_device * dev ) in pci_device_freebsd_probe() argument
347 struct pci_device_private *priv = (struct pci_device_private *) dev; in pci_device_freebsd_probe()
353 bar.pbi_sel.pc_domain = dev->domain; in pci_device_freebsd_probe()
355 bar.pbi_sel.pc_bus = dev->bus; in pci_device_freebsd_probe()
356 bar.pbi_sel.pc_dev = dev->dev; in pci_device_freebsd_probe()
357 bar.pbi_sel.pc_func = dev->func; in pci_device_freebsd_probe()
364 err = pci_device_cfg_read_u8( dev, &irq, 60 ); in pci_device_freebsd_probe()
367 dev->irq = irq; in pci_device_freebsd_probe()
369 for (i = 0; i < pci_device_freebsd_get_num_regions( dev ); i++) { in pci_device_freebsd_probe()
375 dev->regions[i].is_IO = 1; in pci_device_freebsd_probe()
378 dev->regions[i].is_64 = 1; in pci_device_freebsd_probe()
381 dev->regions[i].is_prefetchable = 1; in pci_device_freebsd_probe()
383 dev->regions[i].base_addr = bar.pbi_base & ~((uint64_t)0xf); in pci_device_freebsd_probe()
384 dev->regions[i].size = bar.pbi_length; in pci_device_freebsd_probe()
390 if ((dev->device_class & 0x00ffff00) == in pci_device_freebsd_probe()
392 dev->rom_size = 64 * 1024; in pci_device_freebsd_probe()
432 pci_device_freebsd_get_region_info( struct pci_device * dev, int region, in pci_device_freebsd_get_region_info() argument
440 err = pci_device_cfg_read_u32( dev, &addr, bar ); in pci_device_freebsd_get_region_info()
448 err = pci_device_cfg_read_u16( dev, &cmd, PCIR_COMMAND ); in pci_device_freebsd_get_region_info()
452 err = pci_device_cfg_write_u16( dev, in pci_device_freebsd_get_region_info()
459 err = pci_device_cfg_write_u32( dev, 0xffffffff, bar ); in pci_device_freebsd_get_region_info()
462 err = pci_device_cfg_read_u32( dev, &testval, bar ); in pci_device_freebsd_get_region_info()
465 err = pci_device_cfg_write_u32( dev, addr, bar ); in pci_device_freebsd_get_region_info()
470 err = pci_device_cfg_write_u16( dev, cmd, PCIR_COMMAND ); in pci_device_freebsd_get_region_info()
475 dev->regions[region].is_IO = 1; in pci_device_freebsd_get_region_info()
477 dev->regions[region].is_64 = 1; in pci_device_freebsd_get_region_info()
479 dev->regions[region].is_prefetchable = 1; in pci_device_freebsd_get_region_info()
482 dev->regions[region].size = get_test_val_size( testval ); in pci_device_freebsd_get_region_info()
483 printf("size = 0x%lx\n", (long)dev->regions[region].size); in pci_device_freebsd_get_region_info()
486 if (dev->regions[region].is_64) { in pci_device_freebsd_get_region_info()
489 err = pci_device_cfg_read_u32( dev, &top, bar + 4 ); in pci_device_freebsd_get_region_info()
493 dev->regions[region].base_addr = ((uint64_t)top << 32) | in pci_device_freebsd_get_region_info()
496 dev->regions[region].base_addr = get_map_base(addr); in pci_device_freebsd_get_region_info()
503 pci_device_freebsd_probe( struct pci_device * dev ) in pci_device_freebsd_probe() argument
505 struct pci_device_private *priv = (struct pci_device_private *) dev; in pci_device_freebsd_probe()
514 err = pci_device_cfg_read_u8( dev, &irq, 60 ); in pci_device_freebsd_probe()
517 dev->irq = irq; in pci_device_freebsd_probe()
520 for (i = 0; i < pci_device_freebsd_get_num_regions( dev ); i++) { in pci_device_freebsd_probe()
521 pci_device_freebsd_get_region_info( dev, i, bar ); in pci_device_freebsd_probe()
522 if (dev->regions[i].is_64) { in pci_device_freebsd_probe()
530 if ((dev->device_class & 0x00ffff00) == in pci_device_freebsd_probe()
533 err = pci_device_cfg_read_u32( dev, &reg, PCIR_BIOS ); in pci_device_freebsd_probe()
538 dev->rom_size = 0x10000; in pci_device_freebsd_probe()
542 err = pci_device_cfg_write_u32( dev, ~PCIM_BIOS_ENABLE, PCIR_BIOS ); in pci_device_freebsd_probe()
545 pci_device_cfg_read_u32( dev, &size, PCIR_BIOS ); in pci_device_freebsd_probe()
546 pci_device_cfg_write_u32( dev, reg, PCIR_BIOS ); in pci_device_freebsd_probe()
550 dev->rom_size = -(size & PCIM_BIOS_ADDR_MASK); in pci_device_freebsd_probe()
636 pci_sys->devices[ i ].base.dev = p->pc_sel.pc_dev; in pci_system_freebsd_create()