Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
work around patch (Re: kern info: [drm] failed to find VBIOS tables
| To: current-users%netbsd.org@localhost
| From: Makoto Fujiwara <makoto%ki.nu@localhost>
| Subject: kern info: [drm] failed to find VBIOS tables
| Date: Sat, 12 Jan 2019 09:47:57 +0900
| Message-ID: <yfmh8ee3dmq.wl-makoto%ki.nu@localhost>
> 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
mef%NetBSD.org@localhost
makoto%if.t.u-tokyo.ac.jp@localhost
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
Home |
Main Index |
Thread Index |
Old Index