If its a DRAM DIMM module then SW reads info
about that RAM via the SPD interface.
SPD = Serial Presence Detect
This is typically an I2C interface so
SW can bit bang it.
SPD provides more info than just size.
For example on some systems you need to
know the RAS/CAS params and various
wait state settings in order to program your
memory controller for optimal performance.
This is how PCs are able to configure themselves
to work with standard modules. For more info
checkout this site ...
For SRAMs the HW guys usually provide
some set of registers for SW to read
info its needs like size. And sometimes
they don't so you have to use address
probing tricks as Wolfgang described.
> -----Original Message-----
> From: email@example.com
> [mailto:firstname.lastname@example.org]On Behalf Of Wolfgang Denk
> Sent: Thursday, October 06, 2005 12:29 AM
> To: Arravind babu
> Cc: email@example.com
> Subject: Re: Basic question w.r.t bootloader
> In message
> <firstname.lastname@example.org> you wrote:
> > Generally how bootloader/bootflash code detects
> > the size of RAM on the board? Is it hardcoded some
> > where in the bootflash code or is it detected using
> > memory chips ?
> One method is to probe addresses (at N, 2*N, 4*N etc. starting with a
> resonable value of N like 1 MB) until probing fails. See for example
> common/memsize.c in the U-Boot sources.
> Best regards,
> Wolfgang Denk
> Software Engineering: Embedded and Realtime Systems, Embedded Linux
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: email@example.com
> The IQ of the group is the lowest IQ of a member of the group divided
> by the number of people in the group.