6262|14

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

SMDK2450 上调试u-boot问题 [复制链接]

我使用 SMDK2450 板子配套的u-boot编译出来的u-boot.bin,无论是用 sjf 工具烧写到 nandflash 还是通过 irom 方式启动,串口都只输出一个"OK",用点灯大法测试,一直到使能 MMU 的代码之前,灯都是可以点亮的。

问题一:使能 MMU 之后如何继续点灯? 查了些资料,应该是MMU使能后,地址映射改变,不知道怎么修改地址才好。

点灯代码:

  1.     ldr    r0, =0x56000000
  2.     ldr     r2, [r0, #0x20]
  3.     bic     r2, #3
  4.     orr     r1, r2, #1
  5.     str     r1, [r0, #0x20]                                                                     

  6.     ldr     r2, [r0, #0x24]
  7.     bic     r2, #1         
  8.     orr     r1, r2, #1
  9.     str     r1, [r0, #0x24]                     
复制代码


MMU 使能代码:



  1. enable_mmu:                                                                                                                                 
  2.         /* enable domain access */
  3.         ldr     r5, =0x0000ffff         
  4.         mcr     p15, 0, r5, c3, c0, 0           @ load domain access register
  5.                                                                                                                                             
  6.         /* Set the TTB register */     
  7.         ldr     r0, _mmu_table_base                    
  8.         ldr     r1, =CFG_PHY_UBOOT_BASE                                   
  9.         ldr     r2, =0xfff00000                                            
  10.         bic     r0, r0, r2                                                        
  11.         orr     r1, r0, r1                                                         
  12.         mcr     p15, 0, r1, c2, c0, 0                                                     
  13.                         
  14.         /* Enable the MMU */                                      
  15. mmu_on:                                                                                                                                    
  16.         mrc     p15, 0, r0, c1, c0, 0                             
  17.         orr     r0, r0, #1                      /* Set CR_M to enable MMU */    /* 一直到这里都可以点灯 */
  18.         mcr     p15, 0, r0, c1, c0, 0                                          
  19.         nop                                                                       
  20.         nop                                                                     
  21.         nop                                                            
  22.         nop  
复制代码



问题二:我想通过AXD调试 u-boot 来着,但是 load memory from file 以后,对应的memory里内容全为 0,怀疑是SDRAM没有初始化的原因。SRAM 的型号是 K4M51323PC-6G75,不知如何初始化?

最新回复

"后来发现是copy_from_nand将自己从NAND拷贝到RAM时有问题,前两个PAGE地址出了问题,修正拷贝问题后,正常打印出了版本信息,进入console模式!" 大侠能否将,更详细的更改步骤 贴出?  详情 回复 发表于 2013-5-15 19:52
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
Mark
 
 

回复
五月恒 该用户已被删除
板凳
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

4
 
看内存映射表。
并且注意使用uncached 虚拟地址
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
mark
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
bootloader,还没学到这一步
 
 
 

回复

1

帖子

0

TA的资源

禁止访问

7
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 1 楼 ym_luo 的回复:
使能 MMU后应用虚地址。


在 board/samsung/smdk2450/config.mk 文件里有这么一段

# SMDK2450 has 1 bank of 64 MB DRAM
# 3000'0000 to 3400'0000 :TEXT_BASE=0x33e00000
#                                                                                                
# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000      
# optionally with a ramdisk at 3080'0000                             
#                                                                     
# we load ourself to 33e0'0000 without MMU                     
# with MMU, load address is changed to 0xc3e0_0000                                 
#                                                                                                
# download area is 3000'0000                                         
#                                                                                                
                                                                                         
ifndef TEXT_BASE                                                                       
TEXT_BASE = 0xc3e00000                                                
endif


我看不太懂,我试过把点灯程序里的 0x56000000地址 修改为 0xC6000000 和 0xE6000000 都没有效果
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 
我刚在SMDK6410上调试了4KB/PAGE的MLC NAND,我出的问题是S3C6410芯片支持Stepstone从NAND的Page0和Page1各读取2KB作为Bootloader stage1, 我用DNW将uboot.bin load进内存后,手工分3段烧写Page0,Page1,和剩下的。 打印出“OK”后就完了,点灯也是到mmu_on之前。后来发现是copy_from_nand将自己从NAND拷贝到RAM时有问题,前两个PAGE地址出了问题,修正拷贝问题后,正常打印出了版本信息,进入console模式!

点评

\"后来发现是copy_from_nand将自己从NAND拷贝到RAM时有问题,前两个PAGE地址出了问题,修正拷贝问题后,正常打印出了版本信息,进入console模式!\" 大侠能否将,更详细的更改步骤 贴出?  详情 回复 发表于 2013-5-15 19:52
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 7 楼 knock 的回复:
我刚在SMDK6410上调试了4KB/PAGE的MLC NAND,我出的问题是S3C6410芯片支持Stepstone从NAND的Page0和Page1各读取2KB作为Bootloader stage1, 我用DNW将uboot.bin load进内存后,手工分3段烧写Page0,Page1,和剩下的。 打印出“OK”后就完了,点灯也是到mmu_on之前。后来发现是copy_from_nand将自??

呵呵,恭喜
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
好像没人用ADS调试UBOOT吧,你的SDRAM没有初始化。可以参考下2440的ADS程序。
UBOOT你就点灯测试或等串口起来后通过串口。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

12
 
多看看2440的程序对你帮助很大的。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

13
 
问题二:我想通过AXD调试 u-boot 来着,但是 load memory from file 以后,对应的memory里内容全为 0,怀疑是SDRAM没有初始化的原因。SRAM 的型号是 K4M51323PC-6G75,不知如何初始化?


要看DATASHEET的说明,还有如果有BSP的话可以根据BSP的初始化代码写下初始化脚本。
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(初级)

14
 
好东西,可是有很多地方不懂,呵呵
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

15
 

回复 8楼 hu1984512 的帖子

"后来发现是copy_from_nand将自己从NAND拷贝到RAM时有问题,前两个PAGE地址出了问题,修正拷贝问题后,正常打印出了版本信息,进入console模式!"

大侠能否将,更详细的更改步骤 贴出?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表