OK210 uboot 配置 笔记

来源:互联网 发布:淘宝上传的图片不清楚 编辑:程序博客网 时间:2024/05/14 13:55

U-Bootuniversal bootloader,也就是通用的bootloader。

U-Boot 源码文件下包括一些目录文件和文本文件,这些文件可分为与平台相关的文件与平台无关的文件,其中common文件夹下的文件就是与平台无关的文件;与平台相关的文件又分为CPU级相关的文件和与板级相关的文件:arch目录下的文件就是与CPU级相关的文件,而boarddriversinclude等文件夹下的文件都是与板级相关的文件。我们在移植的过程中,需要修改的文件也就是这些与平台相关的文件。

内存采用了464Mbit x 16 I/Os1Gb DDR2 SDRAM。


①解压源码后进入目录执行make forlinx_linux_config:

CURDIR 为 makefile 内嵌变量,即当前路径 参考http://qgjie456.blog.163.com/blog/static/354513672007629677779/

 <span style="white-space:pre"></span>SRCTREE:= $(CURDIR)MKCONFIG:= $(SRCTREE)/mkconfigifneq ($(OBJTREE),$(SRCTREE))obj := $(OBJTREE)/src := $(SRCTREE)/else        obj :=        src :=        endif        export obj srcforlinx_linux_config :unconfig@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110 linux@echo "TEXT_BASE = 0xcc800000" > $(obj)board/samsung/smdkc110/config.mk</span>

等效于mkconfig forlinx_linux arm s5pc11x amdkc110 samsung s5pc110 linux

board/samsung/smdkc110/config.mk中内容为"TEXT_BASE = 0xcc800000"


②mkconfig分析:

#$0       $1     $2   $3      $4      $5     $6      $7#mkconfig forlinx_linux arm s5pc11x smdkc110 samsung s5pc110 linuxAPPEND=no# Default: Create new config fileBOARD_NAME=""# Name to print in make output#$#为参数个数,排除掉-- -a -n选项while [ $# -gt 0 ] ; docase "$1" in--) shift ; break ;;-a) shift ; APPEND=yes ;;-n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;*)  break ;;esacdone#BOARD_NAME 设置为 forlinx_linux[ "${BOARD_NAME}" ] || BOARD_NAME="$1"#参数个数即不小于4,也不大于7[ $# -lt 4 ] && exit 1[ $# -gt 7 ] && exit 1echo "Configuring for ${BOARD_NAME} board..."if [ "$SRCTREE" != "$OBJTREE" ] ; then#执行下方elsecd ./include#进入includerm -f asmln -s asm-$2 asm#设置asm-arm 指向 asmfirm -f asm-$2/archif [ -z "$6" -o "$6" = "NULL" ] ; thenln -s ${LNPREFIX}arch-$3 asm-$2/archelseln -s ${LNPREFIX}arch-$6 asm-$2/arch #设置arch-s5pc110 指向 asm-arm/arch fi# create link for s5pc11x SoCif [ "$3" = "s5pc11x" ] ; then        rm -f regs.h        ln -s $6.h regs.h#s5pc110指向regs.h        rm -f asm-$2/arch        ln -s arch-$3 asm-$2/arch#arch-s5pc11x 指向 asm-arm/archfiif [ "$2" = "arm" ] ; thenrm -f asm-$2/procln -s ${LNPREFIX}proc-armv asm-$2/proc#proc-armv指向asm-arm/procfi## Create include file for Make#echo "ARCH   = $2" >  config.mkecho "CPU    = $3" >> config.mkecho "BOARD  = $4" >> config.mk[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC    = $6" >> config.mk#./include/config.mk中的内容ARCH   = armCPU    = s5pc11xBOARD  = smdkc110VENDOR = samsungSOC    = s5pc110#if [ "$APPEND" = "yes" ]# Append to existing config filethenecho >> config.h#建立config.helse> config.h# Create new config filefiecho "/* Automatically generated - do not edit */" >>config.h#forlinx add if [ "$7" = "linux" ]thenecho "#define CONFIG_LINUX_FORLINX  1" >>config.helseecho "#define CONFIG_ANDROID_FORLINX 1" >>config.h#linux下输入这一句fi#echo "#include <configs/$1.h>" >>config.h#forlinx change  for linux and android echo "#include <configs/smdkv210single.h>" >>config.h#输入#./include/config.h的内容/* Automatically generated - do not edit */#define CONFIG_LINUX_FORLINX  1#include <configs/smdkv210single.h>#


综上,即:

BOARD_NAME 设置为 forlinx_linux  

设置./include/asm-arm 指向 ./include/asm

设置./include/arch-s5pc110 指向 ./include/asm-arm/arch 后又被替换

s5pc110指向regs.h

arch-s5pc11x 指向 asm-arm/arch

proc-armv指向asm-arm/proc

新建./include/config.mk中的内容
ARCH   = arm
CPU    = s5pc11x
BOARD  = smdkc110
VENDOR = samsung
SOC    = s5pc110

新建./include/config.h的内容
/* Automatically generated - do not edit */
#define CONFIG_LINUX_FORLINX  1
#include <configs/smdkv210single.h>



0 0
原创粉丝点击