From owner-freebsd-arm@freebsd.org Mon Jun 12 20:07:18 2017 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62866C31E49 for ; Mon, 12 Jun 2017 20:07:18 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: from mail-lf0-x244.google.com (mail-lf0-x244.google.com [IPv6:2a00:1450:4010:c07::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E2EE87CA39 for ; Mon, 12 Jun 2017 20:07:17 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: by mail-lf0-x244.google.com with SMTP id v20so10359932lfa.2 for ; Mon, 12 Jun 2017 13:07:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=pXmDSsTqxqS3NN9noVaQo4Nfk0VrD5xY5jzBd+GcQag=; b=GoC3drJwl11kfSbbyOeG9lMcgkI0KqTI6yWBvkXB29noTSypVoHnKAPgfufvCL9aFN XVcRj9MG70CF8ptQrl/cSGthnY3FeNPyLvFE0HQWD5HUSHLKTLDtI05MeyLzFbK/gP9D MvgAavy1jMa1uFD+w+mDSTcLsgp3x26fkC6icndSmAaRZrbzSlQzicTp3ES2mrHarVYC vMIlec1DQioeTraMbyoET8geXU+a6Oxs7fzan5DTzGPP12FT3FNXVt7MPtXaa0H5U6ff 7cDcgiKiMN4Vf7afDnACeTLKfNcAfrS5mcNwLFDl92otdcgAYajzZ3VOZxwhSXUueWxc fC0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=pXmDSsTqxqS3NN9noVaQo4Nfk0VrD5xY5jzBd+GcQag=; b=EDOfL8SBvVaUu9B38qGSfv1B11sCDy1zzRwi0vKTxG5QWTLJS1XaLN0cangmaWAnvc hzF3j31owc2gE/IUHBKdbTNJ25FwOlaLDTOO440RV+iivEP6iih9UhaDWxwwPUWKXmy8 P/Mn5Nrbsx43FrGv5t5BeUpC44kvpt2DiaTrTGp6/p+//OMrKLrShiYnQRVUusmE5W50 Ghuisu/VWFz/yyo+/Er+Dzs+quvOxiv9keqryGJlm+gmLed4rQKfxkryMDbiv7I7KHWt OCpcbRlgMqBNRBE5pEijD1kWNMMGhEk+cwnOsvUJl2wVt6EiREzlFVQsARnZHPbtqWji dG2A== X-Gm-Message-State: AODbwcBt6GLjNeDq5OSxxVHN9KjoC0wsXhneqDTrKNFadnAJ/2bU0ubb 9N3aTYXJPNhXUloD4W5N8JJ8bP1FXA== X-Received: by 10.25.149.4 with SMTP id x4mr7624543lfd.136.1497298036060; Mon, 12 Jun 2017 13:07:16 -0700 (PDT) MIME-Version: 1.0 Received: by 10.46.82.196 with HTTP; Mon, 12 Jun 2017 13:07:15 -0700 (PDT) In-Reply-To: <2A90A527-7DCA-4442-9322-0EA96236583C@dsl-only.net> References: <20170612152808.6094931.74364.27128@gmail.com> <2A90A527-7DCA-4442-9322-0EA96236583C@dsl-only.net> From: Russell Haley Date: Mon, 12 Jun 2017 13:07:15 -0700 Message-ID: Subject: Re: Creating armv7 MACHINE_ARCH To: Mark Millard Cc: Warner Losh , "freebsd-arm@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2017 20:07:18 -0000 On Mon, Jun 12, 2017 at 1:00 PM, Mark Millard wrote: > On 2017-Jun-12, at 12:16 PM, Russell Haley wrote: > >> On Mon, Jun 12, 2017 at 10:36 AM, Mark Millard wrote: >>> >>> On 2017-Jun-12, at 8:39 AM, Warner Losh wrote: >>> >>>> . . . >>>> >>>> Plus, we aren't quite doing what Ian wanted. He wanted a full rename. The >>>> proposal on the able is to add an armv7 TARGET_ARCH in 12. Not to rename or >>>> remove armv6. Sadly, that will still be there since the RPI foundation >>>> keeps finding new ways to repackage the rpi into new boards that are just >>>> too cheap to ignore. >>> >>> On 2017-Jun-12, at 6:59 AM, Andrew Turner wrote: >>> >>>> I like this. My understanding is adding armv7 would also fix many of the currently broken ports that assume they are being built for armv7 as many Linux distros target ARMv7+. >>>> >>>> It should also be noted the GENERIC kernel is likely to only ever target ARMv7+ even without an armv7 TARGET_ARCH. >>> >>> >>> Hopefully the choices related to TARGET and TARGET_ARCH >>> for armv7 end up identifying the context to port builds >>> so that many would just automatically do the right thing. >>> >>> >>> As for GENERIC: >>> >>> powerpc has. . . >>> >>> TARGET=powerpc TARGET_ARCH=powerpc and GENERIC >>> TARGET=powerpc TARGET_ARCH=powerpc64 and GENERIC64 >>> >>> So there is precedent for more than one GENERIC* >>> for a family, with which one being appropriate >>> being based on TARGET_ARCH. >>> >>> For powerpc TARGET=powerpc implicitly uses >>> TARGET_ARCH=powerpc when TARGET_ARCH is not >>> specified (if I remember right). Which should >>> be the default for armv6 vs. armv7 might go >>> the other direction (TARGET_ARCH=armv7 by >>> default). >>> >>> >>> Side note: >>> >>> A caution about talking about "rpi2" as >>> an example. . . >>> >>> Raspberry Pi 2 Model B V1.2 is Cortex-A53 based >>> (so arm64/aarch64). (A BCM2837, not a BCM2836.) >>> This dates about to something like 2014 based >>> on the pictures showing the (c) notice on the >>> boards. >>> >>> V1.1 and before were armv7 (BCM2836) based. >>> >>> Unless a kernel and world are made that can >>> also configure/handle a Cortex-A53 in a >>> armv7-like manor there will be two different >>> GENERIC builds in order to span the "rpi2" >>> family, based on just V1.2+ vs. V1.1 and >>> before. >>> >>> (A single, modern distribution of the official >>> Raspbian software for the rpi2 does support >>> all the V1.x boards if I understand right.) >> >> I am confused. I don't see any documentation about Raspbian supporting 64 bit? > > 64-bit Cortex-A53's can be configure to operate in a > 32-bit mode (AArch32). Raspian does that for RPI2 V1.2 > and for RPI3. > > Raspian does not (yet?) support a 64-bit mode (AArch64). > > The Cortex-A53 can support either. As I understand it > is possible for an OS to allow a user processes to be > one or the other, different processes using the different > modes. That does not mean that all operating systems > bother to. > > If I remember right the official Ubuntu for an ODroid-C2 > allows both AArch64 and AArch32 user programs (and > so processes, with shared library types tracking). > >> From Arm at https://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php: >> "The Cortex-A53 supports the full ARMv8-A architecture. It not only >> runs 64-bit applications also seamlessly and efficiently runs legacy >> ARM 32-bit applications." >> >> I assume that means it handles armv7-A without issue? (In fact, many >> on this board know it does) > > I've not gone through the details but targeting AArch32 > probably means targeting a subset of armv7. Or may be > to support both requires targeting a common subset of both. > (My guess is that AArch32 is the definition of a common > subset for 32-bit, at least for user processes.) > > Raspian targets just AArch32 on armv7 and Cortex-A53 > (user space). (If I've got the definition of AArch32 > right: otherwise a common subset.) > > FreeBSD targets armv7 and AArch64 separately (via > separate GENERIC kernels). I'm not aware of FreeBSD > targeting AArch32 at all on cores capable of AArch64. > FreeBSD possibly does not restrict itself to AArch32 > (user processes) on armv7 if AArch32 is really a > subset. I thought all 64 bit Arm instructions are defined in armv8? Russ