S3C2410启动流程分析

开发板fs2410(S3C2410)的启动过程中抓的log如下,加入了一些分析,整体流程来看,有的部分冗余,需要进行裁剪。

Starting kernel ...

Uncompressing Linux...test1............................................................................................. done, booting the ke.
Linux version 2.6.26.5  (gcc version 3.4.5) #30 PREEMPT Tue Mar 6 17:17:02 CST 2012
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177                      //  start_kernel - setup_arch - setup_processor();
setup_processor();
Machine: SMDK2410                                                             //  start_kernel - setup_arch - setup_machine
Memory policy: ECC disabled, Data cache writeback                             //  start_kernel - setup_arch - paging_init - build_mem_type_table();          
CPU S3C2410A (id 0x32410002)                                                  //  paging_init - paging_init - devicemaps_init(mdesc) - mdesc->map_io=smdk2410_map_io - s3c24xx_init_io                            

                                                                              //          MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch
                                                                       //          .map_io  = smdk2410_map_io,
                                                                       //          .init_irq = s3c24xx_init_irq, 
                                                                       //          .timer  = &s3c24xx_timer,
                                                                              //          MACHINE_END

S3C2410: core 202.800 MHz, memory 101.400 MHz, peripheral 50.700 MHz          // paging_init - paging_init - devicemaps_init(mdesc) - mdesc->map_io=smdk2410_map_io - cpu->init_clocks     s3c2410_init_clocks
S3C24XX Clocks, (c) 2004 Simtec Electronics                                   //      s3c2410_init_clocks - s3c24xx_setup_clocks
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on                          //      s3c2410_init_clocks - s3c2410_baseclk_add();
                                                                   
                                                                              //static struct cpu_table cpu_ids[] __initdata = {
                                                                              // {
                                                                //             .idcode  = 0x32410002,
                                                                //             .idmask  = 0xffffffff,
                                                                //             .map_io  = s3c2410_map_io,
                                                                //             .init_clocks = s3c2410_init_clocks,
                                                                //             .init_uarts = s3c2410_init_uarts,
                                                                       //            .init  = s3c2410_init,
                                                                       //      .name  = name_s3c2410a
                                                                       //          }

CPU0: D VIVT write-back cache                                               //start_kernel - setup_arch - cpu_init - dump_cpu_info
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets         //start_kernel - setup_arch - cpu_init - dump_cpu_info
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets         //start_kernel - setup_arch - cpu_init - dump_cpu_info

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256  //start_kernel - build_all_zonelists();

Kernel command line: root=nfs nfsroot=192.168.1.57:/nfsrootfs/rootfs ip=192.168.1.58 console=tty1 console=ttySAC0,115200 initcall_debug=1 inic         // printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line);
irq: clearing subpending status 00000002                                    //start_kernel - init_IRQ - init_arch_irq() - init_arch_irq = mdesc->init_irq; - medesc (.init_irq = s3c24xx_init_irq) 
PID hash table entries: 256 (order: 8, 1024 bytes)                          //start_kernel - pidhash_init();
timer tcon=00500000, tcnt a509, tcfg 00000200,00000000, usec 00001e4c       //start_kernel - time_init - system_timer->init() - system_timer = mdesc->timer; - medesc (.timer = &s3c24xx_timer)
Console: colour dummy device 80x30       //static int __init con_init(void) ,/drivers/char/vt.c
console [tty1] enabled                   //void register_console(struct console *console)
console [ttySAC0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)                 // vfs_caches_init - dcache_init();
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)                  //        vfs_caches_init - inode_init
Memory: 64MB = 64MB total                                                     //        mem_init()为什么在vfs_caches_init的中间
Memory: 61744KB available (2704K code, 283K data, 144K init)                  //        mem_init()为什么在vfs_caches_init的中间
Mount-cache hash table entries: 512                                           //        vfs_caches_init - mnt_init();
CPU: Testing write buffer coherency: ok                                       //        start_kernel - check_bugs() - check_writebuffer_bugs()
                                                                              //以下进入do_basic_setup - do_initcalls()
calling  net_ns_init+0x0/0x138                                                //  network namespace constructor
net_namespace: 192 bytes
initcall net_ns_init+0x0/0x138 returned 0 after 2 msecs
calling  ptrace_break_init+0x0/0x2c                                           // register a func Force a signal that the process can't ignore
initcall ptrace_break_init+0x0/0x2c returned 0 after 0 msecs
calling  consistent_init+0x0/0xe8                                             // Initialise the consistent memory allocation
initcall consistent_init+0x0/0xe8 returned 0 after 0 msecs
calling  s3c2410_core_init+0x0/0x1c                                           //register class before we actually register the device, and ensure that it has been initialised before any of the drivers even try to use it
initcall s3c2410_core_init+0x0/0x1c returned 0 after 1 msecs
calling  s3c2412_core_init+0x0/0x1c
initcall s3c2412_core_init+0x0/0x1c returned 0 after 1 msecs
calling  s3c2443_core_init+0x0/0x1c
initcall s3c2443_core_init+0x0/0x1c returned 0 after 1 msecs
calling  s3c2442_core_init+0x0/0x1c
initcall s3c2442_core_init+0x0/0x1c returned 0 after 1 msecs
calling  s3c2440_core_init+0x0/0x1c
initcall s3c2440_core_init+0x0/0x1c returned 0 after 1 msecs
calling  s3c24xx_dma_sysclass_init+0x0/0x30                                   // initialise dma_sysclass
initcall s3c24xx_dma_sysclass_init+0x0/0x30 returned 0 after 1 msecs
calling  sysctl_init+0x0/0x40                                                 // ?
initcall sysctl_init+0x0/0x40 returned 0 after 1 msecs
calling  ksysfs_init+0x0/0xc4                                                 // sysfs attributes in /sys/kernel, which are not related to any other subsystem
initcall ksysfs_init+0x0/0xc4 returned 0 after 0 msecs
calling  init_jiffies_clocksource+0x0/0x1c                                    // register a clock source
initcall init_jiffies_clocksource+0x0/0x1c returned 0 after 0 msecs
calling  pm_init+0x0/0x4c                                                     //kobject_create_and_add("power", NULL);
initcall pm_init+0x0/0x4c returned 0 after 0 msecs
calling  filelock_init+0x0/0x48                                               //filelock_cache = kmem_cache_create("file_lock_cache",sizeof(struct file_lock), 0, SLAB_PANIC,init_once);
initcall filelock_init+0x0/0x48 returned 0 after 0 msecs
calling  init_aout_binfmt+0x0/0x1c                                            //return register_binfmt(&aout_format);
initcall init_aout_binfmt+0x0/0x1c returned 0 after 0 msecs
calling  init_script_binfmt+0x0/0x1c                                          //return register_binfmt(&script_format);
initcall init_script_binfmt+0x0/0x1c returned 0 after 0 msecs
calling  init_elf_binfmt+0x0/0x1c                                             //return register_binfmt(&elf_format);
initcall init_elf_binfmt+0x0/0x1c returned 0 after 0 msecs
calling  random32_init+0x0/0xb0                                               //Generate some initially weak seeding values to allow to start the random32() engine.
initcall random32_init+0x0/0xb0 returned 0 after 0 msecs
calling  sock_init+0x0/0x7c                                                   //init some data structure in sock
initcall sock_init+0x0/0x7c returned 0 after 0 msecs
calling  netlink_proto_init+0x0/0x200                                         //
NET: Registered protocol family 16
initcall netlink_proto_init+0x0/0x200 returned 0 after 3 msecs
calling  bdi_class_init+0x0/0x3c                                              //
initcall bdi_class_init+0x0/0x3c returned 0 after 1 msecs
calling  kobject_uevent_init+0x0/0x68                                         //uevent_sock = netlink_kernel_create(&init_net, NETLINK_KOBJECT_UEVENT, 1, NULL, NULL, THIS_MODULE);
initcall kobject_uevent_init+0x0/0x68 returned 0 after 0 msecs
calling  tty_class_init+0x0/0x3c                                              //tty_class = class_create(THIS_MODULE, "tty");
initcall tty_class_init+0x0/0x3c returned 0 after 1 msecs
calling  vtconsole_class_init+0x0/0xe0                                        //vtconsole_class = class_create(THIS_MODULE, "vtconsole");
initcall vtconsole_class_init+0x0/0xe0 returned 0 after 3 msecs
calling  customize_machine+0x0/0x2c                                           //her to execute smdk2410 init_machine
S3C2410 Power Management, (c) 2004 Simtec Electronics
initcall customize_machine+0x0/0x2c returned 0 after 20 msecs
calling  s3c2410_irq_init+0x0/0x24                                            //return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_irq_driver);
initcall s3c2410_irq_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2442_dma_drvinit+0x0/0x24
initcall s3c2442_dma_drvinit+0x0/0x24 returned 0 after 0 msecs
calling  s3c2410_dma_drvinit+0x0/0x24                                         //return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_dma_driver);
initcall s3c2410_dma_drvinit+0x0/0x24 returned 0 after 0 msecs
calling  s3c2442_pm_drvinit+0x0/0x24
initcall s3c2442_pm_drvinit+0x0/0x24 returned 0 after 0 msecs
calling  s3c2440_pm_drvinit+0x0/0x24
initcall s3c2440_pm_drvinit+0x0/0x24 returned 0 after 0 msecs
calling  s3c2410_pm_drvinit+0x0/0x24                                          //return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_pm_driver);
initcall s3c2410_pm_drvinit+0x0/0x24 returned 0 after 0 msecs
calling  s3c2412_irq_init+0x0/0x24
initcall s3c2412_irq_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2412_dma_init+0x0/0x24
initcall s3c2412_dma_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2412_pm_init+0x0/0x24
initcall s3c2412_pm_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2440_irq_init+0x0/0x24
initcall s3c2440_irq_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c24xx_clk_driver+0x0/0x24                                         //return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_clk_driver);
initcall s3c24xx_clk_driver+0x0/0x24 returned 0 after 0 msecs
calling  s3c2440_dma_init+0x0/0x24
initcall s3c2440_dma_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2442_clk_init+0x0/0x24                                           //return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_clk_driver);
initcall s3c2442_clk_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2443_irq_init+0x0/0x24
initcall s3c2443_irq_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2443_dma_init+0x0/0x24
initcall s3c2443_dma_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c_arch_init+0x0/0x5c                                              //ret = (cpu->init)();      .init= s3c2410_init,
S3C2410: Initialising architecture
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
DMA channel 0 at c4800000, irq 33
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000c0, irq 36
initcall s3c_arch_init+0x0/0x5c returned 0 after 26 msecs
calling  s3c2442_irq_init+0x0/0x24
initcall s3c2442_irq_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2440_irq_init+0x0/0x24
initcall s3c2440_irq_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2442_clk_init+0x0/0x24
initcall s3c2442_clk_init+0x0/0x24 returned 0 after 0 msecs
calling  s3c2440_clk_init+0x0/0x24
initcall s3c2440_clk_init+0x0/0x24 returned 0 after 0 msecs
calling  pm_simtec_init+0x0/0x90                                            //enable the power management functions
initcall pm_simtec_init+0x0/0x90 returned 0 after 0 msecs
calling  topology_init+0x0/0x30                                             //
initcall topology_init+0x0/0x30 returned 0 after 1 msecs
calling  param_sysfs_init+0x0/0x1fc                                         //?  param_sysfs_init - wrapper for built-in params support
initcall param_sysfs_init+0x0/0x1fc returned 0 after 32 msecs
calling  pm_sysrq_init+0x0/0x24                                             //sysrq handler to gracefully power down machine
initcall pm_sysrq_init+0x0/0x24 returned 0 after 0 msecs
calling  readahead_init+0x0/0x38                                            //?  mm/readahead.c - address_space-level file readahead
initcall readahead_init+0x0/0x38 returned 0 after 1 msecs
calling  init_bio+0x0/0xf0                                                  //?
initcall init_bio+0x0/0xf0 returned 0 after 0 msecs
calling  blk_settings_init+0x0/0x4c                                         //
initcall blk_settings_init+0x0/0x4c returned 0 after 0 msecs
calling  blk_ioc_init+0x0/0x44                                              //
initcall blk_ioc_init+0x0/0x44 returned 0 after 0 msecs
calling  genhd_device_init+0x0/0x54                                         // gendisk handling
initcall genhd_device_init+0x0/0x54 returned 0 after 1 msecs
calling  fbmem_init+0x0/0xa0                                                //framebuffer
initcall fbmem_init+0x0/0xa0 returned 0 after 1 msecs
calling  misc_init+0x0/0xac                                                 //misc
initcall misc_init+0x0/0xac returned 0 after 1 msecs
calling  spi_init+0x0/0x8c                                                  //spi
initcall spi_init+0x0/0x8c returned 0 after 2 msecs
calling  usb_init+0x0/0x138                                                 //usb
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
initcall usb_init+0x0/0x138 returned 0 after 18 msecs
calling  serio_init+0x0/0x94                                                // The Serio abstraction module
initcall serio_init+0x0/0x94 returned 0 after 2 msecs
calling  input_init+0x0/0x124                                               //input class
initcall input_init+0x0/0x124 returned 0 after 1 msecs
calling  rtc_init+0x0/0x8c
initcall rtc_init+0x0/0x8c returned 0 after 1 msecs
calling  i2c_init+0x0/0x6c
initcall i2c_init+0x0/0x6c returned 0 after 4 msecs
calling  hwmon_init+0x0/0x58                                                 //Linux kernel modules for hardware monitoring
initcall hwmon_init+0x0/0x58 returned 0 after 1 msecs
calling  proto_init+0x0/0x3c                                                 //return proc_net_fops_create(&init_net, "protocols", S_IRUGO, &proto_seq_fops) == NULL ? -ENOBUFS : 0;
initcall proto_init+0x0/0x3c returned 0 after 0 msecs
calling  net_dev_init+0x0/0x140                                              //net_dev_init
initcall net_dev_init+0x0/0x140 returned 0 after 1 msecs
calling  neigh_init+0x0/0x8c                                                 //
initcall neigh_init+0x0/0x8c returned 0 after 0 msecs
calling  genl_init+0x0/0xf8                                                  //
initcall genl_init+0x0/0xf8 returned 0 after 15 msecs
calling  sysctl_init+0x0/0x30
initcall sysctl_init+0x0/0x30 returned 0 after 0 msecs
calling  alignment_init+0x0/0x9c                                             //This needs to be done after sysctl_init, otherwise sys/ will be overwritten
initcall alignment_init+0x0/0x9c returned 0 after 0 msecs
calling  clocksource_done_booting+0x0/0x24                                   //clocksource_done_booting - Called near the end of core bootup
initcall clocksource_done_booting+0x0/0x24 returned 0 after 0 msecs
calling  init_pipe_fs+0x0/0x54                                               //int err = register_filesystem(&pipe_fs_type);
initcall init_pipe_fs+0x0/0x54 returned 0 after 0 msecs
calling  init_mnt_writers+0x0/0x28                                           //?
initcall init_mnt_writers+0x0/0x28 returned 0 after 0 msecs
calling  eventpoll_init+0x0/0x9c                                             //Efficent event polling implementation
initcall eventpoll_init+0x0/0x9c returned 0 after 0 msecs
calling  anon_inode_init+0x0/0x108                                           //error = register_filesystem(&anon_inode_fs_type);
initcall anon_inode_init+0x0/0x108 returned 0 after 0 msecs
calling  chr_dev_init+0x0/0xa4                                               //
initcall chr_dev_init+0x0/0xa4 returned 0 after 13 msecs
calling  loopback_init+0x0/0x1c                                              //return register_pernet_device(&loopback_net_ops);
initcall loopback_init+0x0/0x1c returned 0 after 2 msecs
calling  inet_init+0x0/0x358                                                 //net
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
initcall inet_init+0x0/0x358 returned 0 after 85 msecs
calling  af_unix_init+0x0/0x5c                                               //多种连接的一种(IPv4, UNIX domain sockets, IPv6和IrDA),这里主要是指UNIX的一些网络协议
NET: Registered protocol family 1
initcall af_unix_init+0x0/0x5c returned 0 after 3 msecs                         
calling  populate_rootfs+0x0/0xe8                                            //initramfs的初始化函数
initcall populate_rootfs+0x0/0xe8 returned 0 after 2 msecs
calling  timer_init_sysfs+0x0/0x40                                           //?
initcall timer_init_sysfs+0x0/0x40 returned 0 after 2 msecs
calling  fpe_init+0x0/0x84                                                   //NWFPE floating point emulator (" NWFPE_BITS " precision)
NetWinder Floating Point Emulator V0.97 (double precision)
initcall fpe_init+0x0/0x84 returned 0 after 5 msecs
calling  init_sched_debug_procfs+0x0/0x44                                    //kernel/time/sched_debug.c    Print the CFS rbtree
initcall init_sched_debug_procfs+0x0/0x44 returned 0 after 0 msecs
calling  create_proc_profile+0x0/0x78                                        //entry = proc_create("profile", S_IWUSR | S_IRUGO,NULL, &proc_profile_operations);
initcall create_proc_profile+0x0/0x78 returned 0 after 0 msecs
calling  ioresources_init+0x0/0x5c                                           //proc_create("ioports", 0, NULL, &proc_ioports_operations);
                                                                      //proc_create("iomem", 0, NULL, &proc_iomem_operations);
initcall ioresources_init+0x0/0x5c returned 0 after 0 msecs
calling  uid_cache_init+0x0/0xac                                             kmem_cache_create("uid_cache",
initcall uid_cache_init+0x0/0xac returned 0 after 0 msecs
calling  init_posix_timers+0x0/0xbc                                          // kmem_cache_create("posix_timers_cache"
initcall init_posix_timers+0x0/0xbc returned 0 after 0 msecs
calling  init_posix_cpu_timers+0x0/0x84                                      // Implement CPU time clocks for the POSIX clock interface.
initcall init_posix_cpu_timers+0x0/0x84 returned 0 after 0 msecs
calling  nsproxy_cache_init+0x0/0x44                                         //nsproxy_cachep = KMEM_CACHE(nsproxy, SLAB_PANIC);
initcall nsproxy_cache_init+0x0/0x44 returned 0 after 0 msecs
calling  timekeeping_init_device+0x0/0x38                                    // Kernel timekeeping code and accessor functions
initcall timekeeping_init_device+0x0/0x38 returned 0 after 2 msecs
calling  init_clocksource_sysfs+0x0/0x68                                     // This file contains the functions which manage clocksource drivers
initcall init_clocksource_sysfs+0x0/0x68 returned 0 after 2 msecs
calling  init_timer_list_procfs+0x0/0x44                                     //proc_create("timer_list", 0644, NULL, &timer_list_fops);
initcall init_timer_list_procfs+0x0/0x44 returned 0 after 0 msecs
calling  futex_init+0x0/0x6c                                                 //?
initcall futex_init+0x0/0x6c returned 0 after 0 msecs
calling  kallsyms_init+0x0/0x3c                                              //proc_create("kallsyms", 0444, NULL, &kallsyms_operations);
initcall kallsyms_init+0x0/0x3c returned 0 after 0 msecs
calling  utsname_sysctl_init+0x0/0x20                                        //register_sysctl_table(uts_root_table);
initcall utsname_sysctl_init+0x0/0x20 returned 0 after 0 msecs
calling  init_per_zone_pages_min+0x0/0x50                                    //Initialise min_free_kbytes.
initcall init_per_zone_pages_min+0x0/0x50 returned 0 after 0 msecs
calling  pdflush_init+0x0/0x1c                                               //start_one_pdflush_thread()
initcall pdflush_init+0x0/0x1c returned 0 after 1 msecs
calling  kswapd_init+0x0/0x20                                                //kswapd_init
initcall kswapd_init+0x0/0x20 returned 0 after 0 msecs
calling  procswaps_init+0x0/0x3c                                             //proc_create("swaps", 0, NULL, &proc_swaps_operations);
initcall procswaps_init+0x0/0x3c returned 0 after 0 msecs
calling  init_tmpfs+0x0/0xe8                                                //register_filesystem(&tmpfs_fs_type);
initcall init_tmpfs+0x0/0xe8 returned 0 after 0 msecs
calling  cpucache_init+0x0/0x1c                                             //cpucache_init
initcall cpucache_init+0x0/0x1c returned 0 after 0 msecs
calling  fasync_init+0x0/0x44                                               //fasync_cache = kmem_cache_create("fasync_cache", sizeof(struct fasync_struct), 0, SLAB_PANIC, NULL);
initcall fasync_init+0x0/0x44 returned 0 after 0 msecs
calling  aio_setup+0x0/0x94                                                 //Creates the slab caches used by the aio routines
initcall aio_setup+0x0/0x94 returned 0 after 1 msecs
calling  inotify_setup+0x0/0x20                                             //atomic_set(&inotify_cookie, 0);
initcall inotify_setup+0x0/0x20 returned 0 after 0 msecs
calling  inotify_user_setup+0x0/0xf0                                        //ret = register_filesystem(&inotify_fs_type);
initcall inotify_user_setup+0x0/0xf0 returned 0 after 0 msecs
calling  dnotify_init+0x0/0x44                                              //dn_cache = kmem_cache_create("dnotify_cache", sizeof(struct dnotify_struct), 0, SLAB_PANIC, NULL);
initcall dnotify_init+0x0/0x44 returned 0 after 0 msecs
calling  init_devpts_fs+0x0/0x4c                                            // register_filesystem(&devpts_fs_type);
initcall init_devpts_fs+0x0/0x4c returned 0 after 0 msecs
calling  init_cramfs_fs+0x0/0x34                                            // register_filesystem(&cramfs_fs_type);
initcall init_cramfs_fs+0x0/0x34 returned 0 after 0 msecs
calling  init_ramfs_fs+0x0/0x1c                                             // register_filesystem(&ramfs_fs_type);
initcall init_ramfs_fs+0x0/0x1c returned 0 after 0 msecs
calling  init_fat_fs+0x0/0x74
initcall init_fat_fs+0x0/0x74 returned 0 after 0 msecs
calling  init_msdos_fs+0x0/0x1c                                             // register_filesystem(&msdos_fs_type);
initcall init_msdos_fs+0x0/0x1c returned 0 after 0 msecs
calling  init_vfat_fs+0x0/0x1c                                              // register_filesystem(&vfat_fs_type);
initcall init_vfat_fs+0x0/0x1c returned 0 after 0 msecs
calling  init_nfs_fs+0x0/0x138
initcall init_nfs_fs+0x0/0x138 returned 0 after 2 msecs
calling  init_nlm+0x0/0x34                                                  // register_sysctl_table(nlm_sysctl_root);
initcall init_nlm+0x0/0x34 returned 0 after 0 msecs
calling  init_jffs2_fs+0x0/0xdc
JFFS2 version 2.2. (NAND) 锟铰?2001-2006 Red Hat, Inc.
initcall init_jffs2_fs+0x0/0xdc returned 0 after 6 msecs
calling  init_romfs_fs+0x0/0x7c                                             register_filesystem(&romfs_fs_type);
initcall init_romfs_fs+0x0/0x7c returned 0 after 0 msecs
calling  ipc_init+0x0/0x2c                                                  //shm sem msg
msgmni has been set to 120
initcall ipc_init+0x0/0x2c returned 0 after 2 msecs
calling  ipc_sysctl_init+0x0/0x20                                           //register_sysctl_table(ipc_root_table);
initcall ipc_sysctl_init+0x0/0x20 returned 0 after 0 msecs
calling  noop_init+0x0/0x20                                                 //io scheduler algorithm
io scheduler noop registered
initcall noop_init+0x0/0x20 returned 0 after 2 msecs
calling  as_init+0x0/0x20                                                   //io scheduler algorithm
io scheduler anticipatory registered (default)
initcall as_init+0x0/0x20 returned 0 after 4 msecs
calling  deadline_init+0x0/0x20                                             //io scheduler algorithm
io scheduler deadline registered
initcall deadline_init+0x0/0x20 returned 0 after 2 msecs
calling  cfq_init+0x0/0xcc                                                  //io scheduler algorithm
io scheduler cfq registered
initcall cfq_init+0x0/0xcc returned 0 after 2 msecs
calling  fb_console_init+0x0/0x174
initcall fb_console_init+0x0/0x174 returned 0 after 1 msecs
calling  s3c2410fb_init+0x0/0x38
Console: switching to colour frame buffer device 40x30
fb0: s3c2410fb frame buffer device
initcall s3c2410fb_init+0x0/0x38 returned 0 after 40 msecs
calling  vfb_init+0x0/0x114
fb1: Virtual frame buffer device, using 1024K of video memory
initcall vfb_init+0x0/0x114 returned 0 after 24 msecs
calling  rand_initialize+0x0/0x38                                          //
initcall rand_initialize+0x0/0x38 returned 0 after 0 msecs
calling  tty_init+0x0/0x1d4
initcall tty_init+0x0/0x1d4 returned 0 after 121 msecs
calling  pty_init+0x0/0x464
initcall pty_init+0x0/0x464 returned 0 after 4389 msecs
calling  serial8250_init+0x0/0x130
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
initcall serial8250_init+0x0/0x130 returned 0 after 22 msecs
calling  s3c24xx_serial_modinit+0x0/0x78
s3c2410-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2410
s3c2410-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2410
s3c2410-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2410
initcall s3c24xx_serial_modinit+0x0/0x78 returned 0 after 35 msecs
calling  brd_init+0x0/0x1f8                                                //block ramdisk device
brd: module loaded
initcall brd_init+0x0/0x1f8 returned 0 after 62 msecs
calling  loop_init+0x0/0x1d4                                               //
loop: module loaded
initcall loop_init+0x0/0x1d4 returned 0 after 34 msecs
calling  net_olddevs_init+0x0/0xc8                                         //
initcall net_olddevs_init+0x0/0xc8 returned 0 after 0 msecs
calling  cs8900_init+0x0/0x34
Cirrus Logic CS8900A driver for Linux (Modified for SMDK2410)
eth0: CS8900A rev E at 0xc4c00300 irq=53, no eeprom , addr: 00:12:34:56:78:9A
initcall cs8900_init+0x0/0x34 returned 0 after 20 msecs
calling  init_mtd+0x0/0x44
initcall init_mtd+0x0/0x44 returned 0 after 0 msecs
calling  redboot_parser_init+0x0/0x1c                                      // register_mtd_parser(&redboot_parser);
initcall redboot_parser_init+0x0/0x1c returned 0 after 0 msecs
calling  cmdline_parser_init+0x0/0x1c                                      //  register_mtd_parser(&cmdline_parser);
initcall cmdline_parser_init+0x0/0x1c returned 0 after 0 msecs
calling  init_mtdchar+0x0/0xa4
initcall init_mtdchar+0x0/0xa4 returned 0 after 1 msecs
calling  init_mtdblock+0x0/0x1c                                            // register_mtd_blktrans(&mtdblock_tr);
initcall init_mtdblock+0x0/0x1c returned 0 after 0 msecs
calling  cfi_probe_init+0x0/0x20                                           // register_mtd_chip_driver(&cfi_chipdrv);
initcall cfi_probe_init+0x0/0x20 returned 0 after 0 msecs
calling  jedec_probe_init+0x0/0x20                                         // register_mtd_chip_driver(&jedec_chipdrv);
initcall jedec_probe_init+0x0/0x20 returned 0 after 0 msecs
calling  map_rom_init+0x0/0x20                                             // register_mtd_chip_driver(&maprom_chipdrv);
initcall map_rom_init+0x0/0x20 returned 0 after 0 msecs
calling  nand_base_init+0x0/0x28                                           // led_trigger_register_simple("nand-disk", &nand_led_trigger);
initcall nand_base_init+0x0/0x28 returned 0 after 0 msecs
calling  s3c2410_nand_init+0x0/0x40
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2410-nand s3c2410-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
s3c2410_nand_update_chip: chip c3ea7cbc: 9
Scanning device for bad blocks
Creating 8 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00004000 : "Boot Agent"
0x00000000-0x00200000 : "S3C2410 flash partition 1"
0x00400000-0x00800000 : "S3C2410 flash partition 2"
0x00800000-0x00a00000 : "S3C2410 flash partition 3"
0x00a00000-0x00e00000 : "S3C2410 flash partition 4"
0x00e00000-0x01800000 : "S3C2410 flash partition 5"
0x01800000-0x03000000 : "S3C2410 flash partition 6"
0x03000000-0x04000000 : "S3C2410 flash partition 7"
initcall s3c2410_nand_init+0x0/0x40 returned 0 after 407 msecs
calling  mon_init+0x0/0xe8
usbmon: debugfs is not available
initcall mon_init+0x0/0xe8 returned -19 after 4 msecs
calling  ohci_hcd_mod_init+0x0/0x48
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
initcall ohci_hcd_mod_init+0x0/0x48 returned 0 after 200 msecs
calling  serport_init+0x0/0x34
initcall serport_init+0x0/0x34 returned 0 after 0 msecs
calling  mousedev_init+0x0/0xa4
mice: PS/2 mouse device common for all mice
initcall mousedev_init+0x0/0xa4 returned 0 after 6 msecs
calling  atkbd_init+0x0/0x28
initcall atkbd_init+0x0/0x28 returned 0 after 1 msecs
calling  psmouse_init+0x0/0x88
initcall psmouse_init+0x0/0x88 returned 0 after 2 msecs
calling  s3c_rtc_init+0x0/0x28
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
initcall s3c_rtc_init+0x0/0x28 returned 0 after 10 msecs
calling  i2c_adap_s3c_init+0x0/0x40
s3c2410-i2c s3c2410-i2c: slave address 0x10
s3c2410-i2c s3c2410-i2c: bus frequency set to 99 KHz
s3c2410-i2c s3c2410-i2c: i2c-0: S3C I2C adapter
initcall i2c_adap_s3c_init+0x0/0x40 returned 0 after 22 msecs
calling  watchdog_init+0x0/0x28
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
initcall watchdog_init+0x0/0x28 returned 0 after 15 msecs
calling  hid_init+0x0/0x14
initcall hid_init+0x0/0x14 returned 0 after 0 msecs
calling  sysctl_core_init+0x0/0x1c                                            //register_pernet_subsys(&sysctl_core_ops);
initcall sysctl_core_init+0x0/0x1c returned 0 after 0 msecs
calling  flow_cache_init+0x0/0x158
initcall flow_cache_init+0x0/0x158 returned 0 after 0 msecs
calling  sysctl_ipv4_init+0x0/0x54
initcall sysctl_ipv4_init+0x0/0x54 returned 0 after 5 msecs
calling  xfrm4_beet_init+0x0/0x20
initcall xfrm4_beet_init+0x0/0x20 returned 0 after 0 msecs
calling  xfrm4_transport_init+0x0/0x20
initcall xfrm4_transport_init+0x0/0x20 returned 0 after 0 msecs
calling  xfrm4_mode_tunnel_init+0x0/0x20
initcall xfrm4_mode_tunnel_init+0x0/0x20 returned 0 after 0 msecs
calling  inet_diag_init+0x0/0x94
initcall inet_diag_init+0x0/0x94 returned 0 after 0 msecs
calling  tcp_diag_init+0x0/0x1c
initcall tcp_diag_init+0x0/0x1c returned 0 after 0 msecs
calling  cubictcp_register+0x0/0x98
TCP cubic registered
initcall cubictcp_register+0x0/0x98 returned 0 after 3 msecs
calling  init_sunrpc+0x0/0x60
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
initcall init_sunrpc+0x0/0x60 returned 0 after 12 msecs
calling  s3c24xx_dma_sysdev_register+0x0/0x7c
initcall s3c24xx_dma_sysdev_register+0x0/0x7c returned 0 after 6 msecs
calling  sched_init_debug+0x0/0x14
initcall sched_init_debug+0x0/0x14 returned 0 after 0 msecs
calling  init_oops_id+0x0/0x30
initcall init_oops_id+0x0/0x30 returned 0 after 0 msecs
calling  disable_boot_consoles+0x0/0x58
initcall disable_boot_consoles+0x0/0x58 returned 0 after 0 msecs
calling  pm_qos_power_init+0x0/0x6c
initcall pm_qos_power_init+0x0/0x6c returned 0 after 5 msecs
calling  random32_reseed+0x0/0x64
initcall random32_reseed+0x0/0x64 returned 0 after 0 msecs
calling  seqgen_init+0x0/0x1c
initcall seqgen_init+0x0/0x1c returned 0 after 0 msecs
calling  rtc_hctosys+0x0/0x144
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
initcall rtc_hctosys+0x0/0x144 returned -19 after 4 msecs
calling  tcp_congestion_default+0x0/0x1c
initcall tcp_congestion_default+0x0/0x1c returned 0 after 0 msecs
calling  ip_auto_config+0x0/0xcf0                                                    // ip_auto_config
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
     device=eth0, addr=192.168.1.58, mask=255.255.255.0, gw=255.255.255.255,
     host=192.168.1.58, domain=, nis-domain=(none),
     bootserver=255.255.255.255, rootserver=192.168.1.57, rootpath=
initcall ip_auto_config+0x0/0xcf0 returned 0 after 4616 msecs
Looking up port of RPC 100003/2 on 192.168.1.57
Looking up port of RPC 100005/1 on 192.168.1.57
VFS: Mounted root (nfs filesystem).
Freeing init memory: 144K

Please press Enter to activate this console. 

BusyBox v1.13.0 (2011-07-03 10:08:33 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.


 

 

你可能感兴趣的:(linux内核)