uboot解决DRAM无法正确识别的问题

终于解决了DRAM无法正确识别的问题,吼吼~

参考修改代码:

./include/configs/ok6410.h:#define PHYS_SDRAM_1_SIZE  0x10000000 /* 256 MB */ 
#define DMC1_MEM_CFG 0x0001001A  
 board/feilin/ok6410/lowlevel_init.S  
 mmu_table:将  
        // 128MB for SDRAM 0xC0000000 -> 0x50000000  
        .set __base, 0x500  
        .rept 0xC80 - 0xC00          
        FL_SECTION_ENTRY __base,3,0,1,1  
        .set __base,__base+1  
        .endr  
  
        // access is not allowed.  
        .rept 0x1000 - 0xc80          
        .word 0x00000000  
        .endr  
  
修改为:  
        // 256MB for SDRAM 0xC0000000 -> 0x50000000  
        .set __base, 0x500  
        .rept 0xd00 - 0xC00  
        FL_SECTION_ENTRY __base,3,0,1,1  
        .set __base,__base+1  
        .endr  
  
        // access is not allowed.  
        .rept 0x1000 - 0xd00  
        .word 0x00000000  
        .endr  

不用修改uboot自举地址仍然默认为ox57e00000

下面着手解决flash failed的问题

转载于:https://www.cnblogs.com/ikesee/archive/2012/06/04/2443438.html

在嵌入式系统中,U-Boot是一种常见的引导加载程序,用于在设备上启动和运行操作系统。当U-Boot引导系统时,它需要从闪存(如NOR Flash)加载并执行代码。然而,当涉及到将U-Boot代码写入EMMC(嵌入式存储介质)时,通常需要经过DRAM转存过程。这是因为EMMC通常无法直接写入数据,必须通过某种形式的缓存(如DRAM)来暂时存储数据。 如果您希望不经过DRAM转存将U-Boot代码直接写入EMMC,那么这可能不是一个可行的选项。但是,您可以通过以下步骤来实现这一目标: 1. **使用U-Boot的内核映像**:您可以使用U-Boot的内核映像来直接从闪存引导系统。在U-Boot中,您可以使用“mmc”设备驱动程序来挂载EMMC设备,并将内核映像复制到该设备上。这将绕过DRAM转存过程,但请注意,这可能需要特定的硬件支持和配置。 2. **修改U-Boot源代码**:如果您有对U-Boot源代码的访问权限,并且具有修改和编译U-Boot的能力,您可以尝试修改U-Boot源代码以直接将代码写入EMMC。这可能需要更改引导加载程序代码和相关驱动程序,以便在启动时将代码直接写入EMMC。 3. **使用第三方工具**:有一些第三方工具可以帮助您将U-Boot代码直接写入EMMC而无需经过DRAM转存。这些工具通常提供一些高级功能和选项,以简化此过程。请注意,使用第三方工具可能需要特定的硬件支持和配置。 请注意,绕过DRAM转存过程可能会对系统性能和稳定性产生影响。在进行此类更改之前,请务必仔细评估风险和可行性,并确保您了解相关的技术细节和限制。此外,与硬件供应商和操作系统团队进行沟通可能有助于获得更具体的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值