Improving the Intel Extreme Driver (Was: Graphics on Dell laptop in Vesa mode only)

Info from Pulkomandy:
0x0154 is the DRAM controller (host bridge in listdev) and 0x0166 is the gfx card. So for some reason it doesn’t find mine even the struct is correct.

Hi, after update to hrev55608 my graphics cards works.

Thank you, one issue is open. HDMI out isn’t working. I see in the prefs the other Screen, but no output on the screen. I will test HDMI again on the weekend with another screen.

regards lorglas

1 Like

Same Ivy Bridge chip works OK on my Thinkpad laptop using hrev55602 x64. Syslog reveal anything?

No I tracked it down in the code to iterating to find the host bridge and then the gfx card, so it is the detection itself. I am on x86_64 booted from UEFI, Wonder if that matters…

On UEFI systems unpacked hierarchy won’t work at all, no matter if 32 or 64bit, no matter if UEFI or legacy setup. If you want to test you must update in the system hierarchy, unfortunately. On my system I use an unpackaged setup so I can freely poke around :wink:

Oh, the syslog will show if GART fails. If that’s not in there I guess that’s OK…
The intel_extreme driver knows your card:

{0x0166, INTEL_MODEL_IVBGM, "IvyBridge Mobile GT2"},

And GART knows it too:

{0x0154, 0x0166, INTEL_MODEL_IVBGM, "IvyBridge Mobile GT2"},

seems all OK. So we need to see the syslog :wink:

1 Like

Thanks for the suggestion. So it seems they use the/some linux GPU drivers with a wrapper system or so.
Anyhow, I am also looking at linux drivers (DRM) but I have only limited time to browse it and use stuff from there, but more importantly even, I need hardware to test since without testing it’s bound to not work…

At least that’s my experience… :roll_eyes:

Yes turns out the AGP lines are from the bus manager, but intel_gart was the one to look for, so it does find and setup AGP. it finds a displayport connected, sets correct res, but it is all black. I’ll update a proper ticket with info tomorrow.

Updated to rev55608. My particular card is not recognized. So, I am giving a screenshot of the card from devices in hopes that it may oneday be added.

Thanks for doing all this work.

Donald
Graphics Card

1 Like

Updated the ticket with new syslog: https://dev.haiku-os.org/ticket/12964#comment:69

1 Like

I’ll have a look for techdocs. This is generation 9.5, low power, and it seems to use DDI. It is one newer type compared to what I am testing on, so who knows, maybe it will respond soon.

Then again, maybe not. As said its always hard to predict hardware responses :slight_smile:

10 Likes

@rudolfc would you mind having a look at https://review.haiku-os.org/c/haiku/+/2163 and https://review.haiku-os.org/c/haiku/+/2236 and share how useful these could be? Thanks

2 Likes

Thanks for the pointers! I’ll have a closer look at these items asap.

BTW @DFergFLA could you maybe also see which device is used as CPU memory interface on your system? At this point for completeness sake only I guess :wink:

1 Like

@rudolfc

Can you tell me the name of this as it is listed in the devices app? I took a look and I don’t see anything that looks like what you need. There is an option in the device app that says “Generate System Information” I think this may get you everything you could need. but it is greyed out and I don’t know how to use that option.

GenSysInfo

Thanks

Just open a Terminal and type: listdev.
On my system it’s called ‘host bridge’ / 'Xeon-E3-1200 v5/E3-1500 v5/6th gen Core Processor Host Bridge/DRAM Registers" for instance.

OK, I do believe I have found it. Let me know if there is anthing else I can do.

device Bridge (Host bridge) [6|0|0]
vendor 8086: Intel Corporation
device 31f0: Gemini Lake Host Bridge

2 Likes

Recent Live CD test (hrev55625 x64):

  1. IronLake (Gen 5, desktop)
  • Boot splash screen appears - FAILED (1)
  • Welcome to Haiku screen - PASS
  1. Ivy Bridge (Gen 7, mobile)
  • Boot splash screen appears - PASS
  • Welcome to Haiku screen - PASS

Note:

  1. Manually setting a screen resolution in the boot loader menu fixed the issue. (workaround)
5 Likes

That’s a nice result :smiley:

The boot spash screen lies outside of the intel_extreme driver btw.

In other nice news: over here, since an hour or so ago:

  • I am able to almost fully set my analog screen on generation9 skylake, that is, resolution and refreshrate (that is via a DP converter chip on the mainboard as analog out is not directly supported on this chipset anymore).
  • I can also set resolution on DVI, but no refresh yet.
  • I’m still missing something else as well since the screen content is still garbled after setting another resolution…
  • and I still need to find out how to autodetect the BIOS preprogrammed ‘switches’ so which connector runs in what protocol via which pipe.

Anyway, it’s progress again :slight_smile:

23 Likes

Thx Rudolf! Grazie :slight_smile:

You’re welcome :slight_smile:

For the changes mentioned above I updated git:
https://git.haiku-os.org/haiku/commit/?id=0eb2bf0e66fa9a515bf260d3c533bf3aa3e566ec

The screen connected detection now also sees the analog screen via DP converter (and I expect DP screens), though the specs are still not read for these. For the analog screen refreshrate programming works here, but not yet for digital screens. Resolution changes don’t work yet either (that is, the screen switches, but the content is still garbled).

From the looks of it this will mostly be fixed when DPLL programming is added, but unfortunately Intel decided to do this very different from before, and on top of that, different per generation card…

So I plan to just copy and paste a piece of the (MIT) linux DRM driver to do that part as I really don’t like to having to sort it all out myself. It’s a not so straightforward piece of hardware. Something I never saw before (not on Matrox, nVidia, VIA, Neomagic at least).

I am beginning to understand why there are comments in the code that more or less point to Intel developers being in strange moods when designing their hardware… :wink:

13 Likes

Hi, another update. I just committed a patch that makes resolution switches work nicely on all displays on Skylake. Mind though that refreshrate programming still only works for DP mode (analog) screens. On other screens probably only the desktop shows if you select a resolution close to the boot one as it might still be within the refresh limits the screen can do.

See: https://git.haiku-os.org/haiku/commit/?id=ae7d733d42435619cf76e0ab21a2c7af59dcf84f

11 Likes