MVME2604においてTecnoBox PMC-3145を動作させる設定

Motrola MVME2604においてTecnoBox PMC-3145を動作させる設定について



 MVME2604 BSPの変更内容について

・動作させるに当たり、以下の標準BSPファイルに変更をしております。

sysLib.c
mv2600.h
config.h
sysScsi.c

・以降が各ファイルの変更内容です。
※▼追加、★変更箇所

[sysLib.c]

795: #ifdef  INCLUDE_SECONDARY_SCSI
796:     /*
797:      *  Initialize the Standard PCI Header of the Secondary SCSI device
798:      *  (SYM53C825A) if present.
799:      */
800: ★      if (pciFindDevice (PCI_ID_NCR895A & 0xFFFF, (PCI_ID_NCR895A >> 16) & 0xFFFF,
801:                         0, &pciBusNo, &pciDevNo, &pciFuncNo) != ERROR)
802:         {
803:         (void)pciDevConfig (pciBusNo, pciDevNo, pciFuncNo,
804:                             PCI_IO_SCSI_ADRS2,
805:                             NULL,
806:                             (PCI_CMD_MASTER_ENABLE | PCI_CMD_IO_ENABLE));
807:         }
808: #endif  /* INCLUDE_SECONDARY_SCSI */


[mv2600.h]

389: ★ #define PCI_ID_SEC_SCSI         0x00121000      /* Id for SYM53C810A Chip */
390: #define PCI_ID_NCR810           0x00011000      /* Id for SYM53C810A Chip */
391: #define PCI_ID_NCR860           0x00061000      /* Id for SYM53C860 Chip */
392: #define PCI_ID_NCR825           0x00031000      /* Id for SYM53C825/75 Chips*/
393: ▼ #define PCI_ID_NCR875A          0x00121000      /* Id for SYM53C895A Chips*/

1444: ★ #define SCSI_INT_VEC2           INT_VEC_IRQ0 + PMC_INT_LVL1

[config.h]

116: #ifdef  MV2600
117: #    define    INCLUDE_CACHE_L2    /* L2 cache support */
118: #    define    INCLUDE_I8250_SIO       /* COM1 and COM2 via i8250 */
119: #    define    INCLUDE_Z85230_SIO      /* serial ports 3 & 4 via Z85230 */
120: #    define    INCLUDE_PRIMARY_ENET    /* DEC 21140 */
121: #    undef    INCLUDE_SECONDARY_ENET    /* [NOT AVAILABLE] */
122: #    undef    INCLUDE_PRIMARY_SCSI    /* NCR 825 */
123: ★ #    define    INCLUDE_SECONDARY_SCSI    /* [NOT AVAILABLE] */
124: #    define    INCLUDE_AUXCLK        /* Z 8536 */
125: #    undef    INCLUDE_VME_DMA        /* VME DMA support */
126: #    undef     INCLUDE_FD        /* Floppy Disk */
127: #endif

231: ▼ #ifdef  INCLUDE_SECONDARY_SCSI
232: ▼ #define INCLUDE_SCSI
233: ▼ #define INCLUDE_SCSI_BOOT    /* include ability to boot from SCSI */
234: ▼ #define INCLUDE_DOSFS        /* file system to be used */
235: ▼ #undef    SCSI_AUTO_CONFIG    /* scan bus on startup */
236: ▼ #define    SCSI_WIDE_ENABLE    /* enable wide SCSI on MVME761-011 only */
237: ▼ #define    SYS_SCSI_CONFIG        /* call sysScsiConfig in sysScsi.c */
238: ▼ #endif  /* INCLUDE_SECONDARY_SCSI */

[sysScsi.c]

130:     pciConfigInWord (pciBusNo, pciDevNo, pciFuncNo, PCI_CFG_DEVICE_ID, &devType);
131:
132:     SCSI_DEBUG_MSG ("Found Primary SCSI Controller – Dev/Ven ID = 0x%x\n", PCI_ID_SCSI,0,0,0,0,0);
133:     }
134:     else
135:     {
136: ▼     goto secondary;
137:     logMsg ("SCSI controller not found\n", 0, 0, 0, 0, 0, 0);
138: ★ /*      return (ERROR); */
139:     }

192:     if (ncr810SetHwRegister ((NCR_810_SCSI_CTRL *)pSysScsiCtrl, &hwRegs)
193:     == ERROR)
194:         return(ERROR);
195:
196: ▼ secondary:
197:
198: #ifdef  INCLUDE_SECONDARY_SCSI
199:
200:    if (pciFindDevice ((PCI_ID_SEC_SCSI & 0xFFFF),
201:                ((PCI_ID_SEC_SCSI >> 16) & 0xFFFF), 0, &pciBusNo,
202:                &pciDevNo, &pciFuncNo) != ERROR)
203:        {
204:    /* Get Device ID */
205:
206:    pciConfigInWord (pciBusNo, pciDevNo, pciFuncNo, PCI_CFG_DEVICE_ID, &devType2);
207:
208:    logMsg ("Found Secondary SCSI Controller – Dev/Ven ID = 0x%x\n", PCI_ID_SEC_SCSI,0,0,0,0,0);
209:    }
210:    else
211:    {
212:    logMsg ("Secondary SCSI controller not found\n", 0, 0, 0, 0, 0, 0);
213:        return (ERROR);
214:    }
215:
216: ▼ if(devType2 == NCR895_DEVICE_ID || devType2 == NCR895A_DEVICE_ID)
217: ▼      devType2 = NCR875_DEVICE_ID;
218:
219:#ifndef SCSI_WIDE_ENABLE
220:    devType2 = NCR810_DEVICE_ID;
221:#endif

242:     /* Enable SCSI interrupts */
243:
244: ★     intEnable (PMC_INT_LVL1);

432: ▼ #if FALSE  /* EXAMPLE CODE IS NOT COMPILED */
433:
434: STATUS sysScsiConfig (void)
435:     {
436:
437: ★
438:     UINT which;

636: ★
637:
638:     return (OK);
639:     }
640:
641: ▼ #endif /*FALSE, END OF EXAMPLE CODE */


DosFs2.0を使用する際の変更事項

DosFs2.0を使用する際に、Projectを使用せずにvxWorksカーネルを生成した場合には
usrFsLibに含まれる、"ls","ll","pwd"などのコマンドがシェルから使えなくなります。
これを回避するには、target/src/config/usrExtra.cファイルへ下記の追加をすることで
使用可能になります。
また、BSPディレクトリィのconfig.hへも下記の追加設定をします。

[config.h]

#ifdef  INCLUDE_SECONDARY_SCSI
#define INCLUDE_SCSI
#define INCLUDE_SCSI_BOOT    /* include ability to boot from SCSI */
#define INCLUDE_DOSFS        /* file system to be used */
▼ #define INCLUDE_DISK_UTIL
#undef    SCSI_AUTO_CONFIG    /* scan bus on startup */
#define    SCSI_WIDE_ENABLE    /* enable wide SCSI on MVME761-011 only */
#define    SYS_SCSI_CONFIG        /* call sysScsiConfig in sysScsi.c */
#endif  /* INCLUDE_SECONDARY_SCSI */


[usrExtra.c]

▼ #ifdef INCLUDE_DISK_UTIL
▼ #include "../../src/usr/usrFsLib.c"
▼ #endif /* INCLUDE_DISK_UTIL */

 

TakahashiKoujiMVME2604においてTecnoBox PMC-3145を動作させる設定