First post, by Rav
Hi there
UCP 2.0 :
Screenshots from my MMX
I got my new UCP in a state that in can finally be published.
The new version is compatible with the following PCI chipsets:
- ALi M1521
- ALi M1531
- ALi M1541
- Intel 440BX
- Intel i815
- ALi M1523
- ALi M1533
- ALi M1543
- Intel PIIX4
- Intel ICH2
I do plan to port (refactor/remake) code for ISA chipset support soon. Plus some improvement / modification probably as for the layout as some options are kind of long so I might change the UI so the top half are the settings and the bottom half, the help... Or maybe update the center vertical line so it's dynamic to auto adjust width according to the stuff in the left column. Once I have ISA stuff back, that will allow me to also configure other PCI stuff that are accessed thru normal I/O ports (for example that BuB S3 fixing stuff)
If you have any idea for improvement or request for chipset, please let me know
Utilisation, you won't be lost, if you ever used Award BIOS. Settings are saved in the same folder as the .exe. Once you made configurations, you can put the thing in the autoexec.bat with /autoload switch, to just load the configured settings.
There is a memory test tool in the program, but it's still alpha-ish and ugly. If you want to test new memory timing/speed settings in memtest86+, you can simply boot using something like QEMM, set the settings and press ctrl-alt-del, it will fastboot (instantly load memtest from the flop) without going back to the BIOS, preserving all settings. If you do that, be sure to not have network drivers loaded as they also don't get reseted and they will DMA packets in the RAM, failing the test.
Note that I have only tested on Ali M1531/M1533 (My system). Settings in yellow in the screenshot are what I changed (Gained 1.5fps on Quake yay!)
There way more interesting options in Ali chipsets.. Intel seam to be way more limited..
Here two chip support file :
,
.
I welcome peoples making some for other chips that are not listed, and I will add them to UCP2.
User loadable files are planned to be supported in a future version (once I have all structures for all the supported way of patching stuff implemented and stabilised).
Here an example of a register setting for a freetext format (digit between 0 and 31)
{
"PCI Latency Timer",
"Controls the amount of time the M1531 can burst data to the PCI Bus.",
0, 0, 0, 0x0C, // Bus, Dev, Func, Reg
0xF800, // Mask: Bits 7-3
11, // Shift: 3 bits
0, // opt_count: 0 (not used)
{ {NULL, 0} }, // opts: Empty/Unused
0, // current_idx: current or default value
0, // default_idx: default value, populated and first launch from the currently configured setting by the BIOS
INPUT_TYPE_FREEFORM, // It's a number input
0, // Min Value
31 // Max Value
}
Bus, Dev, Func will be removed in the future, just set it all to 0,0,0
Here another one for a setting with choices:
{
"Refresh period", "Period to refresh DRAMs. Longer delay = faster operation.",
0, 0, 0, 0x44, 0x0700, 8,
5, { {"1024 Clk", 0},{"2048 Clk", 1},{"4096 Clk", 2},{"8192 Clk", 3},{"16384 Clk", 4} }, 0, 0,
INPUT_TYPE_LIST, 0, 0
},
Note to people wanting to help submitting chip files.
PCI Configuration mode is accessed via 32 bits chunks and x86 is little endian. So here how to properly set the register
Example register 0x44, bit 2-3.
You take the register from the doc, 0x44, and do "mod 4". you endup with "0", so you do as simply as:
Register "0x44", mask "0C" and shift "2"
Example register 0x46, bit 2-3
0x46 mod 4 is equal to 2, so you have to shift all the stuff 2 times 8 bits on the left
You write it as register "0x44" still (You can also write 0x46, my program do chop the two last bits of the register digit.)
Mask would be "0x0C0000"
shift would be "18" (2 + (2 * đ)