From: Florian Fainelli <f.fainelli@gmail.com>
To: "Maciej W. Rozycki" <macro@imgtec.com>
Cc: linux-mips@linux-mips.org, Ralf Baechle <ralf@linux-mips.org>,
blogic@openwrt.org, cernekee@gmail.com, jon.fraser@broadcom.com,
pgynther@google.com, paul.burton@imgtec.com,
ddaney.cavm@gmail.com
Subject: Re: [PATCH 1/6] MIPS: BMIPS: Disable pref 30 for buggy CPUs
Date: Tue, 9 Feb 2016 14:40:19 -0800 [thread overview]
Message-ID: <56BA6AD3.9050308@gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1602092101240.15885@tp.orcam.me.uk>
On 09/02/16 13:19, Maciej W. Rozycki wrote:
> On Tue, 9 Feb 2016, Florian Fainelli wrote:
>
>> +static void bmips5000_pref30_quirk(void)
>> +{
>> + __asm__ __volatile__(
>> + " .word 0x4008b008\n" /* mfc0 $8, $22, 8 */
>> + " lui $9, 0x0100\n"
>> + " or $8, $9\n"
>> + /* disable "pref 30" on buggy CPUs */
>> + " lui $9, 0x0800\n"
>> + " or $8, $9\n"
>> + " .word 0x4088b008\n" /* mtc0 $8, $22, 8 */
>> + : : : "$8", "$9");
>> +}
>
> Ouch, why not using our standard accessors and avoid magic numbers, e.g.:
Are you positive the assembler will not barf on these custom cp0 reg 22
selectors?
>
> #define read_c0_brcm_whateverthisiscalled() \
> __read_32bit_c0_register($22, 8)
> #define write_c0_brcm_whateverthisiscalled(val) \
> __write_32bit_c0_register($22, 8, val)
>
> #define BMIPS5000_WHATEVERTHISISCALLED_BIT_X 0x0100
> #define BMIPS5000_WHATEVERTHISISCALLED_BIT_Y 0x0800
>
> static void bmips5000_pref30_quirk(void)
> {
> unsigned int whateverthisiscalled;
>
> whateverthisiscalled = read_c0_brcm_whateverthisiscalled();
> whateverthisiscalled |= BMIPS_WHATEVERTHISISCALLED_BIT_X;
> /* disable "pref 30" on buggy CPUs */
> whateverthisiscalled |= BMIPS_WHATEVERTHISISCALLED_BIT_Y;
> write_c0_brcm_whateverthisiscalled(whateverthisiscalled);
> }
>
> ? I'm leaving it up to you to select the right names here -- just about
> anything will be better than the halfway-binary piece you have proposed.
These are not standardized registers in any form, which is why these are
in a halfway-binary form, they are not meant to be re-used outside of
two known places: disabling pref30 and enabling "rotr".
>
> FYI, we already have BMIPS5000 accessors defined up to ($22, 7) in
> <asm/mipsregs.h> so it will be the right place for the new ones as well.
>
> Maciej
>
--
Florian
next prev parent reply other threads:[~2016-02-09 22:41 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-09 20:55 [PATCH 0/6] MIPS: BMIPS: RIXI and workarounds support Florian Fainelli
2016-02-09 20:55 ` [PATCH 1/6] MIPS: BMIPS: Disable pref 30 for buggy CPUs Florian Fainelli
2016-02-09 21:01 ` Florian Fainelli
2016-02-09 23:42 ` Petri Gynther
2016-02-09 23:45 ` Florian Fainelli
2016-02-09 21:19 ` Maciej W. Rozycki
2016-02-09 21:19 ` Maciej W. Rozycki
2016-02-09 22:40 ` Florian Fainelli [this message]
2016-02-09 23:52 ` Maciej W. Rozycki
2016-02-09 23:52 ` Maciej W. Rozycki
2016-02-10 0:04 ` Florian Fainelli
2016-02-10 0:54 ` Maciej W. Rozycki
2016-02-10 0:54 ` Maciej W. Rozycki
2016-02-10 9:20 ` Ralf Baechle
2016-02-10 9:22 ` Ralf Baechle
2016-02-10 14:20 ` Maciej W. Rozycki
2016-02-10 14:20 ` Maciej W. Rozycki
2016-02-09 20:55 ` [PATCH 2/6] MIPS: BMIPS: Add early CPU initialization code Florian Fainelli
2016-02-09 20:55 ` [PATCH 3/6] MIPS: Allow RIXI to be used on non-R2 or R6 cores Florian Fainelli
2016-02-09 20:55 ` [PATCH 4/6] MIPS: Move RIXI exception enabling after vendor-specific cpu_probe Florian Fainelli
2016-02-09 20:55 ` [PATCH 5/6] MIPS: BMIPS: BMIPS4380 and BMIPS5000 support RIXI Florian Fainelli
2016-02-09 20:55 ` [PATCH 6/6] MIPS: Expose current_cpu_data.options through debugfs Florian Fainelli
2016-02-10 10:46 ` Ralf Baechle
2016-02-11 1:58 ` Florian Fainelli
2016-03-29 1:38 ` [PATCH 0/6] MIPS: BMIPS: RIXI and workarounds support Florian Fainelli
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=56BA6AD3.9050308@gmail.com \
--to=f.fainelli@gmail.com \
--cc=blogic@openwrt.org \
--cc=cernekee@gmail.com \
--cc=ddaney.cavm@gmail.com \
--cc=jon.fraser@broadcom.com \
--cc=linux-mips@linux-mips.org \
--cc=macro@imgtec.com \
--cc=paul.burton@imgtec.com \
--cc=pgynther@google.com \
--cc=ralf@linux-mips.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox