| To: | "Maciej W. Rozycki" <macro@linux-mips.org> |
|---|---|
| Subject: | Re: [Fwd: [bug report] 0xffffffffc0000000 can't be used on bcm1250] |
| From: | Ralf Baechle <ralf@linux-mips.org> |
| Date: | Mon, 13 Oct 2008 17:29:06 +0100 |
| Cc: | weiwei wang <veivei.vang@gmail.com>, mason@broadcom.com, linux-mips@linux-mips.org |
| In-reply-to: | <alpine.LFD.1.10.0810131508390.9667@ftp.linux-mips.org> |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| References: | <48EC9894.4080201@gmail.com> <20081008115001.GA21596@linux-mips.org> <48ED5BA5.4070301@gmail.com> <20081009131554.GB22796@linux-mips.org> <48EEBFE8.1000501@gmail.com> <alpine.LFD.1.10.0810101138180.19747@ftp.linux-mips.org> <48F2BC15.70408@gmail.com> <alpine.LFD.1.10.0810131508390.9667@ftp.linux-mips.org> |
| Sender: | linux-mips-bounce@linux-mips.org |
| User-agent: | Mutt/1.5.18 (2008-05-17) |
On Mon, Oct 13, 2008 at 04:18:04PM +0100, Maciej W. Rozycki wrote:
> /*
> + * To avoid the BCM1250 M3 erratum check whether EntryHi is consistent
> + * with BadVAddr and return for the exception to retrigger if not.
> + */
> +static void __cpuinit build_bcm1250_m3_war(u32 **p, struct uasm_reloc **r)
> +{
> + uasm_i_dmfc0(p, K0, C0_BADVADDR);
> + uasm_i_dmfc0(p, K1, C0_ENTRYHI);
> + uasm_i_xor(p, K0, K0, K1);
> + uasm_i_dsll(p, K1, K0, 24);
> + uasm_i_dsrl32(p, K1, K1, (24 + PAGE_SHIFT + 1) - 32);
> + uasm_i_dsrl32(p, K0, K0, 30);
> + uasm_i_or(p, K0, K0, K1);
> + uasm_il_bnez(p, r, K0, label_leave);
The workaround is beginning to be relativly expensive. We're investing 8
instructions extra only to verify that the content of c0_entryhi is
correct. I haven't tried yet but me seems by avoiding the use of c0_context
entirely relying only on badvaddr we may be able to get away cheaper.
Btw, adding linux-mips to the cc list. This really should be public.
Ralf
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [2.6 patch] net/au1000_eth.c MDIO namespace fixes, David Miller |
|---|---|
| Next by Date: | [PATCH 2/2] show_cpuinfo prints the name of the calling CPU, which i think is wrong., Johannes Dickgreber |
| Previous by Thread: | [PATCH][MIPS] Kill unused <asm/debug.h> inclusions, Shinya Kuribayashi |
| Next by Thread: | Re: [Fwd: [bug report] 0xffffffffc0000000 can't be used on bcm1250], Maciej W. Rozycki |
| Indexes: | [Date] [Thread] [Top] [All Lists] |