Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Apr 2019 00:50:03 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: usefdt boot mode on 2-socket/1-core-each G5 PowerMac7, 2: visible progress (using vt, not sc), new visible stopping point
Message-ID:  <CC9016A8-0B74-4F5A-8B60-73CA621976B1@yahoo.com>
In-Reply-To: <C8C161E7-2775-49D2-8AE3-C2731E474282@yahoo.com>
References:  <1D304FA7-6319-4BBD-BA76-E616C9107F73@yahoo.com> <C8C161E7-2775-49D2-8AE3-C2731E474282@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2019-Apr-12, at 21:51, Mark Millard <marklmi@yahoo.com> wrote:

> [More details on where the failure stage is.]
>=20
> On 2019-Apr-12, at 20:49, Mark Millard <marklmi at yahoo.com> wrote:
>=20
>> [I experiment with more modern tools and such for targeting
>> powerpc64. Also with non-default modern modes of operation,
>> such as usefdt mode. I had to patch the openfirmware->fdt
>> translation to allow a 2-socket/1-core-each G4 PowerMac3,6
>> to boot normally, with the ethernet present (and operable).]
>>=20
>> Turns out that I had been using:
>>=20
>> kern.vty=3Dsc
>>=20
>> and for some reason this stops visible output just after
>> "Kernel entry at . . .". (I've no clue if there is hidden
>> activity vs. it just stopped there.) But with:
>>=20
>> kern.vty=3Dvt
>>=20
>> the PowerMac7,2 visibly gets farther, though it fails
>> to finish booting in usefdt mode.
>>=20
>> The new visible stopping point is (typed from a picture
>> of boot -v output for usefdt mode):
>>=20
>> atapci1: <ServerWorks K2 SATA150 controller> at device 12.1 on pci8
>> pcib1: failed to reserve resource for pcib8
>> pcib8: failed to allocate initial I/O port window (0-0xffffffff,0x10)
>> atapci1: 0x10 bytes of rid 0x28 res 4 failed (0, 0xffffffffffffffff).
>> atapci1: unable to map interrupt
>> device_attach: atapci1 attach returned 6
>> ofwbus0: <vsp> mem 0xf9000000-0xf9ffffff irq 43 type vsp compat =
u3-vsp (no driver attached)
>> cryptosoft0: <software crypto> on nexus0
>> crypto: assign cryptosoft0 driver id 0, flags 0x6000000
>>=20
>> (I'll not repeat the long list of crypto registers/alg/flags/maxoplen =
lines.)
>>=20
>> Later material below suggests that the above is not the
>> cause of stopping: a non-usefdt boot finishes but also
>> has such text.
>>=20
>> Of course some material scrolled off screen. So from
>> attempting booting again, but without -v , there is
>> before the above:
>>=20
>> atapci0: <ServerWorks K2 SATA150 controller> mem =
0x80600000-0x80601fff irq 33554432 at device 12.0 on pci8
>> pcib1: failed to reserve resource for pcib8
>> atapci0: 0x10 bytes of rid 0x20 res 4 failed (0, 0xffffffffffffffff).
>> ata2: <ATA channel> at channel 0 on atapci0
>> ata3: <ATA channel> at channel 1 on atapci0
>> ata4: <ATA channel> at channel 2 on atapci0
>> ata5: <ATA channel> at channel 3 on atapci0
>>=20
>>=20
>> A non-usefdt mode (so normal openfirmware mode) boot works
>> and shows similar output:
>>=20
>> atapci0: <ServerWorks K2 SATA150 controller> mem =
0x80600000-0x80601fff irq 33554432 at device 12.0 on pci8
>> pcib1: failed to reserve resource for pcib8
>> atapci0: 0x10 bytes of rid 0x20 res 4 failed (0, 0xffffffffffffffff).
>> ata2: <ATA channel> at channel 0 on atapci0
>> ata3: <ATA channel> at channel 1 on atapci0
>> ata4: <ATA channel> at channel 2 on atapci0
>> ata5: <ATA channel> at channel 3 on atapci0
>> atapci1: <ServerWorks K2 SATA150 controller> at device 12.1 on pci8
>> pcib1: failed to reserve resource for pcib8
>> atapci1: 0x10 bytes of rid 0x20 res 4 failed (0, 0xffffffffffffffff).
>> atapci1: unable to map interrupt
>> device_attach: atapci1 attach returned 6
>> cryptosoft0: <software crypto> on nexus0
>>=20
>> This suggests that such text is normal and the hangup is
>> for some other reason. It just suggests a time frame.
>>=20
>> After that for non-usefdt mode is:
>>=20
>> Timecounter "timebase" frequency 33333333 Hz quality 0
>> Event timer "decrementer" frequency 33333333 Hz quality 1000
>> Timecounters tick every 1.000 msec
>>=20
>> and so on. Such does not show up for usefdt mode.
>=20
>=20
>=20
>=20
> subsystem 3800000
>   configure_first(0)... done.
>   module_register_init(&ata_moduledata)... done.
>   fbd_evh_init(0)... done.
>   module_register_init(&cam_moduledata)... done.
>   configure(0)... ofwbus0: <Open Firmware Device Tree> on nexus0
> . . .
> cryptosoft0: <software crypto> on nexus0
> done.
>   cn_drvinit(0)... done.
>   mpt_postattach(0)... done.
>   cn_drvinit(0)... done.
>   vmem_start_callout(0)... done.
>   vm_lowmem_evh_init(0)... done.
>   mountroot_evh_init(0)... done.
>   ifaddr_event_ext_evh_init(0)... done.
>   configure_final(0)...=20
>=20
> (That is the end of the output.)
>=20
> So during:
>=20
> SI_SUB_CONFIGURE        =3D 0x3800000,    /* Configure devices */
>=20
> for:
>=20
> static void
> configure_final(void *dummy)
> {
>=20
>        /*
>         * Now that we're guaranteed to have a PIC driver (or we'll =
never
>         * have one), program it with all the previously setup =
interrupts.
>         */
>        powerpc_enable_intr();
>=20
>        /* Enable external interrupts. */
>        mtmsr(mfmsr() | PSL_EE);
>=20
>        cninit_finish();
>        cold =3D 0;
> }
>=20
>=20


With printf's added:

        printf("After powerpc_enable_intr; before mtmsr masking in =
PSL_EE\n");

        /* Enable external interrupts. */
        mtmsr(mfmsr() | PSL_EE);

        printf("After mtmsr masking in PSL_EE; before cninit_finish\n");

the first printf shows up and the second does  not.

=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?CC9016A8-0B74-4F5A-8B60-73CA621976B1>