Compact flash problem

Hi,

I have a strange problem with a PC/104 system comprising a GEODE-based CPU
card, a Bt878-based frame grabber and a (non-PCI) UPS card. When I run my
application from a HDD that has a full QNX installation (dual booting with
Win98) everything works fine. However, when I replace the HDD with a compact
flash with the boot image listed below (plus various shared libs, DLLs and
application binaries copied separately to the CF, the frame grabber driver,
in conjunction with the Bt878, doesn’t seem to ever be granted PCI Bus
Master status so that it can transfer images to main memory. Running
“pci -vvv” in both cases shows the Bt878 with “Bus Master Enabled”. I can
only assume (always bad!) that the CF version is missing some vital library
or DLL but there are no “Could not find …” type messages displayed. Does
anyone have any ideas?



Here is the boot image source file:

#######################################################

[virtual=x86,bios +compress] .bootstrap = {

startup-bios

PATH=/proc/boot:/bin LD_LIBRARY_PATH=/proc/boot:/lib procnto

}

[+script] .script = {

pci-bios &

waitfor /dev/pci

devc-con &

reopen /dev/con1

Disk drivers

devb-eide blk cache=2m &

waitfor /dev/hd0

mount -t qnx4 /dev/hd0 /

wait for a bin for the rest of the commands

waitfor /bin

network stuff

io-net -dns83815 -pttcpip if=en0:192.168.1.99 -ppppmgr &

waitfor /dev/socket

devc-ser8250 3F8,4 2F8,3 -F 3E8,5 2E8,9 &

waitfor /dev/ser4

some common servers

mqueue &

start the main shell

[+session] sh &

start frame grabber driver and wait til it’s up

Dev.tcv &

start remainder of application processes

waitfor /dev/tcvid1

watchdog -f /bin/app_proc &

}

programs require run-time linker at a fixed location

[type=link] /usr/lib/ldqnx.so.1=/proc/boot/libc.so

[type=link] libstdc++.so.2.10=/lib/libstdc++.so.2.10.0

add for HD support

[type=link] /usr/lib/libcam.so.1=/proc/boot/libcam.so.1

the C shared lib

libc.so

HD access shared objects

libcam.so

io-blk.so

for the QNX4 filesystem

cam-disk.so

fs-qnx4.so

for PCI etc

pci-bios

mqueue

copy code and data after this point

[data=copy]

/sbin/rtc

devb-eide

devc-con

devc-ser8250

io-net

mount

sh

echo

rm

##########################################################

Cheers,

Mike Thomas

I assume that your Bt878 Driver is in QNX partition of the CF.So
From your Buildfile, The Qnx Partition on CF is not mounted at all
YOu need to give
#mount -t qnx4 /dev/hd0t77 /
( or t78 or t79 depending on what partition you have created).
Also you need to set the path where your Driver exixts or give complete
path while running the Driver



Mike Thomas wrote:

Hi,

I have a strange problem with a PC/104 system comprising a GEODE-based CPU
card, a Bt878-based frame grabber and a (non-PCI) UPS card. When I run my
application from a HDD that has a full QNX installation (dual booting with
Win98) everything works fine. However, when I replace the HDD with a compact
flash with the boot image listed below (plus various shared libs, DLLs and
application binaries copied separately to the CF, the frame grabber driver,
in conjunction with the Bt878, doesn’t seem to ever be granted PCI Bus
Master status so that it can transfer images to main memory. Running
“pci -vvv” in both cases shows the Bt878 with “Bus Master Enabled”. I can
only assume (always bad!) that the CF version is missing some vital library
or DLL but there are no “Could not find …” type messages displayed. Does
anyone have any ideas?



Here is the boot image source file:

#######################################################

[virtual=x86,bios +compress] .bootstrap = {

startup-bios

PATH=/proc/boot:/bin LD_LIBRARY_PATH=/proc/boot:/lib procnto

}

[+script] .script = {

pci-bios &

waitfor /dev/pci

devc-con &

reopen /dev/con1

Disk drivers

devb-eide blk cache=2m &

waitfor /dev/hd0

mount -t qnx4 /dev/hd0 /

wait for a bin for the rest of the commands

waitfor /bin

network stuff

io-net -dns83815 -pttcpip if=en0:192.168.1.99 -ppppmgr &

waitfor /dev/socket

devc-ser8250 3F8,4 2F8,3 -F 3E8,5 2E8,9 &

waitfor /dev/ser4

some common servers

mqueue &

start the main shell

[+session] sh &

start frame grabber driver and wait til it’s up

Dev.tcv &

start remainder of application processes

waitfor /dev/tcvid1

watchdog -f /bin/app_proc &

}

programs require run-time linker at a fixed location

[type=link] /usr/lib/ldqnx.so.1=/proc/boot/libc.so

[type=link] libstdc++.so.2.10=/lib/libstdc++.so.2.10.0

add for HD support

[type=link] /usr/lib/libcam.so.1=/proc/boot/libcam.so.1

the C shared lib

libc.so

HD access shared objects

libcam.so

io-blk.so

for the QNX4 filesystem

cam-disk.so

fs-qnx4.so

for PCI etc

pci-bios

mqueue

copy code and data after this point

[data=copy]

/sbin/rtc

devb-eide

devc-con

devc-ser8250

io-net

mount

sh

echo

rm

##########################################################

Cheers,

Mike Thomas