daily CVS update output
Updating src tree: P src/crypto/external/bsd/openssh/dist/channels.c P src/sys/dev/ic/malo.c P src/sys/dev/pci/ixgbe/if_sriov.c P src/sys/dev/pci/ixgbe/ixgbe.c P src/sys/dev/pci/ixgbe/ixgbe_82598.c P src/sys/dev/pci/ixgbe/ixgbe_82598.h P src/sys/dev/pci/ixgbe/ixgbe_82599.c P src/sys/dev/pci/ixgbe/ixgbe_82599.h P src/sys/dev/pci/ixgbe/ixgbe_api.c P src/sys/dev/pci/ixgbe/ixgbe_api.h P src/sys/dev/pci/ixgbe/ixgbe_bypass.h P src/sys/dev/pci/ixgbe/ixgbe_common.c P src/sys/dev/pci/ixgbe/ixgbe_common.h P src/sys/dev/pci/ixgbe/ixgbe_dcb.c P src/sys/dev/pci/ixgbe/ixgbe_dcb.h P src/sys/dev/pci/ixgbe/ixgbe_dcb_82598.c P src/sys/dev/pci/ixgbe/ixgbe_dcb_82598.h P src/sys/dev/pci/ixgbe/ixgbe_dcb_82599.c P src/sys/dev/pci/ixgbe/ixgbe_dcb_82599.h P src/sys/dev/pci/ixgbe/ixgbe_fdir.h P src/sys/dev/pci/ixgbe/ixgbe_features.h P src/sys/dev/pci/ixgbe/ixgbe_mbx.c P src/sys/dev/pci/ixgbe/ixgbe_mbx.h P src/sys/dev/pci/ixgbe/ixgbe_osdep.c P src/sys/dev/pci/ixgbe/ixgbe_osdep.h P src/sys/dev/pci/ixgbe/ixgbe_phy.c P src/sys/dev/pci/ixgbe/ixgbe_phy.h P src/sys/dev/pci/ixgbe/ixgbe_rss.h P src/sys/dev/pci/ixgbe/ixgbe_sriov.h P src/sys/dev/pci/ixgbe/ixgbe_type.h P src/sys/dev/pci/ixgbe/ixgbe_vf.c P src/sys/dev/pci/ixgbe/ixgbe_vf.h P src/sys/dev/pci/ixgbe/ixgbe_x540.c P src/sys/dev/pci/ixgbe/ixgbe_x540.h P src/sys/dev/pci/ixgbe/ixgbe_x550.c P src/sys/dev/pci/ixgbe/ixgbe_x550.h P src/sys/dev/pci/ixgbe/ixv.c P src/sys/dev/rasops/rasops.c P src/sys/dev/rasops/rasops.h P src/sys/dev/usb/ehci.c P src/sys/dev/wsfb/genfb.c P src/sys/dev/wsfont/wsfont.c P src/sys/dev/wsfont/wsfont.h P src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c P src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c P src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h P src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_shmem.c P src/sys/external/bsd/drm2/dist/drm/scheduler/sched_entity.c P src/sys/external/bsd/drm2/linux/linux_sgt.c P src/sys/external/bsd/drm2/linux/linux_ww_mutex.c P src/sys/net/if_vlan.c Updating xsrc tree: P xsrc/external/mit/xf86-video-suncg14/dist/src/cg14.h P xsrc/external/mit/xf86-video-suncg14/dist/src/cg14_accel.c P xsrc/external/mit/xf86-video-suncg14/dist/src/cg14_render.c Killing core files: Updating tar files: src/top-level: collecting... replacing... done src/bin: collecting... replacing... done src/common: collecting... replacing... done src/compat: collecting... replacing... done src/crypto: collecting... replacing... done src/dist: collecting... replacing... done src/distrib: collecting... replacing... done src/doc: collecting... replacing... done src/etc: collecting... replacing... done src/external: collecting... replacing... done src/extsrc: collecting... replacing... done src/games: collecting... replacing... done src/gnu: collecting...pax: Unable to access src/gnu (No such file or directory) pax: WARNING! These file names were not selected: src/gnu done src/include: collecting... replacing... done src/lib: collecting... replacing... done src/libexec: collecting... replacing... done src/regress: collecting... replacing... done src/rescue: collecting... replacing... done src/sbin: collecting... replacing... done src/share: collecting... replacing... done src/sys: collecting... replacing... done src/tests: collecting... replacing... done src/tools: collecting... replacing... done src/usr.bin: collecting... replacing... done src/usr.sbin: collecting... replacing... done src/config: collecting... replacing... done src: collecting... replacing... done xsrc/top-level: collecting... replacing... done xsrc/external: collecting... replacing... done xsrc/local: collecting... replacing... done xsrc: collecting... replacing... done Updating release-8 src tree (netbsd-8): U doc/CHANGES-8.3 P sys/arch/x86/include/cacheinfo.h P sys/arch/x86/include/cpu.h P sys/arch/x86/x86/identcpu.c P sys/arch/x86/x86/identcpu_subr.c P usr.sbin/cpuctl/arch/cpuctl_i386.h P usr.sbin/cpuctl/arch/i386.c Updating release-8 xsrc tree (netbsd-8): Updating release-8 tar files: src/top-level: collecting... replacing... done src/bin: collecting... replacing... done src/common: collecting... replacing... done src/compat: collecting... replacing... done src/crypto: collecting... replacing... done src/dist: collecting... replacing... done src/distrib: collecting... replacing... done src/doc: collecting... replacing... done src/etc: collecting... replacing... done src/external: collecting... replacing... done src/extsrc: collecting... replacing... done src/games: collecting... replacing... done src/gnu: collecting...pax: Unable to access src/gnu (No such file or directory) pax: WARNING! These file names were not selected: src/gnu done src/include: collecting... replacing... done src/lib: collecting... replacing... done src/libexec: collecting... replacing... done src/regress: collecting... replacing... done src/rescue: collecting... replacing... done src/sbin: collecting... replacing... done src/share: collecting...
Re: HEADS UP: Merging drm update
Hi, Taylor R Campbell writes: > Better yet -- can you try the attached patch? > From e484fe666999730543f490ce6084486f7d7ce524 Mon Sep 17 00:00:00 2001 > From: Taylor R Campbell > Date: Fri, 24 Dec 2021 11:12:43 + > Subject: [PATCH] i915: Use AcpiOsMapMemory, not bus_space_map, for opregion. > > Needed because this appears in firmware-type memory mappings, which > are excluded from bus_space_map. > > XXX pullup-9 (via manual patch since the code has changed a bit) (snip) Thank you very much. Your attached patch seems to be committed already. I have updated my src tree and build, boot the latest kernel. And the LCD turns black forever at different point. However I cannot see the last message from the kernel. Something goes wrong and i915drmkms does not work for my laptop yet. I will try to find a problematic point. -- Ryo ONODERA // r...@tetera.org PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Re: HEADS UP: Merging drm update
Better yet -- can you try the attached patch? >From e484fe666999730543f490ce6084486f7d7ce524 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Fri, 24 Dec 2021 11:12:43 + Subject: [PATCH] i915: Use AcpiOsMapMemory, not bus_space_map, for opregion. Needed because this appears in firmware-type memory mappings, which are excluded from bus_space_map. XXX pullup-9 (via manual patch since the code has changed a bit) --- .../dist/drm/i915/display/intel_opregion.c| 34 +-- .../dist/drm/i915/display/intel_opregion.h| 14 2 files changed, 8 insertions(+), 40 deletions(-) diff --git a/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c b/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c index 4b0412828d49..b2f986bd74c0 100644 --- a/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c +++ b/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c @@ -952,15 +952,7 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv) INIT_WORK(>asle_work, asle_work); #ifdef __NetBSD__ - opregion->bst = pdev->pd_pa.pa_memt; - err = -bus_space_map(opregion->bst, asls, OPREGION_SIZE, - BUS_SPACE_MAP_LINEAR|BUS_SPACE_MAP_CACHEABLE, - >asls_bsh); - if (err) { - DRM_DEBUG_DRIVER("Failed to map opregion: %d\n", err); - return err; - } - base = bus_space_vaddr(opregion->bst, opregion->asls_bsh); + base = AcpiOsMapMemory(asls, OPREGION_SIZE); #else base = memremap(asls, OPREGION_SIZE, MEMREMAP_WB); #endif @@ -1035,14 +1027,7 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv) } #ifdef __NetBSD__ - if (bus_space_map(opregion->bst, rvda, - opregion->asle->rvds, - BUS_SPACE_MAP_LINEAR|BUS_SPACE_MAP_CACHEABLE, - >rvda_bsh)) - opregion->rvda = NULL; - else - opregion->rvda = bus_space_vaddr(opregion->bst, - opregion->rvda_bsh); + opregion->rvda = AcpiOsMapMemory(rvda, opregion->asle->rvds); #else opregion->rvda = memremap(rvda, opregion->asle->rvds, MEMREMAP_WB); @@ -1058,11 +1043,8 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv) } else { DRM_DEBUG_KMS("Invalid VBT in ACPI OpRegion (RVDA)\n"); #ifdef __NetBSD__ - if (opregion->rvda) { - bus_space_unmap(opregion->bst, - opregion->rvda_bsh, - opregion->asle->rvds); - } + AcpiOsUnmapMemory(opregion->rvda, + opregion->asle->rvds); #else memunmap(opregion->rvda); #endif @@ -1094,7 +1076,7 @@ out: err_out: #ifdef __NetBSD__ - bus_space_unmap(opregion->bst, opregion->asls_bsh, OPREGION_SIZE); + AcpiOsUnmapMemory(base, OPREGION_SIZE); #else memunmap(base); #endif @@ -1251,14 +1233,14 @@ void intel_opregion_unregister(struct drm_i915_private *i915) /* just clear all opregion memory pointers now */ #ifdef __NetBSD__ - bus_space_unmap(opregion->bst, opregion->asls_bsh, OPREGION_SIZE); + size_t rvds = opregion->asle->rvds; + AcpiOsUnmapMemory(opregion->header, OPREGION_SIZE); #else memunmap(opregion->header); #endif if (opregion->rvda) { #ifdef __NetBSD__ - bus_space_unmap(opregion->bst, opregion->rvda_bsh, - opregion->asle->rvds); + AcpiOsUnmapMemory(opregion->rvda, rvds); #else memunmap(opregion->rvda); #endif diff --git a/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h b/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h index a04f1c9d9f74..879c4135f670 100644 --- a/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h +++ b/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h @@ -38,17 +38,7 @@ struct opregion_acpi; struct opregion_swsci; struct opregion_asle; -#ifdef __NetBSD__ /* XXX acpi iomem */ -# include -# define __iomem __acpi_iomem -#endif - struct intel_opregion { -#ifdef __NetBSD__ - bus_space_tag_t bst; - bus_space_handle_t asls_bsh; - bus_space_handle_t rvda_bsh; -#endif struct opregion_header *header; struct opregion_acpi *acpi; struct opregion_swsci *swsci; @@ -66,10 +56,6 @@ struct intel_opregion { #define OPREGION_SIZE(8 * 1024) -#ifdef __NetBSD__ /* XXX acpi iomem */ -# undef __iomem -#endif - #ifdef CONFIG_ACPI int intel_opregion_setup(struct drm_i915_private *dev_priv);
Re: HEADS UP: Merging drm update
> Date: Thu, 23 Dec 2021 17:26:49 + > From: Taylor R Campbell > > > Date: Fri, 24 Dec 2021 01:53:03 +0900 > > From: Ryo ONODERA > > > > And with this patch, I have gotten the following dmesg: > > This has no bus_space_map and extent_alloc_subregion1... > > OK, can you try the attached patch and see if it gives us any clues in > dmesg? This prints a stack trace any time subr_extent.c writes to a > struct extent_region and the region now covers the relevant space. The extent regions might be created too early in x86_parse_clusters, before dmesg starts recording. Can you dump bootinfo, e.g. from crash(8)? Running this on an older working kernel will do -- doesn't have to be from the broken one. x/bx bootinfo,1000 (bootinfo might be more than 0x1000 bytes long, but this will probably suffice to find what covers ASLS=0x63ec5018.)
Re: HEADS UP: Merging drm update
riastr...@netbsd.org (Taylor R Campbell) writes: > #include > if (bpa <=3D BADADDR && BADADDR < bpa + size) > db_stacktrace(); >Then share the dmesg output on boot with this change to >bus_space_reserve? >This way we can track down who's reserving the registers that >intel_opregion.c wants. In my case (T420 with Sandy Bridge) nobody did bus_space_reserve the registers that intel_opregion wants. This here is the attempt to map the opregion: bus_space_reserve 0x80554799: 0xdaef6018+0x2000 -> extent_alloc_region failed bus_space_map 0x807689ee: 0xdaef6018+0x2000 -> bus_space_reserve failed The iomem extent at that point is: extent `iomem' (0x0 - 0x), flags = 0x3 0x0 - 0x57fff 0x58000 - 0x58fff 0x59000 - 0x9 0x10 - 0x1fff 0x2020 - 0x3fff 0x4020 - 0xda99efff 0xdae9f000 - 0xdaf9efff < 0xdaf9f000 - 0xdaffefff 0xdafff000 - 0xdaff 0xf000 - 0xf01f 0xf020 - 0xf03f 0xf140 - 0xf14000ff 0xf240 - 0xf2401fff 0xf250 - 0xf251 0xf252 - 0xf2523fff 0xf2528000 - 0xf25287ff 0xf2529000 - 0xf25293ff 0xf252a000 - 0xf252a3ff 0xf252b000 - 0xf252bfff 0xf800 - 0xf8000fff 0xf801 - 0xf8010fff 0xf80b - 0xf80b0fff 0xf80c8000 - 0xf80c8fff 0xf80d - 0xf80d0fff 0xf80d8000 - 0xf80d8fff 0xf80e - 0xf80e0fff 0xf80e1000 - 0xf80e1fff 0xf80e3000 - 0xf80e3fff 0xf80e4000 - 0xf80e4fff 0xf80e8000 - 0xf80e8fff 0xf80f8000 - 0xf80f8fff 0xf80fa000 - 0xf80fafff 0xf80fb000 - 0xf80fbfff 0xf830 - 0xf8300fff 0xf8d0 - 0xf8d00fff 0xfed0 - 0xfed003ff 0xfed1c000 - 0xfed1 0xfed4 - 0xfed44fff 0x1 - 0x21e5f The iomem extent is initialized from the UEFI memory map: # N STARTEND 0 7 00057fff 1 10 00058000 00058fff 2 7 00059000 0009 3 7 0010 1fff 4 0 2000 201f 5 7 2020 3fff 6 0 4000 401f 7 7 4020 da99efff 8 5 da99f000 daac1fff 9 5 daac2000 dab9efff 10 6 dab9f000 dacb1fff 11 6 dacb2000 dad9efff 12 0 dad9f000 dae21fff 13 0 dae22000 dae9afff 14 0 dae9b000 dae9bfff 15 0 dae9c000 dae9efff 16 10 dae9f000 daeddfff 17 10 daede000 daf9efff <-- 18 9 daf9f000 dafdcfff 19 9 dafdd000 daffefff 20 7 dafff000 daff 21 11 f80f8000 f80f8fff 22 11 fed1c000 fed1 23 7 0001 00021e5f The second column is the EFI md_type that gets translated to a bootinfo memory type: 0 = null -> BIM_Reserved 5 = rt_code -> BIM_Reserved 6 = rt_data -> BIM_Reserved 7 = free -> BIM_Memory 9 = reclaim -> BIM_ACPI 10 = firmware -> BIM_NVS 11 = iomem-> BIM_Reserved The needed pages are in cluster 17 of type BIM_NVS, which the extent has added as pre-allocated (merged with cluster 16).