*HP HDX 9000 DRAGON Owners Lounge, Part 2*

Discussion in 'HP' started by 2.0, Sep 3, 2010.

  1. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    One thing I forgot to mention. I guess I know why the quad reboots when all cores are enabled. As I have read somewhere, the Dragon's ACPI table refers to CPU0 and CPU1 at addresses 0x01 and 0x02. Whereas in quads those should be 0x00 and 0x01. So 0x02 refers to the 3rd core of quads. When the OS is trying to access the 2nd and the 3rd cores without addressing the first primary one, some error happens because the primary cores are Core0 and Core1, not Core1 and Core2.
    That's why the system couldn't work correctly with just 1 core active, because when 1 core mode has been enabled, just the first core should be working. But in actuality, the second core was functioning instead. I'm wondering how I could boot into the OS at all:D
    Now I'm waiting for help from the developer of HPUnpack. I cannot go on without his help.
     
  2. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    Hexediting the values didn't help, but produced an ACPI error instead. So it seems like the whole CPU section should be replaced to support quads.
     
  3. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    I think the touchpad stopped working at that time because of some watchdog timer. Most likely due to the button for disabling the touchpad was disconnected at that time.
     
  4. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    I've got a DSDT from 8730W and loaded it into the registry. Then I deleted the original Dragon's one. But after reboot, it's back and the 8730W's one is gone. So whatever you change there, it all gets reverted back. I'm wondering how it worked for other people.
     
  5. MobileArtist

    MobileArtist Notebook Deity

    Reputations:
    234
    Messages:
    1,496
    Likes Received:
    321
    Trophy Points:
    101
  6. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    Thank you, but that is not helpful.
    I've just realized that I forgot to enable the test mode in order to make Windows use the DSDT values from the registry. I will try to do something, but I guess that's not going to be easy since 8730W is a different laptop and I would have to dig both ACPI tables to join them correctly. Though we just need to replace the CPU related stuff, as I'm not skillful at that, I cannot say if it's interconnected with the other functions or not.
    But at least, I need to boot with the quad first. That's the main goal.
     
  7. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    This is what I need
    https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/microsoft-asl-compiler
    But the requirements are strict. If I want to replace the current ACPI table correctly, I should use asl.exe. And the DSDT version should be higher than the one in the ROM. Unfortunately, 8530w and 8730w DSDT revision is lower than of the Dragon, so I should change the value in the DSDT file. But if I load an edited DSDT into asl, it says checksum is not valid. Now I'm thinking on how to find out the checksum. Good thing I know where to edit it.
     
  8. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    According to the ACPI specs:
    https://wiki.osdev.org/RSDP#Validating_the_RSDP
    I should have developed or found such a kind of software to do the thing, but fortunately there's a tool that is included in the iasl package. It's called acpibin.exe
    How to fix the checksum in an updated table file:
    acpibin.exe -s [Table File]
    I tried again changing CPU0 and CPU1 addresses by replacing 0x01 and 0x02 with 0x00 and 0x01 respectively. Then I increased the version number, updated the checksum and uploaded the new DSDT into the registry. It didn't work out, so I said f*ck Microsoft! and then decided to hard flash the values with the flash programmer. The new DSDT didn't fix reboots when loading into OS (not sure why), but now I can boot without any problem with just 1 core enabled ("Dual Core CPU" option disabled) at 2.53GHz and there's no ACPI table error showing up anymore. So it was about the wrong checksum.
    [​IMG]
    Unfortunately, ThrottleStop makes the system freeze when I start the application with just 1 core enabled in the quad.
    Now I'm learning the way the Dragon's BIOS is compressed to able to replace SSDT (located in the SMM2 section of the BIOS), DSDT and the video BIOS.
    I hate programming, but it seems like there's no other way and it might take a lot of timeo_O
    Unfortunately, I have to leave my home in a week for more than 6 months, so I will not be able to start the FX3700M mod without being able to replace vBIOS. It would take just a few clicks, if I had a right tool. The quad mod is going postponed as well.
    @2.0 are you off the boat?:D
     
    Last edited: Mar 30, 2019
  9. remdale

    remdale Notebook Consultant

    Reputations:
    15
    Messages:
    227
    Likes Received:
    81
    Trophy Points:
    41
    I found some other areas where 0x01 and 0x02 should have been replaced. But after editing them, QX9300 still didn't want to boot into the OS in the multicore mode.
    Meanwhile, I found a lot more hidden BIOS options that the BCU utility was offering. All the hidden and available options are located in the DSDT. I couldn't find the way how to make them available yet, but I will give it a try.

    EDIT:
    I've compared BIOS for duals and quads for Lenovo T61 downloaded from here
    https://thinkpad-forum.de/threads/172581
    Now I know how much of code and which part we need to modify to implement support for quads. It's in the APIC region, just need to add 16 bytes there for the other 2 cores.
    But there's no tool for that yet.
     
    Last edited: Mar 31, 2019
  10. MobileArtist

    MobileArtist Notebook Deity

    Reputations:
    234
    Messages:
    1,496
    Likes Received:
    321
    Trophy Points:
    101
    Still impressed by your work, and hope you'll post occasionally while you're on your six month sabbatical.

    I never heard back from 2.0 after suggesting a highly realistic nautical PC game. My theory is that he fell off the virtual battleship into the Pacific, and made his way to a virtual atoll, where he is virtually incommunicado. It's the only rational explanation.
     
Loading...

Share This Page