OK, so in summary, we can (in theory) have: - A timer API in /lib/ with a single u32 get_timer(u32 base) function - A HAL with two functions - u32 get_raw_ticks() - u32 get_raw_tick_rate() which returns the tick rate in kHz (which max's out at just after 4GHz) - A helper function in /lib/ u32 get_raw_ms() which uses get_raw_ticks() and get_tick_rate() to correctly maintain the ms counter used by get_timer() - This function can be weak (so next point) - If the hardware supports a native 32-bit ms counter, get_raw_ms() can be overridden to simply return the hardware counter. In this case, get_raw_ticks() would return 1 - Calling of get_raw_ticks() regularly in the main loop (how ofter will depend on the raw tick rate, but I image it will never be necessary to call more often than once every few minutes) - If the hardware implements a native 32-bit 1ms counter, no call in the main loop is required - An optional HAL function u32 get_raw_us() which can be used for performance profiling (must wrap correctly)
Regards, Graeme _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot