Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
98 user(s) are online (59 user(s) are browsing Forums)

Members: 1
Guests: 97

imagodespira, more...

Headlines

 
  Register To Post  

« 1 2 (3) 4 5 6 ... 12 »
Re: New ATI drivers?
Supreme Council
Supreme Council


See User information

Vacca foeda. Sum, ergo edo

Mr Bobo Cornwater
Go to top
Re: New ATI drivers?
Home away from home
Home away from home


See User information
@josh

Welcome to this site, is was wondering when you popped up.

You really need to do some whit post count

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: New ATI drivers?
Home away from home
Home away from home


See User information
Just a quick update: a basic 2D driver is available now. The license appears to be very liberal (i.e., no GPL). This could well be used as a basis for an Amiga driver.

BTW, what extactly is git? It looks like yet another CVS/subversion like tool.

Hans

Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
@joerg

Quote:
IMHO a VESA gfx driver doesn't make sense, we need a new, faster gfx system using hardware 3D, not something which is much slower than the supported gfx cards. A VESA driver can be used for booting a system which doesn't have a driver for the currently installed gfx card yet to install the new gfx card driver, but not for normal usage.


I wouldn't mind having some generic VESA mode driver. Why? I've got a particular Radeon card who's chip IDs are not yet in the graphics driver ID list, so the system does not know to load the Radeon driver for it. It thinks there is no graphics card present. How do I add my card's IDs to the list? I could swap graphics cards around. I could have previously set up envoy or samba. There may eb a coupel other ways I haven't thought of. But with none of these already in place, it's an inconvenience. If I find my particular Radeon card somehow does not work withthe current driver, I could use it in VESA mode until we get things working with it properly without constantly swapping cards back and forth. If it fails the test then just reboot with VESA, make some edits, recompile and try again without the power cycle and board swaps. may not sound like much, but saving that small inconvenience would be beneficial to motivation. Sure, it'd be a lot of work to make a VESA driver, but I think it would be useful to have available if some issues could be solved.

You get into the question of how does the computer know what card is a graphics card or not to try the VESA diver with. If it's not already in the graphics card IDs list, do you ned to add your new card, and how? Or will there be some new field setting in uboot, and some list of PCI IDs you can get from uboot to know what the IDs of your new card are without booting Linux or something? You don't want the computer trying to run VESA driver on a sound card or SATA card etc but how will it know which is the graphics card? Wil it end up having the same problem with an unlisted gaphics card as I have with my particular Radeon card, and thus not really solve anything?

We do have the x86 emulation in uboot that runs graphics BIOS. But it lacks some instructions, as can be sen if you try and boot with an AllInWonder 8500-DV card, which fails due to non-implemented instruction error in said emulation. Is there enough there to run BIOS subroutines? I don' t know. Is it available to OS4 using this emulation? I don't know that too, but I am under the impression that anything uboot goes away when OS4 begins, and not much is handed off during the transition.

Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
Quote:

billt wrote:
Sure, it'd be a lot of work to make a VESA driver, but I think it would be useful to have available if some issues could be solved.

I recall looking into this way-back-when, and discussing the possibility with the other OS4 developers. I think the issues with VBE (VESA BIOS Extensions) was that:

1. It's x86 calls in the video BIOS (and we had issues even reading the Radeon BIOS inside OS4 until one of the last few releases of the Radeon driver where I found a work around for that specific to the Radeon)
2. The x86 emulator is only available in UBoot (currently)
3. The x86 emulator is only enough to get the video BIOS executed (as you've pointed out below)
4. VBE uses interrupt vectors which is a whole other ball of problems in a partially emulated x86 environment that the current x86 emulator doesn't contemplate (AFAIK)
5. It'd be terribly slow (though if it's just for fallback/failsafe usage it'd still be useful)
6. It's a /huge/ amount of work
7. I'm sure there's more I'm not remembering

Quote:

You get into the question of how does the computer know what card is a graphics card or not to try the VESA diver with. If it's not already in the graphics card IDs list, do you ned to add your new card, and how? Or will there be some new field setting in uboot, and some list of PCI IDs you can get from uboot to know what the IDs of your new card are without booting Linux or something? You don't want the computer trying to run VESA driver on a sound card or SATA card etc but how will it know which is the graphics card? Wil it end up having the same problem with an unlisted graphics card as I have with my particular Radeon card, and thus not really solve anything?

The PCI header has a device "class" with it. That's how on a PC when the BIOS lists the devices it can say "Multimedia device" or "Network controller" without understanding individual PCI IDs. Specific to this discussion, there is a "display controller" class (0x03?).

The thought at the time was that PCIGraphics.card would go hunting for any PCI IDs it supported and, if found, fire up the first one (which is what it does today). If it traversed its entire list of PCI IDs, it would then query PCI (expansion.library) for the first "display controller" class PCI device and attempt to fire up the VESA.chip driver on it. For the reasons above this became impossible/impractical.

Quote:

We do have the x86 emulation in uboot that runs graphics BIOS. But it lacks some instructions, as can be sen if you try and boot with an AllInWonder 8500-DV card, which fails due to non-implemented instruction error in said emulation. Is there enough there to run BIOS subroutines?

No, not AFAIK.

Quote:

Is it available to OS4 using this emulation? I don't know that too, but I am under the impression that anything uboot goes away when OS4 begins, and not much is handed off during the transition.

Exactly, the UBoot environment and code is toast once the OS takes over.

There may be /some/ way to get it all to work. But writing hardware drivers in itself (as you know Bill :> ) is no picnic. Add to it the complexity of getting x86 interrupt vectors in a BIOS to execute in a non-x86 system, and you're in for one hellish experience.

- Josh
Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
Here's another question toward a VESA generic driver. Is there a standard definition of VESA graphics registers, refresh rates, PLL settings, etc? Previous graphics like VGA and SVGA I think were completely standard everywhere, or at least to a large extent. If there is some absolute standard for all VESA registers, their offsets, sizes, field definitions, etc. then even without an x86 emulation it could be possible to write a driver to that standard register set instead of using x86 stuff, much like the current driver talks directly to Radeon specific registers or Voodoo driver talks directly to Voodoo specific registers. Yes, a great deal of work and all. Who's interested in researching this and has time to do so? I suppose a new thread should be made to further the VESA driver concept if it gets anywhere. If there is a standard register set it's the same kind of work as making or porting the Radeon open-source driver, but probably less as there's probably not much acceleration for lines, rectangles etc. to do as there is in chip-specific drivers.


Edited by billt on 2007/9/19 5:34:28
Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
Quote:

billt wrote:
Here's another question toward a VESA generic driver. Is there a standard definition of VESA graphics registers, refresh rates, PLL settings, etc? Previous graphics like VGA and SVGA I think were completely standard everywhere, or at least to a large extent. If there is some absolute standard for all VESA registers, their offsets, sizes, field definitions, etc. then even without an x86 emulation it could be possible to write a driver to that standard register set instead of using x86 stuff, much like the current driver talks directly to Radeon specific registers or Voodoo driver talks directly to Voodoo specific registers.

Check out the VBE 3.0 spec at http://www.vesa.org/public/VBE/vbe3.pdf

VBE uses x86 functions (called via interrupt vectors) to set everything up. There are no "registers" per se, the BIOS exports functions to do specific things like setup the DAC or change the pixel clock. This actually makes sense as having the limitation of specific registers at specific locations with specific values (as the VGA standard does) locks you into a fixed set of functionality. For example, cards can define whatever modes they want with VBE (function 00h returns a list of modes, and you can use function 01h to get details about the modes), in VGA you're stuck with the /very/ few modes & timings VGA defines.

So you really need the x86 functionality to use VBE. You might be able to do a VGA driver with just register writes, but you'd be stuck within the limits of VGA (640x480 in 16 colors IIRC), which is hardly worth it (I don't think the OS4 installer will display on anything less than 800x600?).

Quote:

If there is a standard register set it's the same kind of work as making or porting the Radeon open-source driver, but probably less as there's probably not much acceleration for lines, rectangles etc. to do as there is in chip-specific drivers.

There is an extension to VBE called VBE/Accelerator Functions (VBE/AF). I'm not sure how well supported it is in video cards, but it's supposed to have support for some of that stuff like hardware cursors, hardware blits, drawing functions, etc...

If I had more time I'd look into it further (if only to verify it's impossible :> ), but given there's still things in the native Radeon driver that need attention and I haven't managed to get to those, I can't see me getting to this anytime soon. If some adventurous sole out there wants to give it a shot, please do, I'd provide all the info I could. It would of course require a very experienced developer, because honestly, drivers and CPU emulation aren't for the newb or moderate level. The first step (if I were doing this) would be to get the x86 emulator into some OS4 library or other resource that would allow it to be used within the OS (perhaps by passing a function some environment info and a pointer to the x86 code to execute?)... That way it could be used for other things as well later, if needed, not just a VBE driver.

- Josh
Go to top
Re: New ATI drivers?
Just can't stay away
Just can't stay away


See User information
@billt

Quote:

billt wrote:
Here's another question toward a VESA generic driver. Is there a standard definition of VESA graphics registers, refresh rates, PLL settings, etc?
No, you have to call BIOS functions to get anything with VESA.

Quote:
Previous graphics like VGA and SVGA I think were completely standard everywhere, or at least to a large extent.
AFAIK only VGA, SVGA and higher modes weren't any more.

Quote:
If there is some absolute standard for all VESA registers, their offsets, sizes, field definitions, etc. then even without an x86 emulation it could be possible to write a driver to that standard register set instead of using x86 stuff, much like the current driver talks directly to Radeon specific registers or Voodoo driver talks directly to Voodoo specific registers. Yes, a great deal of work and all.
A generic VGA, i.e. max. 640x480 4 bit planar, driver would have been possible that way, but since IIRC support for planar modes was removed in the AmigaOS4 version of Picasso96 that wont work either ... (but it could be that the planar modes were only removed from all drivers and not from Picasso96 itself).

Go to top
Re: New ATI drivers?
Home away from home
Home away from home


See User information
@josh

Interrupt 0x10 vector you find in the BIOS interrupt vector table.


0:0 -> 0:3FF = interrupt vector table (256 * 4 bytes per entry)
0:400 -> 0:4FF = BIOS data area


So you probably need tiny PC BIOS image, I?m guessing that all the VESA routines are located whit in the BIOS data area, but maybe I?m wrong.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: New ATI drivers?
Home away from home
Home away from home


See User information
@LiveForIt

There's a difference between the PC BIOS, and VGA BIOS. The PC BIOS shouldn't be required for a VESA driver as it's the VGA BIOS (on the graphics card itself), that contains all the routines.

Hans

Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
@joerg
Quote:
A generic VGA, i.e. max. 640x480 4 bit planar, driver would have been possible that way, but since IIRC support for planar modes was removed in the AmigaOS4 version of Picasso96 that wont work either ... (but it could be that the planar modes were only removed from all drivers and not from Picasso96 itself).

Planar modes weren't removed in P96-OS4, we just opted not to implement them in the OS4 Radeon driver as their usefulness seemed rather limited today.

- Josh
Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
Oh well for VESA then. It does make mroe sense to define the software API than the register set, but a standard register set would have been more convenient for this sortof OT discussion.

I hope to get my AmigaOne booting again soon, then I can work on finding time to do something toward Radeon again.

Go to top
Re: New ATI drivers?
Just can't stay away
Just can't stay away


See User information
@josh

Quote:

josh wrote:

Planar modes weren't removed in P96-OS4
They were removed, check the release notes of rtg.library version 41.4272. For example my Merlin supports planar modes but on AmigaO4 they are not available anymore.


Edited by joerg on 2007/9/19 18:16:29
Go to top
Re: New ATI drivers?
Home away from home
Home away from home


See User information
@Hans

But I expect the standard entry point is the PC BIOS, because that where PCI card is registered after scanning the PCI bus for vendor id?s and product id?s, the video cards IO ports and memory maps are located some where else (but only the PC bios knows where that is if I?m right.)

To understand how Interrupt 0x10 work, you need to know sub interrupt vector routine found in the interrupt vector table works.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: New ATI drivers?
Home away from home
Home away from home


See User information
@LiveForIt

Quote:

LiveForIt wrote:
@Hans

But I expect the standard entry point is the PC BIOS, because that where PCI card is registered after scanning the PCI bus for vendor id?s and product id?s, the video cards IO ports and memory maps are located some where else (but only the PC bios knows where that is if I?m right.)


I'm certainly not an expert in this area, but I'd expect that all that a driver would need is the PCI card's base address. PC BIOS calls aren't available once an OS starts either, the OS basically extracts the hardware info it needs, loads the necessary driver, and then stops using BIOS calls. The VESA standard should specify how to find the VGA bios; that's all you really need.

Hans

Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
@joerg
Quote:

They were removed, check the release notes of rtg.library version 41.4272. For example my Merlin supports planar modes but on AmigaO4 they are not available anymore.

Hmm, interesting, must have been done after we opted not to implement planar modes in the Radeon driver...

- Josh
Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
Quote:

LiveForIt wrote:
But I expect the standard entry point is the PC BIOS, because that where PCI card is registered after scanning the PCI bus for vendor id?s and product id?s, the video cards IO ports and memory maps are located some where else (but only the PC bios knows where that is if I?m right.)

No, that's not correct. The PCI subsystem and the PCI devices themselves know where the apertures of the PCI devices are mapped. The PC BIOS doesn't maintain control of anything once the OS starts (remember, the BIOS is responsible for getting the system up to a point where it can load an OS, and then go away, that's really it). Of course, many mainboards have other things in the BIOS ROM like IDE controller or video card ROM images -- but technically that's not part of the BIOS, that the PCI boot ROM for these devices integrated into the same physical ROM IC.


Edited by josh on 2007/9/20 15:18:45
- Josh
Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
(how many posts can I make in a row in the same thread? :> )
@Hans
Quote:

I'm certainly not an expert in this area, but I'd expect that all that a driver would need is the PCI card's base address. PC BIOS calls aren't available once an OS starts either, the OS basically extracts the hardware info it needs, loads the necessary driver, and then stops using BIOS calls. The VESA standard should specify how to find the VGA bios; that's all you really need.

You'd need the PCI card's /ROM base address/ (PCI devices have several apertures with different base addresses). There is some trickery to reading a PCI ROM from the OS as it's not really mapped, so you have to swap it into an address space that's already allocated /and/ is big enough (the video card's framebuffer area is great for this). And you're right, once you do that (which we already do in the Radeon driver), it's just a matter of locating the VBE section(s) in the ROM and working with them, you really shouldn't need a PC BIOS in addition to the video ROM.

- Josh
Go to top
Re: New ATI drivers?
Home away from home
Home away from home


See User information
Linky. Please don't get too excited; it's a long way off from a proper driver.

Hans

http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more.
https://keasigmadelta.com/ - more of my work
Go to top
Re: New ATI drivers?
Just popping in
Just popping in


See User information
@Hans

Very nice. Just getting to the point you are at now is a good first step.

Having a look here at the ATI cards reference: Wikipedia ATI GPU comparison

Will any of the R5xx/R6xx cards on AGP 8x work, or are we stuck with PCI?

Would you be interested in any donations of similar cards to round out your R5xx/R6xx collection? I'm thinking RV516-based X1550 and/or RV610-based XT2400 PRO if we are limited to PCI.



Thanks

NOTE: If you haven't seen this yet: AMD Releases New AtomBIOS Parser


Edited by gregthecanuck on 2008/8/10 6:31:57
Go to top

  Register To Post
« 1 2 (3) 4 5 6 ... 12 »

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project