I can upload to the atmega328p with my duemelinove, but not the atmega328. What is the difference? How can I upload to it?
The chip has a signature, which is different for the 'P' version.
The non-'P' version is not compatible with Arduino. You could add it to 'boards.txt'.
It is possible to force a 'P' bootloader onto the non-'P'. After that the Arduino IDE thinks it is a 'P' version, since the bootloader says so.