Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » RadeonHD - First Screen

RadeonHD - First Screen

An image shown by a Radeon X1300 graphics card in an Amiga-oneToday marks the first milestone in the RadeonHD for Amiga OS 4 project. A Radeon X1300 graphics card has successfully been programmed to open a 1280x1024 true-colour screen and an image has been displayed. The graphics card was a VisionTek Radeon X1300 256MB PCI card that has been plugged into one of the PCI slots in my Amiga-one for over half a year now. With this success, I am now confident that I can, in time, write a proper Amiga OS 4.x driver for this card. Thus, this project is now revealed on this website for the first time.

Whilst the hardware documentation was useful to a certain degree, none of the documentation detailed the AtomBIOS. The AtomBIOS contains code written for a custom virtual machine (the AtomBIOS parser) written by ATI (now AMD). Thus, the RadeonHD driver source-code for Linux and its AtomBIOS parser was drawn upon extensively in order to figure out how to correctly initialize and program this card. 

At present, the current RadeonHD source-code is not an actual driver and, hence, cannot be used as part of the OS. However, the code could be used as part of a driver. I have requested the Picasso96 driver development kit for Amiga OS 4.0. In the mean-time, the code will slowly be improved and extended within the current test frame-work.

Please note that this is still a long way off from a proper driver. There is much work still to be done. It will take stome time, particularly considering that this is a spare time project. Whilst the debug log for the first test has also been placed on the main project page, it is expected that the project page will be updated periodically to reflect this project's status. Thus, the debug log is presented below as a permanent record.

Debug Log for RadeonHD Test Code - First Screen

Found the specified card. Now opening the RadeonHD driver.



RadeonHD (2): PCI device is a graphics card.
RadeonHD (2): RadeonHD chipset identified as: RV515
RadeonHD (2): Obtaining memory and I/O addresses and sizes
RadeonHD (2): Video RAM at: 0x90000000, size is 268435456 bytes
RadeonHD (2): Graphics card I/O range at: 0x0xA0000000, size is 65536 bytes
RadeonHD (2): Unknown card detected: 0x7146:0x1545:0x2350.
RadeonHD (2):     If - and only if - your card does not work or does not work optimally
    please contact Hans de Ruiter at <no_spam> to help rectify this.
    Use the subject: 0x7146:0x1545:0x2350: <name of board>
    and *please* describe the problems you are seeing
    in your message.
RadeonHD (2): Unidentified card. Will rely on the AtomBIOS for correct operation.
RadeonHD (3): Obtaining R5XX chipset BIOS.
RadeonHD (3): Rom Address:0x90000000 ROM Physical Address: 0x90000000
RadeonHD (3): The ROM is 131072 bytes in size.
RadeonHD (3): The BIOS image is 65536 bytes in size.
RadeonHD (2): ATOM BIOS Rom:
RadeonHD (3):     SubsystemVendorID: 0x1545 SubsystemID: 0x2350
RadeonHD (3):     IOBaseAddress: 0x   0
RadeonHD (3):     Filename: P3LVB1D2.Y1E
RadeonHD (3):     BIOS Bootup Message:
VT-X1300PCISFF                                                              

RadeonHD (2): Default Engine Clock: 450000
RadeonHD (2): Default Memory Clock: 270000
RadeonHD (2): Calling ASIC Init
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): ASIC_INIT Successful
RadeonHD (2): The detected amount of video RAM is 268435456
RadeonHD (2): Framebuffer space used by Firmware (kb): 20
RadeonHD (2): Start of VRAM area used by Firmware: 0x7FFB000
RadeonHD (2): AtomBIOS requests 20kB of VRAM scratch space
RadeonHD (2): AtomBIOS VRAM scratch base: 0x7FFB000
RadeonHD (2): rhdAtomAllocateFbScratch: FW FB scratch area not located at the end of VRAM. Scratch End: 0x8000000 VRAM End: 0x10000000
RadeonHD (1): Cannot get VRAM scratch space. Allocating in main memory instead
RadeonHD (2): Call to AtomBIOS Set FB Space succeeded
RadeonHD (2): Analog TV Default Mode: 1
RadeonHD (2): Found default TV Mode NTSC
RadeonHD (2): Default Engine Clock: 450000
RadeonHD (2): Default Memory Clock: 270000
RadeonHD (2): Maximum Pixel ClockPLL Frequency Output: 1100000
RadeonHD (2): Minimum Pixel ClockPLL Frequency Output: 0
RadeonHD (2): Maximum Pixel ClockPLL Frequency Input: 13500
RadeonHD (2): Minimum Pixel ClockPLL Frequency Input: 1000
RadeonHD (2): Maximum Pixel Clock: 400000
RadeonHD (2): Reference Clock: 27000
RadeonHD (2): Detected vga mode.
RadeonHD (4): MC FB Address: 0x90000000.
RadeonHD (2): Minimum Pixel ClockPLL Frequency Output: 0
RadeonHD (2): Maximum Pixel ClockPLL Frequency Output: 1100000
RadeonHD (2): Maximum Pixel Clock: 400000
RadeonHD (2): Reference Clock: 27000
RadeonHD (2): rhdAtomSetPixelClockVersion returned version 1 for index 0xC
RadeonHD (2): rhdAtomSetPixelClockVersion returned version 1 for index 0xC
RadeonHD (4): connector info from supported devices
RadeonHD (2): AtomBIOS Connector[0]: VGA Device: CRT1 Output: 1 HW DDC 0 NO HPD
RadeonHD (2): AtomBIOS Connector[2]: SVIDEO Device: TV1 Output: 2 NO DDC NO HPD
RadeonHD (2): AtomBIOS Connector[4]: DVI-I Device: CRT2 Output: 2 HW DDC 1 NO HPD
RadeonHD (2): AtomBIOS Connector[9]: DVI-I Device: DFP3 Output: 4 HW DDC 1 HPD 1
RadeonHD (2): Connector[0] {RHD_CONNECTOR_VGA, "VGA CRT1", RHD_DDC_0, RHD_HPD_NONE, { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE } }
RadeonHD (2): Connector[1] {RHD_CONNECTOR_TV, "SVIDEO TV1", DDC_NONE, RHD_HPD_NONE, { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE } }
RadeonHD (2): Connector[2] {RHD_CONNECTOR_DVI, "DVI-I CRT2 DFP3", RHD_DDC_1, RHD_HPD_1, { RHD_OUTPUT_DACB, RHD_OUTPUT_LVTMA } }
RadeonHD (2): Call to AtomBIOS Get Connectors succeeded
RadeonHD (2): rhdConnectorsInit: 0 (VGA CRT1) type 1, ddc 0, hpd 0
RadeonHD (0): rhdConnectorsInit: obtaining the DDC bus is not implemented yet
RadeonHD (2): rhdAtomSelectCrtcSourceVersion returned version 1 for index 0x2A
RadeonHD (2): Attaching output AtomOutputDACA to connector VGA 1
RadeonHD (2): Call to Output Privates succeeded
RadeonHD (2): rhdConnectorsInit: 1 (SVIDEO TV1) type 5, ddc 255, hpd 0
RadeonHD (2): rhdAtomSelectCrtcSourceVersion returned version 1 for index 0x2A
RadeonHD (2): Attaching output AtomOutputDACB to connector TV SVIDEO
RadeonHD (2): Call to Output Privates succeeded
RadeonHD (2): rhdConnectorsInit: 2 (DVI-I CRT2 DFP3) type 2, ddc 1, hpd 2
RadeonHD (0): rhdConnectorsInit: obtaining the DDC bus is not implemented yet
RadeonHD (2): Attaching output AtomOutputDACB to connector DVI-I 1
RadeonHD (2): rhdAtomEncoderControlVersion(TMDSAEncoderControl) returned version 3 for index 0x1E
RadeonHD (2): rhdAtomSelectCrtcSourceVersion returned version 1 for index 0x2A
RadeonHD (2): Attaching output AtomOutputLVTMA to connector DVI-I 1
RadeonHD (2): Call to Output Privates succeeded
RadeonHD (4): Sensing DACA on Output AtomOutputDACA
RadeonHD (2): Calling DAC_LoadDetection
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): DAC_LoadDetection Successful
RadeonHD (4): BIOSScratch_0: 0x2
RadeonHD (4): rhdAtomBIOSScratchDACSenseResults sensed RHD_SENSED_VGA
RadeonHD (2): AtomOutputDACA: Sensed Output: VGA
RadeonHD (4): Sensing DACB on Output AtomOutputDACB
RadeonHD (2): Calling DAC_LoadDetection
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): DAC_LoadDetection Successful
RadeonHD (4): BIOSScratch_0: 0x2
RadeonHD (4): rhdAtomBIOSScratchDACSenseResults: RHD_SENSED_NONE
RadeonHD (1): Connector "VGA 1": Failed to retrieve Monitor information.
RadeonHD (0): RadeonHD card successfully opened

Setting a screen-mode

RadeonHD (2): Calling BlankCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): BlankCRTC Successful
RadeonHD (2): Calling BlankCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): BlankCRTC Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (4): RHD_POWER_RESET
RadeonHD (2): Calling DAC1OutputControl
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): DAC1OutputControl Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (2): Calling EnableCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTC Successful
RadeonHD (2): Calling EnableCRTCMemReq
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTCMemReq Successful
RadeonHD (2): Calling EnableCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTC Successful
RadeonHD (2): Calling EnableCRTCMemReq
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTCMemReq Successful
RadeonHD (4): r5xxSetupMC: fb_location: 0x9FFF9000 [fb_size: 0x0FFF] -> fb_location: 0x9FFF9000
RadeonHD (2): Setting up "" (1280x1024@59.9Hz)
RadeonHD (4): FUNCTION: DxFBSet: ATOM CRTC 1 (1280[1280]x1024@24bpp)  +0x0 )
RadeonHD (2): Calling SetCRTC_Timing
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): SetCRTC_Timing Successful
RadeonHD (2): FUNCTION: rhdAtomScaleSet: ATOM CRTC 1 viewport: 1280x1024
RadeonHD (2): CallingSetCRTC_OverScan
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): Set CRTC_OverScan Successful
RadeonHD (2): Calling EnableScaler
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableScaler Successful
RadeonHD (4): rhdPLLSet: Setting PLL 1 to 109000kHz
RadeonHD (4): PLL Calculation: 109000kHz = (((27000 / 0x9) * 0xDA) / 0x6) (0kHz off)
RadeonHD (4): rhdAtomPLLSet: 109000 kHz RefDiv: 9 FeedbackDiv: DA PostDiv: 6
RadeonHD (2): Calling SetPixelClock
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): SetPixelClock Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (2): Calling DACAEncoderControl
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): DACAEncoderControl Successful
RadeonHD (2): Calling SelectCRTCSource
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): SelectCRTCSource Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (2): Shutting down AtomOutputDACB
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (4): RHD_POWER_SHUTDOWN
RadeonHD (2): Calling DAC2OutputControl
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): DAC2OutputControl Successful
RadeonHD (2): Calling DACBEncoderControl
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): DACBEncoderControl Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (2): Shutting down AtomOutputLVTMA
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (4): RHD_POWER_SHUTDOWN
RadeonHD (2): Calling LVTMAOutputControl
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): LVTMAOutputControl Successful
RadeonHD (2): Calling LVTMAEncoderControl
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): LVTMAEncoderControl Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (2): Calling EnableCRTCMemReq
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTCMemReq Successful
RadeonHD (2): Calling EnableCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTC Successful
RadeonHD (2): Calling SetPixelClock
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): SetPixelClock Successful
RadeonHD (2): Calling EnableCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTC Successful
RadeonHD (2): Calling EnableCRTCMemReq
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): EnableCRTCMemReq Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (4): RHD_POWER_ON
RadeonHD (2): Calling DAC1OutputControl
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): DAC1OutputControl Successful
RadeonHD (2): Call to Register List Location succeeded
RadeonHD (2): Calling BlankCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): BlankCRTC Successful
RadeonHD (2): Calling BlankCRTC
RadeonHD (2): ParseTable said: CD_SUCCESS
RadeonHD (2): Call to AtomBIOS Exec succeeded
RadeonHD (2): BlankCRTC Successful



Screen mode set. Press c to draw something to the screen.



Image copied to screen. Press c to continue.

RadeonHD (2): Destroying AtomOutputDACA
RadeonHD (2): Destroying AtomOutputDACB
RadeonHD (2): Destroying AtomOutputLVTMA
RadeonHD (0): RadeonHD card closed



Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » RadeonHD - First Screen

Post your comment

Comments

No one has commented on this page yet.

RSS feed for comments on this page | RSS feed for all comments


Projects » Amiga OS 4 Projects » RadeonHD Driver » RadeonHD Development Log » RadeonHD - First Screen