OT: HowTo: FreeBSD status for/on ODroid-C2?)

O. Hartmann o.hartmann at walstatt.org
Tue Jan 31 08:13:19 UTC 2017


On Mon, 30 Jan 2017 23:57:59 -0800
Mark Millard <markmi at dsl-only.net> wrote:


Hello,

I'm fairly new to ARM based SoCs and I have an Odroid-C2 at hand. I try to
build the boot images by cloning/copying and adapting the process I found in
the sysutils/u-boot-pine64 port, but my knowledge about how to build u-boot to
provide the desired is weak.

I was wondering if someone could give a little help in a HowTo for the
Odroid-C2.

I already prepared a NanoBSD build for ARM64. I guess this would be the minor
task compared to get the right boot image to bootstrap the Odroid-C2 from an
USB oder SD.

Or, if possible, could you delegate me to the thread/wiki/webpage where those
first steps are explained?

Well, thank you very much in advance,

Oliver Hartmann

> I updated to head -r312982 on the pine64 that I have access to:
> 
> # uname -apKU
> FreeBSD pine64 12.0-CURRENT FreeBSD 12.0-CURRENT  r312982M  arm64 aarch64
> 1200020 1200020
> 
> after several months of not using the pine64.
> ( -mcpu=cortex-a53 used for buildworld buildkernel;
>  non-debug variant of GENERIC [GENERIC included
> then overridden]; usb SSD root file system)
> 
> I find that any time some of the cores are busy I get thousands
> of the gic0 spurious interrupt messages in fairly sort order.
> (This is not new: it is unchanged.)
> 
> For example during either of:
> 
> openssl speed
> 
> or:
> 
> cp /dev/zero /dev/null
> (similarly for copying actual files around,
> local or nfs involved)
> 
> Once the cores are no longer busy the gic0 messages stop.
> 
> The "on CPU<?>" varies. The "last irq: <?>" varies.
> (But 27 is the most common by far.)
> 
> 
> ===
> Mark Millard
> markmi at dsl-only.net
> 
> On 2017-Jan-28, at 2:17 PM, Tom Vijlbrief <tvijlbrief at gmail.com> wrote:
> 
> Note that on the pine64 the network interface hangs from time to time and I
> get a core dump with very low frequency from long running processes, eg the
> shell that invokes "make world". Note that I had similar issues on the
> ODroid-C2.
> 
> Currently rebuilding world without MALLOC_PRODUCTION.
> 
> The arm64 port is getting close to working 100%, just a last few glitches.
> 
> 
> Op 22:03 ZA 28 Jan 2017 schreef Mark Millard <markmi at dsl-only.net>:
> [About: "gic0: Spurious interrupt detected" on armv6 as well.]
> 
> On 2017-Jan-28, at 6:43 AM, Tom Vijlbrief <tvijlbrief at gmail.com> wrote:
> 
> > Did a build/install world/kernel with r312916 and MALLOC_PRODUCTION=YES on
> > a pine64, removed /etc/malloc.conf, rebooted
> >
> > and I am now rebuilding the python2 port without problems so far (except
> > the "gic0: Spurious interrupt detected" messages which reappeared shortly
> > after my previous post)  
> 
> While very rare, I have seen the gic0 notices on armv6 (e.g., a bpim3)
> during large builds (with -j 4). Recently I got a:
> 
> gic0: Spurious interrupt detected: last irq: 29 on CPU1
> 
> on:
> 
> # uname -apKU
> FreeBSD bpim3 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r312726M: Tue Jan 24
> 20:57:48 PST 2017
> markmi at FreeBSDx64:/usr/obj/bpim3_clang/arm.armv6/usr/src/sys/BPIM3-NODBG  arm
> armv6 1200020 1200020
> 
> while building devel/gcc6 (via a full bootstrap) via -j 4 .
> 
> This is from a non-debug buildworld buildkernel context and has
> MALLOC_PRODUCTION= in /etc/make.conf . No /etc/malloc.conf present. I do use
> -mcpu=cortex-a7 .
> 
> 
> 
> Details if you care:
> 
> # more /usr/src/sys/arm/conf/BPIM3-NODBG
> #
> # BPIM3 -- Custom configuration for the Banana Pi M3
> #
> 
> include "GENERIC"
> 
> ident   BPIM3-NODBG
> 
> makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug
> symbols
> 
> options         ALT_BREAK_TO_DEBUGGER
> 
> options         KDB                     # Enable kernel debugger support
> 
> # For minimum debugger support (stable branch) use:
> options         KDB_TRACE               # Print a stack trace for a panic
> options         DDB                     # Enable the kernel debugger
> 
> # Extra stuff:
> #options        VERBOSE_SYSINIT         # Enable verbose sysinit messages
> #options        BOOTVERBOSE=1
> #options        BOOTHOWTO=RB_VERBOSE
> #options        KTR
> #options        KTR_MASK=KTR_TRAP
> ##options       KTR_CPUMASK=0xF
> #options        KTR_VERBOSE
> 
> # Disable any extra checking for. . .
> nooptions       DEADLKRES               # Enable the deadlock resolver
> nooptions       INVARIANTS              # Enable calls of extra sanity
> checking nooptions       INVARIANT_SUPPORT       # Extra sanity checks of
> internal structures, required by INVARIANTS nooptions
> WITNESS                 # Enable checks to detect deadlocks and cycles
> nooptions       WITNESS_SKIPSPIN        # Don't run witness on spinlocks for
> speed nooptions       DIAGNOSTIC
> 
> 
> It was a from cross build for buildworld buildkernel :
> (I've not checked on lldb builds linking recently.)
> 
> # more ~/src.configs/src.conf.bpim3-clang-bootstrap.amd64-host
> TO_TYPE=armv6
> #
> KERNCONF=BPIM3-NODBG
> TARGET=arm
> .if ${.MAKE.LEVEL} == 0
> TARGET_ARCH=${TO_TYPE}
> .export TARGET_ARCH
> .endif
> #
> WITH_CROSS_COMPILER=
> WITHOUT_SYSTEM_COMPILER=
> #
> #CPUTYPE=soft
> WITH_LIBCPLUSPLUS=
> WITH_BINUTILS_BOOTSTRAP=
> WITH_CLANG_BOOTSTRAP=
> WITH_CLANG=
> WITH_CLANG_IS_CC=
> WITH_CLANG_FULL=
> WITH_CLANG_EXTRAS=
> WITH_LLD=
> #
> # Linking lldb fails for armv6(/v7)
> WITHOUT_LLDB=
> #
> WITH_BOOT=
> WITHOUT_LIB32=
> WITHOUT_LIBSOFT=
> #
> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
> WITHOUT_GCC_BOOTSTRAP=
> WITHOUT_GCC=
> WITHOUT_GCC_IS_CC=
> WITHOUT_GNUCXX=
> #
> NO_WERROR=
> #WERROR=
> MALLOC_PRODUCTION=
> #
> WITH_REPRODUCIBLE_BUILD=
> WITH_DEBUG_FILES=
> #
> XCFLAGS+= -mcpu=cortex-a7
> XCXXFLAGS+= -mcpu=cortex-a7
> # There is no XCPPFLAGS but XCPP gets XCFLAGS content.
> 
> 
> Used for buildworld buildkernel :
> 
> # more ~/src.configs/make.conf
> #MALLOC_PRODUCTION=
> #NO_WERROR=
> #WERROR=
> CFLAGS.gcc+= -v
> 
> 
> Used for port builds:
> 
> # more /etc/make.conf
> WANT_QT_VERBOSE_CONFIGURE=1
> #
> DEFAULT_VERSIONS+=perl5=5.24
> WRKDIRPREFIX=/usr/obj/portswork
> WITH_DEBUG=
> WITH_DEBUG_FILES=
> MALLOC_PRODUCTION=
> 
> 
> # svnlite status /usr/src/ | sort
> ?       /usr/src/sys/amd64/conf/GENERIC-DBG
> ?       /usr/src/sys/amd64/conf/GENERIC-NODBG
> ?       /usr/src/sys/arm/conf/BPIM3-DBG
> ?       /usr/src/sys/arm/conf/BPIM3-NODBG
> ?       /usr/src/sys/arm/conf/RPI2-DBG
> ?       /usr/src/sys/arm/conf/RPI2-NODBG
> ?       /usr/src/sys/arm64/conf/GENERIC-DBG
> ?       /usr/src/sys/arm64/conf/GENERIC-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-DBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-DBG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-NODBG
> M       /usr/src/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
> M       /usr/src/contrib/llvm/tools/lld/ELF/Target.cpp
> M       /usr/src/lib/csu/powerpc64/Makefile
> M       /usr/src/libexec/rtld-elf/Makefile
> M       /usr/src/sys/boot/ofw/Makefile.inc
> M       /usr/src/sys/boot/powerpc/Makefile.inc
> M       /usr/src/sys/boot/powerpc/kboot/Makefile
> M       /usr/src/sys/boot/uboot/Makefile.inc
> M       /usr/src/sys/conf/kern.mk
> M       /usr/src/sys/conf/kmod.mk
> M       /usr/src/sys/ddb/db_main.c
> M       /usr/src/sys/ddb/db_script.c
> M       /usr/src/sys/modules/zfs/Makefile
> M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
> 
> The M's are generally tied to powerpc64 and powerpc
> explorations. I tend to use the same source for all
> the TARGET_ARCH's that I build.
> 
> 
> ===
> Mark Millard
> markmi at dsl-only.net
> 
> 
> 
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"



More information about the freebsd-arm mailing list