Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Oct 2016 01:53:19 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   BPi-M3's A83T: "socket" 0 and "socket" 1 (clusters 0 and 1): how difficult/messy to enable use of both?
Message-ID:  <FA8A434F-0601-4D9E-82AA-5FF18F500781@dsl-only.net>

next in thread | raw e-mail | index | archive | help
I attempted a boot of a BPi-M3 (A83T based) via a linux image and I =
noted that the boot sequence reported:

[    0.040298] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.040383] Setting up static identity map for 0x4076b5a8 - =
0x4076b600
[    0.010000] CPU1: Booted secondary processor
[    0.010000] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.010000] CPU2: Booted secondary processor
[    0.010000] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.010000] CPU3: Booted secondary processor
[    0.010000] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.260089] CPU4: failed to boot: -22
[    0.300067] CPU5: failed to boot: -22
[    0.340070] CPU6: failed to boot: -22
[    0.380092] CPU7: failed to boot: -22
[    0.380310] Brought up 4 CPUs
[    0.380335] SMP: Total of 4 processors activated (19200.00 BogoMIPS).
. . . [somewhat later in the sequence] . . .
[    0.010000] CPU4: Booted secondary processor
[    0.010000] CPU4: thread -1, cpu 0, socket 1, mpidr 80000100
[    0.010000] CPU5: Booted secondary processor
[    0.010000] CPU5: thread -1, cpu 1, socket 1, mpidr 80000101
[    0.010000] CPU6: Booted secondary processor
[    0.010000] CPU6: thread -1, cpu 2, socket 1, mpidr 80000102
[    0.010000] CPU7: Booted secondary processor
[    0.010000] CPU7: thread -1, cpu 3, socket 1, mpidr 80000103

[I'll note that all 8 cores are of the same type (cortex-a7) for the =
A83T: This is not an arm big/LITTLE context mixing core types but a more =
symmetric form of NUMA(?), more like sockets with the same type of =
multi-core processor in each socket and no cache spanning across the =
sockets, although RAM does span the "sockets" for the A83T.]

This suggests that the linux folks made the two clusters of cores in the =
A83T (Allwinner's A83T_User_Manual_v1.5.1_20150513.pdf terminology ) fit =
into the linux socket handling structure (a.k.a. NUMA structure, I =
presume). (About 29 pages of the 547 page =
A83T_User_Manual_v1.5.1_20150513.pdf mention "cluster", mostly for =
details of the clusters' various control, status, mask, gating, and =
power registers.)


Not that I consider it likely to be reasonable but I'll ask: How likely =
is it that someone could be given various pointers and bootstrap =
themselves into possibly enabling such dual-cluster usage for the A83T =
to a useful degree in FreeBSD? How independent of other SOC/board =
details would the effort/result be (given that the A83T is what is in =
use)? Would there be some sequence of stages to the effort? (The details =
would probably be part of the pointers that I mentioned. . .)



=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?FA8A434F-0601-4D9E-82AA-5FF18F500781>