This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: flash base mask question


Gary Thomas wrote:

On Wed, 2003-11-12 at 11:07, John Newlin wrote:


In file:

/packages/devs/flash/arm/uE250/current/include/uE250_stratflash.inl

There is a line that says:

#define CYGNUM_FLASH_BASE_MASK (0xFC000000u) // 32Mb total



First question:
Does Mb stand for Megabit or MegaByte?


If Megabyte should the number not be? ~(1024*1024*32-1) which is: 0xfe00_0000 ( i wish c did underscore in numbers like verilog)


If it is megaBIT then it would it not be: ~(32/8*1024*1024) which is: 0xffc0_0000


Or maybe the mask is per device? There are 2 of these 32MB devices, which would then make a total of 64MB and then the mask would make sense to my simple brain.


If the numbers in the file are indeed correct, can someone please explain to me how to derive the mask so that I can put the correct mask for my device?




It's MegaBytes and in this particular case, the value doesn't match the comment :-(

The value should be ~((32*1024*1024)-1) == 0xFE000000. It's used to take an arbitrary FLASH device and divine the device base address from
it. It should correspond to the size of the largest device [set] which
can be installed.


Note: it's only used by the Intel FLASH device drivers in any case.



Gary, thanks for the clarification, that number makes sense to me. We have strataflash on our board which is why I picked this as a template to copy from.


fis and friends are all happily working.

Thanks,

-john



--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]