[openbeos] Re: userspace FS, device driver in userspace?

  • From: Gerald Zajac <zajacg@xxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Sun, 15 Apr 2007 16:50:52 -0400

Clemens Zeidler wrote:
Hi,

after the haiku FS in userspace implementation, is it in principle
possible to create a device driver in userspace interface? This would be
quite cool for unstable drivers or for the development of drivers...

thanks
    Clemens

ps. is it possible to run the haiku userspace fs interface on r5? I want
to play a little with pseudo FS like googleFS..

--Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



Clemens,

Does your question have anything to do with the message you posted about 10 days ago entitled "*super savage driver*"? I should have responded to that message much more promptly since I have been working on a Savage driver for quite a while (sometimes I think too long), and it is nearly complete. It is a nearly complete rewrite of Erdi Chen's BeSavage driver except for some of Erdi Chen's cursor code. Much of the code is adapted from the x.org Savage driver, and should support the following chip sets:

   { 0x8a20,  S3_SAVAGE3D,             "Savage3D"                },
   { 0x8a21,  S3_SAVAGE3D,             "Savage3D-MV"             },
*  { 0x8a22,  S3_SAVAGE4,                "Savage4"                },
*  { 0x8a25,  S3_PROSAVAGE,          "ProSavage PM133"        },
   { 0x8a26,  S3_PROSAVAGE,          "ProSavage KM133"        },
   { 0x8c10,  S3_SAVAGE_MX,         "Savage/MX-MV"            },
   { 0x8c11,  S3_SAVAGE_MX,         "Savage/MX"                },
*  { 0x8c12,  S3_SAVAGE_MX,         "Savage/IX-MV"            },
   { 0x8c13,  S3_SAVAGE_MX,         "Savage/IX"                },
   { 0x8c22,  S3_SUPERSAVAGE,     "SuperSavage/MX 128"    },
   { 0x8c24,  S3_SUPERSAVAGE,     "SuperSavage/MX 64"        },
   { 0x8c26,  S3_SUPERSAVAGE,     "SuperSavage/MX 64C"    },
   { 0x8c2a,  S3_SUPERSAVAGE,     "SuperSavage/IX 128SDR"    },
   { 0x8c2b,  S3_SUPERSAVAGE,     "SuperSavage/IX 128DDR"    },
   { 0x8c2c,  S3_SUPERSAVAGE,     "SuperSavage/IX 64SDR"    },
   { 0x8c2d,  S3_SUPERSAVAGE,     "SuperSavage/IX 64DDR"    },
   { 0x8c2e,  S3_SUPERSAVAGE,     "SuperSavage/IXC 64SDR"    },
   { 0x8c2f,  S3_SUPERSAVAGE,      "SuperSavage/IXC 64DDR"    },
   { 0x8d01,  S3_TWISTER,                "Twister PN133"            },
   { 0x8d02,  S3_TWISTER,                "Twister KN133"            },
   { 0x8d03,  S3_PROSAVAGEDDR, "ProSavage DDR"            },
   { 0x8d04,  S3_PROSAVAGEDDR, "ProSavage DDR-K"        },
   { 0x9102,  S3_SAVAGE2000,          "Savage2000"            },

The first column is the chip ID, and the chips preceded by an asterisk above have been tested; however, I do not have any hardware for testing the other chips. The driver functions very reliably with the Savage4 under Haiku, Zeta 1.21, and BeOS R5. The ProSavage performs very well under Haiku, but has some problems under Zeta and BeOS. The Savage/IX-MV performs the same under all three operating systems, and although it is on an AGP video card, it seems to think that it is in a notebook computer connected to an 640 x 480 LCD display.

The following are some of the improvements have been made to this driver:
1) It works with resolutions greater than 1152 x 864.
2) DPMS now works.
3) It starts up reliably. The original BeSavage driver failed to start up about 20% of the time with my Savage4 cards.
4) It supports more chip sets.

I hope to finish this driver in about one week and submit the source code to the Haiku project. If anyone would like to test it with any Savage chip sets, I would be glad to assist them where possible.

Gerald

Other related posts: