linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Segmentation fault with X.org and Coral-P drivers
@ 2006-01-04 11:33 Matthias Transier
  2006-01-04 15:48 ` Wolfgang Denk
  0 siblings, 1 reply; 6+ messages in thread
From: Matthias Transier @ 2006-01-04 11:33 UTC (permalink / raw)
  To: linuxppc-embedded

Hello everybody,

I have been trying to get X.org running on a board called "Embedded
Planet EP5200C" (it seems to be a "Freescale Lite5200") and a Fujitsu
Coral-P (Rev 5.0). I am using the 2.4 kernel from denx.de and
succesfully installed gentoo-ppc on nfs. The framebuffer works, I get
a login prompt on the monitor.

Now I compiled x.org-6.8.2 (gentoo -r4) and the mb86290 driver from
denx.de. Unfortunately, it does not work and I get a segmentation
fault when trying to startx. strace produces the output attached
below.

Can anybody give me a hint how to proceed?

Regards,
Matthias


[...]
mmap(NULL, 33554432, PROT_READ|PROT_WRITE, MAP_SHARED, 6, 0) =3D 0x30042000
ioctl(6, FBIOGET_VSCREENINFO, 0x105dfa58) =3D 0
ioctl(6, FBIOPUT_VSCREENINFO, 0x105df9b8) =3D 0
ioctl(6, FBIOGET_FSCREENINFO, 0x105df974) =3D 0
ioctl(6, FBIOGET_VSCREENINFO, 0x105df9b8) =3D 0
ioctl(6, FBIOBLANK, 0x1)                =3D 0
ioctl(6, FBIOPAN_DISPLAY, 0x105df9b8)   =3D 0
write(0, "(=3D=3D) MB86290(0): Backing store d"..., 40) =3D 40
write(0, "(II) MB86290(0): Using XFree86 A"..., 63) =3D 63
write(0, "\tScreen to screen bit blits\n", 28) =3D 28
write(0, "\tSolid filled rectangles\n", 25) =3D 25
write(0, "\t8x8 mono pattern filled rectang"..., 36) =3D 36
write(0, "\tIndirect CPU to Screen color ex"..., 40) =3D 40
write(0, "\tSolid Lines\n", 13)         =3D 13
write(0, "\tDashed Lines\n", 14)        =3D 14
write(0, "(II) MB86290(0): Acceleration en"..., 38) =3D 38
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
ioctl(6, FBIOPUTCMAP, 0x7ffff930)       =3D 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigaction(SIGSEGV, {SIG_IGN}, {0x100424d0, [SEGV], SA_RESTART}, 8) =3D 0
write(2, "\n   *** If unresolved symbols we"..., 112
[...]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Segmentation fault with X.org and Coral-P drivers
  2006-01-04 11:33 Segmentation fault with X.org and Coral-P drivers Matthias Transier
@ 2006-01-04 15:48 ` Wolfgang Denk
  2006-01-04 16:19   ` Matthias Transier
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2006-01-04 15:48 UTC (permalink / raw)
  To: Matthias Transier; +Cc: linuxppc-embedded

Dear Matthias,

in message <b789c2e60601040333o42d64c52n@mail.gmail.com> you wrote:
> 
> I have been trying to get X.org running on a board called "Embedded
> Planet EP5200C" (it seems to be a "Freescale Lite5200") and a Fujitsu

Umm... no. Embedded Plaet and Freescale are two different  companies,
and EP5200 and Lite5200 are two different boards.

> Coral-P (Rev 5.0). I am using the 2.4 kernel from denx.de and

Our kernel does not include any support for the EP5200 board.

> succesfully installed gentoo-ppc on nfs. The framebuffer works, I get
> a login prompt on the monitor.
> 
> Now I compiled x.org-6.8.2 (gentoo -r4) and the mb86290 driver from
> denx.de. Unfortunately, it does not work and I get a segmentation
> fault when trying to startx. strace produces the output attached
> below.

Please read the documentation that comes with the driver:
ftp://ftp.denx.de/pub/fujitsu/Coral-P/README.html

Note that the driver was  built  and  tested  against  xfree86-4.3.0;
don't  expect  the  binary  to  work  in  a  completely different X11
release. You wil have to rebuild (and eventually  adapt)  the  driver
for your environment.

Feel free to contact me if you need help.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
What can it profit a man to gain the whole world and to come  to  his
property with a gastric ulcer, a blown prostate, and bifocals?
                                     -- John Steinbeck, _Cannery Row_

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Segmentation fault with X.org and Coral-P drivers
  2006-01-04 15:48 ` Wolfgang Denk
@ 2006-01-04 16:19   ` Matthias Transier
  2006-01-04 17:59     ` Matthias Transier
  2006-01-04 21:10     ` Wolfgang Denk
  0 siblings, 2 replies; 6+ messages in thread
From: Matthias Transier @ 2006-01-04 16:19 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: linuxppc-embedded

Hi Wolfgang,

thanks for the quick response.

2006/1/4, Wolfgang Denk <wd@denx.de>:
> > I have been trying to get X.org running on a board called "Embedded
> > Planet EP5200C" (it seems to be a "Freescale Lite5200") and a Fujitsu
>
> Umm... no. Embedded Plaet and Freescale are two different  companies,
> and EP5200 and Lite5200 are two different boards.

Ok, my fault. I saw a Lite5200 on a picture somewhere and it looked
pretty much like my EP board :-). But what I can tell for sure is:
when I remove the "Embedded Planet" sticker on the board, there is a
Freescale logo and a print (directly on the board): "IceCube Version
103"

> > Coral-P (Rev 5.0). I am using the 2.4 kernel from denx.de and
>
> Our kernel does not include any support for the EP5200 board.

I checked it out from CVS, configured it, and it works (besides the X11 thi=
ng).

> > succesfully installed gentoo-ppc on nfs. The framebuffer works, I get
> > a login prompt on the monitor.
> >
> > Now I compiled x.org-6.8.2 (gentoo -r4) and the mb86290 driver from
> > denx.de. Unfortunately, it does not work and I get a segmentation
> > fault when trying to startx. strace produces the output attached
> > below.
>
> Please read the documentation that comes with the driver:
> ftp://ftp.denx.de/pub/fujitsu/Coral-P/README.html

That is what I already read in order to compile the driver.

> Note that the driver was  built  and  tested  against  xfree86-4.3.0;
> don't  expect  the  binary  to  work  in  a  completely different X11
> release. You wil have to rebuild (and eventually  adapt)  the  driver
> for your environment.

I did not use the prebuilt binaries, but I was able to compile the
driver within my x.org tree. (I had to adapt the Imakefiles by myself,
the provided ones were too different from the originals.)

In the meantime, I can provide you with further debugging information:
from Xorg.0.log:
=3D=3D=3D=3D=3D=3D
(II) MB86290(0): Using XFree86 Acceleration Architecture (XAA)
        Screen to screen bit blits
        Solid filled rectangles
        8x8 mono pattern filled rectangles
        Indirect CPU to Screen color expansion
        Solid Lines
        Dashed Lines
(II) MB86290(0): Acceleration enabled
fbdevHW: LoadPalette 0
(II) MB86290(0): fbdevHWLoadPalette succeeded
=3D=3D=3D=3D=3D=3D

The last line is a message that I added. Since the output stops at
that point, it must be the next call that fails
(mb86290_driver.c:604):

        if (!xf86I2CProbeAddress(fPtr->I2C, I2C_SAA7113))
                return FALSE;

May that be a problem with the i2c driver in the kernel which does not
exactly fit with my board?
The following message also appears in Xorg.0.log, some lines above:
(II) MB86290(0): I2C bus "MB86290 I2C bus" removed.

Thanks in advance for any hint that you can give me.

Best regards,
Matthias

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Segmentation fault with X.org and Coral-P drivers
  2006-01-04 16:19   ` Matthias Transier
@ 2006-01-04 17:59     ` Matthias Transier
  2006-01-04 21:11       ` Wolfgang Denk
  2006-01-04 21:10     ` Wolfgang Denk
  1 sibling, 1 reply; 6+ messages in thread
From: Matthias Transier @ 2006-01-04 17:59 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: linuxppc-embedded

Hi Wolfgang,

it finally works :-). I had to make a small modification to the x.org
source code. The file xc/programs/Xserver/hw/xfree86/i2c/xf86i2c.c
contains the initialization of the i2c bus. In function
xf86I2CBusInit, I added the two lines near the beginning:

    if (b->I2CStart =3D=3D NULL)
            b->I2CStart =3D I2CStart;

which sets the start function to a default function. The problem was
that mb86290_i2c.c does not provide a start function, whereas
xf86I2CBusInit expects one under some circumstances.

Best regards,
Matthias

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Segmentation fault with X.org and Coral-P drivers
  2006-01-04 16:19   ` Matthias Transier
  2006-01-04 17:59     ` Matthias Transier
@ 2006-01-04 21:10     ` Wolfgang Denk
  1 sibling, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2006-01-04 21:10 UTC (permalink / raw)
  To: Matthias Transier; +Cc: linuxppc-embedded

Dear Matthias,

in message <b789c2e60601040819j65eea749p@mail.gmail.com> you wrote:
> 
> > and EP5200 and Lite5200 are two different boards.
> 
> Ok, my fault. I saw a Lite5200 on a picture somewhere and it looked
> pretty much like my EP board :-). But what I can tell for sure is:
> when I remove the "Embedded Planet" sticker on the board, there is a
> Freescale logo and a print (directly on the board): "IceCube Version
> 103"

Ouch. So far for marketing methods. I didn't know this.

> > Our kernel does not include any support for the EP5200 board.
> 
> I checked it out from CVS, configured it, and it works (besides the X11 thing).

It should work on the  Lite5200  board.  I  just  expected  different
hardware ...

> I did not use the prebuilt binaries, but I was able to compile the

I see.

> driver within my x.org tree. (I had to adapt the Imakefiles by myself,
> the provided ones were too different from the originals.)

If you want to send me your patches: they are welcome.

> The last line is a message that I added. Since the output stops at
> that point, it must be the next call that fails
> (mb86290_driver.c:604):
> 
>         if (!xf86I2CProbeAddress(fPtr->I2C, I2C_SAA7113))
>                 return FALSE;
> 
> May that be a problem with the i2c driver in the kernel which does not
> exactly fit with my board?

This is not the kernel's (MPC5200) I2C driver; actually I2C  is  only
needed for external video decoder chip that _may_ be connected to the
CoralP chip. It is the CoralP itself that acts as an I2C "adapter" in
this  case.  By writing to some CoralP registers, accessible from the
host (CPU) via PCI, the  driver  manipulates  external  pins  of  the
CoralP  chip,  which form the I2C bus. It is an external (relative to
both CoralP and the CPU) device that is controlled  through  I2C;  in
your case the Philips SA71111 video decoder chip.

> The following message also appears in Xorg.0.log, some lines above:
> (II) MB86290(0): I2C bus "MB86290 I2C bus" removed.
> 
> Thanks in advance for any hint that you can give me.

You can disable video capture support, and thus the I2C,  by  setting
option "Video" to "no" in the driver's X11 config file:

	Section "Device"
		 Identifier  "MB86290 card"
		 Driver      "mb86290"
		 Option     "Video" "no"
	EndSection


Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Artificial Intelligence is the study of how to  make  real  computers
act like the ones in movies.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Segmentation fault with X.org and Coral-P drivers
  2006-01-04 17:59     ` Matthias Transier
@ 2006-01-04 21:11       ` Wolfgang Denk
  0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2006-01-04 21:11 UTC (permalink / raw)
  To: Matthias Transier; +Cc: linuxppc-embedded

Dear Matthias,

in message <b789c2e60601040959n4f6e730dw@mail.gmail.com> you wrote:
> 
> it finally works :-). I had to make a small modification to the x.org
> source code. The file xc/programs/Xserver/hw/xfree86/i2c/xf86i2c.c

Congrats!  To  make  it  perfect:  could  you  please  wrap  up  your
modifications  into  a  patch we can put on our FTP server, so others
can benefit from this, too?

Thanks in advance.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Even historians fail to learn from history -- they repeat the same
mistakes.
	-- John Gill, "Patterns of Force", stardate 2534.7

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-01-04 21:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-04 11:33 Segmentation fault with X.org and Coral-P drivers Matthias Transier
2006-01-04 15:48 ` Wolfgang Denk
2006-01-04 16:19   ` Matthias Transier
2006-01-04 17:59     ` Matthias Transier
2006-01-04 21:11       ` Wolfgang Denk
2006-01-04 21:10     ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).