Module Name: src Committed By: mrg Date: Tue Jan 16 08:23:18 UTC 2018
Modified Files: src/sys/arch/sparc/include: cpu.h src/sys/arch/sparc/sparc: cache.c cache.h cpu.c cpuvar.h pmap.c src/sys/arch/sparc64/include: cpu.h src/sys/arch/sparc64/sparc64: cpu.c src/usr.sbin/cpuctl: cpuctl.c cpuctl.h src/usr.sbin/cpuctl/arch: arm.c i386.c noarch.c Added Files: src/sys/arch/sparc/sparc: cache_print.h src/usr.sbin/cpuctl/arch: sparc.c sparc64.c Log Message: implement cpuctl identify for sparc and sparc64. sparc: - move enum vactype and struct cacheinfo into cpu.h - move the cache flags from cpuinfo.flags into CACHEINFO.c_flags (this allows the new cache_printf_backend() to see them.) remove unused CPUFLG_CACHEIOMMUTABLES and CPUFLG_CACHEDVMA. - align xmpsg to 64 bytes - move cache_print() into cache_print.h so it can be shared with cpuctl. it only depends upon a working printf(). - if found, store the CPU node's "name" into cpu_longname. this changes the default output to show the local CPU not the generic CPU family. eg: cpu0 at mainbus0: mid 8: Ross,RT625 @ 90 MHz, on-chip FPU vs the generic "RT620/625" previously shown. - for each CPU export these things: - name - fpuname - mid - cloc - freq - psr impl and version - mmu impl, version, and number of contexts - cacheinfo structure (which changed for the first time ever with this commit.) sparc64: - add a minimal "cacheinfo" structure to export the i/d/e-cache size and linesize. - store %ver, cpu node "name" and cacheinfo in cpu_info. - set cpu_info ver, name and cacheinfo in cpu_attach(), and export them via sysctl, as well as CPU ID and clock freq cpuctl: - add identifycpu_bind() that returns false on !x86 as their identify routines do not need to run on a particular CPU to obtain its information, and use it to avoid trying to set affinity when not needed. - add sparc and sparc64 cpu identify support using the newly exported values. To generate a diff of this commit: cvs rdiff -u -r1.99 -r1.100 src/sys/arch/sparc/include/cpu.h cvs rdiff -u -r1.99 -r1.100 src/sys/arch/sparc/sparc/cache.c cvs rdiff -u -r1.35 -r1.36 src/sys/arch/sparc/sparc/cache.h cvs rdiff -u -r0 -r1.1 src/sys/arch/sparc/sparc/cache_print.h cvs rdiff -u -r1.250 -r1.251 src/sys/arch/sparc/sparc/cpu.c cvs rdiff -u -r1.94 -r1.95 src/sys/arch/sparc/sparc/cpuvar.h cvs rdiff -u -r1.361 -r1.362 src/sys/arch/sparc/sparc/pmap.c cvs rdiff -u -r1.123 -r1.124 src/sys/arch/sparc64/include/cpu.h cvs rdiff -u -r1.132 -r1.133 src/sys/arch/sparc64/sparc64/cpu.c cvs rdiff -u -r1.28 -r1.29 src/usr.sbin/cpuctl/cpuctl.c cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/cpuctl/cpuctl.h cvs rdiff -u -r1.1 -r1.2 src/usr.sbin/cpuctl/arch/arm.c cvs rdiff -u -r1.79 -r1.80 src/usr.sbin/cpuctl/arch/i386.c cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/cpuctl/arch/noarch.c cvs rdiff -u -r0 -r1.1 src/usr.sbin/cpuctl/arch/sparc.c \ src/usr.sbin/cpuctl/arch/sparc64.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.