http://bugs.freedesktop.org/show_bug.cgi?id=18154

           Summary: libdrm support for addressing >32 bits on 32 bit cores
           Product: DRI
           Version: XOrg CVS
          Platform: PowerPC
        OS/Version: Linux (All)
            Status: NEW
          Severity: major
          Priority: high
         Component: libdrm
        AssignedTo: dri-devel@lists.sourceforge.net
        ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=19785)
 --> (http://bugs.freedesktop.org/attachment.cgi?id=19785)
libdrm support for addressing >32 bits on 32 bit cores - syslog w/ drm debug
msgs

Using git versions Xorg/Mesa/DRM built last week

Using a PPC 32-bit platform, with a 32 bit core and 36-bit addressing (460EX).
The PCIe space is mapped physically above a 32 bit address range.  Have a
radeon 1650 adapter plugged in the PCIe slot.

When enabling DRI - get the following Oops error:

------------------------
[drm:radeon_driver_open]
[drm:drm_addmap_core] offset = 0x98000000, size = 0x00010000, type = 1
[drm:drm_addmap_core] offset = 0x80000000, size = 0x10000000, type = 0
[drm:drm_addmap_core] offset = 0x00000000, size = 0x00002000, type = 2
[drm:drm_setup]
[drm:drm_ioctl] pid=2058, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_ioctl] pid=2058, cmd=0xc0246400, nr=0x00, dev 0xe200, auth=1
[drm:drm_release] open_count = 1
[drm:drm_release] pid = 2058, device = 0xe200, open_count = 1
[drm:drm_fasync] fd = -1, device = 0xe200
[drm:drm_lastclose]
Machine check in kernel mode.
Data Write PLB Error
Oops: Machine check, sig: 7 [#2]
Canyonlands
Modules linked in:
NIP: 00000000 LR: c01796ec CTR: 00000008
REGS: c039bf50 TRAP: 0202   Tainted: G      D   (2.6.25.7-00002-geaaf8db)
MSR: 00000000 <>  CR: 24000428  XER: 00000002
TASK = ded4d3f0[2058] 'X' THREAD: ded86000
GPR00: e93e0b0c ded87e60 ded4d3f0 dfaa7400 000040c1 ffffffff c018c924 00004000
GPR08: 00000000 e93e0b0c 00000000 e93e0000 24000422 101e6c34 101dec74 101def08
GPR16: 101e0000 101e0000 101e0000 101e0000 101e0000 101e0000 00000004 101e0000
GPR24: c03a0000 dfaa7618 dfaa760c dedb5a80 deddc580 dfaa7400 dfaa7400 dfaa7800
NIP [00000000] 0x0
LR [c01796ec] radeon_driver_lastclose+0x40/0x74
Call Trace:
[ded87e60] [c001eacc] printk+0x50/0x60 (unreliable)
[ded87e80] [c01796ec] radeon_driver_lastclose+0x40/0x74
[ded87e90] [c0169b2c] drm_lastclose+0x40/0x340
[ded87ec0] [c016af14] drm_release+0x438/0x498
[ded87ef0] [c007762c] __fput+0xb4/0x19c
[ded87f10] [c00740ac] filp_close+0x68/0xb0
[ded87f30] [c0074184] sys_close+0x90/0xb4
[ded87f40] [c000ccf0] ret_from_syscall+0x0/0x3c
Instruction dump:
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
---[ end trace a2cb362184c9762b ]---
------------------------------------

Note that the physical mapping for the card has the MMIO and FB at addresses
above 32 bits:

------------------------------
0000:81:00.0 VGA compatible controller: ATI Technologies Inc Unknown device
7291 (prog-if 00 [VGA])
        Subsystem: Connect Components Ltd Unknown device 7291
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
        Latency: 0, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 18
        Region 0: Memory at e80000000 (64-bit, prefetchable) [size=256M]
        Region 2: Memory at e98000000 (64-bit, non-prefetchable) [size=64K]
        Region 4: I/O ports at <unassigned>
        Expansion ROM at e90000000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [58] Express Endpoint IRQ 0
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag+
                Device: Latency L0s <4us, L1 unlimited
                Device: AtnBtn- AtnInd- PwrInd-
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
                Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1, Port 0
                Link: Latency L0s <64ns, L1 <1us
                Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
                Link: Speed 2.5Gb/s, Width x4
        Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable-
                Address: 0000000000000000  Data: 0000
---------------------------

It appears that within libdrm, the mapping does not support addressing above
32-bts on 32 bit cores, and the addresses are getting truncated.  Note the
offsets from the drm debug messages:

---------------------------
[drm:drm_addmap_core] offset = 0x98000000, size = 0x00010000, type = 1
[drm:drm_addmap_core] offset = 0x80000000, size = 0x10000000, type = 0
[drm:drm_addmap_core] offset = 0x00000000, size = 0x00002000, type = 2
----------------------------

Within the mapping function the address/offset is defined as a long wich cannot
hold the full physical address:

struct drm_map {
        unsigned long offset;    /**< Requested physical address (0 for
SAREA)*/
        unsigned long size;      /**< Requested physical size (bytes) */
        enum drm_map_type type;  /**< Type of memory to map */
        enum drm_map_flags flags;        /**< Flags */
        void *handle;            /**< User-space: "Handle" to pass to mmap() */
                                 /**< Kernel-space: kernel-virtual address */
        int mtrr;                /**< MTRR slot used */
        /*   Private data */
};

I am assuming this is contributing to the error.  Not sure if there are other
places this is an issue.  

Last part of Xorg.0.log:
--------------------------------
(II) Primary Device is: PCI [EMAIL PROTECTED]:00:0
(II) resource ranges after xf86ClaimFixedResources() call:
(II) resource ranges after probing:
(II) RADEON(0): TOTO SAYS 0000000e98000000
(II) RADEON(0): MMIO registers at 0x0000000e98000000: size 64KB
(II) RADEON(0): PCI bus 129 card 0 func 0
(**) RADEON(0): Depth 24, (--) framebuffer bpp 32
(II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
(==) RADEON(0): Default visual is TrueColor
(II) RADEON(0): VGAAccess option set to FALSE, VGA module load skipped
(==) RADEON(0): RGB weight 888
(II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
(--) RADEON(0): Chipset: "ATI Radeon X1650" (ChipID = 0x7291)
(WW) RADEON(0): R500 support is under development. Please report any issues to
[EMAIL PROTECTED]
(--) RADEON(0): Linear framebuffer at 0x0000000e80000000
(II) RADEON(0): PCIE card detected
(II) RADEON(0): ATOM BIOS detected
(II) RADEON(0): ATOM BIOS Rom: 
        SubsystemVendorID: 0x17ee SubsystemID: 0x7291
        IOBaseAddress: 0x0000
        Filename: S3A88003.102
        BIOS Bootup Message: 
113-A88003-102 RV560XT BIOS 574e/675m                                       

(II) RADEON(0): Framebuffer space used by Firmware (kb): 0
(WW) RADEON(0): rhdAtomGetFbBaseAndSize: AtomBIOS specified VRAM scratch space
size invalid
(II) RADEON(0):  default to: 20480
(II) RADEON(0): Cannot get VRAM scratch space. Allocating in main memory
instead
(II) RADEON(0): Default Engine Clock: 574000
(II) RADEON(0): Default Memory Clock: 675000
(II) RADEON(0): Maximum Pixel ClockPLL Frequency Output: 1100000
(II) RADEON(0): Minimum Pixel ClockPLL Frequency Output: 0
(II) RADEON(0): Maximum Pixel ClockPLL Frequency Input: 13500
(II) RADEON(0): Minimum Pixel ClockPLL Frequency Input: 1000
(II) RADEON(0): Maximum Pixel Clock: 400000
(II) RADEON(0): Reference Clock: 27000
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
---------------------------------

Syslog w/ drm debug messages attached.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to