gbf0871 发表于 2006-10-25 00:34:45

2.6.18 for s3c2410 在skyeye上的问题

skyeye.conf 使用testsuit2中2410的配置
编译内核时使用的是 smdk2410_defconfig这个配置
并将linux/include/asm-arm/arch-s3c2410/map.h 中的
    #define S3C2410_CS6 (0x30000000)
改成 #define S3C2410_CS6 (0xC0000000) 配置中SDRAM的物理地址?
       linux/include/asm-arm/arch-s3c2410/memory.h中的
   #define PHYS_OFFSET        UL(0x30000000)
该成 #define PHYS_OFFSET        UL(0xC0000000)
在 linux/arch/arm/mach-s3c2410/mach-smdk2410.c 中
       MACHINE_START(SMDK2410, "SMDK2410")
该成 MACHINE_START(SMDK2410TK, "SMDK2410TK")
(为了在skyeye-0.9.8中调试,不改的话在skyeye-1.2中也不行)

编译后无法启动,屏幕无输出
通过跟踪发现是在
               Time_Init-> s3c2410_timer_setup 中挂了
   按照这个
//////////////////////////////////////////////////////////////////////////////
go on .......

    之后用仿真器追踪内核结果发现:

    start_kernel函数的time_init()中程序进入死循环~~

    我随之进入time_init()

    继续进入      system_timer->init();
   
    结果发现,我的fclk,pclk都不能得到正确的值,积存器正确,我拿笔都能算出来,可是他就是总出错,所以我一气之下把他们全部写死.

    具体如下:
       在\arch\arm\mach_s3c2410\s3c2410.c 中 搜索 fclk ;

       fclk = s3c2410_get_pll(MPLLCON, xtal);   //这是他原来的,结果不是我们想要的200MHZ


            fclk =200*1000*1000 ; // 这是我改的

       在\arch\arm\mach_s3c2410\time.c 中搜索 pclk:

      pclk =   clk_get_rate(clk);         //这是原来的

      pclk = 50*1000*1000;         //这是我改的

       当然这都是根据你的开发板的DATASHEET而定的

       我现在用的是FCLK : HCLK : PCLK=1 : 2 : 4 ,所以我分别写死为200M 100M 50M.

    之后再运行,这个野蛮的问题终于解决了 , 不过我还有一事不明 ,为什么他用原来的表达式就会取值错误呢 ???

//////////////////////////////////////////////////////////////////////////////
改过后,过去后又在console_init中出了问题
具体位置 console_init-〉con_init-〉acquire_console_sem-〉BUG_ON(in_interrupt());
郁闷中。。。。。。
到底哪里设置错了啊,需要怎么配置。。。。。。。。

gbf0871 发表于 2006-11-1 00:36:22

有些进展,之前没有设置好内存容量
这回是到kmem_cache_init();处挂掉,估计还是内存参数没设好
晕死了,在skyeye里设置断点怎么大多数时候不好使啊,已运行c命令就挂
只好一步一步地走

anole 发表于 2006-11-1 01:42:01

我也遇到了跟你相同的问题,而且我搜索了一下论坛,遇到同样问题的好像还不只我们两个,怎么就没人给个解答呢?那个叫jackzheng2002的版主说:
“Linux 2.6.10以后,Samsung S3C2410已经成为linux的一个标准支持平台,
无需任何patch就可以在S3C2410的目标板上运行得很好。”
可是为啥在SkyEye上就不行呢,看来虚拟机和真实的硬件平台还是有很大区别的嘞!
页: [1]
查看完整版本: 2.6.18 for s3c2410 在skyeye上的问题