S5PV210 -- UBOOT修改为只使用MEMORY PORT2

该博客介绍了如何修改S5PV210平台上的U-Boot,使其仅在内存地址0x40000000(MEMORY PORT2)运行。涉及的修改包括boardsamsungsmdkc110lowlevel_init.S、board/samsung/smdkc110/smdkc110.c、include/configs/smdkv210single.h以及内核中的arch/arm/mach-s5pv210相关文件。原始内容来源于一篇CSDN博客文章。
摘要由CSDN通过智能技术生成

按三星默认的u-boot,内存起始地址是0x20000000,即memory port1,如果要让u-boot只在0x40000000(即memory port2) 运行,则需要修改的地方有:

(参考T34平台u-boot中的修改为0x30000000)

1.修改 board\samsung\smdkc110\lowlevel_init.S

.set __base,0x200    ==>> .set __base,0x400
 
// 256MB for SDRAM with cacheable
 
.rept 0xD00 - 0xC00
 
FL_SECTION_ENTRY __base,3,0,1,1
 
.set __base,__base+1
 
.endr


2. board/samsung/smdkc110/smdkc110.c

ulong virt_to_phy_smdkc110(ulong addr)
 
{
 
        if ((0xc0000000 <= addr) && (addr < 0xd0000000))
 
                return (addr - 0xc0000000 + 0x20000000); //yan
 
        else
 
                printf("The input address don't need "\
 
                        "a virtual-to-physical translation : %08lx\n", addr);
 



        return addr;
 
}

修改为

ulong virt_to_phy_smdkc110(ulong addr)
 
{
 
        if ((0xc0000000 <= addr) && (addr < 0xd0000000))
 
                return (addr - 0xc0000000 + MEMORY_BASE_ADDRESS); //yan
 
        else
 
                printf("The input address don't need "\
 
                        "a virtual-to-physical translation : %08lx\n", addr);
 



        return addr;
 
}


3. include\configs\smdkv210single.h

#define MEMORY_BASE_ADDRESS
 0x40000000
 
#define DMC1_MEMCONFIG_0
 0x40E01323

#define CONFIG_NR_DRAM_BANKS    1          /* we have 2 bank of DRAM */
 
#define SDRAM_BANK_SIZE         0x20000000    /* 512 MB */
 
//#define SDRAM_BANK_SIZE         0x10000000
 
#define PHYS_SDRAM_1            MEMORY_BASE_ADDRESS /* SDRAM Bank #1 */
 
#define PHYS_SDRAM_1_SIZE       SDRAM_BANK_SIZE  /* jeff */
 
//#define PHYS_SDRAM_2            0x40000000 /* SDRAM Bank #2 */
 
//#define PHYS_SDRAM_2_SIZE       SDRAM_BANK_SIZE  /* jeff */

#ifdef CONFIG_ENABLE_MMU
 
#define CFG_UBOOT_BASE  0xc3e00000
 
#else
 
#define CFG_UBOOT_BASE  0x43e00000
 
#endif

#define CONFIG_BOOTCOMMAND  "movi read kernel C0008000; movi read rootfs 40B00000 180000; bootm C0008000 40B00000"

4.内核中的修改

MACHINE_START(SMDKV210, "SMDKV210") 
.boot_params    = S5P_PA_SDRAM + 0x100,

arch/arm/mach-s5pv210/include/mach/map.h

#define S5P_PA_SDRAM           S5PV210_PA_SDRAM
 
#define S5PV210_PA_SDRAM        (0x40000000)

arch/arm/mach-s5pv210/include/mach/memory.h

#define PHYS_OFFSET         UL(0x40000000)

arch/arm/mach-s5pv210/Makefile.boot

zreladdr-y  := 0x40008000 
params_phys-y  := 0x40000100

转载自:http://blog.csdn.net/knock/article/details/7625579

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值