uboot移植

 1.修改 Makefile
     使其支持smd2440
  2.複製頭文件  
     /include/configs/smdk2440.h
  3.複製board文件夾
      /board/smdk2440

  4.時鐘的設置

  5.sdram的配置
     位寬 刷新週期。。。

  6.支持 norflash 

       目的              ;   實現用命令擦除,燒寫nor flash 

       支持的norflash分類; uboot 1.1.6 默認支持amd_lv400  amd_lv800 或  CFI接口norflash  

                            (其他類型的norflash需要自己寫驅動)

        接口函數         ;   amd_lv400  amd_lv800 的接口函數在/board/smdk2440/flash.C  需要添加到 Makefile 裏

                             CFI接口norflash的接口函數在/drivers/Cfi_flash.c 中    

    類型選擇方式   ;   配置文件(/include/configs/smdk2440.h)中定義

                  CONFIG_AMD_LV400 或 CONFIG_AMD_LV400 或CFG_FLASH_CFI_DRIVER 

                  決定使用哪種 flash
  7.  支持串口xmodem協議 

         目的            使用securecrt工具操作 uboot

         常用的串口協議 xmodem ymodem zmodem

  8.支持網卡cs9000

         網卡屬於內存類接口  這配置sdram時 已經將其配置 

         主要檢查他的 位寬

         同時配置文件   (/include/configs/smdk2440.h)中做定義

         #define CONFIG_DRIVER_CS8900 1  
         #define CS8900_BASE
         #define CS8900_BUS16  

  9.支持dm9000

        同時配置文件   (/include/configs/smdk2440.h)中做定義

        #define CONFIG_DRIVER_DM9000  1
    #define CONFIG_DM9000_USE_16BIT  1
    #define CONFIG_DM9000_BASE   0x20000000
    #define DM9000_IO     0x20000000  
    #define DM9000_DATA     0x20000004
 10.支持 nandflash

       uboot 對nand的支持有新舊兩套代碼  /drivers/nand  /drivers/nand_legacy

       配置文件的配置     
             CONFIG_COMMANDS 中添加 CFG_CMD_NAND  

       兩套代碼的選擇

             默認選擇   /drivers/nand  當定義CFG_NAND_LEGACY
       一些宏的定義

            #define CFG_NAND_BASE           0  基地址
      #define CFG_MAX_NAND_DEVICE     1 設備個數
            #define NAND_MAX_CHIPS          1  一個設備由幾片 nand芯片組成

        nand的初始化函數   nand_init()

            nand_init()
                 -->nand_init_chip
                          --> board_nand_init(這個函數需要自己寫)

            在include/s3c24x0.h中添加 nand的結構體   
                  typedef struct {
             S3C24X0_REG32   NFCONF;
             S3C24X0_REG32   NFCONT;
             S3C24X0_REG32   NFCMD;
             S3C24X0_REG32   NFADDR;
             S3C24X0_REG32   NFDATA;
             S3C24X0_REG32   NFMECCD0;
             S3C24X0_REG32   NFMECCD1;
             S3C24X0_REG32   NFSECCD;
             S3C24X0_REG32   NFSTAT;
             S3C24X0_REG32   NFESTAT0;
             S3C24X0_REG32   NFESTAT1;
             S3C24X0_REG32   NFMECC0;
             S3C24X0_REG32   NFMECC1;
             S3C24X0_REG32   NFSECC;
             S3C24X0_REG32   NFSBLK;
             S3C24X0_REG32   NFEBLK;
          } /*__attribute__((__packed__))*/ S3C2440_NAND;

      在include/s3c2410.h中添加 s3c2440_GetBase_NAND 函數

      寫board_nand_init()函數在cpu/arm920t/s3c24x0/nand_flash.C

      這裏的內容可以參考內核drivers/mtd/nand/s3c2410.c編寫 

 11. 支持yaffs根文件系統的燒寫 

 12.默認參數的定義 

         配置文件   (/include/configs/smdk2440.h)中做定義
         傳給內核
               #define CONFIG_SETUP_MEMORY_TAGS    1
      #define CONFIG_CMDLINE_TAG          1
         在do_bootm_linux裏設置tags判斷
         啓動參數;
         #define CONFIG_BOOTDELAY 2
         #define CONFIG_BOOTARGS     "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0"
       #define CONFIG_BOOTCOMMAND "read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0"
       網洛參數
       #define CONFIG_ETHADDR     08:00:3e:26:0a:5b
       #define CONFIG_NETMASK      255.255.255.0
       #define CONFIG_IPADDR  192.168.7.17
       #define CONFIG_SERVERIP  192.168.7.11
       其他
       #define CFG_PROMPT  "OpenJTAG> " /* Monitor Command Prompt */  命令前綴
          
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章