tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [2/2 ABI and toolchain part] Support Raspberry Pi [0-3] in big-endian mode
On 2020/11/24 3:36, Jason Thorpe wrote:
On Nov 23, 2020, at 10:17 AM, Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost> wrote:
As Rin explicitly said v6 I still wonder what hardware that would cover that
supports BE32 and is still around in testable condition.
So no armv6eb release binaries? (at least no evbarm-earmv6eb in 9.x)
Yes, there's no earmv6{,hf}eb kernel yet. As I wrote before, userland
for earmv6{,hf}eb does not work on other ARM variants. Therefore, we
can choose ABI without worrying about compatibility.
I've made Raspberry Pi [01] running on BE8 modes. Patches are:
- toolchain part: http://www.netbsd.org/~rin/rpi_eb_gcc_BE8_20201124.patch
- arch/arm part: http://www.netbsd.org/~rin/rpi_eb_arm_BE8_20201124.patch
Pros for BE32 and BE8 are:
BE32:
- Compatible to ARMv5 and prior. We can build pkgsrc for earmv5{,hf}eb,
for example (*). This is impossible on ARMv7 and later.
- Works as a nice testbed for strictly-aligned ILP32BE platform.
(Unaligned memory access must be turned on for BE8 mode.)
(*) At the moment, userland for ARMv5 and prior does not work on ARMv6
and later. This is due to lack of swp{,b} instructions. However,
emulation for these instructions has already been added to aarch64
by ryo@. Porting that code to arm should be straightforward.
BE8:
- Compatible to ARMv7 and later, as well as COMPAT_NETBSD32 on aarch64.
We can use these new machines for building pkgsrc for ARMv6. Full-4GB
user address space for COMPAT_NETBSD32 on aarch64 should be useful.
- Unaligned memory access is possible.
Thoughts?
Thanks,
rin
P.S.
Note NSLU2 was added back in 2006 by scw@:
I have 2 of those devices, so I can help test there. (I need to solder headers for the TTL serial port yet, though…)
Wow, cool!
Home |
Main Index |
Thread Index |
Old Index