Chinaunix首页 | 论坛 | 博客
  • 博客访问: 193994
  • 博文数量: 30
  • 博客积分: 1571
  • 博客等级: 上尉
  • 技术积分: 363
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-28 11:42
文章分类

全部博文(30)

文章存档

2012年(6)

2011年(11)

2010年(13)

我的朋友

分类: LINUX

2010-03-10 16:45:01

在立宇泰的板子上移植的 u-boot 2009.11 + kernel 2.6.33。

内核加上了LCD的显示以后,显示模块初始化完成以后(s3c_fb_probe 已经返回了)系统就挂机了。最郁闷的是,我编译了kernel hacking,挂的时候任何调试信息没有!!!!

用jlink连上,系统跑到0xffffXXXX的地址去了,根本不知道在哪挂的。


找了一天多才发现,只要不使能LCD控制器(VIDCON0的ENVID或者WINCON0的ENWIN_F不使能),就能正常跑下去。看了两天的LCD控制器部分的spec和代码,没找到问题。

最后用立宇泰自带的u-boot和kernel交叉实验了一下,发现问题不在内核,而是在u-boot!


没办法一个一个对比了一下立宇泰板子上的System Controller和Dram Controller 寄存器。

发现问题在Dram Controller的 P1MEMCFG2的第0位sync。

我的u-boot的PLL是async mode的,按照spec的描述我就将此位设为0了。但结果,此位要为1,才能正常跑下去!不知道是不是因为我的APLL和MPLL都是533M的过。

现在我也不知道到底是为啥。能跑就行。

但为啥其他时候系统能跑,而到了LCD模块就不行了,而且没有任何调试信息?我感觉是和LCD windows的DMA‘s Burst有关,可能是他导致内存部分出问题了。


顺便说一下在弄得过程中发现的LCD controller的另外一个问题。

因为板子发烫的过,我把不用的模块的CLK_GATE全关了,"需要的模块“都打开了,结果屏幕没有任何输出。

后来发现是LCD要设置MOFPCON的by-pass和SPCON以后才能跑(spec的490页)。而两个寄存器所在的IHOST和DHOST模块的CLK_GATE我给关掉了!


不论如何看见小企鹅了。

过年回来到现在问题一个接一个,而且都很怪。这几天陆续的把问题都写一下吧。

阅读(1520) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~