I had an old Compaq Athlon 1GHz system that seemed to be broken. It would display random things on the screen from the BIOS and fail the boot, it looked like a motherboard problem. Fortunately before I gave it away (I give away all my broken machines to members of my local LUG who want spare parts) I remembered that the machine uses main memory for video. I removed and reinstalled one of the DIMMs and it then worked perfectly, presumably it was making a poor contact.
The next task was to put it back in service, I had a bunch of spare RAM and I decided to upgrade it to 768M (it previously had 384M). With the new RAM it would fail to boot, sometimes it would give a kernel message “soft lockup detected“, and sometimes it would just hang. The hangs typically occurred when running the initramfs (the first non-kernel code). I tested this with a Fedora install (what the machine used to run when it had 384M), a Debian install (the aim was to use a hard drive with Debian installed for the new purpose of the machine), and with CentOS and Debian installation CDs. The CentOS and Debian installation CDs got a little further but still crashed. Memtest86+ however reported all the RAM as good.
I then tried reducing the RAM to 256M which worked perfectly. It seemed that increasing RAM above 384M would cause the problem.
The next thing I tried was the mem= kernel option. As a first experiment I tried mem=400m which worked perfectly. I then tried mem=759m which allowed the boot process to proceed a little further but it still crashed. The system supposedly has 760M available (8M used for video). Further testing revealed that mem=750m seemed to work well. Being cautious (and not short of RAM) I have configured the machine to use mem=740m, and it is now working well.