Opened 3 years ago
Last modified 3 years ago
#17201 assigned bug
skylake/kabylake: no register access
Reported by: | atomozero | Owned by: | rudolfc |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Drivers/Graphics/intel_extreme/skylake | Version: | R1/beta3 |
Keywords: | no register access | Cc: | |
Blocked By: | #16463 | Blocking: | |
Platform: | All |
Description
When I try to EFI boot the beta 3 it gets stuck at the last icon
the laptop have NVIDIA GeForce MX150 end Intel Corei7 8a
Attachments (37)
Change History (92)
by , 3 years ago
Attachment: | IMG_20210820_105254092_HDR.jpg added |
---|
by , 3 years ago
Attachment: | IMG_20210820_105507259_HDR.jpg added |
---|
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Hi! So it looks like VESA is in use, not the intel_extreme driver. Can you enter the bootmenu and see what modes are listed there? if you have choices there, select one and continue the boot to see what happens. You could also try 'use failsafe graphics driver' from the bootmenu to see if that makes a difference.
If you have a succesfull boot, please upload the resulting /var/log/syslog to the ticket for extra info.
Is it possible to boot a 32bit version of Haiku on that system? If so, what happens? Can you access the bootmenu there and see what modes are offered to you here? that might be different from a 64bit version, at least I think I saw that over here a few times.
Good luck with testing!
by , 3 years ago
Attachment: | IMG_20210822_182127305.jpg added |
---|
by , 3 years ago
Attachment: | IMG_20210822_181926054.jpg added |
---|
comment:5 by , 3 years ago
Component: | - General → Servers/app_server |
---|---|
Owner: | changed from | to
comment:6 by , 3 years ago
Summary: | stop at the last icon | Huawei MateBook Mach-W19 → app_server: Finding best mode for ... failed |
---|
comment:7 by , 3 years ago
Blocked By: | 16463 added |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
comment:8 by , 3 years ago
Resolution: | duplicate |
---|---|
Status: | closed → reopened |
by , 3 years ago
Attachment: | es1370.log added |
---|
comment:10 by , 3 years ago
Owner: | changed from | to
---|---|
Status: | reopened → assigned |
Thanks! Your panel isn't detected by the driver unfortunately, and I saw that some registers seem to not been mapped. This might be a hint your laptop uses some power management shutting off parts of the Intel graphics card. Would you maybe have the option to set some power settings in the BIOS, connect mains power to it? I assume at least that the intel gfx card has been set as primary card in the BIOS (?)
I will do some searching in documentation to see if I can find a hint for manually enabling some powerwells.
comment:11 by , 3 years ago
BTW Also the GART driver has a 'unmappable' output text, which I did not see before..
comment:12 by , 3 years ago
Oh BTW, if you are able to set the desktop in the same resolution as the booticons screen is in, I expect you have a desktop with the intel_extreme driver, where you cannot set other modes succesfully, apart from colordepth and virtual size. This is the effect if no screen is detected.
comment:13 by , 3 years ago
the bios does not allow me to set the video card :(
The resolution I see in haiku boot is the same one that works for me in windows 3000x2000, but even lower resolutions give me the same result that hangs at the last icon
comment:14 by , 3 years ago
Hello again, Can you please upload a devices list? (type listdev in terminal). I need the exact ID's from the graphics card. I just found out that on newer cards an extra port was added. If you have that, I'll attempt to scan that port too in the driver :-) Might be the panel sits there..
comment:15 by , 3 years ago
but I cannot complete the boot. is there any way to do this without completing the boot?
:(
in safe mode it enters kdl
by , 3 years ago
by , 3 years ago
Attachment: | nvidia.JPG added |
---|
comment:16 by , 3 years ago
Perfect, thank you! ;-) (Kabylake Mobile GT2, ID = 0x5917)
You should have that extra port. Updating driver as we speak..
comment:17 by , 3 years ago
Hi, please try hrev55689: it has that extra port added. Hopefully your panel is indeed sitting there :-)
Please upload a new syslog along with your observations, thank you in advance..
comment:18 by , 3 years ago
as soon as the nightly is available I try it now. however it goes thanks a lot :)
comment:19 by , 3 years ago
Hi, perfect. Another update done: hrev55690 You'll get that with the next nightly at once. In the meantime I found out that post skylake systems have more differences than was expected: the PLLs are different again, which could be the explanation for the trouble on external screens for a lot of people, and maybe also for your screen.
Anyhow, each update gets us closer to a correctly working system ;-)
comment:20 by , 3 years ago
Hmm, the extra port is scanned, but is also not connected unfortunately. I'll search more, hopefully I can think of something usefull here..
comment:24 by , 3 years ago
Oh, maybe you can fetch it from windows as well, look at the screen properties there..
by , 3 years ago
Attachment: | windows settings mode.JPG added |
---|
by , 3 years ago
Attachment: | windows settings.JPG added |
---|
comment:26 by , 3 years ago
Interesting, high res!. What laptop do you have exactly if I may ask? (I'll look up the specs, hope to find more details on things)..
comment:27 by , 3 years ago
comment:28 by , 3 years ago
It's annoying that the syslog gets truncated with <DROP>. the boot beginning is always missing.
comment:30 by , 3 years ago
maybe you can check with on-screen debug log to see how much it is until the data is logged in syslog. Important is the EDID data that the bootloader finds.
@waddlesplash any idea?
comment:31 by , 3 years ago
You can try increasing the syslog buffer size in the kernel settings file.
comment:32 by , 3 years ago
thanks for the log. From the looks of it the gfx hardware isn't accessible. I see the kerneldriver hitting unknown ref freq( all '1's found), and we also see this in the accelerant (Reg dump in the beginning, but also the scaler setup by BIOS part, I don't trust both being setup (all '1's).
@korli would you have an idea? Is something wrong with memory mapping maybe?
by , 3 years ago
Attachment: | hrev55848 Screen 2.jpg added |
---|
comment:33 by , 3 years ago
I do not have the possibility to attach the syslog but it seems to me that with the hrev55848 something has changed, I have attached two photos :)
comment:34 by , 3 years ago
The driver is developing further indeed. Since your hardware isn't responding yet the driver can't actually do something usefull I'm afraid. Though if your UEFI BIOS lets Haiku know some VESA info the driver will pick it up these days (if you run a new enough nightly that is).
The latest driver I posted seperately in ticket #17350 for testing there, you could try to install that to see if you at least get a screen in the mode you are starting with, but I guess chances are still slim it works for you.
https://dev.haiku-os.org/attachment/ticket/17350/eDP_sandyIvy_hrev55875_x64.zip
Also, it might be if you install the driver (you are running 64bit I am assuming?) in the unpackaged user hierarchy the system won't pick it up as on UEFI systems this still is a problem. In that case you'd have to run a totally unpacked system and place the driver in the system hierarchy.
A current nightly would also contain the driver, but unfortunately these are currently not generated it seems..
comment:35 by , 3 years ago
sorry i am not sure i put it in the right folder
i put both files in system/non-packaged/add-ons/kernel/drivers/bin
thx :)
comment:36 by , 3 years ago
proposed change https://review.haiku-os.org/c/haiku/+/4978
if the bios doesn't power up the intel graphics but only the nvidia, this could help.
comment:37 by , 3 years ago
Sounds nice! If it has no expected downside other than a bit of power drain I would say apply it :-)
Would this be ok like this for all generations?
comment:40 by , 3 years ago
hi atomozero, the nightly for that hrev55897 is there in the meantime: could you first test that instead of a custom installed driver? It's interesting to see if this power-up code would let your card be accessible..
For the drivers in user unpackaged it would be:
- accelerant in: home/config/non-packaged/add-ons/accelerants/
- kerneldriver in: home/config/non-packaged/add-ons/kernel/drivers/bin/
- shortcut to kerneldriver in: home/config/non-packaged/add-ons/kernel/drivers/dev/graphics/
On non UEFI systems this works, so takes precedence over the (read-only) system hierarchy.
On UEFI AFAIK you need to create a completely unpackaged system, and then you can overwrite the system driver and accelerant: same sort of setup as just described for the user unpackaged thing (but without non-packaged, and in system instead of home)
Please upload a syslog again after you test the current nightly and if you want the driver I pointed you to as well: but nightly should take precedence ;-)
Thank you!
comment:41 by , 3 years ago
Thanks for the dump: still no access to the card's registers.
@korli, can you see in the log if the right version is running here, concerning the power-up patch you suggested here?
Thanks a lot!
comment:42 by , 3 years ago
@rudolfc hrev55898 seems to be the right version. The power-up patch didn't help it seems.
comment:43 by , 3 years ago
Hello again, can you please test hrev55928 or later? If all is right your internal panel should now be recognized so with a bit of luck you should be able to boot to the desktop now, though modesetting still doesn't work. On a fresh nightly I mean.
Can you upload a new syslog from the attempt?
Thank you!
comment:44 by , 3 years ago
Component: | Servers/app_server → Drivers/Graphics/intel_extreme/skylake |
---|---|
Keywords: | no register access added |
Summary: | app_server: Finding best mode for ... failed → skylake/kabylake: no register access |
Hello, The intel graphics driver is loaded (see halfway the syslog) and it doesn't have access to the registers of the graphics card. The BIOS did setup ACPI info listing the cardtype and a panel of 1024x768 which I am assuming is -not- the resolution of your panel.
- which native resolution does your laptop panel have?
- can you try changing the selection on which card gets booted a few times (BIOS and seperate try via keyboard shortcuts if possible: can you also fully disable the nvidia card for instance?)
Another user also did not have register access up in the driver, but somehow that suddenly works over there. It would be interesting to find which trick did it and if it would work for you as well. Though you'd still have the wrong panel info there probably, it would mean a big step forward I think.
For your info see here: https://dev.haiku-os.org/ticket/17632#comment:14
Hope I make sense here.. Thanks for trying!
by , 3 years ago
Attachment: | Huawei MateBook X Pro - Risoluzione schermo.png added |
---|
Native resolution
comment:45 by , 3 years ago
Unfortunately from the bios I can only select from which disk I can boot :( thank you for your time :)
comment:46 by , 3 years ago
New test: can you instruct your BIOS to block above 4G (PCIe) memory use? and if you enable that blocking setting and boot Haiku, can you upload a syslog from the attempt?
Note that blocking this in the bootoptions from Haiku's bootmenu alone seems not enough..
The above is new info from the other ticket that just came up!
by , 3 years ago
Attachment: | PXL_20220313_201759015.jpg added |
---|
this is the maximum I can edit from the bios
comment:47 by , 3 years ago
Hmm, oke, nothing to test then, maybe apart from trying the bootoption from haiku to ignore above 4G if it's there. Are you running 32 or 64bit btw?
comment:48 by , 3 years ago
looks like I have an update for you tonight. I am currently testing with both the intel_gart and intel_extreme driver modified and indeed detecting 64-bit BARs for register access and framebuffer access, which on my systems both map in the lower 32bit range, but I guess that for some users this is not the case, like you.
Once I have committed this change, I'll inform you here..
comment:49 by , 3 years ago
Hmm, and I'm bypassed I see ;-) You can check tommorrow's nighty as Jerome Duval just added the same extensions as I did.
please test hrev55946 or later and upload a new syslog!
Thank you :-)
comment:50 by , 3 years ago
hey rudolf, I noticed radeon_hd and intel_extreme weren't up to date with 64-bit handling. I have an intel system with such 64-bit BARs, but the device isn't yet supported anyway.
comment:51 by , 3 years ago
Funny we were working on the same thing at the same time. I think it's another good sign that Haiku is developing faster and faster :-)
So, while we did double work, it was still interesting to learn more about this. Indeed I saw on skylake and ivybridge that both register and framebuffer have 64bit bars, while generation 3 still uses 32bit types. This will no doubt help close tickets :-)
comment:52 by , 3 years ago
hi rudolf, glad it's ok. I'm testing with jasperlake graphics, it's working now with 64-bit handling, without changes in the accelerant. It doesn't find the VBT though (it's not in the opregion it seems, checked on Linux). I'll commit the IDs, and send a syslog for you to see.
by , 3 years ago
Attachment: | PXL_20220318_125856654.MP (1).jpg added |
---|
only problem encountered, the desktop is displayed only in a rectangle with respect to the entire screen
by , 3 years ago
Attachment: | hrev56001 works.jpg added |
---|
hrev56001 works!!! full native resolution 3000x2000! thx!
by , 3 years ago
Attachment: | hrev56001 if i try change resolution.jpg added |
---|
if I try to pass resolutions different from the native one I am presented with this situation
by , 3 years ago
Attachment: | syslog hrev56004 added |
---|
by , 3 years ago
Attachment: | hrev56095 syslog Intel Driver added |
---|
by , 3 years ago
Attachment: | hrev56095 screenshot Intel Driver.png added |
---|
by , 3 years ago
Attachment: | hrev56095 syslog Vesa Mode added |
---|
by , 3 years ago
Attachment: | hrev56095 screenshot Vesa Mode.png added |
---|
comment:54 by , 3 years ago
Thanks. What happens with smaller resolutions? I see in "hrev56095 syslog Intel Driver" a set_display_mode with 1920x1080 instead of 3000x2000.
comment:55 by , 3 years ago
I immediately try the smaller resolutions, I have attached the two images because in native mode there is no 1920x1440 resolution. The 3000x2000 version is great, but failing to scale the applications makes the system unusable. The 1920X1200 resolution is squashed and not very pleasant to use.
by , 3 years ago
Attachment: | 1024x768 syslog added |
---|
by , 3 years ago
Attachment: | screenshot2 LOL.png added |
---|
on the fifth resolution change Haiku was not happy, but it worked
Intel_extreme: CALLED status_t init_hardware() devfs: "intel_810" api_versione missing i810: init_hardware() - no supported devices