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

📄 cep.c

📁 嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计 AD接口实验 CAN总线通信实验 GPS通信实验 Linux内核移植与编译实验 IC卡读写实验 SD驱动使
💻 C
字号:
/* * linux/arch/arm/mach-sa1100/cep.c * * Author: Matthias Gorjup * * This file contains all Cep - specific tweaks. * * 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/config.h>#include <linux/init.h>#include <linux/kernel.h>#include <linux/sched.h>#include <linux/tty.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/serial_core.h>#include <asm/hardware.h>#include <asm/setup.h>#include <asm/page.h>#include <asm/pgtable.h>#include <asm/mach/arch.h>#include <asm/mach/map.h>#include <asm/mach/serial_sa1100.h>#include "generic.h"extern void convert_to_tag_list(struct param_struct *params, int mem_init);static void __initfixup_cep(struct machine_desc *desc, struct param_struct *params,	      char **cmdline, struct meminfo *mi){	struct tag *t = (struct tag *)params;	/*	 * Apparantly bootldr uses a param_struct.  Groan.	 */	if (t->hdr.tag != ATAG_CORE)		convert_to_tag_list(params, 1);	if (t->hdr.tag != ATAG_CORE) {		t->hdr.tag = ATAG_CORE;		t->hdr.size = tag_size(tag_core);		t->u.core.flags = 0;		t->u.core.pagesize = PAGE_SIZE;		t->u.core.rootdev = RAMDISK_MAJOR << 8 | 0;		t = tag_next(t);		t->hdr.tag = ATAG_MEM;		t->hdr.size = tag_size(tag_mem32);		t->u.mem.start = 0xc0000000;		t->u.mem.size  = 32 * 1024 * 1024;		t = tag_next(t);		t->hdr.tag = ATAG_RAMDISK;		t->hdr.size = tag_size(tag_ramdisk);		t->u.ramdisk.flags = 1;		t->u.ramdisk.size = 8192;		t->u.ramdisk.start = 0;		t = tag_next(t);		t->hdr.tag = ATAG_INITRD;		t->hdr.size = tag_size(tag_initrd);		t->u.initrd.start = 0xc0800000;		t->u.initrd.size = 3 * 1024 * 1024;		t = tag_next(t);		t->hdr.tag = ATAG_NONE;		t->hdr.size = 0;	}}static struct map_desc cep_io_desc[] __initdata = { /* virtual     physical    length      domain     r  w  c  b */  { 0xe8000000, 0x00000000, 0x02000000, DOMAIN_IO, 0, 1, 0, 0 }, /* Flash bank 0 */  LAST_DESC};static void __init cep_map_io(void){	sa1100_map_io();	iotable_init(cep_io_desc);	sa1100_register_uart(0, 1);	/* com port */	sa1100_register_uart(2, 3);	/* radio module */	/*	 * Ensure that these pins are set as outputs and are driving	 * logic 0.  This ensures that we won't inadvertently toggle	 * the WS latch in the CPLD, and we don't float causing	 * excessive power drain.  --rmk	 */	GPDR |= GPIO_SSP_TXD | GPIO_SSP_SCLK | GPIO_SSP_SFRM;	GPCR = GPIO_SSP_TXD | GPIO_SSP_SCLK | GPIO_SSP_SFRM;	/*	 * Set up registers for sleep mode.	 */	PWER = PWER_GPIO0;	PGSR = 0;	PCFR = 0;	PSDR = 0;}MACHINE_START(CEP, "Iskratel Cep")	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)	BOOT_PARAMS(0xc0000100)	FIXUP(fixup_cep)	MAPIO(cep_map_io)	INITIRQ(sa1100_init_irq)MACHINE_END

⌨️ 快捷键说明

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