u-boot-2011.06移植

发布时间:2024-07-10  

u-boot-2011.06虽然支持一些常见的开发板,但如果u-boot-2011.06不支持我们手上的开发板,那就要找到与我们的开发板最接近的u-boot-2011.06所支持的开发板,在这个开发板的基础上进行移植。u-boot-2011.06所支持的smdk2410开发板是最接近我的开发板的,所以我就在该此基础上进行修改、移植。

 

在移植之前,我们还需要安装、配置eldk,用于编译u-boot。下面我们就先介绍一下eldk的安装与配置:

1.下载eldk

        在ftp://ftp.denx.de/pub/eldk/选择任一版本的eldk并下载,我选择的是eldk4.2版本的arm-2008-11-24.iso文件。把该文件下载到/home/zhaocj/download/目录下。

2.在root权限下安装eldk

        创建挂载点:

mkdir   /mnt/dvdrom

        挂载光驱:

mount  –o loop /home/zhaocj/download/arm-2008-11-24.iso/mnt/dvdrom

        安装eldk:

cd   /mnt/dvdrom

./install –d /opt/eldk4.2/

       这样eldk就安装到了/opt/eldk4.2目录下。

3.设置环境变量

cd  ~

gedit   .bashrc

        在最后添加如下内容:

export  CROSS_COMPILE=arm-linux-

export  PATH=/opt/eldk4.2/bin: /opt/eldk4.2/usr/bin:$PATH

        保存并退出,然后执行:

source  .bashrc

        重启电脑就完成了eldk的安装。

 

       下面就介绍u-boot-2011.06的移植,在这里我把我的开发板命名为gq2440:

1.下载u-boot

        在ftp://ftp.denx.de/pub/u-boot/下载目前最新的u-boot版本(即u-boot-2011.06.tar.bz2)到我的用户主目录下。

2.解压u-boot

cd  ~

        把u-boot-2011.06解压到当前目录下

tar  –xvjf u-boot-2011.06.tar.bz2

cd  u-boot-2011.06

3.在u-boot中添加我的开发板信息

emacs  boards.cfg

       打开boards.cfg文件,在第70行(smdk2410 arm arm920t – samsung s3c24x0)的下面添加一行,内容如下:

gq2440 arm arm920t – samsung s3c24x0

       保存并退出。

4.通过复制的方式添加我的开发板头文件

cp include/configs/smdk2410.h include/configs/gq2440.h

5.通过复制的方式添加我的开发板文件夹

cp –r board/samsung/smdk2410 board/samsung/gq2440

       更改文件名

mv board/samsung/gq2440/smdk2410.c board/samsung/gq2440/gq2440.c

       修改Makefile文件

emacs board/samsung/gq2440/Makefile

       打开Makefile文件,在第28行中,把COBJS :=smdk2410.o改为:

COBJS:=gq2440.o

       保存并退出。

6.编译

make   distclean

make   gq2440_config

make

      

        如果上述过程没有出错的话,会在u-boot的目录下出现新的u-boot.bin文件。

2 NorFlash启动移植方法

.修改宏定义

打开include/configs/gq2440.h文件

第38行“#define CONFIG_S3C2410        ”改为:

38:#define CONFIG_S3C2440         

目的是告之系统本开发板使用的是S3C2440处理器。

 

第131行“#define CONFIG_SYS_PROMPT     "SMDK2410 # "”改为:

131:#define CONFIG_SYS_PROMPT      "gq2440# "

目的是使命令行提示符显示为“gq2440# ”。

 

第185行“#define CONFIG_FLASH_CFI_LEGACY”改为:

185:#define CONFIG_SYS_CFI_FLASH_CONFIG_REGS    {0xFFFF}

因为在u-boot-2011.06中,使用的是CFI的NorFlash接口,所以不需要定义CONFIG_FLASH_CFI_LEGACY,而是要定义CONFIG_SYS_CFI_FLASH_CONFIG_REGS。

 

第191行“#define CONFIG_SYS_MAX_FLASH_SECT (19)”改为:

191:#define CONFIG_SYS_MAX_FLASH_SECT   (35)

因为本开发板使用的NorFlash是EN29LV160AB,它有35个扇区。

 

第212行“#define CONFIG_NAND_S3C2410”改为:

212:#define CONFIG_NAND_S3C2440

 

第213行“#define CONFIG_SYS_S3C2410_NAND_HWECC”改为:

213:#define CONFIG_SYS_S3C2440_NAND_HWECC

 

2.修改系统时钟频率

打开arch/arm/cpu/arm920t/start.s文件

第164行“# if defined(CONFIG_S3C2410)”改为:

164:# if defined(CONFIG_S3C2440)

 

第165行“ldr       r1, =0x3ff”改为:

165:ldr r1, =0x7fff

目的是屏蔽所有子中断。

 

第173行“mov     r1, #3”改为:

173:mov      r1, #5

目的是使FCLK:HCLK:PCLK= 1:4:8。

 

打开board/samsung/gq2440/gq2440.c文件

第42行至第44行的内容改为:

42:#define M_MDIV   92

43:#define M_PDIV    1

44:#define M_SDIV    1

本开发板的输入晶振频率为12MHz,通过上面的修改,则MPLL频率为400MHz。

 

第54行至第56行的内容改为:

54:#define U_M_MDIV     56

55:#define U_M_PDIV      2

56:#define U_M_SDIV      2

通过上面的修改,则UPLL频率为48MHz。

 

3.修改内存SDRAM时序

打开board/samsung/gq2440/lowlevel_init.s文件

第54行至第126行的内容改为:

54:#define B1_BWSCON          (DW16)

55:#define B2_BWSCON          (DW16)

56:#define B3_BWSCON          (DW16)

57:#define B4_BWSCON          (DW32)

58:#define B5_BWSCON          (DW16)

59:#define B6_BWSCON          (DW32)

60:#define B7_BWSCON          (DW32)

61:

62:

63:#define B0_Tacs                   0x3

64:#define B0_Tcos                   0x3

65:#define B0_Tacc                   0x7

66:#define B0_Tcoh                  0x3

67:#define B0_Tah                    0x3

68:#define B0_Tacp                  0x1

69:#define B0_PMC                  0x0

70:

71:

72:#define B1_Tacs                   0x1

73:#define B1_Tcos                   0x1

74:#define B1_Tacc                   0x6

75:#define B1_Tcoh                  0x1

76:#define B1_Tah                    0x1

77:#define B1_Tacp                  0x0

78:#define B1_PMC                  0x0

79:

80:#define B2_Tacs                   0x1

81:#define B2_Tcos                   0x1

82:#define B2_Tacc                   0x6

83:#define B2_Tcoh                  0x1

84:#define B2_Tah                    0x1

85:#define B2_Tacp                  0x0

86:#define B2_PMC                  0x0

87:

88:#define B3_Tacs                   0x1

89:#define B3_Tcos                   0x1

90:#define B3_Tacc                   0x6

91:#define B3_Tcoh                  0x1

92:#define B3_Tah                    0x1

93:#define B3_Tacp                  0x0

94:#define B3_PMC                  0x0

95:

96:#define B4_Tacs                   0x1

97:#define B4_Tcos                   0x1

98:#define B4_Tacc                   0x6

99:#define B4_Tcoh                  0x1

100:#define B4_Tah                  0x1

101:#define B4_Tacp                 0x0

102:#define B4_PMC                0x0

103:

104:#define B5_Tacs                 0x1

105:#define B5_Tcos                 0x1

106:#define B5_Tacc                 0x6

107:#define B5_Tcoh                0x1

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>