Yoichi Koyanagi
yk****@tinyw*****
2004年 1月 15日 (木) 15:51:28 JST
こんにちは。小柳です。 パッチを取り込んでいただきありがとうございました。 > > eCos/uClinux共に、aki3068 の IDEまわりのソースは H8MAX と比べてちょっと > > 修正が遅れているようにみうけられたので、eCos の cvs に施した修正を > > 下記につけますので、もしよろしければご参照ください。 > > ありがとうございます。すこし手を入れて取り込みました。 > あいかわらずテスト環境がないので、動作確認できていません。 最新の CVS で試してみましたが、DISKを動作させるのにもうあとちょっと 修正が必要でしたので、下にdiffをつけました。 1. ide_init() で HAL_IDE_INIT() の戻り値を num_controller に代入 するようになっていますが、aki3068net_ide_setup() の戻り値は void なので、コンマ式でHAL_IDE_NUM_CONTROLLERSを返すようにしました。 2. aki3068net_read_command() は D[7:0] を読むので、byte access (奇数アドレスなので)に直しました。 Index: packages/hal/h8300/aki3068net/current/include/plf_io.h =================================================================== RCS file: /cvsroot/ecos-h8/ecos/packages/hal/h8300/aki3068net/current/include/plf_io.h,v retrieving revision 1.2 diff -c -r1.2 plf_io.h *** packages/hal/h8300/aki3068net/current/include/plf_io.h 26 Dec 2003 16:34:12 -0000 1.2 --- packages/hal/h8300/aki3068net/current/include/plf_io.h 14 Jan 2004 08:25:36 -0000 *************** *** 62,68 **** #define HAL_IDE_NUM_CONTROLLERS 1 // Initialize the IDE controller(s). ! #define HAL_IDE_INIT() aki3068net_ide_setup() #define HAL_IDE_READ_UINT8( __ctlr, __regno, __val ) \ aki3068net_read_command(__regno, &(__val)) --- 62,68 ---- #define HAL_IDE_NUM_CONTROLLERS 1 // Initialize the IDE controller(s). ! #define HAL_IDE_INIT() (aki3068net_ide_setup(), HAL_IDE_NUM_CONTROLLERS) #define HAL_IDE_READ_UINT8( __ctlr, __regno, __val ) \ aki3068net_read_command(__regno, &(__val)) Index: packages/hal/h8300/aki3068net/current/src/plf_ide.c =================================================================== RCS file: /cvsroot/ecos-h8/ecos/packages/hal/h8300/aki3068net/current/src/plf_ide.c,v retrieving revision 1.2 diff -c -r1.2 plf_ide.c *** packages/hal/h8300/aki3068net/current/src/plf_ide.c 26 Dec 2003 16:34:12 -0000 1.2 --- packages/hal/h8300/aki3068net/current/src/plf_ide.c 14 Jan 2004 08:25:37 -0000 *************** *** 82,88 **** #if CYGHWR_HAL_IDE_BUSWIDTH == 8 *d = *(volatile cyg_uint8 *)(CYGHWR_HAL_IDE_REGISTER + r); #else ! *d = *(volatile cyg_uint16 *)(CYGHWR_HAL_IDE_REGISTER + (r << 1) + 1); #endif } --- 82,88 ---- #if CYGHWR_HAL_IDE_BUSWIDTH == 8 *d = *(volatile cyg_uint8 *)(CYGHWR_HAL_IDE_REGISTER + r); #else ! *d = *(volatile cyg_uint8 *)(CYGHWR_HAL_IDE_REGISTER + (r << 1) + 1); #endif }