移植uboot201609到qq2440

移植uboot201609到qq2440


從ftp://ftp.denx.de/pub/u-boot/下載源碼u-boot-2016.09.tar.bz2

複製文件
 cp configs/smdk2410_defconfig   configs/smdk2440_defconfig
cp include/configs/smdk2410.h  include/configs/smdk2440.h
cp -r board/samsung/smdk2410/  board/samsung/smdk2440
mv board/samsung/smdk2440/smdk2410.c   board/samsung/smdk2440/smdk2440.c

修改board/samsung/smdk2440/Makefile文件內容
obj-y   := smdk2410.o
obj-y   := smdk2440.o

修改configs/smdk2440_defconfig
CONFIG_TARGET_SMDK2440=y
CONFIG_SYS_PROMPT="SMDK2440 # "

修改board/samsung/smdk2440/Kconfig文件內容
if TARGET_SMDK2440
config SYS_BOARD
        default "smdk2440"
config SYS_VENDOR
        default "samsung"
config SYS_SOC
        default "s3c24x0"
config SYS_CONFIG_NAME
        default "smdk2440"
endif


修改文件vim arch/arm/Kconfig
添加config TARGET_SMDK2440
        bool "Support smdk2440"
        select CPU_ARM920T

source "board/samsung/smdk2440/Kconfig"

修改文件vim arch/arm/include/asm/mach-types.h 
#define MACH_TYPE_SMDK2440             198

#ifdef CONFIG_ARCH_SMDK2440
# ifdef machine_arch_type
#  undef machine_arch_type
#  define machine_arch_type     __machine_arch_type
# else
#  define machine_arch_type     MACH_TYPE_SMDK2440
# endif
# define machine_is_smdk2440()  (machine_arch_type == MACH_TYPE_SMDK2440)
#else
# define machine_is_smdk2440()  (0)
#endif


修改Makefile文件
添加
ARCH=arm
CROSS_COMPILE ?= arm-linux-



1. 設置PLL的時鐘的函數在_main中的board_init_f中初始化函數列表中的  boad_early_init_f 中,設置MPLL倍頻值。它應該要在設置分頻係數和初始化內存控制器之前來設置。

             smdk2410.c可以註釋掉:  

      /* to reduce PLL lock time, adjust the LOCKTIME register */
         //writel(0xFFFFFF, &clk_power->locktime);

      /* configure MPLL */
         //writel((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV,
           //     &clk_power->mpllcon);

    在start.S中再設置:

複製代碼
  #if 0
    /* FCLK:HCLK:PCLK = 1:2:4 */
    /* default FCLK is 120 MHz ! */
    ldr    r0, =CLKDIVN
    mov    r1, #3
    str    r1, [r0]
  #else
        /* 2. 設置時鐘 400MHz */
        ldr r0, =0x4c000014
        //  mov r1, #0x03;            // FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1
        mov r1, #0x05;            // FCLK:HCLK:PCLK=1:4:8
        str r1, [r0]
        /* 如果HDIVN非0,CPU的總線模式應該從“fast bus mode”變爲“asynchronous bus mode” */
        mrc p15, 0, r1, c1, c0, 0       /* 讀出控制寄存器 */
        orr r1, r1, #0xc0000000         /* 設置爲“asynchronous bus mode” */
        mcr p15, 0, r1, c1, c0, 0       /* 寫入控制寄存器 */
    
        #define S3C2440_MPLL_400MHZ     ((0x5c<<12)|(0x01<<4)|(0x01))
        /* MPLLCON = S3C2440_MPLL_200MHZ */
        ldr r0, =0x4c000004
        ldr r1, =S3C2440_MPLL_400MHZ
        str r1, [r0]
  
        /* 啓動ICACHE */
        mrc p15, 0, r0, c1, c0, 0   @ read control reg
        orr r0, r0, #(1<<12)
        mcr p15, 0, r0, c1, c0, 0   @ write it back
  #endif
複製代碼

 

  2.內存控制器的設置值改爲如下:/board/samsung/smdk2410/lowlevel_init.S 

複製代碼
SMRDATA:
#if 0
    .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
    .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))
    .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))
    .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))
    .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))
    .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))
    .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))
    .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
    .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
    .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
    .word 0x32
    .word 0x30
    .word 0x30
#else

  .long 0x22011110     //BWSCON
  .long 0x00000700     //BANKCON0
  .long 0x00000700     //BANKCON1
  .long 0x00000700     //BANKCON2
  .long 0x00000700     //BANKCON3
  .long 0x00000700     //BANKCON4
  .long 0x00000700     //BANKCON5
  .long 0x00018005     //BANKCON6
  .long 0x00018005     //BANKCON7
  .long 0x008C04F4     //REFRESH
  .long 0x000000B1     //BANKSIZE
  .long 0x00000030     //MRSRB6
  .long 0x00000030     //MRSRB7

 #endif


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章