| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | Below is what the bt878 data book says about the PCI bug compatibility | 
					
						
							|  |  |  | modes of the bt878 chip. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The triton1 insmod option sets the EN_TBFX bit in the control register. | 
					
						
							|  |  |  | The vsfx insmod option does the same for EN_VSFX bit.  If you have | 
					
						
							|  |  |  | stability problems you can try if one of these options makes your box | 
					
						
							|  |  |  | work solid. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | drivers/pci/quirks.c knows about these issues, this way these bits are | 
					
						
							|  |  |  | enabled automagically for known-buggy chipsets (look at the kernel | 
					
						
							|  |  |  | messages, bttv tells you). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HTH, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Gerd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ---------------------------- cut here -------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Normal PCI Mode | 
					
						
							|  |  |  | --------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The PCI REQ signal is the logical-or of the incoming function requests. | 
					
						
							|  |  |  | The inter-nal GNT[0:1] signals are gated asynchronously with GNT and | 
					
						
							|  |  |  | demultiplexed by the audio request signal. Thus the arbiter defaults to | 
					
						
							|  |  |  | the video function at power-up and parks there during no requests for | 
					
						
							|  |  |  | bus access. This is desirable since the video will request the bus more | 
					
						
							|  |  |  | often. However, the audio will have highest bus access priority. Thus | 
					
						
							|  |  |  | the audio will have first access to the bus even when issuing a request | 
					
						
							|  |  |  | after the video request but before the PCI external arbiter has granted | 
					
						
							|  |  |  | access to the Bt879. Neither function can preempt the other once on the | 
					
						
							|  |  |  | bus. The duration to empty the entire video PCI FIFO onto the PCI bus is | 
					
						
							|  |  |  | very short compared to the bus access latency the audio PCI FIFO can | 
					
						
							|  |  |  | tolerate. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 430FX Compatibility Mode | 
					
						
							|  |  |  | ------------------------ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | When using the 430FX PCI, the following rules will ensure | 
					
						
							| 
									
										
										
										
											2006-03-25 09:21:43 -03:00
										 |  |  | compatibility: | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-25 09:21:43 -03:00
										 |  |  |  (1) Deassert REQ at the same time as asserting FRAME. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  (2) Do not reassert REQ to request another bus transaction until after | 
					
						
							|  |  |  |      finish-ing the previous transaction. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Since the individual bus masters do not have direct control of REQ, a | 
					
						
							|  |  |  | simple logical-or of video and audio requests would violate the rules. | 
					
						
							|  |  |  | Thus, both the arbiter and the initiator contain 430FX compatibility | 
					
						
							|  |  |  | mode logic. To enable 430FX mode, set the EN_TBFX bit as indicated in | 
					
						
							|  |  |  | Device Control Register on page 104. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | When EN_TBFX is enabled, the arbiter ensures that the two compatibility | 
					
						
							|  |  |  | rules are satisfied. Before GNT is asserted by the PCI arbiter, this | 
					
						
							|  |  |  | internal arbiter may still logical-or the two requests. However, once | 
					
						
							|  |  |  | the GNT is issued, this arbiter must lock in its decision and now route | 
					
						
							|  |  |  | only the granted request to the REQ pin. The arbiter decision lock | 
					
						
							|  |  |  | happens regardless of the state of FRAME because it does not know when | 
					
						
							|  |  |  | FRAME will be asserted (typically - each initiator will assert FRAME on | 
					
						
							|  |  |  | the cycle following GNT). When FRAME is asserted, it is the initiator s | 
					
						
							|  |  |  | responsibility to remove its request at the same time. It is the | 
					
						
							|  |  |  | arbiters responsibility to allow this request to flow through to REQ and | 
					
						
							|  |  |  | not allow the other request to hold REQ asserted. The decision lock may | 
					
						
							|  |  |  | be removed at the end of the transaction: for example, when the bus is | 
					
						
							|  |  |  | idle (FRAME and IRDY). The arbiter decision may then continue | 
					
						
							|  |  |  | asynchronously until GNT is again asserted. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Interfacing with Non-PCI 2.1 Compliant Core Logic | 
					
						
							|  |  |  | ------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | A small percentage of core logic devices may start a bus transaction | 
					
						
							|  |  |  | during the same cycle that GNT is de-asserted. This is non PCI 2.1 | 
					
						
							|  |  |  | compliant. To ensure compatibility when using PCs with these PCI | 
					
						
							|  |  |  | controllers, the EN_VSFX bit must be enabled (refer to Device Control | 
					
						
							|  |  |  | Register on page 104). When in this mode, the arbiter does not pass GNT | 
					
						
							|  |  |  | to the internal functions unless REQ is asserted. This prevents a bus | 
					
						
							|  |  |  | transaction from starting the same cycle as GNT is de-asserted. This | 
					
						
							|  |  |  | also has the side effect of not being able to take advantage of bus | 
					
						
							|  |  |  | parking, thus lowering arbitration performance. The Bt879 drivers must | 
					
						
							|  |  |  | query for these non-compliant devices, and set the EN_VSFX bit only if | 
					
						
							|  |  |  | required. | 
					
						
							|  |  |  | 
 |