[Up]

村瀬の作業記録〜2001年7月〜

いろいろ記録しておこう。


< 前の記録 | 次の記録 > | 最近5日間 >>

2001年7月1日(日)

ppcboot-1.0.1

_ FlashROM まわりを少し直す。危険なので bank0 はプロテクトしておく。 プロテクトといってもソフトウェアレベルのもの。FlashROM 自身を プロテクトモードにしているわけではない。ので、安心してプロテクトする。

_ saveenv してみた。ちゃんと FlashROM に書き込めたようだ。

_ 今日のログ。

homepage

とりあえず更新。

2001年7月3日(火)

ppcboot-1.0.1

_ Flash まわりをもう一度。なんとなく 0xffff0000 のセクタは deadbeaf なので プロテクトする。

_ ppcboot 用 Linux Kernel イメージを専用コマンドで作らなくてはならない。 README をよく読む。

tools/mkimage -n '2.2.13 on OpenBlockS' \
 -A ppc -O linux -T kernel -C gzip -a 00000000 -e 0000000C \
 -d somewhere/linux-2.2.13/arch/ppc/coffboot/vmlinux.gz \
 image-2.2.13

_ あらかじめ FlashROM を消しておく。そしてシリアルでダウンロード。 115200[bps] では無理。フローコントロールは効かない。38400[bps] なら O.K.

BOOT: erace ffe00000 ffe7ffff
BOOT: setenv baudrate 38400
BOOT: loads ffe00000

_ とりあえずイメージを認識してブートをかけられるようだ。


2001年7月5日(木)

ppcboot-1.0.1

_ よくよく考えると linux/arch/boot/mbx でやっていることは ppcboot で やっておかないといけない。

_ というわけで以下を設定するべし。すると rtc/mpx8xx.c:void rtc_set(struct rtc_time *tmp) で設定できる・・・のか。

#define	CONFIG_RTC_MPC8xx		/* use internal RTC of MPC8xx	*/

#define CONFIG_COMMANDS	      ( CONFIG_CMD_DFL	| \
				CFG_CMD_DATE	)

/*-----------------------------------------------------------------------
 * RTCSC - Real-Time Clock Status and Control Register		11-27
 *-----------------------------------------------------------------------
 */
/* +0x0220 => 0x00C3 */
#define CFG_RTCSC	(RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE)

_ やはり CONFIG_I2C でなんとかするしかないようだ。


2001年7月7日(土)

linux-es

_ 時計の話:
ふらふらみていたら見つけた。

linux-es/arch/ppc/kernel/m8xx_setup.c:void m8xx_calibrate_decr(void)
にかなり強引なパッチをあてているぞ。これでずれないようにしているらしい。

_ IDEの話:
CONFIG_ISA_IS_PCMCIA で

/* Define this to make a PCMCIA ATA Flash card work.
*/
#define ES 1 /*  @@*/
して、PCMCIA インタフェースを使っていますなあ。 さすがにこれは使ったことがないのでよく分からん。読むしかないなあ。

ppcboot-1.0.1

SCCR[RTSEL] がたっていない ?

2001年7月8日(日)

ppcboot-1.0.1

_ common/board.c:: void board_init_r(bd_t *bd, ulong dest_addr)
ここから呼び出される misc_init_r() で RTC と EEPROM を読むことにする。


2001年7月9日(月)

ppcboot-1.0.2

また新しくなったみたいね。

TFTPD

起動する。Vine-2.1.5 使用。inetd 経由。 /etc/inetd.conf でコメントになっているので有効にする。 home として /tftpboot を作る。ファイルを置く。 ppcboot 用は mkimage しておくこと。

2001年7月10日(火)

linux-2.4.6

ppcboot 経由で動かすには、かなり手を加える必要がある。include/asm-ppc/obs.h の bd_t を ppcboot のものにあわせないといけない。bd_t の中身はすべて ppcboot で設定してポインタを直接 vmlinux に渡す。
linux/arch/boot/mbx はもはや使用しない。

うーん。どうしましょ。

ppcboot-1.0.1

tftpboot に成功。しかし途中で止まる。bd_t が不一致を起こしているので当然。

うーん。どうしましょ。

2001年7月11日(水)

linux-2.4.6

_ クロックの話:
組込み Linux/PPC はクロックを MHz でやっていた。で前に強引に Hz で OpenBlockS を動かした。ちゃんと MHz にしようと思っていたのだが。

どうもうまく動かないと思ったら baudrate がおかしい。いつのまにか 1000000 倍が消えている。ということは Hz で決めうちになっているじゃないか。

というわけで、Hz にしましょう。

_ IDE の話:
たぶんセンチェリーさんとは違う形で実装されているような気がする。 include/asm-ppc/ の ivms8.h, spd8xx.h とかを読むべし。

ppcboot-1.0.1

config_OpenBlockS.h に CFG_CLKS_IN_HZ を追加する。これで 49152000 が カーネルに渡される。

MAC アドレス、RTC は後回し。とりあえず固定でやる。大事無い。

2001年7月12日(木)

linux-2.4.6

_ IDE の話:
全然違う。わけがわからん。センチュリーさんのコードだと結局こういうこと。

#define ES
#define ATA_FLASH
#undef CONFIG_ISA_IS_PCMCIA


2001年7月19日(木)

linux-2.4.6

_ IDE の話:
かなり手間取ったが IDE で名前は取れた (IDENTIFY DEVICE COMMAND)。
よく分からないが、バイトスワップ (insw, outsw) しなくちゃいけないのか。 スワップなし (insw_ns, outsw_ns) では逆になる。

IDE というか ATA レジスタ群は 0x80000000 のあたり。16[bit] バス幅固定。 アドレスは 2[Byte] 境界切り。

IDE0_INTERRUPT を追加。したら動いた。

_ restart 出来ない:
のは m8xx_restart() のあたりがうまくいっていないからだろう。 MMU を切って RTE しないとうまくいかないような。machine check exception で check stop state に入れて、リセットをかけようということ、らしいがどうかな。


2001年7月20日(金)

linux-2.4.6

_ DipSW の話:
ルートファイルシステムとして ramdisk を使うかハードディスクを使うかは、 DipSW で決める。

_ arch/boot/mbx:
ppcboot 互換に書き換え。

_ fec の話:
何もしなくても動くのはすごい。 が、このままだと Link Status Change で割り込みが入らないようだ。 ということは、Auto Negotiation で全2重/半2重 が変わった時に対応できない だろう。速度は 10/100[MHz] が変わっても問題はない。まあめったに問題は でないので、よしとするか。


2001年7月21日(土)

linux-2.4.6

_ restart 出来ない:
この件は少し追いかけたが良く分からない。大体 shutdown -r now して LED がカウントダウンするのはどういうわけだ ??

OpenBlockS

というわけでパッチを作る。
そういえば来週ぐらいで OpenBlockS 発売1周年ですな。

GCC

そういえば gcc-3.0 も出たのにまだ gcc-2.95.2 だなあ。せめて gcc-2.95.3 ぐらいに上げようか。

katsunori.murase@nifty.ne.jp