MVME2304においてTecnoBox PMC-3145を動作させる手順について
■ HDDよりの起動方法
1.PMCスロット1へTecnoBox PMC-3145を実装します。
2.フロントSCSI WIDEコネクタより付属のHDD(SCSI ID2番)を接続します。
3.電源を投入します。
4.ブートパラメータに以下が設定されていることを確認します。
boot device : scsi=2,0
file name : /sd0/vxWorks
5.vxWorksを起動します。
[VxWorks Boot]: @
boot device : scsi=2,0
unit number : 0
processor number : 0
host name : frc7v
file name : /sd0/vxWorks
inet on ethernet (e) : 172.16.0.38:ffff0000
host inet (h) : 172.16.0.7
user (u) : taka
flags (f) : 0x0
target name (tn) : mv2304
0x1fc97f8 (tBoot): Found Secondary SCSI Controller – Dev/Ven ID = 0x121000
Attaching to scsi device… done.
Loading /sd0/vxWorks…959368
Starting at 0x100000…
0x1fffdf8 (tRootTask): Found Secondary SCSI Controller – Dev/Ven ID = 0x121000
Attaching network interface lo0… done.
NFS client support not included.
Loading symbol table from /sd0/vxWorks.sym …done
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] (R)
] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]]
]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]]
]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]]]]]
]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]]]
]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]]]]
]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ]]]]
]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]]
]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System
]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks version 5.4
]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.5
]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., 1984-1999
CPU: Motorola MVME2300 – MPC 604e. Processor #0.
Memory Size: 0x2000000. BSP version 1.2/0.
->
■ 新しくHDDを接続したときの手順
1.vxWorksを起動し以下のコマンドを実行してHDDが繋がっていることを確認します。
-> scsiAutoConfig
value = 0 = 0x0
-> scsiShow
ID LUN VendorID ProductID Rev. Type Blocks BlkSize pScsiPhysDev
— — ——– —————- —- —- ——– ——- ————
2 0 SEAGATE ST39140N 1498 0 17783240 512 0x007b8770
value = 0 = 0x0
2.HDDをフォーマットします。
-> scsiFormatUnit 0x007b8770 <— scsiShowで表示されたもの。
value = 0 = 0x0
3.Ctrl+Xにて再起動します。
4.以下の手順を行います。
-> pSpd20 = scsiPhysDevCreate(pSysScsiCtrl,2,0,0,0,0,0,0)
-> pSbd0 = scsiBlkDevCreate(pSpd20,200000,0)
-> pSbd1 = scsiBlkDevCreate(pSpd20,200000,200000)
-> pSbd2 = scsiBlkDevCreate(pSpd20,200000,400000)
-> dosFsMkfs("/sd0/",pSbd0)
-> dosFsMkfs("/sd1/",pSbd1)
-> dosFsMkfs("/sd2/",pSbd2)
scsiBlkDevCreate()の引数の説明
※2番目の引数がパーティションのブロック数、3番目が先頭ブロックになります。
2番目の引数に”0”を指定すると残り全ブロック数となります。
5.以下のコマンドを実行しSCSIデバイスが作成されていることを確認します。
-> devs
drv name
0 /null
1 /tyCo/0
3 /sd0/ <— Partition 0
3 /sd1/ <— Partition 1
3 /sd2/ <— Partition 2
5 frc7v:
6 /pty/rlogin.S
7 /pty/rlogin.M
6 /pty/telnet.S
7 /pty/telnet.M
value = 25 = 0x19
6.各パーティションをフォーマットします。
-> diskFormat "/sd0/"
disk formatted.
value = 0 = 0x0
同様に”/sd1/”、”/sd2/”に対しても行います。
7.Ctrl+Xにて再起動します。
8.以下の手順を行います。
-> pSpd20 = scsiPhysDevCreate(pSysScsiCtrl,2,0,0,0,0,0,0)
-> pSbd0 = scsiBlkDevCreate(pSpd20,200000,0)
-> pSbd1 = scsiBlkDevCreate(pSpd20,200000,200000)
-> pSbd2 = scsiBlkDevCreate(pSpd20,200000,400000)
-> dosFsMkfs("/sd0/",pSbd0)
-> dosFsMkfs("/sd1/",pSbd1)
-> dosFsMkfs("/sd2/",pSbd2)
9.CTRL+Xにて再起動します。
10.起動後、以下の手順を行います。
-> pSpd20 = scsiPhysDevCreate(pSysScsiCtrl,2,0,0,0,0,0,0)
-> pSbd0 = scsiBlkDevCreate(pSpd20,200000,0)
-> pSbd1 = scsiBlkDevCreate(pSpd20,200000,200000)
-> pSbd2 = scsiBlkDevCreate(pSpd20,200000,400000)
-> dosFsDevInit("/sd0/",pSbd0,0)
-> dosFsDevInit("/sd1/",pSbd1,0)
-> dosFsDevInit("/sd2/",pSbd2,0)
※以後は、起動時に10.の手順を行うことで御使用頂けます。
また、起動時に自動でこの手順を行う場合には、target/src/config/usrScsi.cファイルの
sysScsiInit()内へこの設定をして下さい。
また、Project使用時には、target/config/comps/src/usrScsi.cファイルを同様に変更して下さい。
■ 添付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_NCR895A 0x00121000 /* Id for SYM53C895A Chips*/
1444: ★ #define SCSI_INT_VEC2 INT_VEC_IRQ0 + PMC_INT_LVL1
[config.h]
155: #ifdef MV2300
156: # undef INCLUDE_CACHE_L2 /* [NOT AVAILABLE] */
157: # define INCLUDE_I8250_SIO /* Debug port via i8250 */
158: # undef INCLUDE_Z85230_SIO /* [NOT AVAILABLE] */
159: # define INCLUDE_PRIMARY_ENET /* DEC 21140 */
160: # undef INCLUDE_SECONDARY_ENET /* [NOT AVAILABLE] */
161: # undef INCLUDE_PRIMARY_SCSI /* [NOT AVAILABLE] */
162: ★ # define INCLUDE_SECONDARY_SCSI /* [NOT AVAILABLE] */
163: # define INCLUDE_AUXCLK /* ravenAuxClk.c */
164: # undef INCLUDE_VME_DMA /* VME DMA support */
165: # undef INCLUDE_FD /* [NOT AVAILABLE] */
166: #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 */