mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
MIPS: Probe watch registers and report configuration.
Probe for watch register characteristics, and report them in /proc/cpuinfo. Signed-off-by: David Daney <ddaney@avtrex.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
6aa3524c18
commit
654f57bfb4
2 changed files with 13 additions and 2 deletions
|
@ -21,6 +21,7 @@
|
||||||
#include <asm/fpu.h>
|
#include <asm/fpu.h>
|
||||||
#include <asm/mipsregs.h>
|
#include <asm/mipsregs.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
#include <asm/watch.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Not all of the MIPS CPUs have the "wait" instruction available. Moreover,
|
* Not all of the MIPS CPUs have the "wait" instruction available. Moreover,
|
||||||
|
@ -677,6 +678,7 @@ static inline void spram_config(void) {}
|
||||||
static inline void cpu_probe_mips(struct cpuinfo_mips *c)
|
static inline void cpu_probe_mips(struct cpuinfo_mips *c)
|
||||||
{
|
{
|
||||||
decode_configs(c);
|
decode_configs(c);
|
||||||
|
mips_probe_watch_registers(c);
|
||||||
switch (c->processor_id & 0xff00) {
|
switch (c->processor_id & 0xff00) {
|
||||||
case PRID_IMP_4KC:
|
case PRID_IMP_4KC:
|
||||||
c->cputype = CPU_4KC;
|
c->cputype = CPU_4KC;
|
||||||
|
|
|
@ -23,6 +23,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
|
||||||
unsigned int version = cpu_data[n].processor_id;
|
unsigned int version = cpu_data[n].processor_id;
|
||||||
unsigned int fp_vers = cpu_data[n].fpu_id;
|
unsigned int fp_vers = cpu_data[n].fpu_id;
|
||||||
char fmt [64];
|
char fmt [64];
|
||||||
|
int i;
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
if (!cpu_isset(n, cpu_online_map))
|
if (!cpu_isset(n, cpu_online_map))
|
||||||
|
@ -50,8 +51,16 @@ static int show_cpuinfo(struct seq_file *m, void *v)
|
||||||
seq_printf(m, "tlb_entries\t\t: %d\n", cpu_data[n].tlbsize);
|
seq_printf(m, "tlb_entries\t\t: %d\n", cpu_data[n].tlbsize);
|
||||||
seq_printf(m, "extra interrupt vector\t: %s\n",
|
seq_printf(m, "extra interrupt vector\t: %s\n",
|
||||||
cpu_has_divec ? "yes" : "no");
|
cpu_has_divec ? "yes" : "no");
|
||||||
seq_printf(m, "hardware watchpoint\t: %s\n",
|
seq_printf(m, "hardware watchpoint\t: %s",
|
||||||
cpu_has_watch ? "yes" : "no");
|
cpu_has_watch ? "yes, " : "no\n");
|
||||||
|
if (cpu_has_watch) {
|
||||||
|
seq_printf(m, "count: %d, address/irw mask: [",
|
||||||
|
cpu_data[n].watch_reg_count);
|
||||||
|
for (i = 0; i < cpu_data[n].watch_reg_count; i++)
|
||||||
|
seq_printf(m, "%s0x%04x", i ? ", " : "" ,
|
||||||
|
cpu_data[n].watch_reg_masks[i]);
|
||||||
|
seq_printf(m, "]\n");
|
||||||
|
}
|
||||||
seq_printf(m, "ASEs implemented\t:%s%s%s%s%s%s\n",
|
seq_printf(m, "ASEs implemented\t:%s%s%s%s%s%s\n",
|
||||||
cpu_has_mips16 ? " mips16" : "",
|
cpu_has_mips16 ? " mips16" : "",
|
||||||
cpu_has_mdmx ? " mdmx" : "",
|
cpu_has_mdmx ? " mdmx" : "",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue