Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jul 2020 15:12:58 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Robert Crowston <crowston@protonmail.com>
Cc:        Andrew Turner <andrew@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: OverDrive 1000 head -r360311 -> r363021 upgrade: USB & Ethernet disappeared, "usb_needs_explore_all: no devclass" (Now: artifact.ci bisect)
Message-ID:  <9FBC6DEB-23FA-4FA2-AB10-3D6BDC4CE010@yahoo.com>
In-Reply-To: <Abd9xeqh4ZgNFdiT18IY_5mTm9HPRdNneFmsfQLS495N91bPX6movFRqd9kEoEAlvqqHT7anHkgwlslKhyvM72wL6qMM8axpOVCx7pbQyHQ=@protonmail.com>
References:  <6E0B6750-273C-468A-9233-E868B0674F34@yahoo.com> <8AA99118-C9C5-4CC7-83C6-2A85DFF9CBE1@yahoo.com> <334D89BD-2F7A-4BF1-AB96-2D6B273BBCD3@yahoo.com> <8CA66D0C-BA19-41D1-A67C-B54ED1B6EE79@yahoo.com> <Abd9xeqh4ZgNFdiT18IY_5mTm9HPRdNneFmsfQLS495N91bPX6movFRqd9kEoEAlvqqHT7anHkgwlslKhyvM72wL6qMM8axpOVCx7pbQyHQ=@protonmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

>=20
> On 2020-Jul-11, at 14:45, Robert Crowston <crowston@protonmail.com> =
wrote:
>=20
> So what is the mistake I made here?
>=20
> Should I have given a globally unique name as the first argument to =
DRIVER_MODULE()? I didn't see that in the man page, and other examples =
of pcib drivers apparently get away with it.
>=20
> I did notice the weird message about "driver already loaded from =
kernel". I wondered if that meant I was dragging in code to the core =
kernel, that would otherwise live in an external module?
>=20
> Let me know how I can help fix it!
>=20
>    -- RHC.

It is not an area of expertise for me. I've spent hours just
getting to the point of sending the notes that I have sent.

I did just find the text:

QUOTE from =
https://www.freebsd.org/cgi/man.cgi?query=3DDRIVER_MODULE&sektion=3D9&n=3D=
1 :
     The identifier used in DRIVER_MODULE() can be different from the =
driver
     name.  Also, the same driver identifier can exist on different =
buses,
     which is a	pretty clean way of making front ends for different =
cards us-
     ing the same driver on the	same or	different buses.  For example, =
the
     following is allowed:

     DRIVER_MODULE(foo, isa, foo_driver, foo_devclass, NULL, NULL);

     DRIVER_MODULE(foo, pci, foo_driver, foo_devclass, NULL, NULL);
END QUOTE

But the wording is not explicit about what would be "same bus".

I do find two things that suggests to me that "picb" should be
a unique name. First:

QUOTE from =
https://www.freebsd.org/cgi/man.cgi?query=3Ddriver&sektion=3D9&n=3D1 :
     static int	foo_probe(device_t);
     static int	foo_attach(device_t);
     static int	foo_detach(device_t);
     static int	foo_frob(device_t, int,	int);
     static int	foo_twiddle(device_t, char *);

     static device_method_t foo_methods[] =3D {
	     /*	Methods	from the device	interface */
	     DEVMETHOD(device_probe,	     foo_probe),
	     DEVMETHOD(device_attach,	     foo_attach),
	     DEVMETHOD(device_detach,	     foo_detach),

	     /*	Methods	from the bogo interface	*/
	     DEVMETHOD(bogo_frob,	     foo_frob),
	     DEVMETHOD(bogo_twiddle,	     foo_twiddle),

	     /*	Terminate method list */
	     DEVMETHOD_END
     };

     static driver_t foo_driver	=3D {
	     "foo",
	     foo_methods,
	     sizeof(struct foo_softc)
     };

     static devclass_t foo_devclass;

     DRIVER_MODULE(foo,	bogo, foo_driver, foo_devclass,	NULL, NULL);
END QUOTE

Note the "foo" in foo_driver. That looks to be something
that ends up being globally used (indirectly) and so more
likely to have some form of relative-uniqueness criteria.
foo is also the prefix on the method routines.

I also did the following that produced my second thing
making the suggestion:

# grep -r "MODULE.*pcib.*simplebus" /usr/src/sys/ | more
/usr/src/sys/dev/pci/pci_host_generic_fdt.c:DRIVER_MODULE(pcib, =
simplebus, generic_pcie_fdt_driver,
/usr/src/sys/dev/xilinx/xlnx_pcib.c:DRIVER_MODULE(xlnx_pcib, simplebus, =
xlnx_pcib_fdt_driver,
/usr/src/sys/arm64/cavium/thunder_pcie_fdt.c:DRIVER_MODULE(thunder_pcib, =
simplebus, thunder_pcie_fdt_driver,
/usr/src/sys/arm/broadcom/bcm2835/bcm2838_pci.c:DRIVER_MODULE(pcib, =
simplebus, bcm_pcib_driver, bcm_pcib_devclass, 0, 0);
/usr/src/sys/arm/mv/mv_pci_ctrl.c:DRIVER_MODULE(pcib_ctrl, simplebus, =
mv_pcib_ctrl_driver, pcib_ctrl_devclass, 0, 0);
/usr/src/sys/arm/nvidia/tegra_pcie.c:DRIVER_MODULE(tegra_pcib, =
simplebus, tegra_pcib_driver, pcib_devclass,
=
/usr/src/sys/arm/annapurna/alpine/alpine_pci.c:DRIVER_MODULE(alpine_pcib, =
simplebus, al_pcib_driver, anpa_pcib_devclass, 0, 0);
/usr/src/sys/mips/nlm/xlp_pci.c:DRIVER_MODULE(xlp_pcib, simplebus, =
xlp_pcib_driver, pcib_devclass, 0, 0);

and it looks like in all other cases for pcib and simplebus together,
the name in DRIVER_MODULE(name, is unique to the context (one example
of plain pcib other than the new one that you added).

I hope that the above helps.

Mark

> =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 =
Original Message =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=
=80=90
> On Saturday, 11 July 2020 11:48, Mark Millard <marklmi@yahoo.com> =
wrote:
>=20
>> On 2020-Jul-11, at 02:26, Mark Millard <marklmi at yahoo.com> wrote:
>>=20
>>> On 2020-Jul-11, at 01:32, Mark Millard <marklmi at yahoo.com> wrote:
>>>=20
>>>> On 2020-Jul-11, at 00:14, Mark Millard <marklmi at yahoo.com> =
wrote:
>>>>=20
>>>>> Anyone else with such Overdrive 1000 problems after
>>>>> upgrading into this range or beyond?
>>>>> boot -v output:
>>>>> ---<<BOOT>>---
>>>>> KDB: debugger backends: ddb
>>>>> KDB: current backend: ddb
>>>>> Type Physical Virtual #Pages Attr
>>>>> Reserved 008000000000 0 00000e80 WC WT WB
>>>>> ConventionalMemory 008000e80000 0 0001ef7d WC WT WB
>>>>> BootServicesData 00801fdfd000 0 00000203 WC WT WB
>>>>> ConventionalMemory 008020000000 0 001d0583 WC WT WB
>>>>> LoaderData 0081f0583000 0 00008000 WC WT WB
>>>>> LoaderCode 0081f8583000 0 0000017d WC WT WB
>>>>> ACPIReclaimMemory 0081f8700000 0 000000a0 WC WT WB
>>>>> ConventionalMemory 0081f87a0000 0 0000000b WC WT WB
>>>>> LoaderData 0081f87ab000 0 00000001 WC WT WB
>>>>> ConventionalMemory 0081f87ac000 0 000020ab WC WT WB
>>>>> BootServicesData 0081fa857000 0 00000029 WC WT WB
>>>>> ConventionalMemory 0081fa880000 0 0000000b WC WT WB
>>>>> BootServicesData 0081fa88b000 0 0000001f WC WT WB
>>>>> ConventionalMemory 0081fa8aa000 0 00000003 WC WT WB
>>>>> BootServicesData 0081fa8ad000 0 000002f0 WC WT WB
>>>>> ConventionalMemory 0081fab9d000 0 00000001 WC WT WB
>>>>> BootServicesData 0081fab9e000 0 00000012 WC WT WB
>>>>> ConventionalMemory 0081fabb0000 0 00000001 WC WT WB
>>>>> BootServicesData 0081fabb1000 0 00000006 WC WT WB
>>>>> ConventionalMemory 0081fabb7000 0 00000002 WC WT WB
>>>>> BootServicesData 0081fabb9000 0 00000ae7 WC WT WB
>>>>> ConventionalMemory 0081fb6a0000 0 00000046 WC WT WB
>>>>> BootServicesCode 0081fb6e6000 0 0000014a WC WT WB
>>>>> RuntimeServicesCode 0081fb830000 81fb830000 000003e0 WC WT WB =
RUNTIME
>>>>> ConventionalMemory 0081fbc10000 0 000001a0 WC WT WB
>>>>> RuntimeServicesData 0081fbdb0000 81fbdb0000 00000250 WC WT WB =
RUNTIME
>>>>> ConventionalMemory 0081fc000000 0 0000001f WC WT WB
>>>>> BootServicesData 0081fc01f000 0 00000001 WC WT WB
>>>>> ConventionalMemory 0081fc020000 0 00003732 WC WT WB
>>>>> BootServicesData 0081ff752000 0 0000087a WC WT WB
>>>>> ConventionalMemory 0081fffcc000 0 00000004 WC WT WB
>>>>> RuntimeServicesData 0081fffd0000 81fffd0000 00000020 WC WT WB =
RUNTIME
>>>>> ConventionalMemory 0081ffff0000 0 0000000c WC WT WB
>>>>> BootServicesData 0081ffffc000 0 00000004 WC WT WB
>>>>> Physical memory chunk(s):
>>>>> 0x8000e80000 - 0x81f86fffff, 8056 MB (2062464 pages)
>>>>> 0x81f87a0000 - 0x81fb82ffff, 48 MB ( 12432 pages)
>>>>> 0x81fbc10000 - 0x81ffffffff, 67 MB ( 17392 pages)
>>>>> Excluded memory regions:
>>>>> 0x8000000000 - 0x8000e7ffff, 14 MB ( 3712 pages) NoAlloc
>>>>> 0x81f0600000 - 0x81f1992fff, 19 MB ( 5011 pages) NoAlloc
>>>>> 0x81f8700000 - 0x81f879ffff, 0 MB ( 160 pages) NoAlloc
>>>>> 0x81fb830000 - 0x81fbc0ffff, 3 MB ( 992 pages) NoAlloc
>>>>> 0x81fbdb0000 - 0x81fbffffff, 2 MB ( 592 pages) NoAlloc
>>>>> 0x81fffd0000 - 0x81fffeffff, 0 MB ( 32 pages) NoAlloc
>>>>> Found 4 CPUs in the device tree
>>>>> Copyright (c) 1992-2020 The FreeBSD Project.
>>>>> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, =
1993, 1994
>>>>> The Regents of the University of California. All rights reserved.
>>>>> FreeBSD is a registered trademark of The FreeBSD Foundation.
>>>>> FreeBSD 13.0-CURRENT #6 r363021M: Thu Jul 9 22:46:01 PDT 2020
>>>>> =
markmi@FBSDFHUGE:/usr/obj/cortexA57_clang/arm64.aarch64/usr/src/arm64.aarc=
h64/sys/GENERIC-NODBG arm64
>>>>> FreeBSD clang version 10.0.1 (git@github.com:llvm/llvm-project.git =
llvmorg-10.0.1-rc2-0-g77d76b71d7d)
>>>>> VT: init without driver.
>>>>> Preloaded elf kernel "/boot/kernel/kernel" at 0xffff000001166000.
>>>>> Preloaded hostuuid "/etc/hostid" at 0xffff00000116f310.
>>>>> Preloaded boot_entropy_cache "/boot/entropy" at =
0xffff00000116f360.
>>>>> module firmware already present!
>>>>> module_register: cannot register simplebus/gpio from kernel; =
already loaded from kernel
>>>>> Module simplebus/gpio failed to register: 17
>>>>> module_register: cannot register simplebus/pcib from kernel; =
already loaded from kernel
>>>>> Module simplebus/pcib failed to register: 17
>>>>> Starting CPU 1 (101)
>>>>> Starting CPU 2 (200)
>>>>> Starting CPU 3 (201)
>>>>> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
>>>>> random: read 4096 bytes from preloaded cache
>>>>> random: unblocking device.
>>>>> VIMAGE (virtualized network stack) enabled
>>>>> hostuuid: using #
>>>>> ULE: setup cpu 0
>>>>> ULE: setup cpu 1
>>>>> ULE: setup cpu 2
>>>>> ULE: setup cpu 3
>>>>> Table 'FACP' at 0x81f8770000
>>>>> Table 'APIC' at 0x81f8750000
>>>>> Table 'GTDT' at 0x81f8740000
>>>>> Table 'DBG2' at 0x81f8730000
>>>>> Table 'SPCR' at 0x81f8720000
>>>>> Table 'MCFG' at 0x81f8710000
>>>>> Table 'CSRT' at 0x81f8700000
>>>>> ACPI: No IORT table found
>>>>> snd_unit_init() u=3D0x00ff8000 [512] d=3D0x00007c00 [32] =
c=3D0x000003ff [1024]
>>>>> feeder_register: snd_unit=3D-1 snd_maxautovchans=3D16 latency=3D2 =
feeder_rate_min=3D1 feeder_rate_max=3D2016000 feeder_rate_round=3D25
>>>>> random: entropy device external interface
>>>>> MAP 81fb830000 mode 2 pages 992
>>>>> MAP 81fbdb0000 mode 2 pages 592
>>>>> MAP 81fffd0000 mode 2 pages 32
>>>>> WARNING: Device "kbd" is Giant locked and may be deleted before =
FreeBSD 13.0.
>>>>> kbd0 at kbdmux0
>>>>> crypto: <crypto core>
>>>>> mem: <memory>
>>>>> null: <full device, null device, zero device>
>>>>> openfirm: <Open Firmware control device>
>>>>> WARNING: Device "openfirm" is Giant locked and may be deleted =
before FreeBSD 13.0.
>>>>> ofwbus0: <Open Firmware Device Tree>
>>>>> simplebus0: <Flattened device tree simple bus> on ofwbus0
>>>>> clk_fixed0: <Fixed clock> on simplebus0
>>>>> clk_fixed1: <Fixed clock> on simplebus0
>>>>> clk_fixed2: <Fixed clock> on simplebus0
>>>>> clk_fixed3: <Fixed clock> on simplebus0
>>>>> clk_fixed4: <Fixed clock> on simplebus0
>>>>> clk_fixed5: <Fixed clock> on simplebus0
>>>>> clk_fixed6: <Fixed clock> on simplebus0
>>>>> clk_fixed7: <Fixed clock> on simplebus0
>>>>> clk_fixed8: <Fixed clock> on simplebus0
>>>>> clk_fixed9: <Fixed clock> on simplebus0
>>>>> clk_fixed10: <Fixed clock> on simplebus0
>>>>> psci0: <ARM Power State Co-ordination Interface Driver> on ofwbus0
>>>>> psci0: PSCI version 0.2 compatible
>>>>> gic0: <ARM Generic Interrupt Controller> mem =
0xe1110000-0xe1110fff,0xe112f000-0xe1130fff,0xe1140000-0xe114ffff,0xe11600=
00-0xe116ffff irq 4 on ofwbus0
>>>>> gic0: pn 0x2, arch 0x2, rev 0x1, implementer 0x43b irqs 448
>>>>> gicv2m0: <ARM Generic Interrupt Controller MSI/MSIX> mem =
0x80000-0x80fff on gic0
>>>>> gicv2m0: using spi 64 to 319
>>>>> generic_timer0: <ARMv8 Generic Timer> irq 5,6,7,8 on ofwbus0
>>>>> Timecounter "ARM MPCore Timecounter" frequency 250000000 Hz =
quality 1000
>>>>> Event timer "ARM MPCore Eventtimer" frequency 250000000 Hz quality =
1000
>>>>> efirtc0: <EFI Realtime Clock>
>>>>> efirtc0: registered as a time-of-day clock, resolution 1.000000s
>>>>> cpulist0: <Open Firmware CPU Group> on ofwbus0
>>>>> cpu0: <Open Firmware CPU> on cpulist0
>>>>> cpu0: missing 'clock-frequency' property
>>>>> cpu1: <Open Firmware CPU> on cpulist0
>>>>> cpu1: missing 'clock-frequency' property
>>>>> cpu2: <Open Firmware CPU> on cpulist0
>>>>> cpu2: missing 'clock-frequency' property
>>>>> cpu3: <Open Firmware CPU> on cpulist0
>>>>> cpu3: missing 'clock-frequency' property
>>>>> pmu0: <Performance Monitoring Unit> irq 0,1,2,3 on ofwbus0
>>>>> ahci0: <AHCI SATA controller> mem 0xe0300000-0xe03effff irq 9 on =
simplebus0
>>>>> ahci0: AHCI v1.30 with 8 6Gbps ports, Port Multiplier supported
>>>>> ahci0: Caps: 64bit NCQ SNTF SS AL CLO 6Gbps PM PMD 32cmd CCC =
8ports
>>>>> ahci0: Caps2: APST
>>>>> ahcich0: <AHCI channel> at channel 0 on ahci0
>>>>> ahcich0: Caps: HPCP
>>>>> ahcich1: <AHCI channel> at channel 1 on ahci0
>>>>> ahcich1: Caps: HPCP
>>>>> ahcich2: not probed (disabled)
>>>>> ahcich3: not probed (disabled)
>>>>> ahcich4: not probed (disabled)
>>>>> ahcich5: not probed (disabled)
>>>>> ahcich6: not probed (disabled)
>>>>> ahcich7: not probed (disabled)
>>>>> simplebus0: sata@e0d00000 mem 0xe0d00000-0xe0deffff irq 10 =
disabled compat snps,dwc-ahci (no driver attached)
>>>>> simplebus0: i2c@e1000000 mem 0xe1000000-0xe1000fff irq 11 compat =
snps,designware-i2c (no driver attached)
>>>>> simplebus0: i2c@e0050000 mem 0xe0050000-0xe0050fff irq 12 compat =
snps,designware-i2c (no driver attached)
>>>>> uart0: <PrimeCell UART (PL011)> mem 0xe1010000-0xe1010fff irq 13 =
on simplebus0
>>>>> uart0: console (115200,n,8,1)
>>>>> uart0: fast interrupt
>>>>> uart0: PPS capture mode: DCD
>>>>> simplebus0: ssp@e1020000 mem 0xe1020000-0xe1020fff irq 14 compat =
arm,pl022 (no driver attached)
>>>>> simplebus0: ssp@e1030000 mem 0xe1030000-0xe1030fff irq 15 compat =
arm,pl022 (no driver attached)
>>>>> simplebus0: gpio@e1050000 mem 0xe1050000-0xe1050fff irq 16 compat =
arm,pl061 (no driver attached)
>>>>> simplebus0: gpio@e0020000 mem 0xe0020000-0xe0020fff irq 17 compat =
arm,pl061 (no driver attached)
>>>>> simplebus0: gpio@e0030000 mem 0xe0030000-0xe0030fff irq 18 compat =
arm,pl061 (no driver attached)
>>>>> simplebus0: gpio@e0080000 mem 0xe0080000-0xe0080fff irq 19 compat =
arm,pl061 (no driver attached)
>>>>> simplebus0: ccp@e0100000 mem 0xe0100000-0xe010ffff irq 20 compat =
amd,ccp-seattle-v1a (no driver attached)
>>>>> simplebus0: pcie@f0000000 mem 0xf0000000-0xffffffff type pci =
compat pci-host-ecam-generic (no driver attached)
>>>>> simplebus0: ccn@0xe8000000 mem 0xe8000000-0xe8ffffff irq 21 compat =
arm,ccn-504 (no driver attached)
>>>>> simplebus0: gwdt@e0bb0000 mem =
0xe0bb0000-0xe0bbffff,0xe0bc0000-0xe0bcffff irq 22 compat arm,sbsa-gwdt =
(no driver attached)
>>>>> simplebus0: kcs@e0010000 mem 0xe0010000-0xe0010007 irq 23 type =
ipmi compat ipmi-kcs (no driver attached)
>>>>> simplebus0: phy@e1240800 mem =
0xe1240800-0xe1240bff,0xe1250000-0xe125005f,0xe12500f8-0xe12500fb irq 24 =
disabled compat amd,xgbe-phy-seattle-v1a (no driver attached)
>>>>> simplebus0: phy@e1240c00 mem =
0xe1240c00-0xe1240fff,0xe1250080-0xe12500df,0xe12500fc-0xe12500ff irq 25 =
disabled compat amd,xgbe-phy-seattle-v1a (no driver attached)
>>>>> simplebus0: xgmac@e0700000 mem =
0xe0700000-0xe077ffff,0xe0780000-0xe07fffff irq 26,27,28,29,30 disabled =
compat amd,xgbe-seattle-v1a (no driver attached)
>>>>> simplebus0: xgmac@e0900000 mem =
0xe0900000-0xe097ffff,0xe0980000-0xe09fffff irq 31,32,33,34,35 disabled =
compat amd,xgbe-seattle-v1a (no driver attached)
>>>>> cryptosoft0: <software crypto>
>>>>> crypto: assign cryptosoft0 driver id 0, flags 0x6000000
>>>>> Device configuration finished.
>>>>> Found SMCCC version 1.0
>>>>> procfs registered
>>>>> Timecounters tick every 1.000 msec
>>>>> lo0: bpf attached
>>>>> vlan: initialized, using hash tables with chaining
>>>>> IPsec: Initialized Security Association Processing.
>>>>> tcp_init: net.inet.tcp.tcbhashsize auto tuned to 65536
>>>>> Obsolete code will be removed soon: random(9) is the obsolete =
Park-Miller LCG from 1988
>>>>> usb_needs_explore_all: no devclass
>>>>> Release APs...ahcich0: AHCI reset...
>>>>> Trying to mount root from ufs:/dev/gpt/FBSDCA57root [rw]...
>>>>> done
>>>>> Root mount waiting for: CAMCPU 0: ARM Cortex-A57 r1p2 affinity: 1 =
0
>>>>>=20
>>>>>                Cache Type =3D <64 byte D-cacheline,64 byte =
I-cacheline,PIPT ICache,64 byte ERG,64 byte CWG>
>>>>>=20
>>>>>=20
>>>>> ahcich0: SATA connect timeout time=3D10000us status=3D00000000
>>>>> Instruction Set Attributes 0 =3D <CRC32,SHA2,SHA1,AES+PMULL>
>>>>> ahcich0: AHCI reset: device not found
>>>>> Instruction Set Attributes 1 =3D <>
>>>>> ahcich1: AHCI reset...
>>>>> Processor Features 0 =3D <AdvSIMD,FP,EL3 32,EL2 32,EL1 32,EL0 32>
>>>>> ahcich1: SATA connect time=3D100us status=3D00000133
>>>>> Processor Features 1 =3D <>
>>>>> ahcich1: AHCI reset: device found
>>>>> Memory Model Features 0 =3D <TGran4,TGran64,SNSMem,BigEnd,16bit =
ASID,16TB PA>
>>>>> ahcich1: AHCI reset: device ready after 0ms
>>>>> Memory Model Features 1 =3D <8bit VMID>
>>>>> Memory Model Features 2 =3D <32bit CCIDX,48bit VA>
>>>>> Debug Features 0 =3D <2 CTX BKPTs,4 Watchpoints,6 =
Breakpoints,PMUv3,Debugv8>
>>>>> Debug Features 1 =3D <>
>>>>> Auxiliary Features 0 =3D <>
>>>>> Auxiliary Features 1 =3D <>
>>>>> CPU 1: ARM Cortex-A57 r1p2 affinity: 1 1
>>>>> CPU 2: ARM Cortex-A57 r1p2 affinity: 2 0
>>>>> CPU 3: ARM Cortex-A57 r1p2 affinity: 2 1
>>>>> regulator: shutting down unused regulators
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> Root mount waiting for: CAM
>>>>> GEOM: new disk ada0
>>>>> ada0 at ahcich1 bus 0 scbus1 target 0 lun 0
>>>>> ada0: <Samsung SSD 860 PRO 1TB RVM01B6Q> ACS-4 ATA SATA 3.x device
>>>>> ada0: Serial Number #
>>>>> ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
>>>>> ada0: Command Queueing enabled
>>>>> ada0: 976762MB (2000409264 512 byte sectors)
>>>>> pass0 at ahcich1 bus 0 scbus1 target 0 lun 0
>>>>> pass0: <Samsung SSD 860 PRO 1TB RVM01B6Q> ACS-4 ATA SATA 3.x =
device
>>>>> pass0: Serial Number #
>>>>> pass0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
>>>>> pass0: Command Queueing enabled
>>>>> efirtc0: providing initial system time
>>>>> start_init: trying /sbin/init
>>>>> Setting hostuuid: #.
>>>>> Setting hostid: #.
>>>>> Starting file system checks:
>>>>> /dev/gpt/FBSDCA57root: FILE SYSTEM CLEAN; SKIPPING CHECKS
>>>>> /dev/gpt/FBSDCA57root: clean, 189555062 free (288086 frags, =
23658372 blocks, 0.1% fragmentation)
>>>>> Mounting local filesystems:.
>>>>> ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib =
/usr/local/lib/compat/pkg /usr/local/lib/compat/pkg /usr/local/lib/gcc10 =
/usr/local/lib/perl5/5.30/mach/CORE /usr/local/lib/qt5 =
/usr/local/llvm10/lib /usr/local/llvm80/lib
>>>>> Setting hostname: FBSDCA57.
>>>>> Setting up harvesting: =
[UMA],[FS_ATIME],SWI,INTERRUPT,NET_NG,[NET_ETHER],NET_TUN,MOUSE,KEYBOARD,A=
TTACH,CACHED
>>>>> Feeding entropy: .
>>>>> lo0: link state changed to UP
>>>>> Starting Network: lo0.
>>>>> lo0: flags=3D8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu =
16384
>>>>> options=3D680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
>>>>> inet6 ::1 prefixlen 128
>>>>> inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
>>>>> inet 127.0.0.1 netmask 0xff000000
>>>>> groups: lo
>>>>> nd6 options=3D21<PERFORMNUD,AUTO_LINKLOCAL>
>>>>> Starting devd.
>>>>> add host 127.0.0.1: gateway lo0 fib 0: route already in table
>>>>> add host ::1: gateway lo0 fib 0: route already in table
>>>>> add net fe80::: gateway ::1
>>>>> add net ff02::: gateway ::1
>>>>> add net ::ffff:0.0.0.0: gateway ::1
>>>>> add net ::0.0.0.0: gateway ::1
>>>>=20
>>>> I used artificat.ci.freebsd.org to do an approximate
>>>> bisect and the results are:
>>>> head -r362952 and before work.
>>>> there was no -r362953 artifact
>>>> head -r362954 and later fail.
>>>> The potential failure checkins are -r362953 and
>>>> -r362954 :
>>>> Author: hselasky
>>>> Date: Mon Jul 6 08:50:11 2020
>>>> New Revision: 362953
>>>> URL:
>>>> https://svnweb.freebsd.org/changeset/base/362953
>>>> Log:
>>>> Infiniband clients must be attached and detached in a specific =
order in ibcore.
>>>> . . .
>>>> Differential Revision: https://reviews.freebsd.org/D23973
>>>> . . .
>>>> and:
>>>> Author: andrew
>>>> Date: Mon Jul 6 08:51:55 2020
>>>> New Revision: 362954
>>>> URL:
>>>> https://svnweb.freebsd.org/changeset/base/362954
>>>> Log:
>>>> Add a driver for bcm2838 PCI express controller
>>>> . . .
>>>> Submitted by: Robert Crowston <crowston_protonmail.com>
>>>> Differential Revision: https://reviews.freebsd.org/D25068
>>>> . . .
>>>=20
>>> diff'ing the boot -v material for a good boot
>>> vs. a failing one shows that . . .
>>> Only the failure example has:
>>> +module_register: cannot register simplebus/pcib from kernel; =
already loaded from kernel
>>> +Module simplebus/pcib failed to register: 17
>>> Only the good example later has:
>>> -pcib0: <Generic PCI host controller> mem 0xf0000000-0xffffffff on =
simplebus0
>>> -pcib0: parsing FDT for ECAM0:
>>> -pcib0: PCI addr: 0x0, CPU addr: 0xefff0000, Size: 0x10000
>>> -pcib0: PCI addr: 0x40000000, CPU addr: 0x40000000, Size: 0x80000000
>>> -pcib0: PCI addr: 0x100000000, CPU addr: 0x100000000, Size: =
0x7f00000000
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: PCI addr: 0x0, CPU addr: 0x0, Size: 0x0
>>> -pcib0: Bus is cache-coherent
>>> -pci0: <PCI bus> on pcib0
>>> -pci0: domain=3D0, physical bus=3D0
>>> -found-> vendor=3D0x1022, dev=3D0x1a00, revid=3D0x00
>>>=20
>>> -          domain=3D0, bus=3D0, slot=3D0, func=3D0
>>>=20
>>>=20
>>> -          class=3D06-00-00, hdrtype=3D0x00, mfdev=3D1
>>>=20
>>>=20
>>> -          cmdreg=3D0x0004, statreg=3D0x0000, cachelnsz=3D0 (dwords)
>>>=20
>>>=20
>>> -          lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00=
 (0 ns)
>>>=20
>>>=20
>>>=20
>>> -found-> vendor=3D0x1022, dev=3D0x1a01, revid=3D0x00
>>>=20
>>> -          domain=3D0, bus=3D0, slot=3D2, func=3D0
>>>=20
>>>=20
>>> -          class=3D06-00-00, hdrtype=3D0x00, mfdev=3D1
>>>=20
>>>=20
>>> -          cmdreg=3D0x0000, statreg=3D0x0000, cachelnsz=3D0 (dwords)
>>>=20
>>>=20
>>> -          lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00=
 (0 ns)
>>>=20
>>>=20
>>>=20
>>> -found-> vendor=3D0x1022, dev=3D0x1a02, revid=3D0x00
>>>=20
>>> -          domain=3D0, bus=3D0, slot=3D2, func=3D2
>>>=20
>>>=20
>>> -          class=3D06-04-00, hdrtype=3D0x01, mfdev=3D1
>>>=20
>>>=20
>>> -          cmdreg=3D0x0507, statreg=3D0x0010, cachelnsz=3D0 (dwords)
>>>=20
>>>=20
>>> -          lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00=
 (0 ns)
>>>=20
>>>=20
>>> -          intpin=3Da, irq=3D255
>>>=20
>>>=20
>>> -          powerspec 3  supports D0 D3  current D0
>>>=20
>>>=20
>>> -          MSI supports 1 message, 64 bit
>>>=20
>>>=20
>>> -          secbus=3D1, subbus=3D1
>>>=20
>>>=20
>>>=20
>>> -found-> vendor=3D0x1022, dev=3D0x1a02, revid=3D0x00
>>>=20
>>> -          domain=3D0, bus=3D0, slot=3D2, func=3D3
>>>=20
>>>=20
>>> -          class=3D06-04-00, hdrtype=3D0x01, mfdev=3D1
>>>=20
>>>=20
>>> -          cmdreg=3D0x0507, statreg=3D0x0010, cachelnsz=3D0 (dwords)
>>>=20
>>>=20
>>> -          lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00=
 (0 ns)
>>>=20
>>>=20
>>> -          intpin=3Da, irq=3D255
>>>=20
>>>=20
>>> -          powerspec 3  supports D0 D3  current D0
>>>=20
>>>=20
>>> -          MSI supports 1 message, 64 bit
>>>=20
>>>=20
>>> -          secbus=3D2, subbus=3D2
>>>=20
>>>=20
>>>=20
>>> -pcib1: <PCI-PCI bridge> at device 2.2 on pci0
>>> -pcib0: rman_reserve_resource: start=3D0x40100000, end=3D0x401fffff, =
count=3D0x100000
>>> -pcib1: domain 0
>>> -pcib1: secondary bus 1
>>> -pcib1: subordinate bus 1
>>> -pcib1: memory decode 0x40100000-0x401fffff
>>> -pci1: <PCI bus> on pcib1
>>> -pcib1: allocated bus range (1-1) for rid 0 of pci1
>>> -pci1: domain=3D0, physical bus=3D1
>>> -found-> vendor=3D0x1b73, dev=3D0x1009, revid=3D0x02
>>>=20
>>> -          domain=3D0, bus=3D1, slot=3D0, func=3D0
>>>=20
>>>=20
>>> -          class=3D0c-03-30, hdrtype=3D0x00, mfdev=3D0
>>>=20
>>>=20
>>> -          cmdreg=3D0x0000, statreg=3D0x0010, cachelnsz=3D0 (dwords)
>>>=20
>>>=20
>>> -          lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00=
 (0 ns)
>>>=20
>>>=20
>>> -          intpin=3Da, irq=3D255
>>>=20
>>>=20
>>> -          powerspec 3  supports D0 D1 D3  current D0
>>>=20
>>>=20
>>> -          MSI supports 8 messages, 64 bit
>>>=20
>>>=20
>>> -          MSI-X supports 8 messages in maps 0x18 and 0x20
>>>=20
>>>=20
>>> -          map[10]: type Memory, range 64, base 0x40100000, size 16, =
memory disabled
>>>=20
>>>=20
>>>=20
>>> -pcib1: allocated memory range (0x40100000-0x4010ffff) for rid 10 of =
pci0:1:0:0
>>>=20
>>> -          map[18]: type Memory, range 64, base 0x40110000, size 12, =
enabled
>>>=20
>>>=20
>>>=20
>>> -pcib1: allocated memory range (0x40110000-0x40110fff) for rid 18 of =
pci0:1:0:0
>>>=20
>>> -          map[20]: type Memory, range 64, base 0x40111000, size 12, =
enabled
>>>=20
>>>=20
>>>=20
>>> -pcib1: allocated memory range (0x40111000-0x40111fff) for rid 20 of =
pci0:1:0:0
>>> -xhci0: <XHCI (generic) USB 3.0 controller> mem =
0x40100000-0x4010ffff,0x40110000-0x40110fff,0x40111000-0x40111fff at =
device 0.0 on pci1
>>> -xhci0: 32 bytes context size, 64-bit DMA
>>> -xhci0: attempting to allocate 1 MSI vectors (8 supported)
>>> -xhci0: using IRQ 36 for MSI
>>> -xhci0: MSI enabled
>>> -usbus0 on xhci0
>>> -xhci0: usbpf: Attached
>>> -pcib2: <PCI-PCI bridge> at device 2.3 on pci0
>>> -pcib0: rman_reserve_resource: start=3D0x1000, end=3D0x1fff, =
count=3D0x1000
>>> -pcib0: rman_reserve_resource: start=3D0x40000000, end=3D0x400fffff, =
count=3D0x100000
>>> -pcib2: domain 0
>>> -pcib2: secondary bus 2
>>> -pcib2: subordinate bus 2
>>> -pcib2: I/O decode 0x1000-0x1fff
>>> -pcib2: memory decode 0x40000000-0x400fffff
>>> -pci2: <PCI bus> on pcib2
>>> -pcib2: allocated bus range (2-2) for rid 0 of pci2
>>> -pci2: domain=3D0, physical bus=3D2
>>> -found-> vendor=3D0x11ab, dev=3D0x4381, revid=3D0x00
>>>=20
>>> -          domain=3D0, bus=3D2, slot=3D0, func=3D0
>>>=20
>>>=20
>>> -          class=3D02-00-00, hdrtype=3D0x00, mfdev=3D0
>>>=20
>>>=20
>>> -          cmdreg=3D0x0000, statreg=3D0x0010, cachelnsz=3D0 (dwords)
>>>=20
>>>=20
>>> -          lattimer=3D0x00 (0 ns), mingnt=3D0x00 (0 ns), maxlat=3D0x00=
 (0 ns)
>>>=20
>>>=20
>>> -          intpin=3Da, irq=3D255
>>>=20
>>>=20
>>> -          powerspec 3  supports D0 D1 D2 D3  current D0
>>>=20
>>>=20
>>> -          MSI supports 1 message, 64 bit
>>>=20
>>>=20
>>> -          map[10]: type Memory, range 64, base 0x40000000, size 14, =
memory disabled
>>>=20
>>>=20
>>>=20
>>> -pcib2: allocated memory range (0x40000000-0x40003fff) for rid 10 of =
pci0:2:0:0
>>>=20
>>> -          map[18]: type I/O Port, range 32, base 0x1000, size  8, =
port disabled
>>>=20
>>>=20
>>>=20
>>> -pcib2: allocated I/O port range (0x1000-0x10ff) for rid 18 of =
pci0:2:0:0
>>> -mskc0: <Marvell Yukon 88E8059 Gigabit Ethernet> port 0x1000-0x10ff =
mem 0x40000000-0x40003fff at device 0.0 on pci2
>>> -mskc0: MSI count : 1
>>> -mskc0: attempting to allocate 1 MSI vectors (1 supported)
>>> -mskc0: using IRQ 37 for MSI
>>> -mskc0: RAM buffer size : 0KB
>>> -msk0: <Marvell Technology Group Ltd. Yukon Optima Id 0xbc Rev 0x01> =
on mskc0
>>> -msk0: Using defaults for TSO: 65518/35/2048
>>> -msk0: bpf attached
>>> -msk0: Ethernet address: e0:ff:f7:00:20:ed
>>> -miibus0: <MII bus> on msk0
>>> -e1000phy0: <Marvell PHYG65G Gigabit PHY> PHY 0 on miibus0
>>> -e1000phy0: OUI 0x000ac2, model 0x0027, rev. 0
>>> -e1000phy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, =
1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, =
auto-flow
>>> The failure example instead had:
>>> +simplebus0: pcie@f0000000 mem 0xf0000000-0xffffffff type pci compat =
pci-host-ecam-generic (no driver attached)
>>> Later there was:
>>> -usbus0: 5.0Gbps Super Speed USB v3.0
>>> Obsolete code will be removed soon: random(9) is the obsolete =
Park-Miller LCG from 1988
>>> +usb_needs_explore_all: no devclass
>>> I'll stop with that.
>>=20
>> Using nm (and cut and grep) to extract names from a
>> good and bad kernel I find the following, where the
>> "+" lines are from a bad kernel:
>>=20
>> diff -u mmjnk.goodnames mmjnk.baddupnames
>>=20
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> --- mmjnk.goodnames 2020-07-11 03:31:55.360299000 -0700
>> +++ mmjnk.baddupnames 2020-07-11 03:31:28.483440000 -0700
>> @@ -1,26 +1,35 @@
>> __set_modmetadata_set_sym__mod_metadata_md_alpine_pcib_simplebus
>> =
__set_modmetadata_set_sym__mod_metadata_md_alpine_pcib_simplebus_on_kernel=

>> __set_modmetadata_set_sym__mod_metadata_md_pcib_simplebus
>> +__set_modmetadata_set_sym__mod_metadata_md_pcib_simplebus
>> __set_modmetadata_set_sym__mod_metadata_md_pcib_simplebus_on_kernel
>> +__set_modmetadata_set_sym__mod_metadata_md_pcib_simplebus_on_kernel
>> __set_modmetadata_set_sym__mod_metadata_md_thunder_pcib_simplebus
>> =
__set_modmetadata_set_sym__mod_metadata_md_thunder_pcib_simplebus_on_kerne=
l
>> __set_sysinit_set_sym_alpine_pcib_simplebusmodule_sys_init
>> __set_sysinit_set_sym_pcib_simplebusmodule_sys_init
>> +__set_sysinit_set_sym_pcib_simplebusmodule_sys_init
>> __set_sysinit_set_sym_thunder_pcib_simplebusmodule_sys_init
>> _alpine_pcib_simplebus_depend_on_kernel
>> _mod_metadata_md_alpine_pcib_simplebus
>> _mod_metadata_md_alpine_pcib_simplebus_on_kernel
>> _mod_metadata_md_pcib_simplebus
>> +_mod_metadata_md_pcib_simplebus
>> _mod_metadata_md_pcib_simplebus_on_kernel
>> +_mod_metadata_md_pcib_simplebus_on_kernel
>> _mod_metadata_md_thunder_pcib_simplebus
>> _mod_metadata_md_thunder_pcib_simplebus_on_kernel
>> _pcib_simplebus_depend_on_kernel
>> +_pcib_simplebus_depend_on_kernel
>> _thunder_pcib_simplebus_depend_on_kernel
>> alpine_pcib_simplebus_driver_mod
>> alpine_pcib_simplebus_mod
>> alpine_pcib_simplebusmodule_sys_init
>> pcib_simplebus_driver_mod
>> +pcib_simplebus_driver_mod
>> pcib_simplebus_mod
>> +pcib_simplebus_mod
>> +pcib_simplebusmodule_sys_init
>> pcib_simplebusmodule_sys_init
>> thunder_pcib_simplebus_driver_mod
>> thunder_pcib_simplebus_mod
>>=20
>> It leaves me wondering if the naming is messing things
>> up via duplicate naming from the likes of:
>>=20
>> static devclass_t generic_pcie_fdt_devclass;
>>=20
>> DRIVER_MODULE(pcib, simplebus, generic_pcie_fdt_driver,
>> generic_pcie_fdt_devclass, 0, 0);
>>=20
>> vs.
>>=20
>> static devclass_t bcm_pcib_devclass;
>> DRIVER_MODULE(pcib, simplebus, bcm_pcib_driver, bcm_pcib_devclass, 0, =
0);
>>=20
>> (Dual pcib_simplebus based sets of names?)
>=20



=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9FBC6DEB-23FA-4FA2-AB10-3D6BDC4CE010>