Contribute
Register

HP ProBook 4x30s (4330, 4430, 4530, 4730) patches -- Updated

Status
Not open for further replies.
Hi,I wonder did anyone try to re-flash from f28 to earlier versions of bios,f23 for example.

I have not tried it. Don't see any reason to. But I've heard it is possible. Heck, the BIOS flasher even creates a backup of your current BIOS for "emergency recovery purposes." So even HP is saying downgrade is possible. I think the warning HP is giving is pure FUD and is probably there just to scare people out of updating.
 
It will not override. If your match is the second line, it will error out on first and stop. That's why some people can't get past this part when applying patches.
Perhaps we should "purify" dsdt first and agree on "Zero" or "0x00" ?
I'm sure RehabMan can tells us what is the correct approach.

The lines were added to fix battery compilation errors we had in the past. After MAXC register was divided into AXC0 and AXC1 additional entry with for AXC1=0x00 or so was needed for some sections. (B1B2(AXC0,AXC1) couldn't be used.

And yet, there wasn't compilation errors with both lines inserted. I've opened the clean DSDT, then Patch/New patch, pasted the content of all patched (including the last two lines of the second battery patch), one after another and applied all of them at the same time. I got 2 remarks and 6 warnings at the end, but no errors at all.
 
I don't know, but after discovering the differences in these items when I went through this process to patch my own DSDT, I'm probably done with using DSDT from the installer and will always choose to patch custom. I really did this just so I could understand the process and update the patches to what we currently have in our DSDT, but it seems I learned a little extra...

I'm really glad that somebody is trying the patches. They need second pair of eyes and validation. Also I like your less aggressive approach when it comes to fixing the warnings.
 
It will not override. If your match is the second line, it will error out on first and stop. That's why some people can't get past this part when applying patches.
Perhaps we should "purify" dsdt first and agree on "Zero" or "0x00" ?
I'm sure RehabMan can tells us what is the correct approach.

I don't think it errors out if there is no match. I have done many patches on clean DSDTs which have no (Zero, MAXC) patterns. That is the first one in the file... the second will match on (0x00, MAXC). So the first must be a no-op (in the case of no match), and the second actually taking affect. I wonder if people are using old versions of DSDT Edtior??

One thing I did notice about the DSDT Editor. You have to move very "slow and careful." Apply one patch, then wait. Then wait some more. Then close the patch dialog. Then wait some more. Make sure the little progress indicator at the bottom right corner is not going to kick in before you do your next patch. I've created bad files when I've attempted to move the process along faster than what the editor wants to...

And... there already is a "pure" version of the DSDTs... They come out of "iasl -d" as 0x00 as that is the way they are in the binary (the AML).
The only way you get a Zero there is because at some point you recompiled, then disassembled the file with the optimizing compiler (without the "-oi" flag) as the compiler will convert any zeros (0x00, 0, or 00) it sees to the integer constant Zero.

The lines were added to fix battery compilation errors we had in the past. After MAXC register was divided into AXC0 and AXC1 additional entry with for AXC1=0x00 or so was needed for some sections. (B1B2(AXC0,AXC1) couldn't be used.

The B1B2 method is a retrieval mechanism (in programmer terms, a "helper" function). So where you were reading a 16-bit value, say MAXC, you use B1B2 method to put the two parts back together in a 16-bit value. That is B1B2(low-byte-of-VAR, high-byte-of-VAR) == VAR. Mathematically, B1B2(low,high) is B1B2(low,high)=low+(high*256).

But to write values we need to use Store. And we need two of them, since we have to store both the low-byte and the high-byte. So where you have, Store (0, MAXC) (any flavor of zero), you need Store(0, AXC0) and Store(0, AXC1). And where you have Store (0xFA, MAXC), you need Store (0xFA, AXC0) and Store (0, AXC1). There is probably a way to write a helper function for storing, but I'm not sure how you pass by reference in AML and investigating does't seem worth it.
 
Yes, i have 4340s model with hm76 chipset, but 2nd generation CPU i5 2450m, so i'm confused about what to choose in system definition - mbpro8,1 or mbpro 9,2.
The differences what i found for now:
LPC device id - 1e59 must be changed in dsdt patch
Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E26 - must be changed in dsdt. By the way - why we use the same device id for EHC1 and EHC2 devices - they have different device id's,so that is the question, because i have second Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E2D (different device id) does it mean that i need to change dsdt patch for EHC1 - device id - 1e26, for EHC2 device id - 1e2d?
A have additional Device (XHC) Intel(R) USB 3.0 eXtensible Host Controller - 0100 (Microsoft) [8086-1E31] with device id - 1E31, do i need to use _DSM method for this device too?
Just strange - i have 3 usb 3.0 ports and only 1 usb 2.0 port - i don't understand why i have 2 x Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller and only one - Intel(R) USB 3.0 eXtensible Host Controller. So i guess usb 3.0 controller connected to hub with 3 connectors and one usb 2.0 is connected to USB 2.0 socket and other USB 2.0 is for internal connections and hasn't output inside. Maybe that's why?
My Audio Codec: IDT 92HD87B2/4. High Definition Audio Controller [8086-1E20]. Is it the same as in 4530s? If yes, i can use dsdt patch for audio in my dsdt - right?
Wifi - Qualcomm Atheros AR9485 802.11b/g/n WiFi Adapter [168C-0032] - there is no way how to make it visible and functional.
Ethernet - Realtek RTL8168/8111 PCI-E Gigabit Ethernet Adapter - the same as in 4530s?
What is SMBUS - where it is in windows? is it "Extended IO Bus - ACPI\VEN_PNP&DEV_0A06 - PNP0A06"?

I need some time to test my options to change things more accurate for my hardware, but maybe anyone can tell me now were to pay attention to do not do useless job?

Thanks!!!

You're beyond my abilities at this point, and I don't have that hardware, so hopefully somebody who knows more about patching can help...
 
Guys, in case you don't know, there is a faster way to apply all the patches at once - with this tool. I've just tested it with a text file with all patches inside and it did the job twice as fast as the DSDT Editor, and the generated DSDT was identical (by MD5 sum) with the one, generated by patching the vanilla DSDT patch by patch. The only thing it needs is an update of its iasl compiler, because the bundled one is pretty old.
 
Guys, in case you don't know, there is a faster way to apply all the patches at once - with this tool. I've just tested it with a text file with all patches inside and it did the job twice as fast as the DSDT Editor, and the generated DSDT was identical (by MD5 sum) with the one, generated by patching the vanilla DSDT patch by patch. The only thing it needs is an update of its iasl compiler, because the bundled one is pretty old.

That's cool. I'll definitely give it a try.
 
The only thing it needs is an update of its iasl compiler, because the bundled one is pretty old.

Thanks, that will make things easier.

Where do you get your iasl compiler?
I found one provided by Slice and see how it works.
http://www.projectosx.com/forum/index.php?showtopic=386&view=findpost&p=20384

I'm also curious about statement made by "The King"
All BIOS manufacturers including Apple use 2005 source version(ACPI Specification Revision 3.0).
http://www.projectosx.com/forum/index.php?showtopic=386&view=findpost&p=14011



EDIT:


Another voice in discussion about using older or newer compilers by mitch_de
SUMMARY of why using newer iasl:
Newer versions of iasl (and iaslMe with newer iasl) help to get dsdt.dsl source complied or getting much less compile errors.
EDIT: Even more interesting as "optimisations" : Newer iasl compiler may also find more bugs (errors) in your bios/dsdt ! So you can fix them .

http://www.insanlynac.com/forum/index.php?showtopic=189272&view=findpost&p=1282786
 
Thanks, that will make things easier.

Where do you get your iasl compiler?
I found one provided by Slice and see how it works.
http://www.projectosx.com/forum/index.php?showtopic=386&view=findpost&p=20384

I'm also curious about statement made by "The King"

http://www.projectosx.com/forum/index.php?showtopic=386&view=findpost&p=14011



EDIT:


Another voice in discussion about using older or newer compilers by mitch_de


http://www.insanlynac.com/forum/index.php?showtopic=189272&view=findpost&p=1282786

I get my compiler from here: https://www.acpica.org/downloads/

It comes in source code only (except for Windows) and then I build it myself.
 
Thanks, that will make things easier.

Where do you get your iasl compiler?
.
.
.
Another voice in discussion about using older or newer compilers by mitch_de


http://www.insanlynac.com/forum/index.php?showtopic=189272&view=findpost&p=1282786

Yeah, I got mine from there. You can also compile it from source code, but the code requires some modifications in order to be compiled on OSX:

1. acpica-unix-20120816/generate/unix/Makefile.config, line 50 looks like this:

cp --remove-destination $(PROG) ../$(BINDIR); \

The parameter in red should be removed.

2. the same file, lines 126-139 looks like this:

CWARNINGFLAGS += \
-Waddress \
-Waggregate-return \
-Wchar-subscripts \
-Wempty-body \
-Wlogical-op \
-Wmissing-declarations \
-Wmissing-field-initializers \
-Wmissing-parameter-type \
-Wnested-externs \
-Wold-style-declaration \
-Wold-style-definition \
-Wredundant-decls \
-Wtype-limits

The lines in red, including the backslash before the last line and the space before it should be removed.

3. acpica-unix-20120816/generate/unix/acpiexec/Makefile, line 210 looks like this:

LDFLAGS += -lpthread -lrt

The parameter in red should be removed.

After all these steps, go to the parent folder (acpica-unix-20120816) and type make. You will find the compiled binaries in acpica-unix-20120816/generate/unix/bin64.

This is an example how can be compiled the current version (at the time of writing this).
 
Status
Not open for further replies.
Back
Top