| To: [email protected] | From: Makoto Fujiwara <[email protected]> | Subject: kern info: [drm] failed to find VBIOS tables | Date: Sat, 12 Jan 2019 09:47:57 +0900 | Message-ID: <[email protected]>
> I've installed HEAD from nycdn to Panasonic Let's Note CF-SX2, > (20190105 version, and also checked with 201901111600Z). > In sysinst, screen gets blank, but extenal VGA works. > After installation, also LCD does not come out, but extenal VGA > works. The problem still exists, and I had private mail for similar problem on Panasonic toughbook with work around patch. The problem exists on Let's Note CF-J10 Let's Note CF-N10 Let's Note CF-SX2 but does not exist on Let's Note CF-SX3 I'm using attached work around to all of above now. (-SX3 works OK with patched kernel) Also, the part of /var/run/dmesg.boot attached, -- Makoto Fujiwara [email protected] [email protected] phone: +81-3-5841-6730 mobil: +81-3-70-5073-4063 diff --git a/sys/dev/pci/pci_map.c b/sys/dev/pci/pci_map.c index 34faf775468..3512d290567 100644 --- a/sys/dev/pci/pci_map.c +++ b/sys/dev/pci/pci_map.c @@ -366,7 +366,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; @@ -379,7 +382,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; @@ -412,6 +418,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)) && @@ -425,8 +439,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/dist/drm/i915/intel_fifo_underrun.c b/sys/external/bsd/drm2/dist/drm/i915/intel_fifo_underrun.c index eb6ec4c3ad8..a9d9ea55970 100644 --- a/sys/external/bsd/drm2/dist/drm/i915/intel_fifo_underrun.c +++ b/sys/external/bsd/drm2/dist/drm/i915/intel_fifo_underrun.c @@ -324,12 +324,19 @@ bool intel_set_pch_fifo_underrun_reporting(struct drm_i915_private *dev_priv, old = !intel_crtc->pch_fifo_underrun_disabled; intel_crtc->pch_fifo_underrun_disabled = !enable; +printf( "%s:%4d: %s --> %d\n", __FILE__, __LINE__, __func__, old); if (HAS_PCH_IBX(dev_priv->dev)) + { +printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__); ibx_set_fifo_underrun_reporting(dev_priv->dev, pch_transcoder, enable); + } else + { +printf( "%s:%4d: %s\n", __FILE__, __LINE__, __func__); cpt_set_fifo_underrun_reporting(dev_priv->dev, pch_transcoder, enable, old); + } spin_unlock_irqrestore(&dev_priv->irq_lock, flags); return old; diff --git a/sys/external/bsd/drm2/linux/linux_pci.c b/sys/external/bsd/drm2/linux/linux_pci.c index 34da7444254..9b4983b364c 100644 --- a/sys/external/bsd/drm2/linux/linux_pci.c +++ b/sys/external/bsd/drm2/linux/linux_pci.c @@ -453,15 +453,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; @@ -480,6 +484,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) @@ -487,6 +492,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, @@ -496,19 +502,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, @@ -516,6 +532,7 @@ success: return pdev->pd_rom_vaddr; fail_md: +printf("h\n"); return NULL; } ------------------ boot device: wd0 root on wd0a dumps on wd0b root file system type: ffs kern.module.path=/stand/amd64/8.99.33/modules kern info: [drm] Memory usable by graphics device = 2048M kern info: [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). kern info: [drm] Driver supports precise vblank timestamp query. a /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 487: linux_pci_map_rom d /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 507: linux_pci_map_rom A /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 456: pci_map_rom_md B /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 459: pci_map_rom_md C /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 462: pci_map_rom_md D /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 468: pci_map_rom_md e /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 511: linux_pci_map_rom /export/git-work/netbsd-src/sys/dev/pci/pci_map.c: 418: pci_find_rom 8086 8086 406 a16 3 3 0 0 0 0 0 0 /export/git-work/netbsd-src/sys/dev/pci/pci_map.c: 439: pci_find_rom 80 80 /export/git-work/netbsd-src/sys/dev/pci/pci_map.c: 444: pci_find_rom 80 80 f /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 525: linux_pci_map_rom g /export/git-work/netbsd-src/sys/external/bsd/drm2/linux/linux_pci.c: 527: linux_pci_map_rom i915drmkms0: interrupting at ioapic0 pin 16 (i915drmkms0) intelfb0 at i915drmkms0 intelfb0: framebuffer at 0xffff8280f6467000, size 1600x900, depth 32, stride 6400
