2012/12/31

Digging in NextVOD's kernel & u-boot source

[2013/01/07 updated]
There are some questions which I don't know inside NextVOD, so I started to 'grep' some keyword in source code. Including the 256M memory solution (not tested fully).
1. Why kernel's root=8:2 means 2nd partition?

Some code related to this question:
Read the description of function name_to_dev_t() kernel source init/do_mounts.c.
root=/dev/<disk_name> or root=8:2 are accpetable.
root=8:2 means it will mapping to device major number=8, minor number=2

2. What's the nextvod's boot sequence in U-BOOT?

Some code related to this question:
Read update_process() in u-boot source of board/st/pdk7105/swUpdate.c


 NORMAL_START = 1,           //正常启动
 ONEKEY_RECOVER,         //一键还原模式,包括外部非ext2-U盘和内部升级
 NET_UPGRADE_OSP,        //网络升级OSP    
 NET_UPGRADE_RUNNING,     //网络升级RUNNING
 EXT_EXT2_USB=255          //外部ext2 U盘


if key press more than 3s {
  if usb inserted a FAT disk {
    if contains("/iptvubootupdate.bin") {
      update U-BOOT
      write flash as NORMAL_START
    } else {
      if internal USB's first partition OK then {
        write flash as ONEKEY_RECOVER
        execute 'backup partition restore process'
       }
    } else { // ext2 filesystem
      if ext2 correct {
        write flash as EXT_EXT2_USB
        execute it
      }
  } else { // no key pressed
     enter normal start mode
  }
}

There are three bootargs in setenv_start() which mapping to EXT_EXT2_USB, INT_USB_PARTITION_BACKUP, INT_USB_PARTITION_RUNNING.

3. Why nextvod's memory limited in mem=120M



These code were modified by SMIT inc. But they are not related to this problem.

  • arch/sh/boards/st/pdk7105/setup.c
  • arch/sh/kernel/cpu/sh4/setup-stx7105.c
  • drivers/usb/storage/usb.c

沒有留言: