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

📄 config.c

📁 linux-2.6.15.6
💻 C
字号:
/***************************************************************************//* *  linux/arch/m68knommu/platform/68VZ328/config.c * *  Copyright (C) 1993 Hamish Macdonald *  Copyright (C) 1999 D. Jeff Dionne *  Copyright (C) 2001 Georges Menie, Ken Desmet * * This file is subject to the terms and conditions of the GNU General Public * License.  See the file COPYING in the main directory of this archive * for more details. *//***************************************************************************/#include <linux/config.h>#include <linux/types.h>#include <linux/kernel.h>#include <linux/mm.h>#include <linux/tty.h>#include <linux/console.h>#include <linux/kd.h>#include <linux/netdevice.h>#include <asm/setup.h>#include <asm/system.h>#include <asm/pgtable.h>#include <asm/irq.h>#include <asm/machdep.h>#include <asm/MC68VZ328.h>#include <asm/bootstd.h>#ifdef CONFIG_INIT_LCD#include "bootlogo.h"#endif/***************************************************************************/void m68328_timer_init(irqreturn_t (*timer_routine) (int, void *, struct pt_regs *));void m68328_timer_tick(void);unsigned long m68328_timer_gettimeoffset(void);void m68328_timer_gettod(int *year, int *mon, int *day, int *hour, int *min, int *sec);/***************************************************************************//*                        Init Drangon Engine hardware                     *//***************************************************************************/#if defined(CONFIG_DRAGEN2)static void m68vz328_reset(void){	local_irq_disable();#ifdef CONFIG_INIT_LCD	PBDATA |= 0x20;				/* disable CCFL light */	PKDATA |= 0x4;				/* disable LCD controller */	LCKCON = 0;#endif	__asm__ __volatile__(		"reset\n\t"		"moveal #0x04000000, %a0\n\t"		"moveal 0(%a0), %sp\n\t"		"moveal 4(%a0), %a0\n\t"		"jmp (%a0)"	);}static void init_hardware(char *command, int size){#ifdef CONFIG_DIRECT_IO_ACCESS	SCR = 0x10;					/* allow user access to internal registers */#endif	/* CSGB Init */	CSGBB = 0x4000;	CSB = 0x1a1;	/* CS8900 init */	/* PK3: hardware sleep function pin, active low */	PKSEL |= PK(3);				/* select pin as I/O */	PKDIR |= PK(3);				/* select pin as output */	PKDATA |= PK(3);			/* set pin high */	/* PF5: hardware reset function pin, active high */	PFSEL |= PF(5);				/* select pin as I/O */	PFDIR |= PF(5);				/* select pin as output */	PFDATA &= ~PF(5);			/* set pin low */	/* cs8900 hardware reset */	PFDATA |= PF(5);	{ int i; for (i = 0; i < 32000; ++i); }	PFDATA &= ~PF(5);	/* INT1 enable (cs8900 IRQ) */	PDPOL &= ~PD(1);			/* active high signal */	PDIQEG &= ~PD(1);	PDIRQEN |= PD(1);			/* IRQ enabled */#ifdef CONFIG_68328_SERIAL_UART2	/* Enable RXD TXD port bits to enable UART2 */	PJSEL &= ~(PJ(5) | PJ(4));#endif#ifdef CONFIG_INIT_LCD	/* initialize LCD controller */	LSSA = (long) screen_bits;	LVPW = 0x14;	LXMAX = 0x140;	LYMAX = 0xef;	LRRA = 0;	LPXCD = 3;	LPICF = 0x08;	LPOLCF = 0;	LCKCON = 0x80;	PCPDEN = 0xff;	PCSEL = 0;	/* Enable LCD controller */	PKDIR |= 0x4;	PKSEL |= 0x4;	PKDATA &= ~0x4;	/* Enable CCFL backlighting circuit */	PBDIR |= 0x20;	PBSEL |= 0x20;	PBDATA &= ~0x20;	/* contrast control register */	PFDIR |= 0x1;	PFSEL &= ~0x1;	PWMR = 0x037F;#endif}/***************************************************************************//*                      Init RT-Control uCdimm hardware                    *//***************************************************************************/#elif defined(CONFIG_UCDIMM)static void m68vz328_reset(void){	local_irq_disable();	asm volatile ("		moveal #0x10c00000, %a0;		moveb #0, 0xFFFFF300;		moveal 0(%a0), %sp;		moveal 4(%a0), %a0;		jmp (%a0);	");}unsigned char *cs8900a_hwaddr;static int errno;_bsc0(char *, getserialnum)_bsc1(unsigned char *, gethwaddr, int, a)_bsc1(char *, getbenv, char *, a)static void init_hardware(char *command, int size){	char *p;	printk(KERN_INFO "uCdimm serial string [%s]\n", getserialnum());	p = cs8900a_hwaddr = gethwaddr(0);	printk(KERN_INFO "uCdimm hwaddr %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",		p[0], p[1], p[2], p[3], p[4], p[5]);	p = getbenv("APPEND");	if (p)		strcpy(p, command);	else		command[0] = 0;}/***************************************************************************/#elsestatic void m68vz328_reset(void){}static void init_hardware(char *command, int size){}/***************************************************************************/#endif/***************************************************************************/void config_BSP(char *command, int size){	printk(KERN_INFO "68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n");#if defined(CONFIG_BOOTPARAM)	strncpy(command, CONFIG_BOOTPARAM_STRING, size);	command[size-1] = 0;#else	memset(command, 0, size);#endif	init_hardware(command, size);	mach_sched_init = (void *) m68328_timer_init;	mach_tick = m68328_timer_tick;	mach_gettimeoffset = m68328_timer_gettimeoffset;	mach_gettod = m68328_timer_gettod;	mach_reset = m68vz328_reset;}/***************************************************************************/

⌨️ 快捷键说明

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