## AGP busmanager module

### NOTE PLEASE:
You use this software at your own risk! Although I don't expect it to damage your PC, videocard or Monitor, I cannot guarantee this!

## Supported devices:

- all 'PCI-class' host bridges with AGP interface;
- all 'PCI-class' graphics cards with AGP interface.

## Features:

- Can enable AGP transfers including SBA (sideband adressing);
- Sets up AGP maximum request depth.
- Can enable PCI FW (fastwrites);

Known limitations:

- No GART and AGP aperture support (yet);
- No AGP3.0 specific feature support (yet), such as 'asynchronous request size', 'calibration cycle' and 'isochronous transfers'. The registers and register-fields for these features are currently programmed to default 'safe' modes or disabled on power-up.

## Installation:

This module will install in the user part of the BeOS, so not in the system part where the official modules are.
BeOS first checks (during boot) if there are 'user-addons' that should be loaded for a device. If not, it loads it's own add-ons (if any). You can select if this module should be loaded by hitting the spacebar as soon as the BeOS 'icons' screen appears. If you select disable user addons the system will not load it or other 'user-addons'. If you don't do anything, the system will load the AGP busmanager module if requested by a driver.
Note: This might turn out to be handy if you run into trouble upon testing the module, or if you are 'tweaking' the agp.settings file...
actual INSTALLATION:
Doubleclick on the install.sh file and follow the instructions. You have to reboot in order to use the AGP busmanager module. Make sure you read the Settings information below before you do that...
alternate INSTALLATION method:
Unzip the zip file that contains the module to the root folder. Now reboot and you should be using it if requested by a driver.
DE-INSTALLATION:
Currently there's no uninstall script included. Just do it manually:
Delete the agp file in home/config/add-ons/kernel/bus_managers/
Delete the agp.settings file in home/config/settings/kernel/drivers/
You have to reboot in order to apply the original configuration.

## Settings:

Please read this information carefully *before* installing and using the AGP busmanager module. It might spare you some trouble afterwards..

The module uses a file named agp.settings to determine how to setup your AGP bus(es). After installation this file will be located at home/config/settings/kernel/drivers/. You shouldn't touch this file unless your system becomes unstable with the AGP mode active. It has a default configuration for maximum effect, but you might have to scale back a little if your system gives trouble... Anyway, read the nifty details below.
Note: The module only reads this file during it's initialisation. This means that you have to reboot in order to let changes take effect.
Note also: A graphicsdriver may or may not further reduce the mode that gets setup by the AGP busmanager. See the graphicsdriver documentation for more info on this.
agp.settings module configuration:

- max_speed: (disabled by default)
  This option enables you to set a maximum speed that may be setup by the module, instead of the maximum your system reports being capable of. Valid values are 1,2,4 and 8. If a value makes no sense (because the settings file contains an illegal value, or the hardware uses a speed-scheme that's not capable of setting a specific requested max. speed) the module will take the next logical lower one: PCI mode being the lowest speed setting (which is what you were using before you installed this module).
  This option is disabled by default (preceded by a '#').
- block_agp: (set to 'false' by default)
  If set to 'true' this option blocks use of AGP transfers entirely including PCI fastwrites: so fallback to standard 'old-fashioned' PCI mode.
- block_sba: (set to 'false' by default)
  If set to 'true' this option blocks use of sideband adressing if at least one of the devices on the bus is pre-AGP3.0. Sideband adressing speeds up AGP transfers a bit because it's a seperate (low-speed) communications 'channel' that's used alongside the main transfer channel concurrently. So this enables 'full-duplex' communications, while disabling SBA forces the hardware to use 'half-duplex' communications. SBA is a requirement for AGP3 compliance, so if AGP3 is in effect, this setting is ignored.
- block_fw: (set to 'false' by default)
  If set to 'true' this option blocks use of PCI fastwrites. PCI fastwrites work in the same speed AGP transfers work. This means PCI fastwrites are faster in AGP4x mode than they are in AGP2x mode (for instance). PCI fastwrites are used whenever the system initiates transfers to the graphicscard, while 'standard PCI' or AGP transfers are used if the graphicscard's acceleration engine initiates transfers to or from the system.
  This means that PCI FW is the only AGP 'feature' that has an effect on the graphics speed on BeOS as it is currently. The use of AGP transfers require graphicsdriver support, and these type of transfers are 'officially' targeted specific for hardware accelerated 3D (which we do not yet have).
  Note:
  PCI FW support was first introduced with the AGP2.0 specification: that is, devices that support upto and including AGP4X mode are candidates to have this feature.

Rudolf Cornelissen.

(Page last updated on July 19, 2004)