DSC-G3のカーネルソースを見た。

ソニーが2009年1月に発売したWi-Fi機能付デジタルカメラ DSC-G3(製品ページ)用のLinuxカーネルソースコードを見てみた。
ソースコードは、http://www.sony.net/Products/Linux/Download/search.htmlからダウンロードできます。

.config

.configを見ると、いろいろ分かります。

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.11-alp20080305
# Tue Jul 15 10:03:47 2008
#
CONFIG_ARM=y
#
# System Type
#
# CONFIG_ARCH_CXD4105 is not set
CONFIG_ARCH_CXD4108=y
CONFIG_ARCH_CXD4105BASED=y
  • メインのチップはソニー製のCXD4108
  • CXD4108はCXD4105の派生品
#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM926T=y
CONFIG_CPU_32v5=y
CONFIG_CPU_ABRT_EV5TJ=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
  • ARMのコアはARM926
CONFIG_CMDLINE="console=ttyAM0,115200n8 ip=on mem=60M memmap=0x02c8a000@0x21376000 initrd=0x2062e000,0x002ff000 root=/dev/ram0 init=/linuxrc rw"
CONFIG_ALIGNMENT_TRAP=y
#
# PARTNER Debugging
#
CONFIG_DEBINFO_NONE=y
# CONFIG_DEBINFO_STAB is not set
# CONFIG_DEBINFO_STABP is not set
# CONFIG_DEBINFO_DWARF is not set
# CONFIG_DEBINFO_DWARFP is not set
# CONFIG_DEBINFO_DWARF2 is not set
# CONFIG_KMC_PATCH is not set

USB OTGドライバ

/*
 * usb_otgcore.c
 * 
 * Copyright 2005,2006,2008 Sony Corporation
 * 
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*
 * get_config_desc_from_config_num
 *━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*
 * 概要:    現在のBusSpeedで、引数で指定されたConfig番号を持つConfigDesc
 *          を取得する
 * 入力:    g_core     : GadgetCoreへのポインタ
 *          config_num : Config番号
 * 出力:    !0   : 成功(ConfigDescへのポインタ)
 *          NULL : 失敗
 * 
 * <EOS>                                *
 *━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
usb_gadget_config_desc*
get_config_desc_from_config_num(struct g_core_drv *g_core, u8 config_num)
{
    usb_gadget_speed_desc *sp_desc;
    u8 i;
    
    /* 現在のspeedからSpeedDescを取得 */
    if(g_core->gadget->speed == USB_SPEED_HIGH){
        sp_desc = &g_core->desc_tbl->hs;
    }else{
        sp_desc = &g_core->desc_tbl->lsfs;
    }
    
    /* 指定のconfig値を持つConfigDescriptorを探す */
    for(i = 0; i < sp_desc->uc_num_config; i++){
        if(sp_desc->configurations[i].uc_configuration_value == config_num){
            return &sp_desc->configurations[i];
        }
    }
    
    /* 見つからなかった */
    return NULL;
}
  • 日本語でコメントが書いてある。

USB Controller Driver

/*--------------------------------------------------------------------------*
 * drivers/usb/mcd/usb_mcd_plat_uds.c
 * 
 * USB controller driver
 * 
 * Copyright 2005,2006 Sony Corporation
 * 
 * This code is based on plat_uds.c,
 * Copyright 2005 Mentor Graphics Corporation
  • driver/usb/mcd にあるUSB Controllerのドライバはソニー製。
  • USBのIPはMentor製(製品ページ)のようです。