From owner-freebsd-arm@freebsd.org Sun Dec 22 08:22:21 2019 Return-Path: Delivered-To: freebsd-arm@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB0CD1CCD32 for ; Sun, 22 Dec 2019 08:22:21 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic317-22.consmr.mail.gq1.yahoo.com (sonic317-22.consmr.mail.gq1.yahoo.com [98.137.66.148]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47gb7c66YKz49xS for ; Sun, 22 Dec 2019 08:22:20 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: FynKx.oVM1mCfapcE1QtjmYae4XeVdmy447Uwprk5_tgEIxD1X5U_F2dc4IBZpX wmnZe8EFpt_nXXMZ13mMStnIanCTOu5bN686mToJ4MBwm1ukhgWGgIqYcdfi34pq_RnUKXs_rPEH olUAYF8vEc4HTTCTkF5789El2jNo62f4VqqV2Dkg5LHBHfQvQIU.GMBMzW.tq7ywggqiIkZYTsZz CYc1CWmu_.V2ooJrGwYFpQgZiK_W.32kWEc81A08_rYcz7d6lM2UByzws_tcvQUpjmgOPzmH96IM ZMnghSEkMf.Yup9gMEGMaaXWW5yKgHFXz5D.cT9TiSqIZPP8urcPt9f4DPjU0sNpRJ5YHufiTb4o gdYF4i_x.kn9SbfMgRAlku8ETfAJKovCfZTk5BjzmnTNU7cOztXZCM0XbHQ4Gmgt5iii95lY5vAD 31MW.TcCVBGhhU8aARDqoDhMwxFWqDY5Zb6XWB9p_UDr6DNkLizvAvBnYPQiKh07uIrC3IkX53jB hOlC.ZWUig5KUz.6e0ZmgWbPHF7UuHMYQVB_gBdsA2153ch6DV0.A7IfUnNUNlcvwcs0QQ0lLL7b Pca5WTK5iilI30PtDSpPTVzM4dIT_Z9B84rak6HrZDOMw9GMsfV9KbSNjnr0.BcLwon8btl7Qn67 xQ0UNaiHtDCiFROoiC09YGj7HZGWLBo37YA12uRY7nSSO4Co4OQXnOfOMl9CXbeFVg7oziF2af5i 4.k0h6ap_VDRNoV5_MwBEf7QWFUGYm5A0j4a2lVAL1o4.xfKXGm2wvKOmFiqV9ZH3a04WqKpZ8UM VJQmEsRhXMgEJ9mxuMccm24GdUb8pUPt9mBxk0lkE.8Wud.yHgVGdtm8.TWBniAyrx2DUkYU1smw JMWcZ3ABib_I.TLJgrZHiZyhQ9aQAnAe3yulEwOkRd7kF8IbYAsTUHESxQqyAAbnQ1sOujGYk3I7 cWwMuuuN2rcYHf5SBjQyav8yJNb6D8cu4sd1_UDYLIQtGlAjsUdNAH5G1z_b7qaXVM9EYJp_E2Q. ACEMePRz379EUkCKBGNdSjj0v1.gepE4ZX.WGGs_9xzAIFMx3l7ymCERu6mUvgjR6Rkl7ea4LqV5 Hs22uJWsCIqdSziemPAL5AJ0hmCWtklx50e6TLPAlL5y5JW7doirBisMbpOpegeJZQplBTIhuExD o7mJuHyymTmWBgJJWB5j9AoJ_Xk8NW0GGO9QHJqr4O5_f7fxFnxi8QeS.uy5x5XgkPMezfvzxkbA mSco91QCSClliyKB6qTXnzncbBL158NHEffjnzOXuBrlGlo0QB.hQIUkaWgTanJM.mAviR28qY29 a7ImdrNJD8RJHcTH1P9fQh.ZSAmChSh2CWQiFkZEq5_mxATBDbRtGFC1uHv4zd2nADKtpajPYJFj 42uKjBg_pFdA- Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.gq1.yahoo.com with HTTP; Sun, 22 Dec 2019 08:22:18 +0000 Received: by smtp402.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 6323297e603af926350793529af34361; Sun, 22 Dec 2019 08:22:17 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\)) Subject: Attempt to update Rock64 to head -r355976 failed to boot afterwards, anyone have a recent FreeBSD booting a Rock64? Message-Id: <78081E30-3758-46F3-A228-02B29CDAA6A6@yahoo.com> Date: Sun, 22 Dec 2019 00:22:16 -0800 To: freebsd-arm X-Mailer: Apple Mail (2.3608.40.2.2.4) References: <78081E30-3758-46F3-A228-02B29CDAA6A6.ref@yahoo.com> X-Rspamd-Queue-Id: 47gb7c66YKz49xS X-Spamd-Bar: + X-Spamd-Result: default: False [1.83 / 15.00]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; FREEMAIL_FROM(0.00)[yahoo.com]; MV_CASE(0.50)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; SUBJECT_ENDS_QUESTION(1.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; NEURAL_SPAM_MEDIUM(0.80)[0.805,0]; RCPT_COUNT_ONE(0.00)[1]; IP_SCORE_FREEMAIL(0.00)[]; IP_SCORE(0.00)[ip: (6.86), ipnet: 98.137.64.0/21(0.89), asn: 36647(0.71), country: US(-0.05)]; NEURAL_SPAM_LONG(0.52)[0.524,0]; RCVD_IN_DNSWL_NONE(0.00)[148.66.137.98.list.dnswl.org : 127.0.5.0]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Dec 2019 08:22:22 -0000 [OverDrive 1000 and MACCHIATObin Doubleshot updates went fine. The code has Peter Jeremy's rk_tsadc.c patch.] The console shows for boot -v . . . Loading kernel... /boot/kernel/kernel text=3D0x98af14 data=3D0x18e618 data=3D0x0+0x6fc8e8 = syms=3D[0x8+0x142020+0x8+0x12d3fd] Loading configured modules... /boot/kernel/umodem.ko text=3D0x2120 text=3D0x13e0 data=3D0x6e8+0x10 = syms=3D[0x8+0xf60+0x8+0xb7f] /boot/kernel/ucom.ko text=3D0x217f text=3D0x3340 data=3D0x880+0x858 = syms=3D[0x8+0x1170+0x8+0xb0d] /boot/entropy size=3D0x1000 Hit [Enter] to boot immediately, or any other key for command prompt. Booting [/boot/kernel/kernel] in 8 seconds...=20 Type '?' for a list of commands, 'help' for more detailed help. OK boot -v Using DTB provided by EFI at 0x80f3000. ---<>--- KDB: debugger backends: ddb KDB: current backend: ddb Type Physical Virtual #Pages Attr ConventionalMemory 000000200000 200000 00007ef3 WB=20 BootServicesData 0000080f3000 80f3000 0000001a WB=20 ConventionalMemory 00000810d000 810d000 000ebd64 WB=20 LoaderData 0000f3e71000 f3e71000 00008001 WB=20 LoaderCode 0000fbe72000 fbe72000 000000a6 WB=20 Reserved 0000fbf18000 fbf18000 00000007 WB=20 BootServicesData 0000fbf1f000 fbf1f000 00000001 WB=20 RuntimeServicesData 0000fbf20000 fbf20000 00000001 WB RUNTIME BootServicesData 0000fbf21000 fbf21000 00000002 WB=20 Reserved 0000fbf23000 fbf23000 00000004 WB=20 BootServicesData 0000fbf27000 fbf27000 00000002 WB=20 RuntimeServicesData 0000fbf29000 fbf29000 00000001 WB RUNTIME LoaderData 0000fbf2a000 fbf2a000 00003006 WB=20 RuntimeServicesCode 0000fef30000 fef30000 00000010 WB RUNTIME LoaderData 0000fef40000 fef40000 000000c0 WB=20 Physical memory chunk(s): 0x00200000 - 0xfbf17fff, 4029 MB (1031448 pages) 0xfbf1f000 - 0xfbf22fff, 0 MB ( 4 pages) 0xfbf27000 - 0xfef2ffff, 48 MB ( 12297 pages) 0xfef40000 - 0xfeffffff, 0 MB ( 192 pages) Excluded memory regions: 0xf4000000 - 0xf5702fff, 23 MB ( 5891 pages) NoAlloc=20 0xfbf18000 - 0xfbf1efff, 0 MB ( 7 pages) NoAlloc=20 0xfbf20000 - 0xfbf20fff, 0 MB ( 1 pages) NoAlloc=20 0xfbf23000 - 0xfbf26fff, 0 MB ( 4 pages) NoAlloc=20 0xfbf29000 - 0xfbf29fff, 0 MB ( 1 pages) NoAlloc=20 0xfef30000 - 0xfef3ffff, 0 MB ( 16 pages) NoAlloc=20 Found 4 CPUs in the device tree Copyright (c) 1992-2019 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 #30 r355976M: Fri Dec 20 23:46:32 PST 2019 = markmi@FBSDFHUGE:/usr/obj/cortexA53_clang/arm64.aarch64/usr/src/arm64.aarc= h64/sys/GENERIC-NODBG arm64 FreeBSD clang version 9.0.0 (tags/RELEASE_900/final 372316) (based on = LLVM 9.0.0) VT: init without driver. Preloaded elf kernel "/boot/kernel/kernel" at 0xffff0000014d6000. Preloaded elf module "/boot/kernel/umodem.ko" at 0xffff0000014def48. Preloaded elf module "/boot/kernel/ucom.ko" at 0xffff0000014df760. Preloaded boot_entropy_cache "/boot/entropy" at 0xffff0000014dff38. module firmware already present! Starting CPU 1 (1) Starting CPU 2 (2) Starting CPU 3 (3) FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs random: read 4096 bytes from preloaded cache random: unblocking device. VIMAGE (virtualized network stack) enabled ULE: setup cpu 0 ULE: setup cpu 1 ULE: setup cpu 2 ULE: setup cpu 3 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 fbf20000 mode 2 pages 1 MAP fbf29000 mode 2 pages 1 MAP fef30000 mode 2 pages 16 nfslock: pseudo-device crypto: WARNING: Device "kbd" is Giant locked and may be deleted before FreeBSD = 13.0. kbd0 at kbdmux0 mem: null: openfirm: WARNING: Device "openfirm" is Giant locked and may be deleted before = FreeBSD 13.0. ofwbus0: clk_fixed0: on ofwbus0 rk_grf0: mem 0xff100000-0xff100fff on = ofwbus0 simplebus0: on ofwbus0 rk3328_cru0: mem = 0xff440000-0xff440fff on ofwbus0 Clock: apll, parent: xin24m(0), freq: 400000000 Clock: dpll, parent: xin24m(0), freq: 1596000000 Clock: cpll, parent: xin24m(0), freq: 594000000 Clock: gpll, parent: xin24m(0), freq: 576000000 Clock: npll, parent: xin24m(0), freq: 800000000 Clock: aclk_bus_pre, parent: gpll(1), freq: 96000000 Clock: hclk_bus_pre, parent: aclk_bus_pre(0), freq: 48000000 Clock: pclk_bus_pre, parent: aclk_bus_pre(0), freq: 48000000 Clock: armclk, parent: apll(0), freq: 400000000 Clock: clk_tsadc, parent: xin24m(0), freq: 119402 Clock: aclk_peri_pre, parent: gpll(1), freq: 144000000 Clock: pclk_peri, parent: aclk_peri_pre(0), freq: 144000000 Clock: hclk_peri, parent: aclk_peri_pre(0), freq: 28800000 Clock: clk_sdmmc, parent: xin24m(2), freq: 800000 Clock: clk_sdio, parent: cpll(0), freq: 297000000 Clock: clk_emmc, parent: gpll(1), freq: 96000000 Clock: clk_i2c0, parent: cpll(0), freq: 74250000 Clock: clk_i2c1, parent: cpll(0), freq: 74250000 Clock: clk_i2c2, parent: cpll(0), freq: 74250000 Clock: clk_i2c3, parent: cpll(0), freq: 74250000 Clock: apll_core, parent: apll(0), freq: 400000000 Clock: dpll_core, parent: dpll(0), freq: 1596000000 Clock: gpll_core, parent: gpll(0), freq: 576000000 Clock: npll_core, parent: npll(0), freq: 800000000 Clock: gpll_peri, parent: gpll(0), freq: 576000000 Clock: cpll_peri, parent: cpll(0), freq: 594000000 Clock: pclk_bus, parent: pclk_bus_pre(0), freq: 48000000 Clock: pclk_phy_pre, parent: pclk_bus_pre(0), freq: 48000000 Clock: aclk_peri, parent: aclk_peri_pre(0), freq: 144000000 Clock: pclk_i2c0, parent: pclk_bus(0), freq: 48000000 Clock: pclk_i2c1, parent: pclk_bus(0), freq: 48000000 Clock: pclk_i2c2, parent: pclk_bus(0), freq: 48000000 Clock: pclk_i2c3, parent: pclk_bus(0), freq: 48000000 Clock: pclk_tsadc, parent: pclk_bus(0), freq: 48000000 Clock: pclk_gpio0, parent: pclk_bus(0), freq: 48000000 Clock: pclk_gpio1, parent: pclk_bus(0), freq: 48000000 Clock: pclk_gpio2, parent: pclk_bus(0), freq: 48000000 Clock: pclk_gpio3, parent: pclk_bus(0), freq: 48000000 Clock: hclk_sdmmc, parent: hclk_peri(0), freq: 28800000 Clock: hclk_sdio, parent: hclk_peri(0), freq: 28800000 Clock: hclk_emmc, parent: hclk_peri(0), freq: 28800000 Clock: hclk_peri_niu, parent: hclk_peri(0), freq: 28800000 Clock: pclk_peri_niu, parent: hclk_peri(0), freq: 28800000 Clock: hclk_sdmmc_ext, parent: hclk_peri(0), freq: 28800000 rk3328_cru0: cannot get assigned clock at idx 0 rk3328_cru0: cannot get assigned clock at idx 1 rk3328_cru0: cannot get assigned clock at idx 2 rk3328_cru0: cannot get assigned clock at idx 3 rk3328_cru0: cannot get assigned clock at idx 4 rk3328_cru0: cannot get assigned clock at idx 5 rk3328_cru0: cannot get assigned clock at idx 6 rk3328_cru0: cannot get assigned clock at idx 7 rk3328_cru0: Set pclk_gpio2 to 100000000 rk3328_cru0: cannot get assigned clock at idx 9 rk3328_cru0: cannot get assigned clock at idx 10 rk3328_cru0: cannot get assigned clock at idx 11 rk3328_cru0: Set pclk_gpio0 to 50000000 rk3328_cru0: Set pclk_gpio1 to 100000000 rk3328_cru0: cannot get assigned clock at idx 14 rk3328_cru0: cannot get assigned clock at idx 15 rk3328_cru0: cannot get assigned clock at idx 16 rk3328_cru0: cannot get assigned clock at idx 17 rk3328_cru0: Set clk_sdio to 50000000 rk3328_cru0: cannot get assigned clock at idx 19 rk3328_cru0: cannot get assigned clock at idx 20 rk3328_cru0: Set armclk to 600000000 rk3328_cru0: Set gpll to 491520000 rk3328_cru0: Set cpll to 1200000000 rk3328_cru0: cannot get assigned clock at idx 24 rk3328_cru0: cannot get assigned clock at idx 25 rk3328_cru0: cannot get assigned clock at idx 26 rk3328_cru0: cannot get assigned clock at idx 27 rk3328_cru0: cannot get assigned clock at idx 28 rk3328_cru0: cannot get assigned clock at idx 29 rk3328_cru0: Set pclk_gpio2 to 300000000 rk3328_cru0: cannot get assigned clock at idx 31 rk3328_cru0: cannot get assigned clock at idx 32 rk3328_cru0: cannot get assigned clock at idx 33 rk3328_cru0: cannot get assigned clock at idx 34 rk3328_cru0: cannot get assigned clock at idx 35 rk3328_cru0: Set pclk_gpio0 to 200000000 rk3328_cru0: Set pclk_gpio1 to 300000000 rk3328_cru0: cannot get assigned clock at idx 38 rk3328_cru0: cannot ge3328_cru0: Set hclk_sdmmc_ext to 50000000 rk3328_cru0: cannot get assigned clock at idx 46 rk3328_cru0: cannot get assigned clock at idx 47 clk_fixed1: on ofwbus0 regfix0: on ofwbus0 regfix1: on ofwbus0 regfix2: on ofwbus0 simple_mfd0: mem = 0xff140000-0xff140fff on ofwbus0 psci0: on ofwbus0 psci0: PSCI version 0.2 compatible gic0: mem = 0xff811000-0xff811fff,0xff812000-0xff813fff,0xff814000-0xff815fff,0xff8160= 00-0xff817fff irq 30 on ofwbus0 gic0: pn 0x2, arch 0x2, rev 0x1, implementer 0x43b irqs 160 rk_pinctrl0: on ofwbus0 gpio0: mem 0xff210000-0xff2100ff irq 34 = on rk_pinctrl0 gpio0: Cannot get clock Fatal data abort: x0: 0 x1: ffff000001114d00 x2: ffff0000009daf48 x3: ffff0000402189c0 x4: fffffd0000bd5a00 x5: ffff000000774268 x6: a x7: a x8: 20000 x9: ffff000001114d00 x10: fffffd0000aaaa98 x11: 0 x12: fffffd0000847f80 x13: def8fc x14: 808003 x15: 3 x16: 0 x17: 0 x18: ffff000000010680 x19: fffffd0000bbb900 x20: 0 x21: fffffd0000bd6250 x22: fffffd0000bd6230 x23: ffff00000082a262 x24: ffff00000084d913 x25: ffff0000007f3639 x26: fffffd0000bc5d00 x27: ffff000000864f42 x28: ffff00000084d5d7 x29: ffff000000010690 sp: ffff000000010680 lr: ffff0000007bebcc elr: ffff000000191090 spsr: a00001c5 far: 8 esr: 96000005 panic: vm_fault failed: ffff000000191090 cpuid =3D 0 time =3D 1 KDB: stack backtrace: db_trace_self() at db_trace_self_wrapper+0x28 pc =3D 0xffff0000007664dc lr =3D 0xffff0000001067c4 sp =3D 0xffff000000010080 fp =3D 0xffff000000010290 db_trace_self_wrapper() at vpanic+0x194 pc =3D 0xffff0000001067c4 lr =3D 0xffff0000004208a0 sp =3D 0xffff0000000102a0 fp =3D 0xffff000000010340 vpanic() at panic+0x44 pc =3D 0xffff0000004208a0 lr =3D 0xffff000000420708 sp =3D 0xffff000000010350 fp =3D 0xffff0000000103d0 panic() at data_abort+0x1e0 pc =3D 0xffff000000420708 lr =3D 0xffff00000078217c sp =3D 0xffff0000000103e0 fp =3D 0xffff000000010490 data_abort() at do_el1h_sync+0x144 pc =3D 0xffff00000078217c lr =3D 0xffff000000781398 sp =3D 0xffff0000000104a0 fp =3D 0xffff0000000104d0 do_el1h_sync() at handle_el1h_sync+0x78 pc =3D 0xffff000000781398 lr =3D 0xffff000000768878 sp =3D 0xffff0000000104e0 fp =3D 0xffff0000000105f0 handle_el1h_sync() at rk_gpio_attach+0x19c pc =3D 0xffff000000768878 lr =3D 0xffff0000007bebc8 sp =3D 0xffff000000010600 fp =3D 0xffff000000010690 rk_gpio_attach() at rk_gpio_attach+0x19c pc =3D 0xffff0000007bebc8 lr =3D 0xffff0000007bebc8 sp =3D 0xffff0000000106a0 fp =3D 0xffff0000000106c0 rk_gpio_attach() at device_attach+0x3e0 pc =3D 0xffff0000007bebc8 lr =3D 0xffff000000459f0c sp =3D 0xffff0000000106d0 fp =3D 0xffff000000010730 device_attach() at device_probe_and_attach+0x3c pc =3D 0xffff000000459f0c lr =3D 0xffff000000459b0c sp =3D 0xffff000000010740 fp =3D 0xffff000000010750 device_probe_and_attach() at rk_pinctrl_attach+0x210 pc =3D 0xffff000000459b0c lr =3D 0xffff0000007be2c0 sp =3D 0xffff000000010760 fp =3D 0xffff0000000107c0 rk_pinctrl_attach() at device_attach+0x3e0 pc =3D 0xffff0000007be2c0 lr =3D 0xffff000000459f0c sp =3D 0xffff0000000107d0 fp =3D 0xffff000000010830 device_attach() at bus_generic_new_pass+0x11c pc =3D 0xffff000000459f0c lr =3D 0xffff00000045bdd0 sp =3D 0xffff000000010840 fp =3D 0xffff000000010870 bus_generic_new_pass() at bus_generic_new_pass+0xac pc =3D 0xffff00000045bdd0 lr =3D 0xffff00000045bd60 sp =3D 0xffff000000010880 fp =3D 0xffff0000000108b0 bus_generic_new_pass() at bus_generic_new_pass+0xac pc =3D 0xffff00000045bd60 lr =3D 0xffff00000045bd60 sp =3D 0xffff0000000108c0 fp =3D 0xffff0000000108f0 bus_generic_new_pass() at root_bus_configure+0x40 pc =3D 0xffff00000045bd60 lr =3D 0xffff00000045dec4 sp =3D 0xffff000000010900 fp =3D 0xffff000000010930 root_bus_configure() at mi_startup+0x228 pc =3D 0xffff00000045dec4 lr =3D 0xffff0000003b4ec0 sp =3D 0xffff000000010940 fp =3D 0xffff0000000109a0 mi_startup() at virtdone+0x58 pc =3D 0xffff0000003b4ec0 lr =3D 0xffff000000001088 sp =3D 0xffff0000000109b0 fp =3D 0x0000000000000000 KDB: enter: panic [ thread pid 0 tid 100000 ] Stopped at clk_disable+0x10: ldr x19, [x0, #8] db>=20 =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)