SDRAM comes in two types - so-called single-sided and double-sided. They differ in the number of address lines to talk to the RAM
Get the wrong type and only half the RAM will show up - thus Half 512MB = 256MB + 128MB = 384 MB.
Lose some more to the Integrated graphics and you'll be down to the figures you see.
So you probably need the need the other type of 512MB module - a "double sided" type, if my memory serves me correctly.
PS - it doesn't actually refer to whether the module has chips on both sides, just to the organisation of the addressing.