Jump to content

GMA X4500


aldo77
 Share

1,615 posts in this topic

Recommended Posts

Can you post a picture? (screenshot won't show it.)

 

 

Here it is. You can't really see much from it but anyways. And also on the left side there is a rectangle boxish thing. That stays 5cm below the mouse.

 

Found something interesting. On some reboots my screen looks like the green has been set too high and then if I go into the System Preferences > Display and change the resolution it returns to normal color but the lines remain.

 

iPoco

photo.jpg

Link to comment
Share on other sites

Status update.

 

I'm including these updates to document things for myself, other developers, and the future. Much of what follows will be gobbledygook, so just ignore it, if you're not a geek.

 

I've been trying to decode the Intel manuals, and I think I'm getting closer to understanding what is happening. The crucial lines are found in the system logs of people who don't use the -res option of patch4500.

 

Recall that using the -res option deletes the 2A42AppleIntelGMAX3100.kext, which means it won't load. But it's not helpful in trying to figure out *why* it's failing. The crucial lines are these:

 

Jul 3 01:38:22 localhost kernel[0]: ESR: Instruction error

Jul 3 01:38:22 localhost kernel[0]: ESR: Page Table Error

Jul 3 01:38:22 localhost kernel[0]: PGTBL_ERR: MI_PTERROR_INVALID_TLB_MISS

Jul 3 01:38:22 localhost kernel[0]: PGTBL_ERR source: Reserved

 

The Intel doc says that:

 

Invalid TLB Miss: An unexpected TLB miss (detected at GTT request time) was encountered (e.g., during Display/Overlay/Sprite access).

 

Recall that I highlighted three differences: the GTT, stolen memory, and *overlays*.

 

Once I figure out all the acronym soup, and why this error happens, I think I can come up with a way of injecting changed values, *before* the display kexts load up.

 

To test this, we can try using reggie_se in the CHUD developer tools to change thinks in the memory mapped registers. Then we try loading the kext on the command line and see what happens.

 

Hopefully, I'll have some commands to try out next week. Enjoy your Sundays, everyone.

 

-u

Link to comment
Share on other sites

Cursor issues:

 

The Intel doc might suggest why Lenovo users can't see the cursor:

 

PIPEACONF—Pipe A Configuration Register

Memory Offset Address: 70008h

Default: 00000000h

Normal Access: Read/Write double buffered

Cursor Planes Off: This bit when set will cause all enabled cursor planes that are assigned to this

pipe to be disabled by overriding the current setting of the plane enable bit, at the next VBLANK.

Timing signals continue as they were but the cursor(s) no longer appear on the screen. Setting the bit back to a zero will then allow the cursor planes to resume on the following VBLANK.

0 = Normal Operation

1 = Planes assigned to this pipe are disabled.

 

This is bit 18. I'll double check by testing with reggie_se on my GMA950, but it sounds like we can set this bit (the register is marked as read/write) to enable the cursor.

 

The problem might also be in a different register:

 

CURACNTR—Cursor A Control Register

This register, and all other cursor registers will remain in their holding register (readable) after a

write. The holding registers are transferred into the active registers on the asserting edge of

Vertical Blank only after a write cycle to the base address register has completed.

Memory Offset Address: 70080h

Default: 00000000h

Normal Access: Read/Write

Cursor is disabled. This is the default after reset. When the cursor register value

changes from enabled to disabled, the cursor will stop fetching data at the following

VBLANK event.

The cursor enable can be overridden by the pipe cursor disable bit. The value of these

bits do not change when disabled by the pipe cursor disable bit.

Bits 5 and 2-0.

 

I can try to make my machine behave like the lenovos, and then (hopefully!) set it back. I'll try this Mon or Tuesday.

 

-u

Link to comment
Share on other sites

Hey Coldequation,

 

you are doing a great job :) I hope some other experimented devs like you will join the thread !!

 

Keep up the good work m8, I'm steel around if you need me to test or try things out ;)

 

Latter then...

 

PS : About AppleIntelGMAX3100.kext loading ... it seems that chopper has delete all the related bundles and plugins, wich explain why he can load the driver. How ever it could be interesting to compare IOregs dumps from X4500 user with AppleIntelGMAX3100.kext loaded without the plugins.

Link to comment
Share on other sites

Hello guys any way to fix my problem, I even downloaded the kexts by trauma and also tried patch and deleted the kext which is without FB but still my display goes to blue screen and then blank. I am using Dell Latitude E6400. Please do help to me.

 

At least just only native resolution.

 

Thanks

Link to comment
Share on other sites

Hey guys...

 

I've a Sony VAIO VGN-FW245J... This notebook uses an Intel GMA X4500MHD...

 

I've hex-edited AppleIntelGMAX3100 and AppleIntelGMAX3100FB binaries and the corresponding Info.plist files... Leopard starts up but I've an unusable display (looks like a light gray --- see it below)...

 

07122009175.th.jpg

 

After that I connected using VNC and using System Profiler I could see that the two kexts were loaded.

 

Then I've the idea of connecting my Panasonic Plasma 42" PZ80 via the VGA out from notebook. After clicking 'Detect Displays' about 30 seconds later (in this time I observed my notebook blanking screen 3 or 4 times --- perhaps trying to find an usable resolution) my Plasma TV shows what you can see in picture 2... Yes... 800x600 resolution only (I tried higher ones with no luck) and no artifacts/corruption!!!

 

07122009178.th.jpg

 

Unfortunately no CI/QE and I've noted that all known resolutions (from 640x480 to 1920x1200) are listed in 'System Preferences' for the built-in notebook display (perhaps because Leo couldn't get a valid list from the hardware --- incorrect addresses???)...

 

I've disassembled AppleIntelGMAX3100 and AppleIntelGMAX3100FB files and I'll try to find operations with addresses and registers on GM965 chipset, according to the Intel specs and datasheets.

 

Patience and research...

Link to comment
Share on other sites

Thanks! BTW, thanks for all your help! Also, what you found WRT to chopper makes sense. I posted earlier what Slice said about the plugins-- they are crucial to getting QE/Ci to work.

 

I just wish I had a 4500 to work on-- it would make things way easier.

 

Hey Coldequation,

 

you are doing a great job ;) I hope some other experimented devs like you will join the thread !!

 

Keep up the good work m8, I'm steel around if you need me to test or try things out ;)

 

Latter then...

 

PS : About AppleIntelGMAX3100.kext loading ... it seems that chopper has delete all the related bundles and plugins, wich explain why he can load the driver. How ever it could be interesting to compare IOregs dumps from X4500 user with AppleIntelGMAX3100.kext loaded without the plugins.

 

Excellent work, oliveirapaulo.

 

@oliveirapaulo. Please see my post that looked at the BSD source diffs. The main issues are the GTT, Pipe, Overlay and whether stolen memory is used or not. That will, of course affect the size and offsets of memory used.

 

I also posted some details from Slice that tell what each of the plugins do, so the problem may be with a plugin that is trying to load, which then fails, causing the kext not to load. Since Trauma found that chopper can load the 24A2AppleIntelGMAX3100.kext *without* the plugins, you may want to investigate that issue. Of course, if 24A2AppleIntelGMAX3100 sets up something badly for a plugin, which then fails, that could be the issue too!

 

BTW, this morning I am able to look at the memory and registers of my GMA950 with reggie_se. You might want to review the intel docs, and try reading/writing registers with that to see if you can effect any changes to the 4500's behavior.

 

@nomi81: please use Tienneke's Genius Bar thread to debug issues with native resolution. Unfortunately, and especially since I do not hae a 4500, I can't help much. You can also see if Tienneke or Trauma is on the irc channel previously posted.

 

@qualchrone: I found some registers that specifically refer to backlight control, as well as one that deals with legacy backlight control. Later in the week-- remind me if I forget, I'll try to suggest some things you can try. Right now, I'm trying to see if I can fix the cursor issues that lenovo users are having. Before I get to your brightness issue, you will need to install the CHUD package from XCODE Tools on the Retail OSX DVD or Download it at http://connect.apple.com/ (you'll need an account there).

 

 

Hey guys...

 

I've a Sony VAIO VGN-FW245J... This notebook uses an Intel GMA X4500MHD...

 

Then I've the idea of connecting my Panasonic Plasma 42" PZ80 via the VGA out from notebook. After clicking 'Detect Displays' about 30 seconds later (in this time I observed my notebook blanking screen 3 or 4 times --- perhaps trying to find an usable resolution) my Plasma TV shows what you can see in picture 2... Yes... 800x600 resolution only (I tried higher ones with no luck) and no artifacts/corruption!!!

 

Unfortunately no CI/QE and I've noted that all known resolutions (from 640x480 to 1920x1200) are listed in 'System Preferences' for the built-in notebook display (perhaps because Leo couldn't get a valid list from the hardware --- incorrect addresses???)...

 

I've disassembled AppleIntelGMAX3100 and AppleIntelGMAX3100FB files and I'll try to find operations with addresses and registers on GM965 chipset, according to the Intel specs and datasheets.

 

Patience and research...

Link to comment
Share on other sites

I NEED YOUR HELP. See below.

 

I'd like to see if we can sort out the problems that lenovo users are having with their vanishing cursors in native resolution. So I'll need help from two groups of people: those of you who have native resolution with a working cursor, and lenovo users who are having cursor problems. Lenovo users: this may be painful, as you MUST do this in native resolution mode (meaning you won't be able to see the cursor!).

 

Here are the tests to try:

 

1. First install CHUD tools from your retail Apple DVD, or download from http://connect.apple.com/ (you need to have an account there).

 

2. Open up a terminal window. Type sudo -s, and type your password.

 

3. Next, if you have a working cursor, type this command:

 

./cursorCheck.sh good "Gateway MX8738"

 

but replace the Gateway with your make and model in quotes.

 

If your cursor is not working, type this command:

 

./cursorCheck.sh bad "Gateway MX8738"

 

but replace the Gateway with your make and model in quotes.

 

4. Post the resulting output (it will be in a file named lenovo-test.txt)

 

I am not sure what the result should be on a 4500, but I'll compare the files and see if we can then use reggie_se to set the correct values.

 

I've attached the cursorCheck.sh script as a zip file.

 

Thanks,

-u

cursorCheck.sh.zip

Link to comment
Share on other sites

Thanks. I can't guess about your lines issue. Have you tried to see if if happens on an external display?

 

Here you go.

 

I was wondering about my lines issue. Could the type of display influence it? There were three types and I was wondering if this could change anything?

 

iPoco

Link to comment
Share on other sites

Thanks! You have a knack for showing interesting things!

 

Your result is quite different from ipoco's which is not working. I will wait until I see more examples of good cursors, before suggesting what ipoco and chopped can do to try and solve the cursor issue.

 

-u

I've attached my results here ;) Hope you've got something interesting

 

Well, to be honest I am guessing here as to cause. There are also registers that control the cursor size, so I may change the script to check that tomorrow.

 

im a little confused at the working cursor vs non working cursor. even if the cursor is visible once we increase the size, its considered non working because its not visible at normal size right?
Link to comment
Share on other sites

Thanks! You have a knack for showing interesting things!

 

Your result is quite different from ipoco's which is not working. I will wait until I see more examples of good cursors, before suggesting what ipoco and chopped can do to try and solve the cursor issue.

 

-u

 

I've tried setting the value of iPoco's laptop to the value I have (by booting in single user mode, loading the CHUD kext and using reggie_se -w 0x01000000 .........) but it didn't solve the problem.

Instead, if he booted from single user to graphical (just typing exit), the value would be changed to complete garbage... Very odd.. I'll look into it later today, if I see him on IRC ;)

Link to comment
Share on other sites

Hi,

 

Just tried patch script on my Packard Bell... Works perfectly, but VLC mediaplayer video output doesn't work.

 

i have the same problem. Cant get VLC to show video, only sound. Maybe has something to do with QE/CI.

Link to comment
Share on other sites

Careful! -- that might not be a good idea. It's better to try to decode what the values mean and then see about setting them.

 

The pdf to look at is: Vol_3_G45_register.pdf at: http://intellinuxgraphics.org/documentation.html

 

Also, the programmer's ref manual: ACPI_IGD_OpRegion_ Spec.pdf

 

-u

I've tried setting the value of iPoco's laptop to the value I have (by booting in single user mode, loading the CHUD kext and using reggie_se -w 0x01000000 .........) but it didn't solve the problem.

Instead, if he booted from single user to graphical (just typing exit), the value would be changed to complete garbage... Very odd.. I'll look into it later today, if I see him on IRC :whistle:

Link to comment
Share on other sites

Careful! -- that might not be a good idea. It's better to try to decode what the values mean and then see about setting them.

 

The pdf to look at is: Vol_3_G45_register.pdf at: http://intellinuxgraphics.org/documentation.html

 

Also, the programmer's ref manual: ACPI_IGD_OpRegion_ Spec.pdf

 

-u

 

Okay, thanks for telling me ;) I'll read through the docs too, I'm pretty interested in learning more about device drivers (or more specifically the translation between hardware and software..)

Link to comment
Share on other sites

Thanks. I can't guess about your lines issue. Have you tried to see if if happens on an external display?

 

Just tried and it works with no lines on the external display but they stay on the laptop. (No mouse on anything)

 

Something I found weird though was that the max resolution of my external monitor is 1280x1024 but whenever I tried this the screen stayed black with no input. The max I could go up to was 1152x864 while in Windows I could get the full 1280x1024.

 

iPoco

Link to comment
Share on other sites

and they said it couldn't be done! i hadn't checked in a long time but now I think it's time to try installing osx on my vaio again...

 

good luck getting QE/CI working, a lot of laptops use this chipset and it'd be great for the community

Link to comment
Share on other sites

 Share

×
×
  • Create New...