n32 support patches

C. Jayachandran c.jayachandran at gmail.com
Mon Mar 1 14:28:23 UTC 2010


I'm in the process of getting n32 ABI support for the RMI processors.
The plan is have n32 compiled kernel with 64-bit register_t and
physaddr_t and 32 bit long and pointer types.

I've attached two patches, one for support for n32 in toolchain and
one for n32 support in kernel compilation.  With this I am able to
compile the kernel and user space with n32, and the boot-up reaches
until init. There is a lot more work on user-space and kernel (esp in
mips/mips/*.S) before it can complete boot-up.

Please review and let me know if you have any comments or objections
on this approach. The patches are:

http://sites.google.com/site/cjayachandran/files/n32-toolchain.patch
Toolchain support for N32
- Adds the linker emulations needed for n32
- Common preprocessor defines for ABI (_ABI_MIPS_SIM and _ABI???).
- Sets the long double type as 64 bit (this should be 128 bit in n32,
but there is some work needed to get the 128 bit soft-float working).

http://sites.google.com/site/cjayachandran/files/n32-kernel.patch
N32 compilation - makefiles and conf
- Adds ldscript.mips.n32.
- Some cleanup in Makefile.mips, add ABI flags
- bsd.cpu.mk CFLAGS for n32 compilation and linking

I have introduced a TARGET_N32 similart to TARGET_64 for n32
compilation.  But I think on the long term, we need clean up the
different flags that affect architecture and ABI. Currently there is
an overlap between the TARGET_CPUTYPE flag, the ISA_<arch> flags  and
the TARGET_<type> flags.

Regards,
JC.


More information about the freebsd-mips mailing list