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