exynos4412
文章平均质量分 88
一口Linux
《从零开始学ARM》作者,长期分享嵌入式、linux、网络、arm知识。
展开
-
exynos 4412 电源管理芯片PMIC 的配置及使用方法
开发板:迅为4412精英版。uboot:uboot-2014-10。PMIC:SAMSUNG S5M8767A 在移植新版u-boot的时候,上网搜电源管理芯片的使用方法资料,发现几乎没有,就算是datasheet也很难下载得到,不知是何原因?我只能理解成这部分知识比较简单,没人愿意写吧。但记录一下原理和使用方法做为备忘,总归没有什么坏处。另外仍然需要提前声明的是,这里只提供官方手册推荐的配置方法,自由玩法不保证可行及稳定性。一、概览LDO和BUCK的概念:请参考《嵌...原创 2021-02-25 08:51:04 · 2148 阅读 · 0 评论 -
2.移植uboot-添加2440单板,并实现NOR、NAND启动
1.首先在uboot里新建单板24401.1将2410的单板文件夹拷贝成2440:cd board/samsung/cp smdk2410 smdk2440 -rf //拷贝文件夹,然后将smdk2440下的smdk2410.c改为smdk2440.c,以及修改更改好的Makefile1.2将2410的头文件拷贝成2440:cd ../../include/configs/cp smdk2410.h smdk2440.h2.新建...原创 2021-02-11 23:40:09 · 476 阅读 · 0 评论 -
移植uboot-分析uboot启动流程(详解)
本节总结:uboot启动流程如下:1)设置CPU为管理模式 2)关看门狗 3)关中断 4)设置时钟频率 5)关mmu,初始化各个bank 6)进入board_init_f()函数(初始化定时器,GPIO,串口等,划分内存区域) 7)重定位 复制uboot,然后修改SDRAM上的uboot链接地址) 8)清bss 9)跳转到board_init_r()函数,启动流程结束1.首先来安装arm-linux-gcc-4.3.2交叉编译器mkdir arm-li...原创 2021-02-11 23:39:23 · 3698 阅读 · 2 评论 -
uboot的作用和功能
uboot是用来干什么的,有什么作用?uboot 属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核所以,由上面描述的,就知道,UBOOT需要具有读写flash的能力。uboot是怎样引导启动内核的?uboot刚开始被放到flash中,板子上电后,会自动把其中的一部分代码拷到内存中执行,这部分代码负责把剩余的uboot代码拷到内存中,然后uboot代码再把kernel部分代码也拷到内存中,并且启动,内核启动后,挂着根文件系统,原创 2021-02-11 23:37:34 · 542 阅读 · 0 评论 -
Exynos4412——SD卡启动
实现Tiny4412从SD卡的启动内核与根文件系统。前面启动开发板时,需要从SD卡启动Uboot,然后从DNW下载内核和根文件系统到RAM,或者NFS挂载根文件系统。Uboot应该是支持SD卡的,可以从SD卡读取内核。Uboot把控制权交给内核后,内核必须要支持SD卡,才能访问SD卡的根文件系统,因此需要移植SD卡驱动。1.关于启动的理解嵌入式Linux开发一般需要至少三个文件:Bootloader(Uboot)、Kernel(uImage)、根文件系统(rootfs)。Kernel-3.x加原创 2021-02-11 11:08:55 · 826 阅读 · 0 评论 -
dm9000a驱动源码分析
dm9000a框架原理图:EEPROM Interface接口用于存放mac地址,InternalSRAM用于存放收发数据,MII部分把MAC部分与PHY部分连接起来通信,AUTO-MDIX用于自适应10/100M网络,在物理层上,MAC在PHY之下。由dm9000a驱动可知,dm9000a驱动是用platform模型编写的,分析一个驱动源码都是从模块加载函数module_init()开始,而dm9000a加载函数是module_init(dm9000_init)....原创 2021-02-11 10:52:43 · 495 阅读 · 0 评论 -
Linux-网卡驱动介绍以及制作虚拟网卡驱动(详解)
1.描述网卡的驱动其实很简单,它还是与硬件相关,主要是负责收发网络的数据包,它将上层协议传递下来的数据包以特定的媒介访问控制方式进行发送, 并将接收到的数据包传递给上层协议。网卡设备与字符设备和块设备不同, 网络设备并不对应于/dev目录下的文件,不过会存放在/sys/class/net目录下如下图所示,我们通过ls /sys/class/net/ 命令,可以看到有两个网卡:2.Linux系统对网络设备驱动定义了4个层次, 这4个层次有到下分为:1)网络协议接口层:实现统..原创 2021-02-11 10:40:50 · 4824 阅读 · 2 评论 -
Linux-DM9000C网卡移植(详解)
上一节 我们学习了: 网卡驱动介绍以及制作虚拟网卡驱动: http://www.cnblogs.com/lifexy/p/7763352.html接下来本节,学习网卡芯片DM9000C,如何编写移植DM9000C网卡驱动程序。1.首先来看DM9000C原理图如下图所示: (#:表示低电平有效)SD0~15:16位数据线,有CMD引脚决定访问类型 CMD: 命令线,当CMD为高,表示SD 传输的是数据,CMD为低表示传输的是地址 INT: ...原创 2021-02-11 10:41:25 · 483 阅读 · 0 评论 -
移植uboot-支持yaffs烧写,打补丁
1. 修改uboot支持yaffs首先,每个命令都会对应一个文件,比如nand命令对应的common/cmd_nand.c而我们使用nand命令时,便会进入do_nand()函数,位于common/cmd_nand.c1.1do_nand()函数代码如下所示:int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]){ ... ... if (strncmp(cmd, "read", 4) ==原创 2021-02-12 08:34:05 · 429 阅读 · 0 评论 -
移植uboot-设置默认环境变量,裁剪,并分区
在上一章使uboot支持网卡传输文件后,但是每次启机时,环境变量都要变为默认值,需要重新设置ip,MAC地址才行,由于没有配置mtdparts命令,启动内核也不成功所以本章主要学习:1)修改环境变量默认值 2)裁剪uboot 3)分区,设置mtdparts命令1.修改之前,先来理解下uboot的环境参数首先,uboot会去校验(CRC)存放环境变量的一段空间 ,若CRC有效则使用该空间里的环境变量,无效则用默认的环境变量.而我们移植的uboot,由于一直没有使用save,所以没有读.原创 2021-02-12 08:33:35 · 1223 阅读 · 0 评论 -
4.移植uboot-使uboot支持DM9000网卡
本节继续修改让uboot支持DM9000C网卡,便可以通过网络来传输文件首先uboot已带有dm9000网卡的驱动,位于drivers/net/下的dm9000x.h、dm9000x.c1.DM9000C介绍参考之前写的移植DM9000C驱动章节, 我们的DM9000是放在2440的bank4(0X20000000)的片选上面而DM9000的CMD引脚接在bank4的LADDR2上面也就是说当向0X20000000地址上读写数据时, 此时CMD为低,则读写的便是DM9000C的地址.原创 2021-02-12 08:31:56 · 602 阅读 · 0 评论 -
3.移植uboot-使板卡支持nor、nand
在上一章,我们添加了nor,nand启动后,uboot启动出如下图所示: 上面的Flash: *** failed ***是属于uboot第二阶段函数board_init_r()里的代码, 代码如下所示(位于arch/arm/lib/board.c):/*第二阶段*/void board_init_r(gd_t *id, ulong dest_addr) //gd uboot重定位地址{ ... ... puts("Flash: ");...原创 2021-02-11 23:42:56 · 408 阅读 · 0 评论 -
嵌入式linux开发uboot移植(七)——三星官方uboot的移植
嵌入式linux开发uboot移植(七)——三星官方uboot的移植友善之臂Smart210开发板是基于三星SMDKV210评估板裁剪、调整而来的。因此三星官方发布的基于SMDKV210评估板的uboot是移植uboot到Smart210开发板的最合适uboot版本。本文将SMDKV210的uboot移植到Smart210开发板。Smart210开发板的配置如下:SoC:Samsung S5PV210SDRAM:512MB DDR2 RAMFLASH存...原创 2021-02-17 09:19:00 · 520 阅读 · 0 评论 -
嵌入式linux开发uboot移植(五)——uboot命令体系
嵌入式linux开发uboot移植(五)——uboot命令体系本文将根据SMDKV210开发板的三星官方uboot源码分析uboot的命令体系。内容 包括uboot的命令体系的实现机制,uboot命令是如何执行的,以及如何在uboot中添加一个自定义的命令。一、uboot命令体系简介uboot命令体系代码放在uboot/common中,包括cmd_xxx.c、command.c、main.c源码文件。uboot实现命令体系的方法是每一个uboot命令对应一个函数,与sh...原创 2021-02-17 09:18:45 · 357 阅读 · 0 评论 -
嵌入式linux开发uboot移植(六)——uboot环境变量
嵌入式linux开发uboot移植(六)——uboot环境变量一、uboot环境变量简介u-boot的缺省情况下会有一些基本的环境变量,当执行saveenv时,环境变量会保存到flash存储设备中。如果环境变量的值为空,则uboot会使用uboot代码中的值;如果环境变量不为空,则优先使用环境变量的值。默认环境变量在uboot源码中common/Env_common.c文件中。 uchardefault_environment[CFG_ENV_SIZE]={ ...原创 2021-02-17 09:18:53 · 926 阅读 · 0 评论 -
嵌入式linux开发uboot移植(四)——uboot启动内核的机制
嵌入式linux开发uboot移植(四)——uboot启动内核的机制一、嵌入式系统的分区嵌入式系统部署在Flash设备上时,对于不同SoC和Flash设备,bootloader、kernel、rootfs的分区是不同的。三星S5PV210规定启动设备的分区方案如下:SD/MMC设备的分区方案:NandFlash设备的分区方案:嵌入式系统在启动时,uboot、kernel、rootfs不能随意存放,必须存放在规划好的相应分区,在启动过程中uboot、kernel会...原创 2021-02-17 09:18:37 · 693 阅读 · 0 评论 -
嵌入式linux开发uboot移植(三)——uboot启动过程源码分析
一、uboot启动流程简介与大多数BootLoader一样,uboot的启动过程分为BL1和BL2两个阶段。BL1阶段通常是开发板的配置等设备初始化代码,需要依赖依赖于SoC体系结构,通常用汇编语言来实现;BL2阶段主要是对外部设备如网卡、Flash等的初始化以及uboot命令集等的自身实现,通常用C语言来实现。1、BL1阶段uboot的BL1阶段代码通常放在start.s文件中,用汇编语言实现,其主要代码功能如下:(1)指定uboot的入口。在链接脚本uboot....原创 2021-02-17 09:18:14 · 675 阅读 · 0 评论 -
嵌入式linux开发uboot移植(一)——uboot项目简介
一、uboot简介U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM、8xxROM、PPCBOOT逐步发展演化而来的开放源码项目。在操作系统方面,U-Boot不仅支持嵌入式Linux系统的引导,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android嵌入式操作系统。目前支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Es...原创 2021-02-17 09:17:34 · 877 阅读 · 0 评论 -
嵌入式linux开发uboot移植(二)——uboot工程源码目录分析
嵌入式linux开发uboot移植(二)——uboot工程源码目录分析本文分析的uboot为uboot_smdkv210,是三星官方发布的基于S5PV210评估开发板对应的uboot。一、uboot源码目录结构解析1、cpu本文件夹下的子文件与处理器相关,每个文件夹代表一种CPU系列。每个子目录中都包括cpu.c、interrupts.c、start.S文件。cpu.c主要用于初始化CPU、设置指令Cache和数据Cache等interrupt.c主要...原创 2021-02-17 09:17:52 · 673 阅读 · 1 评论 -
从0移植uboot (一) _配置分析
和绝大多数源码编译安装一样,uboot的编译流程也类似于"make config->make->make install"**三步,只是由于uboot本身是针对多种平台的bootloader,软件的复杂性和通用型决定了编译uboot需要自行填补很多坑。本文主要讨论的就是移植uboot-2013.01的第一个坑——uboot分析。配置编译环境既然要编译uboot,首先就要有相应的编译器,我的目标板是三星的exynos4412,就是一个ARM核的SoC,这意味着两件事,第一,我编译的时候必须原创 2021-02-18 11:36:23 · 684 阅读 · 0 评论 -
DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)
关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基于linux3.14.78,用设备树匹配,移植过程中调试和整体理解很重要,一路上幸有良师益友指点,下面详细介绍:1.物理时序分析相关 DM9000芯片是DAVICOM公司生产的一款以太网处理芯片,提供一个通用的处理器接口、一个10/100M自适应的PHY芯片和4K双字的SRAM.内部框架如下,涉及到4原创 2021-02-19 18:29:57 · 480 阅读 · 0 评论 -
如何在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘
硬件:迅为iTop 4412精英版 & TF卡软件:系统自带终端即可首先,我们应该清楚TF/SD卡可以看作一张完全空白的“白纸”,之所以有分区、分区格式的区别不过是在在这张“白纸”的某些特定位置写入了一些数据来指示分区、分区格式。其次,我们还应该清楚,在TF/SD启动模式下,exynos 4412一上电,内部iROM会从TF/SD的第1个Block(第512个字节开始)读取8KB的数据到内部iRAM,然后从内部iRAM的0地址开始运行。原理搞清楚了,那么首先需要把T...原创 2021-02-25 08:27:09 · 787 阅读 · 0 评论 -
exynos 4412 时钟配置
时钟初始化的一般方法和顺序,u-boot、普通裸机程序如果需要都可以使用。—————————————————————————————-本文解决的问题:1、宏观上几个大模块的时钟配置顺序。2、小模块的时钟选择、分频和一般的配置顺序。3、对小模块来说,官方手册推荐的时钟源选择问题。4、本文只以手册的“推荐配置”进行说明,“自由玩法”不保证稳定性。—————————————————————————————-多路选择器选择原则:1、尽量保持默认配置不动。2、尽量选择前端.原创 2021-02-25 08:25:56 · 943 阅读 · 0 评论 -
dm9000网卡,uboot代码分析
uboot移植(九)移植网卡DM9000LouisGou 2018-06-09 20:37:04 786 收藏 2 分类专栏: uboot 文章标签: uboot版权一、原理TQ210 板载的网卡芯片是 DM9000A,接在 S5PV210 的 SROM 控制器的 BANK1 上。S5PV210 的 SROM 控制器支持 8/16 位 NOR Flash/PROM/SRAM 内存。 分为 6 个 bank,每个 bank 寻址空间达 128MB。 每个 bank 有一个原创 2021-02-23 21:10:12 · 554 阅读 · 0 评论 -
u-boot board_uart_init流程
来源于http://www.cnblogs.com/humaoxiao原创 2021-02-25 08:45:59 · 396 阅读 · 0 评论 -
2014-10 u-boot 顶层config.mk分析
Based on u-boot-2014-10.顶层config.mk的内容并不长,这里全部贴出来吧。这里以已经执行完make trats_defconfig(这个流程可以参看:《2014-10 u-boot make xxx_defconfig 过程分析》),在顶层目录已经生成了.config文件为例,说明config.mk中各变量的取值。15PLATFORM_RELFLAGS:=16PLATFORM_CPPFLAGS:=17PLATFORM_LDFLAGS:=...原创 2021-02-25 08:45:27 · 426 阅读 · 0 评论 -
2014-10 u-boot make过程分析
Based on u-boot-2014-10.当我们已经做完make xxx_defconfig后(这个流程可以参看:《2014-10 u-boot make xxx_defconfig 过程分析》),在源码顶层目录生成.config文件,然后我们执行make命令,下面是它的流程:make默认make all所有的目标,而all的定义如下:all: $(ALL-y)需要条件$(ALL-y),而$(ALL-y)的定义如下:ALL-y+= u-boo...原创 2021-02-25 08:44:53 · 598 阅读 · 0 评论 -
2014-10 u-boot make xxx_defconfig 过程分析
Based on u-boot-2014-10.当我们执行make xxx_defconfig时,顶层Makefile中唯一的匹配目标是:%config:scripts_basic outputmakefile FORCE +$(Q)$(CONFIG_SHELL) $(srctree)/scripts/multiconfig.sh$@依赖条件1:scripts_basicscripts_basic: $(Q)$(MAKE) $(build)=scri...原创 2021-02-25 08:44:18 · 418 阅读 · 0 评论 -
exynos 4412 eMMC配置及使用方法
开发板:迅为4412精英版。uboot:uboot-2014-10。开发板上的eMMC:三星KLMxGxxEMx-B031 容量4GB 使用eMMC 5.0标准。exynos4412上的eMMC控制器:使用的eMMC4.41标准。参考文档:见文末。参考文档 [2] 需要到JESD网站下载。此款三星eMMC兼容e.MMC 5.0标准协议,但是4412的eMMC控制器是使用的e.MMC 4.4标准,这样的搭配是不是不太好暂且不表。一、时钟1.1 eMMC时钟部分最基...原创 2021-02-25 08:42:54 · 818 阅读 · 0 评论