[U-Boot] bootcounter implementation for OMAP3

Nitin Mahajan nitinm76 at yahoo.com
Tue Mar 9 04:46:12 CET 2010


Hello, 

I am trying to implement the bootcount_store and bootcount_load
methods for the OMAP3503 processor based board which I am using.

For this I decided to use the location at the end of scratchpad RAM,
that is I am trying to write at location 0x480029BF. The code looks like 
this, but the boot loader hags when it encounters bootcount_load.


#ifdef CONFIG_BOOTCOUNT_LIMIT
void bootcount_store(ulong a)
{
	volatile ulong *save_addr = 
		(volatile ulong *)(0x480029BF);
	*save_addr = (BOOTCOUNT_MAGIC & 0xffff0000) | (a & 0x0000ffff);

}

ulong bootcount_load(void)
{
	
	volatile ulong *save_addr = (volatile ulong *)(0x480029BF);
	
	if ((*save_addr & 0xffff0000) != (BOOTCOUNT_MAGIC & 0xffff0000))
		return 0;
	else
		return (*save_addr & 0x0000ffff);
		
}

#endif /* CONFIG_BOOTCOUNT_LIMIT */


Am I doing some thing wring fundamentally? Can I get some pointers towrads this?

Also this code I have put in cpu/arm_cortexa8/cpu.c. Is there a way I can put these functions in OMAP3 specific code and still have them called?

regards

-Nitin




      New Email names for you! 
Get the Email name you've always wanted on the new @ymail and @rocketmail. 
Hurry before someone else does!
http://mail.promotions.yahoo.com/newdomains/aa/


More information about the U-Boot mailing list