Date: Tue, 30 Sep 2014 01:41:42 -0700 From: Mark Millard <markmi@dsl-only.net> To: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: Re: A different PowerMac G5 boot crash but with a backtrace: fails at .pvo_vaddr_compare+0x14, instruction ld r0, r4, 0x58 Message-ID: <8703D7F8-126C-4677-8892-DF6A17DEDB17@dsl-only.net> In-Reply-To: <A98054D5-4213-4CEC-B1A7-ABDDE2A3CFE9@dsl-only.net> References: <A98054D5-4213-4CEC-B1A7-ABDDE2A3CFE9@dsl-only.net>
next in thread | previous in thread | raw e-mail | index | archive | help
As I understand the reported but unusual pvo_vaddr_compare point of = failure was before the usual "before Copyright notice" (ofwcall) crash. = In other words: .pvo_vaddr_compare+0x14, instruction ld r0, r4, 0x58 [or ld r0,88(r4) in = an alternate notation] .pvo_tree_RB_FIND+0x38 .moea64_dev_direct_mapped_0x90 .pmap_dev_direct_mapped+0x84 .bs_remap_earlyboot_0x6c .moea64_late_bootstrap+0x178 .moea64_bootstrap_native+0x120 .pmap_bootstrap+0xac .powerpc_init+0x514 btext+0xa8 happens before the usual "before Copyright notice" crash point: (rest of call-chain to ofwcall for peer not shown) .OF_peer+0x8c .powermac_smp_first_cpu+0x3c .platform_smp_first_cpu+0x78 .cpu_mp_setmaxid+0x2c (via .mpt_fc_els_reply_handler+0x2e68 that is not = explicitly listed) .mp_setmaxid+0x14 .mi_startup0x10c btext+0xbc =3D=3D=3D Mark Millard markmi at dsl-only.net On Sep 24, 2014, at 12:20 AM, Mark Millard <markmi at dsl-only.net> = wrote: powerpc64/GENERIC64 on PowerMac G5 Quad Core: I caught a different = kernel/boot crash with a backtrace, failing at .pvo_vaddr_compare+0x14: = ld r0,88(r4). Unfortunately with my current "show register; bt; show = regster/u; bt/u" the beginning of the text from before the show's = scrolled off screen. Still... register r4: 0x2e123e8 dar: 2e12440 srr0: 0x8b8648 .pvo_vaddr_compare+0x14 lr: 0x98b8fac .pvo_tree_RB_FIND_0x38 ctr: 0x883840 moea64_dev_direct_mapped .pvo_vaddr_compare+0x14, instruction ld r0, r4, 0x58 [or ld r0,88(r4) in = an alternate notation] .pvo_tree_RB_FIND+0x38 .moea64_dev_direct_mapped_0x90 .pmap_direct_mapped+0x84 .bs_remap_earlyboot_0x6c .moea64_late_bootstrap+0x178 .moea64_bootstrap_native+0x120 .pmap_bootstrap+0xac .powerpc_init+0x514 btext+0xa8 srr1: 9000000000003030 cr: 2400024 xer 0 dsisr: 40000000 r0: 0x98008000 r1: 0xbda9f0 tmpstk+0x39f0 r2: 0xd18468 r3: 0xbdab38 tmpstk+0x3938 r4: 0x2e123e8 r5: 0xe10000 __pcpu+0xa80 r6: 0 r7: 0 r8: 0xf r9: 0x98008000 r10: 0x1 r11: 0 r12: 0x10000000 r13: 0xbdd290 thread0 r14-r19: all 0 r20: 0x10c1000 r21: 0x4 r22: 0x1801bd4 r23: 0xe42bf0 earlyboot_mapping r24: 0 r25: 0 r26: 0x100000 kernbase r27: 0xe42bf0 earlyboot_mapping r28: 0xe10000 __pcpu_0xa80 r29: 0xbdab38 tmpstk+0x3938 r30: 0x2e123e8 r31: 0xbda9f0 tmpstk+0x39f0 Context: FreeBSD FBSDG5M1 10.1-BETA2 FreeBSD 10.1-BETA2 #4 r271944M: Tue Sep 23 = 22:39:02 PDT 2014 root@FBSDG5M1:/usr/obj/usr/src/sys/GENERIC64 = powerpc $ svnlite diff /usr/src/sys Index: /usr/src/sys/ddb/db_script.c =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=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 --- /usr/src/sys/ddb/db_script.c (revision 271944) +++ /usr/src/sys/ddb/db_script.c (working copy) @@ -319,10 +319,25 @@ { char scriptname[DB_MAXSCRIPTNAME]; =20 + /* HACK!!! : Additional lines to force a basic default script to = exist. + * Will dump information even if ddb input is not available for = early crash. + * Used to get more information about PowerMac G5 "before = Copyright" hangs. + */ + struct ddb_script *dsp =3D = db_script_lookup(DB_SCRIPT_KDBENTER_DEFAULT); + if (!dsp) db_script_set(DB_SCRIPT_KDBENTER_DEFAULT, "show = registers; bt; show registers/u; bt/u"); + snprintf(scriptname, sizeof(scriptname), "%s.%s", DB_SCRIPT_KDBENTER_PREFIX, eventname); if (db_script_exec(scriptname, 0) =3D=3D ENOENT) (void)db_script_exec(DB_SCRIPT_KDBENTER_DEFAULT, 0); + + /* HACK!!! : Additional lines to always use the default script, + * even if scriptname existed and was executed. + * Will dump information even if ddb input is not available for = early crash. + * Used to get more information about PowerMac G5 "before = Copyright" hangs. + */ + else + (void)db_script_exec(DB_SCRIPT_KDBENTER_DEFAULT, 0); } =20 /*- Index: /usr/src/sys/powerpc/conf/GENERIC64 =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=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 --- /usr/src/sys/powerpc/conf/GENERIC64 (revision 271944) +++ /usr/src/sys/powerpc/conf/GENERIC64 (working copy) @@ -76,6 +76,8 @@ # Debugging support. Always need this: options KDB # Enable kernel debugger = support. options KDB_TRACE # Print a stack trace for a = panic. +options DDB +options GDB =20 # Make an SMP-capable kernel by default options SMP # Symmetric MultiProcessor = Kernel =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8703D7F8-126C-4677-8892-DF6A17DEDB17>