A 32 bit operating system can address at the most 4 GB (I know, I know, some one will object to that but never mind)
But the hardware need addresses for "internal use" like addresses for PCI and all other hardware.
In Linux one GB is set aside for these addresses, leaving 3 GB for you
I have no experience, but perhaps that last GB is creating some ambiguity....
I don't know how your mobo handles memory, but reduce to the highest value below 3 GB (which will be 2 or 3 GB)
We also have to take dual/single channel memory controller into account - read the manual of your mobo so you put the memory units correctly in their slots
Finally some mobos don't handle more than 2 GB...
Don't fix it if it ain't broken, don't break it if you can't fix it