8277|16

241

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

Helper2416-22——裸机第十一弹——兴奋!YL-boot启动内核+源码 [复制链接]

 
本帖最后由 yuanlai2010 于 2014-7-30 21:51 编辑

兴奋!YL-boot启动内核

参与Helper2416开发板助学计划心得


    当屏幕亮起来的那一刻真的很激动,很兴奋。顿时感觉这几天的付出终于有了收获,同时也给了自己更多的信心,相信自己可以把嵌入式Linux学好。下面就来分享我的这份喜悦!

首先用上一版本的YL-boot (现在我管他叫 YL-boot for SD)把新的YL-boot (for nand)烧写到nand0地址处。

接着尝试从NAND启动系统,但是发现并不能像期待的的那样把内核启动起来,后来尝试把nand0x40000开始的连续0x300000字节的数据通过串口打印出来,发现数据全部为0,没办法,那我就尝试通过YL-boot for SD重新把zImage.43重新烧写到nand0x40000处的位置,再重nand启动。
哦也!喜悦!屏幕亮了, 串口打印信息截图如下

完整信息如下
  1. ******** YL-boot ********
  2. EEWORLD ID: yuanlai2010  
  3. ******* 2014-07-29 ******

  4. *****  Start Kernel  ****
  5. Loading Kernel ......
  6. Jumping to Kernel
  7. ********** end **********

  8. Uncompressing Linux... done, booting the kernel.
  9. Linux version 3.2.50+ (d02cj@LinuxServer0) (gcc version 4.4.6 (crosstool-NG 1.13.3) ) #407 Mon Feb 24 22:49:49 CST 2014
  10. CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
  11. CPU: VIVT data cache, VIVT instruction cache
  12. Machine: SMDK2416
  13. Memory policy: ECC disabled, Data cache writeback
  14. CPU S3C2416/S3C2450 (id 0x32450003)
  15. S3C24XX Clocks, Copyright 2004 Simtec Electronics
  16. CPU: MPLL on 800.000 MHz, cpu 400.000 MHz, mem 133.333 MHz, pclk 66.666 MHz
  17. Warning: USB host bus not at 48MHz
  18. CPU: EPLL off 96.000 MHz, usb-bus 12.000 MHz
  19. Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
  20. Kernel command line: root=/dev/mtdblock2 console=ttySAC0,115200 rootfstype=yaffs2 mem=64m
  21. PID hash table entries: 256 (order: -2, 1024 bytes)
  22. Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
  23. Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
  24. Memory: 64MB = 64MB total
  25. Memory: 59612k/59612k available, 5924k reserved, 0K highmem
  26. Virtual kernel memory layout:
  27.     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
  28.     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
  29.     vmalloc : 0xc4800000 - 0xf6000000   ( 792 MB)
  30.     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
  31.     modules : 0xbf000000 - 0xc0000000   (  16 MB)
  32.       .text : 0xc0008000 - 0xc048f598   (4638 kB)
  33.       .init : 0xc0490000 - 0xc04d4000   ( 272 kB)
  34.       .data : 0xc04d4000 - 0xc04ff500   ( 174 kB)
  35.        .bss : 0xc04ff524 - 0xc052c81c   ( 181 kB)
  36. SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
  37. NR_IRQS:109
  38. irq: clearing subpending status 00000002
  39. Console: colour dummy device 80x30
  40. Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)
  41. pid_max: default: 32768 minimum: 301
  42. Mount-cache hash table entries: 512
  43. CPU: Testing write buffer coherency: ok
  44. NET: Registered protocol family 16
  45. S3C Power Management, Copyright 2004 Simtec Electronics
  46. S3C2416: Initializing architecture
  47. S3C2416: IRQ Support
  48. S3C24XX DMA Driver, Copyright 2003-2006 Simtec Electronics
  49. DMA channel 0 at c4804000, irq 88
  50. DMA channel 1 at c4804100, irq 89
  51. DMA channel 2 at c4804200, irq 90
  52. DMA channel 3 at c4804300, irq 91
  53. DMA channel 4 at c4804400, irq 92
  54. DMA channel 5 at c4804500, irq 93
  55. DMA channel 6 at c4804600, irq 99
  56. DMA channel 7 at c4804700, irq 100
  57. bio: create slab <bio-0> at 0
  58. SCSI subsystem initialized
  59. usbcore: registered new interface driver usbfs
  60. usbcore: registered new interface driver hub
  61. usbcore: registered new device driver usb
  62. input: helper2416_keypad as /devices/platform/helper2416_keypad/input/input0
  63. s3c-i2c s3c2410-i2c: slave address 0x10
  64. s3c-i2c s3c2410-i2c: bus frequency set to 65 KHz
  65. s3c-i2c s3c2410-i2c: i2c-0: S3C I2C adapter
  66. Advanced Linux Sound Architecture Driver Version 1.0.24.
  67. NET: Registered protocol family 2
  68. IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
  69. TCP established hash table entries: 2048 (order: 2, 16384 bytes)
  70. TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
  71. TCP: Hash tables configured (established 2048 bind 2048)
  72. TCP reno registered
  73. UDP hash table entries: 256 (order: 0, 4096 bytes)
  74. UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
  75. NET: Registered protocol family 1
  76. RPC: Registered named UNIX socket transport module.
  77. RPC: Registered udp transport module.
  78. RPC: Registered tcp transport module.
  79. RPC: Registered tcp NFSv4.1 backchannel transport module.
  80. NetWinder Floating Point Emulator V0.97 (double precision)
  81. s3c-adc s3c24xx-adc: attached adc driver
  82. helper2416 pwm device Driver
  83. s3c24xx-pwm s3c24xx-pwm.0: tin at 33333333, tdiv at 33333333, tin=divclk, base 0
  84. s3c24xx-pwm s3c24xx-pwm.1: tin at 33333333, tdiv at 33333333, tin=divclk, base 8
  85. s3c24xx-pwm s3c24xx-pwm.2: tin at 11111111, tdiv at 11111111, tin=divclk, base 12
  86. s3c24xx-pwm s3c24xx-pwm.3: tin at 11111111, tdiv at 11111111, tin=divclk, base 16
  87. nfs4filelayout_init: NFSv4 File Layout Driver Registering...
  88. NTFS driver 2.1.30 [Flags: R/O].
  89. JFFS2 version 2.2. (NAND) 漏 2001-2006 Red Hat, Inc.
  90. ROMFS MTD (C) 2007 Red Hat, Inc.
  91. msgmni has been set to 116
  92. Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
  93. io scheduler noop registered
  94. io scheduler deadline registered
  95. io scheduler cfq registered (default)
  96. S3C NAND Driver, (c) 2007 Samsung Electronics
  97. S3C NAND Driver is using hardware ECC.
  98. NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
  99. Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
  100. 0x000000000000-0x000000040000 : "Bootloader"
  101. 0x000000040000-0x000000400000 : "Kernel"
  102. 0x000000400000-0x000010000000 : "File System"
  103. LCD TYPE :: S3C_4.3inch LCD will be initialized
  104. S3C_LCD clock got enabled :: 133.333 Mhz
  105. Window[0]- FB1 : map_video_memory: clear ffd80000:0003fc00
  106.            FB1 : map_video_memory: dma=33980000 cpu=ffd80000 size=0003fc00
  107. Console: switching to colour frame buffer device 60x34
  108. fb-1068365652:  frame buffer device
  109. Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
  110. s3c2440-uart.0: ttySAC0 at MMIO 0x50000000 (irq = 70) is a S3C2440
  111. console [ttySAC0] enabled
  112. s3c2440-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 73) is a S3C2440
  113. s3c2440-uart.2: ttySAC2 at MMIO 0x50008000 (irq = 76) is a S3C2440
  114. s3c2440-uart.3: ttySAC3 at MMIO 0x5000c000 (irq = 94) is a S3C2440
  115. lp: driver loaded but no devices found
  116. ppdev: user-space parallel port driver
  117. helper2416 adc device Driver
  118. brd: module loaded
  119. loop: module loaded
  120. SCSI Media Changer driver v0.25
  121. CAN device driver interface
  122. mcp251x spi0.0: probed
  123. Invalid chip endian 0x00000000
  124. smc911x: not found (-19).
  125. PPP generic driver version 2.4.2
  126. PPP BSD Compression module registered
  127. PPP Deflate Compression module registered
  128. PPP MPPE Compression module registered
  129. ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
  130. s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
  131. s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
  132. s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
  133. hub 1-0:1.0: USB hub found
  134. hub 1-0:1.0: 2 ports detected
  135. usbcore: registered new interface driver cdc_acm
  136. cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
  137. Initializing USB Mass Storage driver...
  138. usbcore: registered new interface driver usb-storage
  139. USB Mass Storage support registered.
  140. usbcore: registered new interface driver usbserial
  141. USB Serial support registered for generic
  142. usbcore: registered new interface driver usbserial_generic
  143. usbserial: USB Serial Driver core
  144. USB Serial support registered for GSM modem (1-port)
  145. usbcore: registered new interface driver option
  146. option: v0.7.2:USB Driver for GSM modems
  147. mousedev: PS/2 mouse device common for all mice
  148. samsung-ts s3c2410-ts: driver attached, registering input device
  149. input: S3C24XX TouchScreen as /devices/virtual/input/input1
  150. S3C24XX RTC, (c) 2004,2006 Simtec Electronics
  151. s3c-rtc s3c2410-rtc: rtc disabled, re-enabling
  152. s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
  153. i2c /dev entries driver
  154. S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
  155. sdhci: Secure Digital Host Controller Interface driver
  156. sdhci: Copyright(c) Pierre Ossman
  157. s3c-sdhci s3c-sdhci.0: clock source 0: hsmmc (133333333 Hz)
  158. s3c-sdhci s3c-sdhci.0: clock source 1: hsmmc (133333333 Hz)
  159. s3c-sdhci s3c-sdhci.0: clock source 2: hsmmc-if (12000000 Hz)
  160. mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA
  161. s3c-sdhci s3c-sdhci.1: clock source 0: hsmmc (133333333 Hz)
  162. s3c-sdhci s3c-sdhci.1: clock source 1: hsmmc (133333333 Hz)
  163. s3c-sdhci s3c-sdhci.1: clock source 2: hsmmc-if (12000000 Hz)
  164. mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.1] using ADMA
  165. usbcore: registered new interface driver usbhid
  166. usbhid: USB HID core driver
  167. asoc: wm8731-hifi <-> s3c24xx-iis mapping ok
  168. ALSA device list:
  169.   #0: wm8731
  170. TCP cubic registered
  171. NET: Registered protocol family 17
  172. can: controller area network core (rev 20090105 abi 8)
  173. NET: Registered protocol family 29
  174. can: raw protocol (rev 20090105)
  175. can: broadcast manager protocol (rev 20090105 t)
  176. Registering the dns_resolver key type
  177. s3c-rtc s3c2410-rtc: setting system clock to 2000-01-01 00:01:01 UTC (946684861)
  178. yaffs: dev is 32505858 name is "mtdblock2" rw
  179. yaffs: passed flags ""
  180. s3c-nand: ECC uncorrectable error detected
  181. s3c-nand: ECC uncorrectable error detected
  182. s3c-nand: ECC uncorrectable error detected
  183. mmc1: new high speed SDHC card at address 0007
  184. mmcblk0: mmc1:0007 SD8GB 7.21 GiB
  185. mmcblk0: p1
  186. VFS: Mounted root (yaffs2 filesystem) on device 31:2.
  187. Freeing init memory: 272K
  188. FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
  189. [31/Dec/1999:16:01:07 +0000] boa: server version Boa/0.94.13
  190. [31/Dec/1999:16:01:07 +0000] boa: server built Mar 26 2009 at 15:28:42.
  191. [31/Dec/1999:16:01:07 +0000] boa: starting server pid=74, port 80
  192. ifconfig: SIOCSIFADDR: No such device
  193. route: SIOCADDRT: Network is unreachable

  194. Please press Enter to activate this console.
复制代码
特意测试了下从按下复位键到屏幕点亮的所需的时间并作对比,第一张为YL-boot 的测试时间,第二张为u-boot的测试时间。

o(︶︿︶)o 唉!为什么不比u-boot快呢?
据观察,启动的时间主要耗费在读取内核到SDRAM和内核自解压上。
根据刚开始需要重新烧写zImage.43的现象及测试,大概猜测是u-boot的nand烧写可能没有校验ECC(源码中没看到有,也有可能是我看的不够仔细),而我用的nand读写函数是加入了ECC校验的,导致不能正常读出原来u-boot烧写进去的内核。下一步就是要继续去验证这些问题!八月份开始玩应用和驱动!

最后附上源码,这个只有启动内核的功能。感兴趣的就自己拿去玩吧!
最近论坛不够活跃!弄个回复可见
游客,如果您要查看本帖隐藏内容请回复
附上 YL-boot_for_SD.rar (2.99 KB, 下载次数: 36) 用于烧写 YL-boot_for_kernel.rar (2.11 KB, 下载次数: 30) (地址输入0x00)附上或者zImage.43(地址输入0x40000)


论坛ID:yuanlai2010
发表时间:2014-07-29


最新回复

好好学习   详情 回复 发表于 2015-5-27 21:49
点赞 关注

回复
举报

1560

帖子

24

TA的资源

五彩晶圆(初级)

沙发
 
回帖可见。。。 GUI是楼主做的吗?这种风格倒也是挺简洁的,以后也可以借鉴下。

点评

GUI?我上面就只有两张手机截图啊,哈哈,况且我真的还是小白,不懂怎么搞应用,更不会搞GUI了,以后都还得参照您的帖子慢慢学习了  详情 回复 发表于 2014-7-30 08:25
 
个人签名这孩子,成熟的象征,理智的典范。
 

回复

241

帖子

4

TA的资源

纯净的硅(初级)

板凳
 
lonerzf 发表于 2014-7-30 08:21
回帖可见。。。 GUI是楼主做的吗?这种风格倒也是挺简洁的,以后也可以借鉴下。

GUI?我上面就只有两张手机截图啊,哈哈,况且我真的还是小白,不懂怎么搞应用,更不会搞GUI了,以后都还得参照您的帖子慢慢学习了
 
 
 

回复

554

帖子

0

TA的资源

版主

4
 
不错不错!我还没有做过自制BOOT,向你学习!
 
个人签名My dreams will go on...
http://www.jyxtec.com
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

5
 
给力顶起。。。。

点评

多谢支持!  详情 回复 发表于 2014-7-30 16:25
 
 
 

回复

241

帖子

4

TA的资源

纯净的硅(初级)

6
 
王力斯 发表于 2014-7-30 12:45
给力顶起。。。。

多谢支持!
 
 
 

回复

241

帖子

4

TA的资源

纯净的硅(初级)

7
 
今天把YL-boot的时钟配置成和u-boot一样的600MHz,重新测试复位到点亮屏幕的时间如下图,确实会比u-boot快一些!
 
 
 

回复

241

帖子

4

TA的资源

纯净的硅(初级)

8
 
刚才使用YL-boot启动内核发现,播放音乐和视屏的时候莫名的卡顿,而用u-boot启动的时候没有这种情况,通过对比内核启动打印出的信息发现YL-boot启动内核时,USB host bus的时钟频率不为48MHz 而是12MHz,然后再对比u-boot源码,发现自己时钟没有配置EPLL,修改时钟配置后一切正常了,才知道,原来内核是不参与时钟配置的,所以必须在boot里面就要把时钟配置完善。
 
 
 

回复

179

帖子

0

TA的资源

一粒金砂(中级)

9
 
楼主厉害,谢谢分享,学习一下
 
 
 

回复

1147

帖子

0

TA的资源

纯净的硅(高级)

10
 
给力啊
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

11
 
楼主越来越大神了~~。
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

12
 
楼主NAND读写的函数是自己写的还是?

点评

nand是改了别人的代码  详情 回复 发表于 2014-9-18 12:03
 
 
 

回复

241

帖子

4

TA的资源

纯净的硅(初级)

13
 
sdwuyawen 发表于 2014-9-18 11:28
楼主NAND读写的函数是自己写的还是?

nand是改了别人的代码
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

14
 

楼主越来越大神了~~。
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

15
 
好犀利
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

16
 
分享快乐




 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(初级)

17
 
好好学习
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表