本次移植是使u-boot支持网络,并能使用tftp功能,以及支持命令补全功能。

本次移植建立在上次版本上。

首先修改real210.h在最后增加下面的代码

/** Ethernet Contoller driver 网络配置*/#define CONFIG_DM9000
#define CONFIG_DRIVER_DM9000    1
#define CONFIG_DM9000_BASE      (0x88000300)
#define CONFIG_DM9000_USE_16BIT
#define DM9000_IO               CONFIG_DM9000_BASE
#define DM9000_DATA             (CONFIG_DM9000_BASE+0x4)
#define DM9000_16BIT_DATA#define CONFIG_CMD_PING#define CONFIG_BOOTARGS     "console=ttySAC2,115200 noinitrd root=/dev/mtdblock2 init=/linuxrc"
#define CONFIG_ETHADDR      00:22:12:34:56:90
#define CONFIG_NETMASK          255.255.255.0
#define CONFIG_IPADDR       192.168.1.20
#define CONFIG_SERVERIP     192.168.1.22
#define CONFIG_GATEWAYIP    192.168.1.1
/*auto complete command*/
#define CONFIG_CMDLINE_EDITING
#define CONFIG_AUTO_COMPLETE    /*实现命令补全功能*/
#define CONFIG_

具体的地址为什么是这个地址,请参考s5pv210的用户手册。

然后修改板级文件real210.c,改成如下:

/**  Copyright (C) 2008-2009 Samsung Electronics*  Minkyu Kang <mk7.kang@samsung.com>*  Kyungmin Park <kyungmin.park@samsung.com>** See file CREDITS for list of people who contributed to this* project.** This program is free software; you can redistribute it and/or* modify it under the terms of the GNU General Public License as* published by the Free Software Foundation; either version 2 of* the License, or (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place, Suite 330, Boston,* MA 02111-1307 USA*/#include <common.h>
#include <asm/io.h>
#include <asm/arch/sromc.h>
#include <asm/arch/gpio.h>
#include <netdev.h>
#include <s5pc110.h>#define DM9000_Tacs   (0x0)   // 0clk     address set-up
#define DM9000_Tcos (0x4)   // 4clk     chip selection set-up
#define DM9000_Tacc (0xE)   // 14clk    access cycle
#define DM9000_Tcoh (0x1)   // 1clk     chip selection hold
#define DM9000_Tah  (0x4)   // 4clk     address holding time
#define DM9000_Tacp (0x6)   // 6clk     page mode access cycle
#define DM9000_PMC  (0x0)   // normal(1data)page mode configuration#define CS8900_Tacs  (0x0)   // 0clk     address set-up
#define CS8900_Tcos (0x3)   // 4clk     chip selection set-up
#define CS8900_Tacc (0x7)   // 14clk    access cycle
#define CS8900_Tcoh (0x1)   // 1clk     chip selection hold
#define CS8900_Tah  (0x3)   // 4clk     address holding time
#define CS8900_Tacp (0x6)   // 6clk     page mode access cycle
#define CS8900_PMC  (0x0)   // normal(1data)page mode configurationDECLARE_GLOBAL_DATA_PTR;
static void dm9000_pre_init(void)
{unsigned int tmp;#if defined(DM9000_16BIT_DATA)SROM_BW_REG &= ~(0xf << 4);SROM_BW_REG |= (0<<7) | (0<<6) | (1<<5) | (1<<4);
#else   SROM_BW_REG &= ~(0xf << 20);SROM_BW_REG |= (0<<19) | (0<<18) | (0<<16);
#endif
#ifdef CONFIG_SMC911XSROM_BC1_REG = ((CS8900_Tacs<<28)+(CS8900_Tcos<<24)+(CS8900_Tacc<<16)+(CS8900_Tcoh<<12)+(CS8900_Tah<<8)+(CS8900_Tacp<<4)+(CS8900_PMC));
#endif
#ifdef CONFIG_DRIVER_DM9000SROM_BC1_REG = ((DM9000_Tacs<<28)|(DM9000_Tcos<<24)|(DM9000_Tacc<<16)|(DM9000_Tcoh<<12)|(DM9000_Tah<<8)|(DM9000_Tacp<<4)|(DM9000_PMC));
#endif  tmp = MP01CON_REG;tmp &=~(0xf<<4);tmp |=(2<<4);MP01CON_REG = tmp;
}
int board_init(void)
{
#ifdef CONFIG_SMC911Xsmc9115_pre_init();
#endif
#ifdef CONFIG_DRIVER_DM9000dm9000_pre_init();
#endifgd->bd->bi_arch_number = MACH_TYPE_SMDKC100;gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;return 0;
}int dram_init(void)
{gd->ram_size = get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE)*2;/*long unsigned int size1,size2;size1 = get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);size2 = get_ram_size((long *)PHYS_SDRAM_2, PHYS_SDRAM_2_SIZE);gd->ram_size = size1 + size2;*/return 0;
}void dram_init_banksize(void)
{gd->bd->bi_dram[0].start = PHYS_SDRAM_1;gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;gd->bd->bi_dram[1].start = PHYS_SDRAM_2;gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
}#ifdef CONFIG_DISPLAY_BOARDINFO
int checkboard(void)
{printf("Board:\treal210\n");return 0;
}
#endifint board_eth_init(bd_t *bis)
{int rc = 0;
#ifdef CONFIG_SMC911Xrc = smc911x_initialize(0, CONFIG_SMC911X_BASE);
#endif
#ifdef CONFIG_DM9000rc = dm9000_initialize(bis);
#endifreturn rc;
}

与之间具体的不同请自行对比。

主要就是这些了,make一下,试试。

成功的结果如下所示:

u-boot移植第四弹——2013.10u-boot增加dm9000的支持相关推荐

  1. u-boot移植第五弹——2013.10u-boot通过tftp下载到内存中运行

    本次修改是很重要的,实现的功能是不必通过SD卡启动u-boot,使用tftp功能下载u-boot到内存然后使用go命令直接跳转到对应的内存地址即可. 为什么说本次移植很重要呢,原因是为了调试方便.可以 ...

  2. u-boot移植第三弹——移植2013.10u-boot到RealARM210 cortex-A8开发板(支持moviNAND_Fusing_Tool_v2.0)

    在移植2012.10过程中遇到个麻烦的问题,到写这篇文章的时候还是没找原因在哪,导致无法正常运行.我遇到的问题如下:__bss_start和__bss_end__这两个地址无法正确得到地址,也就是bs ...

  3. python高频面试题_2019下半年金九银十Python高频面试题(第四弹)

    第四弹来了,Python高频面试题总结! 一. 将字符串 "k:1 |k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2, str1 = "k:1|k1:2| ...

  4. mysql 日均pv100w_日均百万PV架构第四弹(分布式监控)_MySQL

    应该能更早出的第四弹,被虚拟机错误搅乱,迟迟没有上线,不得已将所有 节点用puppet完成上线,稍后整理第五弹(非你不可自动化)也即将上线 : ) zabbix简介 zabbix是基于Php的开源监控 ...

  5. docker 打包镜像_Spring Boot2 系列教程(四十一)部署 Spring Boot 到远程 Docker 容器

    不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 Tomcat 容器中运行?不过据松哥了解,容器化部署应该是目前的主流方案. 不同于传 ...

  6. vue大括号里接受一个函数_vue源码探究(第四弹)

    vue源码探究(第四弹) 结束了上一part的数据代理,这一部分主要讲讲vue的模板解析,感觉这个有点难理解,而且内容有点多,hhh. 模板解析 废话不多说,先从简单的入手. 按照之前的套路,先举一个 ...

  7. MaxCompute - ODPS重装上阵 第四弹 - CTE,VALUES,SEMIJOIN

    摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务. MaxCompute除了持续优化性能外,也 ...

  8. 面试算法基础及编程 第四弹 (字符串、数值类、或其他常见相关)

    // # -*- coding:utf-8 -*- // # @Author: Mr.chen(ai-chen2050@qq.com) // # @Date: 2018-08-18 21:06:30 ...

  9. Spring Boot:(四)开发Web应用之JSP篇

    Spring Boot:(四)开发Web应用之JSP篇 前言 上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天来介绍一下如何使用SpringBoot官方不推荐的jsp,虽然难度 ...

最新文章

  1. 我的电脑点不开问题解决方法?
  2. css中 margin: 0px 254px 0px 254px; 是什么意思。
  3. hdu3786 Floyd或搜索 水题
  4. 【二分法万能模板,告别死循环、越界】Leecode 69. Sqrt(x)——Leecode日常刷题系列
  5. Hadoop学习之yarn
  6. Zimbra系统资料
  7. 手机UI界面模板psd源文件格式!
  8. nginx-ingress-controller开启modsecurity
  9. Cheat Engine(CE)的下载和安装指南以及相关教程
  10. 数据从hana倒回Oracle的方法,SAP HANA SLT 将Oracle表 数据同步到HANA数据库
  11. JAVA-判断三阶矩阵是否满秩
  12. QStackedWidget切换动画实现以及尝试过程中花点、花屏、背景无法透明解决处理
  13. storyboard(故事版)新手教程 图文详解 1.创建一个无约束的导航栏加选项卡(tabbar)故事版
  14. 【网络】正向代理和反向代理
  15. 卡巴斯基分析报告:宠物追踪器面临的潜在风险
  16. HTML5文件选择框(各种类型)
  17. 【技术工坊42期】区块链子链技术及墨客链的实现方案
  18. 高效开发,项目中是否有聚合服务接口
  19. python实现判断闰年
  20. 数据分析处理库——Pandas

热门文章

  1. 多功能雨伞项目计划书_雨伞项目投资计划书
  2. npoi 执行公式_生成excel文件时NPOI无法计算公式
  3. 电脑壁纸励志_励志文案丨关于学习的文案,大家加油!
  4. seir模型启发式算法_好文荐读|选址问题的启发式方法
  5. 计算机的键盘功能,电脑键盘功能
  6. 深度学习入门笔记系列(一)——深度学习框架 tensorflow 的介绍与安装
  7. 同时存多个变量缓存 微信小程序_CPU缓存一致性协议MESI,memory barrier和java volatile...
  8. udp java_Java实现Udp网络编程
  9. android media_rw sdcard_rw,大约Android 了解权限管理
  10. linux文件和目录管理指令,Linux 命令(文件和目录管理 - cat)