brep 发表于 2018-3-21 19:39:28

查看龙芯的处理器版本号

本帖最后由 brep 于 2018-3-27 00:35 编辑

版本号寄存器PRIDMIPS CPU中的Processor Revision Identifier (PRID)寄存器中包含了处理器的版本信息。根据See Mips Run所讲,这个寄存器的各个域分别表示:
[*](31:24) Company Options
[*](23:16) Company ID
[*](15:8) Processor ID
[*](7:0) Revision
打印PRID的值打印PRID的值需要使用只能在核心态使用的特权指令mfc0,因此只能编写内核模块。$ cat prid.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");

static int prid_init(void)
{
        int prid;
        asm (
                "mfc0 %, $15, 0\n"
                : "=r" (prid)
        );
        printk(KERN_ALERT "prid=0x%X\n", prid);
        return 0;
}

static void prid_exit(void)
{
        printk(KERN_ALERT "prid exit\n");
}

module_init(prid_init);
module_exit(prid_exit);$ cat Makefile
MODDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

obj-m += prid.o

modules:
        $(MAKE) -C $(MODDIR) M=$(PWD) modules

clean:
        rm -rf *.o *.ko *.cmd *.mod.* Module.symvers modules.order

.PHONY: modules
$ make
$ sudo insmod prid.ko
$ sudo rmmod prid.ko
$ sudo dmesg | tail -n2
prid=0x146309
prid exit
$

龙芯3A3000的处理器版本号由输出结果可以看出,笔者所用的龙芯3A3000 CPU的版本号为:
[*]Company Options = 0
[*]Company ID = 0x14
[*]Processor ID = 0x63
[*]Revision = 0x09


sn2015ol 发表于 2018-4-12 01:40:28

挺详细的

cyberhero 发表于 2020-3-5 10:38:27

prid=0x146309
我的也一樣

VG2018 发表于 2020-3-6 14:19:40

详细,很有用。谢谢。

龙博士 发表于 2020-11-11 17:00:54

感谢
页: [1]
查看完整版本: 查看龙芯的处理器版本号