Commit a6496491 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Dave Kleikamp

[PATCH] /proc/cpuinfo fixes for G5

This adds a "timbase" entry in /proc/cpuinfo like p/iSeries that
provides the CPU timebase frequency.  It is using by a all sort of
performance analysis tools we are hacking in house.

It also remove a useless bit about the l2 cache that was copied over
from ppc32.
parent fbd90331
...@@ -95,6 +95,7 @@ void __pmac pmac_show_cpuinfo(struct seq_file *m) ...@@ -95,6 +95,7 @@ void __pmac pmac_show_cpuinfo(struct seq_file *m)
PMAC_MB_INFO_MODEL, 0); PMAC_MB_INFO_MODEL, 0);
unsigned int mbflags = pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL, unsigned int mbflags = pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL,
PMAC_MB_INFO_FLAGS, 0); PMAC_MB_INFO_FLAGS, 0);
extern unsigned long ppc_tb_freq;
if (pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL, PMAC_MB_INFO_NAME, if (pmac_call_feature(PMAC_FTR_GET_MB_INFO, NULL, PMAC_MB_INFO_NAME,
(long)&mbname) != 0) (long)&mbname) != 0)
...@@ -127,20 +128,11 @@ void __pmac pmac_show_cpuinfo(struct seq_file *m) ...@@ -127,20 +128,11 @@ void __pmac pmac_show_cpuinfo(struct seq_file *m)
seq_printf(m, "detected as\t: %d (%s)\n", mbmodel, mbname); seq_printf(m, "detected as\t: %d (%s)\n", mbmodel, mbname);
seq_printf(m, "pmac flags\t: %08x\n", mbflags); seq_printf(m, "pmac flags\t: %08x\n", mbflags);
/* Checks "l2cr-value" property in the registry */
np = find_devices("cpus");
if (np == 0)
np = find_type_devices("cpu");
if (np != 0) {
unsigned int *l2cr = (unsigned int *)
get_property(np, "l2cr-value", NULL);
if (l2cr != 0) {
seq_printf(m, "l2cr override\t: 0x%x\n", *l2cr);
}
}
/* Indicate newworld */ /* Indicate newworld */
seq_printf(m, "pmac-generation\t: NewWorld\n"); seq_printf(m, "pmac-generation\t: NewWorld\n");
/* Indicate timebase value */
seq_printf(m, "timebase\t: %lu\n", ppc_tb_freq);
} }
......
...@@ -39,6 +39,8 @@ ...@@ -39,6 +39,8 @@
extern void setup_default_decr(void); extern void setup_default_decr(void);
extern unsigned long ppc_tb_freq;
/* Apparently the RTC stores seconds since 1 Jan 1904 */ /* Apparently the RTC stores seconds since 1 Jan 1904 */
#define RTC_OFFSET 2082844800 #define RTC_OFFSET 2082844800
...@@ -151,6 +153,7 @@ void __init pmac_calibrate_decr(void) ...@@ -151,6 +153,7 @@ void __init pmac_calibrate_decr(void)
tb_to_us = mulhwu_scale_factor(freq, 1000000); tb_to_us = mulhwu_scale_factor(freq, 1000000);
div128_by_32( 1024*1024, 0, tb_ticks_per_sec, &divres ); div128_by_32( 1024*1024, 0, tb_ticks_per_sec, &divres );
tb_to_xs = divres.result_low; tb_to_xs = divres.result_low;
ppc_tb_freq = freq;
setup_default_decr(); setup_default_decr();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment