⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 id.c

📁 linux 内核源代码
💻 C
字号:
/* * Davinci CPU identification code * * Copyright (C) 2006 Komal Shah <komal_shah802003@yahoo.com> * * Derived from OMAP1 CPU identification code. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <asm/io.h>#define JTAG_ID_BASE		0x01c40028struct davinci_id {	u8	variant;	/* JTAG ID bits 31:28 */	u16	part_no;	/* JTAG ID bits 27:12 */	u32	manufacturer;	/* JTAG ID bits 11:1 */	u32	type;		/* Cpu id bits [31:8], cpu class bits [7:0] */};/* Register values to detect the DaVinci version */static struct davinci_id davinci_ids[] __initdata = {	{		/* DM6446 */		.part_no      = 0xb700,		.variant      = 0x0,		.manufacturer = 0x017,		.type	      = 0x64460000,	},};/* * Get Device Part No. from JTAG ID register */static u16 __init davinci_get_part_no(void){	u32 dev_id, part_no;	dev_id = davinci_readl(JTAG_ID_BASE);	part_no = ((dev_id >> 12) & 0xffff);	return part_no;}/* * Get Device Revision from JTAG ID register */static u8 __init davinci_get_variant(void){	u32 variant;	variant = davinci_readl(JTAG_ID_BASE);	variant = (variant >> 28) & 0xf;	return variant;}void __init davinci_check_revision(void){	int i;	u16 part_no;	u8 variant;	part_no = davinci_get_part_no();	variant = davinci_get_variant();	/* First check only the major version in a safe way */	for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) {		if (part_no == (davinci_ids[i].part_no)) {			system_rev = davinci_ids[i].type;			break;		}	}	/* Check if we can find the dev revision */	for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) {		if (part_no == davinci_ids[i].part_no &&		    variant == davinci_ids[i].variant) {			system_rev = davinci_ids[i].type;			break;		}	}	printk("DaVinci DM%04x variant 0x%x\n", system_rev >> 16, variant);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -