linux-mips
[Top] [All Lists]

Re: [PATCH 3/16] Kconfig update for lemote fulong mini-PC

To: "Uhler, Mike" <uhler@mips.com>
Subject: Re: [PATCH 3/16] Kconfig update for lemote fulong mini-PC
From: Ralf Baechle <ralf@linux-mips.org>
Date: Thu, 19 Apr 2007 01:34:10 +0100
Cc: Fuxin Zhang <fxzhang@ict.ac.cn>, tiansm@lemote.com, linux-mips@linux-mips.org, Fuxin Zhang <zhangfx@lemote.com>
In-reply-to: <692AB3595F5D76428B34B9BEFE20BC1FC1D733@Exchange.mips.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <11766507651736-git-send-email-tiansm@lemote.com> <11766507661317-git-send-email-tiansm@lemote.com> <11766507661726-git-send-email-tiansm@lemote.com> <11766507662638-git-send-email-tiansm@lemote.com> <20070418120620.GE3938@linux-mips.org> <46261DE2.5040908@ict.ac.cn> <692AB3595F5D76428B34B9BEFE20BC1FC1D723@Exchange.mips.com> <20070418163806.GA27199@linux-mips.org> <692AB3595F5D76428B34B9BEFE20BC1FC1D733@Exchange.mips.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4.2.2i
On Wed, Apr 18, 2007 at 03:27:16PM -0700, Uhler, Mike wrote:

> Note that both of these apply to pre-MIPS64 processors.  In a MIPS64
> implementation, The Status.PX bit should be used to enable 64-bit
> operations without enabling 64-bit addressing.  The Status.XX bit is
> gone and can't be set.  The addressing boundary condition that Bill
> mentioned is explicitly address in the Architecture for Programmer's
> manual, Volume III, section 4.10 as a requirement for hardware in
> exactly this case.
> 
> I realize that Loongson is a MIPS III processor where Bill's suggestion
> may apply, but it's not a general problem moving forward to MIPS64.

Linux limits the address space to 0x7fff8000 for 32-bit processes.  For
sake of simplicity and symmetry we do this on both 32-bit and 64-bit
kernels, on all processors.  A 64-bit kernel always runs userspace
processes with UX=1.  Since a 32-bit process cannot create mappings
above the low 2GB there isn't an actual need to use PX.

(I think there is a small bug in this scheme though, a process that is
accessing a 64-bit userspace address that isn't a 32-bit address should
be sent a SIGBUS but will actually receive a SIGSEGV.  But that's a
subtility and also requires extrapolating from an API documents that only
covers a strict 32-bit universe.)

  Ralf

<Prev in Thread] Current Thread [Next in Thread>