1. 程式人生 > >DDR地址更改配置(把原來的20開頭的改到30開頭處)

DDR地址更改配置(把原來的20開頭的改到30開頭處)

在u-boot-samsung-dev\include\configs\smdkv210single.h 中改起始地址


256M就是0000 0000 ~ 0FFF FFFF ,所以 chip_mask 就是0FFF FFFF的取反,即(F000 0000),所以要改成                                                                                0x30F01323


繼續改虛擬對映


在 \u-boot-samsung-dev\board\samsung\smdkc110\smdkc110.c


再改一下記憶體對映表

在start.S(\u-boot-samsung-dev\cpu\s5pc11x\start.S)中找到 _mmu_table_base 



在 \u-boot-samsung-dev\board\samsung\smdkc110\lowlevel_init.S中找到 mmu_table



make distclean  → make smdkv210single_config → make 最後得到 u-boot.bin


燒錄: 在 /samsung_uboot/u-boot-samsung-dev/sd_fusing 目錄中

make clean → make    → ./sd_fusing.sh  /dev/sdb


在SI中搜索 "unrecognised EXT_CSD structure" 得到一個結果


因為列印顯示是 "version 7" 所以簡單地把資料改大點試下

在"\u-boot-samsung-dev\drivers\mmc\mmc.c" 中



可以修改 find_mmc_device 函式的引數來顯示SD卡的容量



如果使用SD卡(mmc = find_mmc_device(1)

), 這行 if (ext_csd_struct > 5)  不用改 

SD/MMC:這個也會顯示正常, 這說明SD的 version 不大於 5 ,而上面顯示iNand 的 version 是 7

實測可行


小結:需要用到的檔案:

1 smdkv210single.h  (需要修改)

2 start.S     (需要檢視)

3 smdkc110.c     (需要修改)

4 lowlevel_init.S    (需要修改)

5 mmc.c                         (需要修改)

以上修改後再放到ubuntu中編譯生成u-boot.bin