Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® 4.25 RTOS Fsys.atapi Block Driver Release Notes

QNX® 4.25 RTOS

QNX® 4.25 RTOS

Fsys.atapi Block Driver

Release Notes

Date of this edition: May 03, 2005

Host OS: QNX 4.25 base or any patch level

Contents

Archive contents

The Fsys.atapi driver archive for QNX 4 contains:

  • /bin/Fsys.atapi

IDE, EIDE and SATA chipsets supported by the Fsys.atapi driver are as follows:

Manufacturer Chip Vendor ID Device ID Revision Transfer Mode
ACER Labs M5229 0x10b9 0x5229 0x19-0xc1 UDMA 2
ACER Labs M5229 0x10b9 0x5229 0xc2-0xc3 UDMA 4
ACER Labs M5229 0x10b9 0x5229 0xc4 UDMA 5
AMD PCB-756 0x1022 0x7409 ------ UDMA 4 (untested)
AMD PCB-766 0x1022 0x7411 ------ UDMA 5 (untested)
AMD PCB-768 0x1022 0x7441 ------ UDMA 5
HighPoint Tech HPT-366 0x1103 0x0004 0x01 UDMA 4 (untested)
HighPoint Tech HPT-370 0x1103 0x0004 0x03+ UDMA 5
HighPoint Tech HPT-372 0x1103 0x0005 ------ UDMA 6
HighPoint Tech HPT-374 0x1103 0x0008 ------ UDMA 6
Intel 82371FB 0x8086 0x1230 ------ BIOS
Intel 82371SB 0x8086 0x7010 ------ MDMA 2
Intel 82371AB 0x8086 0x7111 ------ UDMA 2
Intel 82801AA 0x8086 0x2411 ------ UDMA 4
Intel 82801AB 0x8086 0x2421 ------ UDMA 4
Intel 82801BAM 0x8086 0x244A ------ UDMA 5
Intel 82801BA 0x8086 0x244B ------ UDMA 5
Intel 82801CA 0x8086 0x248B ------ UDMA 5
Intel 82801CAM 0x8086 0x248A ------ UDMA 5
Intel 82801DB 0x8086 0x24CB ------ UDMA 5
Intel 82801DBM 0x8086 0x24CA ------ UDMA 5
Intel 82801DB 0x8086 0x24CB ------ UDMA 5
Intel 82801EB 0x8086 0x24DB ------ UDMA 5
Intel 82801ESB 0x8086 0x25A2 ------ UDMA 5
Intel 82801FB 0x8086 0x266F ------ UDMA 5
Intel 82801EB 0x8086 0x24D1 ------ SATA
Intel 82801ER 0x8086 0x24DF ------ SATA
Intel 82801FB 0x8086 0x2651 ------ SATA
Intel 82801FR 0x8086 0x2652 ------ SATA
Intel 82801FBM 0x8086 0x2653 ------ SATA
Intel 82801ESB 0x8086 0x25a3 ------ SATA
Promise PDC-20265 0x105a 0x0d30 ------ UDMA 5
Promise PDC-20269 0x105a 0x4d69 ------ UDMA 5
ServerWorks OSB4 0x1166 0x0211 ------ UDMA 2
ServerWorks CSB5 0x1166 0x0212 ------ UDMA 4 (untested)
ServerWorks CSB5 0x1166 0x0212 0x92+ UDMA 5
SiS SiS-5513 0x1039 0x5513 0xd0 UDMA 2/4
SiS SiS-5518 0x1039 0x5518 ------ UDMA 6
SiS SiS-180 0x1039 0x0180 ------ SATA
VIA Tech 82C586B 0x1106 0x0571 82686B PCI-ISA bridge 0x40+ UDMA 5
VIA Tech 82C586B 0x1106 0x0571 8231 bridge UDMA 5 (untested)
VIA Tech 82C586B 0x1106 0x0571 8233 bridge UDMA 5 (untested)
VIA Tech 82C586B 0x1106 0x0571 8233C bridge UDMA 5 (untested)
VIA Tech 82C586B 0x1106 0x0571 8233A bridge UDMA 6
VIA Tech 82C586B 0x1106 0x0571 8235A bridge UDMA 6 (untested)
VIA Tech 82C586B 0x1106 0x0571 8237 bridge UDMA 6 (untested)
VIA Tech 8237 0x1106 0x3149 ------ SATA
VIA Tech 82C586B 0x1106 0x0571 0x6+ UDMA 2
Winbond W83C553F 0x10ad 0x0105 ------ MDMA 2
PCMCIA Any ------ ------ ------ PIO 0
PCI IDE Any ------ ------ ------ BIOS

Known issues

  • The QNX 4 chkfsys utility is incompatible with partitions formatted using QNX 6.3.0 or later. All data may be lost. The new QNX4-format can be identified by the .longfilenames file in its root directory.

    Workaround: Either avoid using the chkfsys utility or copy your data off to a safe location and reformat the partition using the original QNX 4 dinit.

  • The original QNX 4 dinit utility shipped with QNX 4.25G when used to initialize a partition which is larger than 1024 cylinders may create a partition which is mountable, but unbootable.

    Workaround: Create a tiny QNX4-formatted partition (a few megabytes is adequate) to contain a .boot image which then mounts the larger QNX 4 OS partition.

  • QNX 4 can not be installed directly onto a SATA drive because the Fsys.atapi block driver is not included in the install CD-ROM. Workaround:
    • Install a basic QNX 4 installation on an EIDE hard disk.
    • Install the Fsys.atapi driver.
    • Create a partition on the SATA drive using fdisk and format it using dinit. As mentioned in the previous known issue, you may have to make a bootstrap partition as well if the drive is larger than 1024 cylinders.
    • Mount the new partition into your filesystem.
    • Copy the QNX 4 OS installation from / into the SATA mountpoint.
    • Update and rebuild the .boot file for the SATA drive so that it uses the correct device file names.
    • Update the BIOS to boot from the SATA drive.

    There is a log of an example session which demonstrates how to configure a SATA drive with a bootable QNX 4 installation included as an appendix to this release note.

Online documentation

This patch doesn't update the online documentation for the Fsys.atapi driver. However, you'll find their latest options in its use message. You'll also find the list of supported chipsets in these release notes.

use Fsys.atapi

Technical support

To obtain technical support for any QNX product, visit the Technical Support section in the Services area on our website www.qnx.com.

Appendix

A log of an example session which demonstrates how to configure a SATA drive with a bootable QNX 4 installation. It also illustrates how a small bootstrap partition can be used to overcome the 1024 cylinder limitation, if your drive has trouble booting.

When you use the small bootstrap partition technique, don't forget when you edit the build file to mount the "other" partition, not the tiny one which contains the .boot file. In the following example, the OS data is on the t78 partition so it should be mounted as /.

Path=0 - VIA 8237 SATA
 target=0 lun=0 Direct-Access(0) -          Maxtor 6Y160M0   Rev:
Path=1 - VIA 82C586A/B
 target=0 lun=0 CD-ROM(5) - MATSHITA DVD-ROM SR-8589  Rev: 8Z14
 target=1 lun=0 Direct-Access(0) -          ST32532A         Rev:
QNX path '/dev/cd0.0' adopted as CDROM drive '/cd0.0'
Welcome to QNX 4.25
Copyright (c) QNX Software Systems Ltd. 1982,1998
login: root
Last login: Fri Apr 29 10:13:07 2005 on //247/dev/con1
Fri Apr 29 10:18:10 2005
#
# sin ar | grep Fsys
    4 System       /bin/Fsys
    5 System       /bin/Fsys.atapi fsys -Ndsk0 -n0=hd0. -n5=cd0. atapi
#
# fdisk /dev/hd0.0 show

        _____OS_____   Start      End     ______Number_____    Size    Boot
        name    type  Cylinder  Cylinder  Cylinders  Blocks

    1.  QNX    ( 77)        0         2         3     24129      11 MB   *
    2.  HPFS   (  7)    *****     *****      5080  40960000   20000 MB      NO
    3.  QNZ    ( 79)     5079     *****      5079  40960000   20000 MB      NO
    4.  QNY    ( 78)        3      5078      5076  40932864   19986 MB warning

#
# ls /dev/hd*
/dev/hd0.0         /dev/hd0.1         /dev/hd0.1t77
#
# mount -p /dev/hd0.0
#
# ls /dev/hd*
/dev/hd0.0         /dev/hd0.0t77      /dev/hd0.0t79      /dev/hd0.1t77
/dev/hd0.0t7       /dev/hd0.0t78      /dev/hd0.1
#
# dinit -h /dev/hd0.0t77
'/dev/hd0.0t77' is not a floppy or ramdisk
Disk '/dev/hd0.0t77' contains 24129 blocks (12064K).
#
# dinit -h /dev/hd0.0t78
'/dev/hd0.0t78' is not a floppy or ramdisk
Disk '/dev/hd0.0t78' contains 40932864 blocks (20466432K).
#
# mount -t qnx4 /dev/hd0.0t77 /hd-boot
#
# mount -t qnx4 /dev/hd0.0t78 /hd-data
#
# ls /hd-boot
.            .altboot     .boot
..           .bitmap      .inodes
#
# ls /hd-data
.            .altboot     .boot
..           .bitmap      .inodes
#
# cd /
#
# ls
.                  .licenses          dev                registry
..                 .licenses.bak      etc                tmp
.altboot           .photon            hd-boot            usr
.bitmap            bin                hd-data            vedit
.boot              boot               home               windows
.inodes            cd                 pipe
.lastlogin         cd0.0              qnx4
#
# echo .licenses* .photon bin boot etc home qnx4 registry usr vedit windows
| xargs -i cp -Rc {} /hd-data/{}
#
# ls /hd-data
.                  .inodes            boot               usr
..                 .licenses          etc                vedit
.altboot           .licenses.bak      home               windows
.bitmap            .photon            qnx4
.boot              bin                registry
#
# mkdir /hd-data/tmp
#
# cd /hd-data/boot/build
#
# vi install.atapi.247
#
# buildqnx -v ./install.atapi.247 ../images/install.atapi.247
/boot/sys/boot                 01000 for 04000  (16384 bytes)  Start 00000
                               05000 for 02000  ( 8192 bytes)
/boot/sys/Proc32               07000 for 1D000  (118784 bytes) Start 00008
                               24000 for 06000  (24576 bytes)
/boot/sys/Slib32               2A000 for 0D000  (53248 bytes)  Start 01052
                               37000 for 01000  ( 4096 bytes)
/boot/sys/Slib16               38000 for 07000  (28672 bytes)  Start 05632
                               3F000 for 02000  ( 8192 bytes)
/bin/Fsys                      41000 for 13000  (77824 bytes)  Start 124DC
                               54000 for 06000  (24576 bytes)
/bin/Fsys.atapi                5A000 for 14000  (81920 bytes)  Start 118EC
                               6E000 for 06000  (24576 bytes)
/bin/mount                     74000 for 03000  (12288 bytes)  Start 01384
                               77000 for 01000  ( 4096 bytes)
                               78000 for 01000  ( 4096 bytes)
/bin/sinit                     79000 for 05000  (20480 bytes)  Start 0219C
                               7E000 for 01000  ( 4096 bytes)
                               7F000 for 01000  ( 4096 bytes)
TOTAL OS SIZE = 409600 code + 110592 data = 520192 bytes
#
# cp -V ../images/install.atapi.247 /hd-boot/.boot
cp: Copying ../images/install.atapi.247 to /hd-boot/.boot
100.00% (508/508 kbytes, 50827 kb/s)
#
# sync
# sync
#
# shutdown