RMI status

M. Warner Losh imp at bsdimp.com
Thu Feb 11 17:59:49 UTC 2010


In message: <98a59be81002110931h2fd2c250heec0520860768689 at mail.gmail.com>
            "C. Jayachandran" <c.jayachandran at gmail.com> writes:
: On Thu, Feb 11, 2010 at 10:35 PM, M. Warner Losh <imp at bsdimp.com> wrote:
: > <snip>
: > cj> Any plan of doing n32?  n32 with 64-bit physical address support may
: > cj> be a better suited base configuration for XLR than o32, because we can
: > cj> use all of the memory and the 64 bit support, without having to go
: > cj> full 64-bit.
: >
: > rrs>Not sure.. Warner, what do you think.. should we mess with n32?
: >
: > My plans are to mine the Cavium port for n32 and n64 support.  I've
: > done some preliminary work on this, and it doesn't look too horrible.
: > I do think there's a place to do both n32 as well as n64 in this
: > system.  Either one, in the kernel, could more easily access the
: > hardware on Octeon (and I think XLR) that has a bunch of funky bits
: > set in the higher bits and is too sparse to be covered by one wired
: > TLB entry.
: >
: > I have no plans to support the so-called 'o64' mode or the 'o32 with
: > 64-bit registers' mode of operation.  I'd like to retire the 'let's
: > run an o32 binary in 64-bit mode while in the kernel' mode that we're
: > using for Octeon right now.  It is useful as a bootstrap, but just a
: > little too non-standard for my tastes.  We'll get better compiler
: > support if we don't try to do unnatural things like this anyway.
: 
: The FreeBSD 6 port to XLR was o64.  Even in o32/o64, it is useful to
: go enable 64bit mode in kernel (with KX bit and maybe XTLB handler)
: since you can access the whole physical memory and IO without using
: TLB entries.

Yes.  That's similar to what the Octeon port does: it compiles
everything o32, including the kernel, but runs the kernel with KX bit
set with an xtlb handler.

On other MIPS ports, usually the I/O space is mapped into one TLB
that's wired into place.  Since the address space is so sparse on
Octeon (and XLR?), this isn't a viable option, so doing what we're
doing now is the only other alternative.

: Is the plan to have full n32 (including userspace), or have
: compatibility code to run o32 userspace on n32 kernel?  I guess I
: should have a look at the current support....

The plan is to support n32 and n64 user space binaries with an n32 or
n64 kernel.  The future o32 support is TBD.  In other projects, I've
run into tool-chain issues with o32 code for complex shared library
arrangements (but this may have also been a SysV style binary vs a SGI
style binary too).  The in-tree MIPS toolchain is adequate, but likely
we'd be better off upgrading.

Warner


More information about the freebsd-mips mailing list