Estamos en lo de siempre. XP32 puede direccionar 4 Gb de memoria (2^32). Lo que pasa es que esos 4Gb que direcciona son para todo, todo necesita 'su memoria', tarjetas de sonido, tarjetas de red, placa base, tarjeta grafica... No hay problema en reconocer toda la RAM, pero solo puede usar esos 4 Gb, y no puede ser todo RAM.
Si solo te detecta 2.9 seguramente sea porque tu tarjeta grafica tenga 1Gb de memoria, y el resto es lo que reserva para otros dispositivos y sistema.