Y.s Diary


 

2015年 02月 09日
SHARP SL-C700 (PDA)
+ [U-Boot]

u-boot on SL-C700 - 蔵 の U-Boot 2009.11 を使ってみました。

標準では netbsd カーネルが自動でブートしますので、以下の修正を行いました。

*** include/configs/corgi.h.ORIG        2012-10-29 21:14:59.000000000 +0900
--- include/configs/corgi.h     2015-02-08 16:50:03.415991913 +0900
***************
*** 112,118 ****
  #define CONFIG_BOOTDELAY      3
  #define CONFIG_SERVERIP               192.168.1.99
  #define CONFIG_ETHADDR          00:11:22:33:44:55
! #define CONFIG_BOOTCOMMAND    "run boot_netbsd"
  #define CONFIG_BOOTARGS               ""

  #define CONFIG_EXTRA_ENV_SETTINGS                                     \
--- 112,118 ----
  #define CONFIG_BOOTDELAY      3
  #define CONFIG_SERVERIP               192.168.1.99
  #define CONFIG_ETHADDR          00:11:22:33:44:55
! #define CONFIG_BOOTCOMMAND    "run boot_autoselect"
  #define CONFIG_BOOTARGS               ""

  #define CONFIG_EXTRA_ENV_SETTINGS                                     \
***************
*** 125,133 ****
                        "mmcinfo; "                                     \
                        "if fatload mmc 0 a1200000 netbsd; "            \
                        "then bootelf a1200000; "                       \
!                       "fi; "                                          \
!                       "if fatload mmc 0 a1200000 zImage; "            \
!                       "then go a1200000; "                            \
                        "fi\0"                                          \

  #define CONFIG_SETUP_MEMORY_TAGS 1
--- 125,132 ----
                        "mmcinfo; "                                     \
                        "if fatload mmc 0 a1200000 netbsd; "            \
                        "then bootelf a1200000; "                       \
!                       "else if fatload mmc 0 a1200000 zImage; "       \
!                       "then go a1200000; fi; "                        \
                        "fi\0"                                          \

  #define CONFIG_SETUP_MEMORY_TAGS 1

netbsd カーネルが無ければ Linux カーネル を起動します。

コンパイルには Ubuntu 14.04.1 x86_64 な PC で Sourcery CodeBench Lite を使ったのですが、

Sourcery CodeBench Lite 2012.03-57 (gcc 4.6.3) : OK
Sourcery CodeBench Lite 2012.09-64 (gcc 4.7.2) : OK
Sourcery CodeBench Lite 2013.05-24 (gcc 4.7.3) : OK
Sourcery CodeBench Lite 2013.11-33 (gcc 4.8.1) : NG (Linux カーネルが画面を更新しない)
Sourcery CodeBench Lite 2014.05-29 (gcc 4.8.3) : NG (Linux カーネルが画面を更新しない)

でした。

更に make 時に O=obj を付けるとコンパイルエラーでした。

+ [Linux]

The Linux Kernel Archives の linux-3.18.6 をコンパイルします。

コンパイラは Sourcery CodeBench Lite 2013.05-24 を使います。 (クロスコンパイルの設定は適当にしてあるものとします)

SHARP SL-C700 用のデフォルト設定を読み込みます。

% make corgi_defconfig

これだけでは動きませんので、設定を変更します。

% make menuconfig

最低限、以下の設定が必要になると思います。

System Type  --->
  Intel PXA2xx/PXA3xx Implementations  --->
    [*]   Detect machine ID at run-time in the decompressor
Kernel Features  --->
  [*] Use the ARM EABI to compile the kernel
Boot options  --->
  (console=ttyS0,9600n8 console=tty1 root=/dev/mmcblk0p2 rw rootwait rootfstype=ext4)
Device Drivers  --->
  Input device support  --->
    [*]   Keyboards  --->
      <*>   GPIO Buttons
      <*>   GPIO driven matrix keypad support
Device Drivers  --->
  <M> Sound card support  --->
    <M>   Advanced Linux Sound Architecture  --->
      <M>   ALSA for SoC audio support  --->
        <M>   SoC Audio for the Intel PXA2xx chip
        <M>   SoC Audio support for Sharp Zaurus SL-C7x0
Device Drivers  --->
  [*] LED Support  --->
    <*>   LED Class Support
    <*>   LED Support for GPIO connected LEDs
    [*]   LED Trigger support  --->
      <*>   LED Timer Trigger
      <*>   LED Heartbeat Trigger
File systems  --->
  <*> Ext3 journalling file system support
  <*> The Extended 4 (ext4) filesystem

カーネルとモジュールをコンパイルします。

% make zImage
% make modules
 

This page is written in Japanese.