From: Ralf Baechle <ralf@linux-mips.org>
To: "Kevin D. Kissell" <kevink@paralogos.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
ths@networkno.de, linux-mips@linux-mips.org,
michael@free-electrons.com
Subject: Re: [PATCH 1/1] mips: clear IV bit in CP0 cause if the CPU doesn't support divec
Date: Wed, 10 Sep 2008 13:50:20 +0200 [thread overview]
Message-ID: <20080910115020.GA19935@linux-mips.org> (raw)
In-Reply-To: <48C7AB71.8090106@paralogos.com>
On Wed, Sep 10, 2008 at 01:11:45PM +0200, Kevin D. Kissell wrote:
> I think it's important to know whether it's U-Boot or Linux that's confused.
> As Thomas Bogendoerfer pointed out, it's not good practice to flip bits
> whose
> use is unknown to the kernel. If in fact the CPU in question does
> support IV,
> was correctly identified as such by U-Boot, but isn't recognized by the MIPS
> Linux kernel, then we ought to fix Linux to recognize the CPU. If it
> doesn't
> support IV, but U-Boot thought it did, then U-Boot is broken and ought to
> be fixed. If you you're stuck with a broken U-Boot for some reason, then
> there ought to be some platform-specific place to put a hack.
What happened is this:
if (cpu_has_divec) {
if (cpu_has_mipsmt) {
unsigned int vpflags = dvpe();
set_c0_cause(CAUSEF_IV);
evpe(vpflags);
} else
set_c0_cause(CAUSEF_IV);
}
but include/asm-mips/mach-qemu/cpu-feature-overrides.h was defining
cpu_has_divec as 0. It should have been either undefined (for runtime
probing) or 1. Iow, it was a platform specific bug.
With the large number of wild pre-MIPS32/64 architecture variants around I
feel a little uneasy to just zero the field unless I know that bit 23
really is the IV bit on a particular processor. Just as an example, the
RM7000 has the IV bit on bit 24, not bit 23 like MIPS32 and the
functionality also differs a little.
Ralf
next prev parent reply other threads:[~2008-09-10 18:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-09 8:15 [PATCH 1/1] mips: clear IV bit in CP0 cause if the CPU doesn't support divec Thomas Petazzoni
2008-09-10 8:31 ` Thomas Bogendoerfer
2008-09-10 11:11 ` Kevin D. Kissell
2008-09-10 11:50 ` Ralf Baechle [this message]
2008-09-10 15:28 ` Shinya Kuribayashi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080910115020.GA19935@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=kevink@paralogos.com \
--cc=linux-mips@linux-mips.org \
--cc=michael@free-electrons.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=ths@networkno.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.