diff --git a/sys/dev/pci/pci_map.c b/sys/dev/pci/pci_map.c index a8b22d9ee25..4be0e0164b0 100644 --- a/sys/dev/pci/pci_map.c +++ b/sys/dev/pci/pci_map.c @@ -685,7 +685,10 @@ pci_find_rom(const struct pci_attach_args *pa, bus_space_tag_t bst, * it appears the spec would allow it! */ if (sz < 1024) + { +printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__); return 1; + } while (offset < sz && !done){ struct pci_rom_header hdr; @@ -698,7 +701,10 @@ pci_find_rom(const struct pci_attach_args *pa, bus_space_tag_t bst, /* no warning: quite possibly ROM is simply not populated */ if (hdr.romh_magic != PCI_ROM_HEADER_MAGIC) +{ +printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__); return 1; + } ptr = offset + hdr.romh_data_ptr; @@ -731,6 +737,14 @@ pci_find_rom(const struct pci_attach_args *pa, bus_space_tag_t bst, } imagesz = rom.rom_len * 512; +printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__); + printf( "%8x %8x %8x %8x %8x %8x %8x %8x %8x %8x %8x %8x\n", + rom.rom_vendor, PCI_VENDOR(pa->pa_id), + rom.rom_product, PCI_PRODUCT(pa->pa_id), + rom.rom_class, PCI_CLASS(pa->pa_class), + rom.rom_subclass, PCI_SUBCLASS(pa->pa_class), + rom.rom_interface, PCI_INTERFACE(pa->pa_class), + rom.rom_code_type, type); if ((rom.rom_vendor == PCI_VENDOR(pa->pa_id)) && (rom.rom_product == PCI_PRODUCT(pa->pa_id)) && @@ -744,8 +758,14 @@ pci_find_rom(const struct pci_attach_args *pa, bus_space_tag_t bst, } /* last image check */ +printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__); +printf( "%8x %8x\n", rom.rom_indicator, PCI_ROM_INDICATOR_LAST); if (rom.rom_indicator & PCI_ROM_INDICATOR_LAST) + { +printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__); +printf( "%8x %8x\n", rom.rom_indicator, PCI_ROM_INDICATOR_LAST); return 1; + } /* offset by size */ offset += imagesz; diff --git a/sys/external/bsd/drm2/linux/linux_pci.c b/sys/external/bsd/drm2/linux/linux_pci.c index 3a47e50dde7..7b2bd0e49a6 100644 --- a/sys/external/bsd/drm2/linux/linux_pci.c +++ b/sys/external/bsd/drm2/linux/linux_pci.c @@ -458,15 +458,19 @@ pci_map_rom_md(struct pci_dev *pdev) bus_space_handle_t rom_bsh; int error; +printf( "A %s:%4d: %s\n", __FILE__, __LINE__, __func__); if (PCI_CLASS(pdev->pd_pa.pa_class) != PCI_CLASS_DISPLAY) return ENXIO; +printf( "B %s:%4d: %s\n", __FILE__, __LINE__, __func__); if (PCI_SUBCLASS(pdev->pd_pa.pa_class) != PCI_SUBCLASS_DISPLAY_VGA) return ENXIO; +printf( "C %s:%4d: %s\n", __FILE__, __LINE__, __func__); /* XXX Check whether this is the primary VGA card? */ error = bus_space_map(pdev->pd_pa.pa_memt, rom_base, rom_size, (BUS_SPACE_MAP_LINEAR | BUS_SPACE_MAP_PREFETCHABLE), &rom_bsh); if (error) return ENXIO; +printf( "D %s:%4d: %s\n", __FILE__, __LINE__, __func__); pdev->pd_rom_bst = pdev->pd_pa.pa_memt; pdev->pd_rom_bsh = rom_bsh; @@ -485,6 +489,7 @@ pci_map_rom(struct pci_dev *pdev, size_t *sizep) KASSERT(!ISSET(pdev->pd_kludges, NBPCI_KLUDGE_MAP_ROM)); +printf( "a %s:%4d: %s\n", __FILE__, __LINE__, __func__); if (pci_mapreg_map(&pdev->pd_pa, PCI_MAPREG_ROM, PCI_MAPREG_TYPE_ROM, (BUS_SPACE_MAP_PREFETCHABLE | BUS_SPACE_MAP_LINEAR), &pdev->pd_rom_bst, &pdev->pd_rom_bsh, NULL, &pdev->pd_rom_size) @@ -492,6 +497,7 @@ pci_map_rom(struct pci_dev *pdev, size_t *sizep) goto fail_mi; pdev->pd_kludges |= NBPCI_KLUDGE_MAP_ROM; +printf( "b %s:%4d: %s\n", __FILE__, __LINE__, __func__); /* XXX This type is obviously wrong in general... */ if (pci_find_rom(&pdev->pd_pa, pdev->pd_rom_bst, pdev->pd_rom_bsh, pdev->pd_rom_size, PCI_ROM_CODE_TYPE_X86, @@ -501,19 +507,29 @@ pci_map_rom(struct pci_dev *pdev, size_t *sizep) } goto success; +printf( "c %s:%4d: %s\n", __FILE__, __LINE__, __func__); fail_mi: +printf( "d %s:%4d: %s\n", __FILE__, __LINE__, __func__); if (pci_map_rom_md(pdev) != 0) goto fail_md; +printf( "e %s:%4d: %s\n", __FILE__, __LINE__, __func__); +//#if 0 /* XXX This type is obviously wrong in general... */ if (pci_find_rom(&pdev->pd_pa, pdev->pd_rom_bst, pdev->pd_rom_bsh, pdev->pd_rom_size, PCI_ROM_CODE_TYPE_X86, &pdev->pd_rom_found_bsh, &pdev->pd_rom_found_size)) { - pci_unmap_rom(pdev, NULL); - goto fail_md; +// pci_unmap_rom(pdev, NULL); +// goto fail_md; } +//#else + pdev->pd_rom_found_bsh = pdev->pd_rom_bsh; + pdev->pd_rom_found_size = pdev->pd_rom_size; +//#endif +printf( "f %s:%4d: %s\n", __FILE__, __LINE__, __func__); success: +printf( "g %s:%4d: %s\n", __FILE__, __LINE__, __func__); KASSERT(pdev->pd_rom_found_size <= SIZE_T_MAX); *sizep = pdev->pd_rom_found_size; pdev->pd_rom_vaddr = bus_space_vaddr(pdev->pd_rom_bst, @@ -521,6 +537,7 @@ success: return pdev->pd_rom_vaddr; fail_md: +printf("h\n"); return NULL; }