On 08/18/2011 12:39 PM, Marek Vasut wrote: > On Wednesday, August 03, 2011 02:37:01 PM Valentin Longchamp wrote: >> The current post_log_word in global data is currently split into 2x >> 16 bits: half for the test start, half for the test success. >> Since we alredy have more than 16 POST tests defined and more could >> be defined, this may result in an overflow and the post_output_backlog >> would not work for the tests defined further of these 16 positions. >> >> An additional field is added to global data so that we can now support up >> to 32 (depending of architecture) tests. The post_log_word is only used >> to record the start of the test and the new field post_log_res for the >> test success (or failure). The post_output_backlog is for this change >> also adapted. >> >> Signed-off-by: Valentin Longchamp <valentin.longch...@keymile.com> > > [...] > >> @@ -144,12 +145,12 @@ int post_bootmode_get (unsigned int *last_test) >> /* POST tests run before relocation only mark status bits .... */ >> static void post_log_mark_start ( unsigned long testid ) >> { >> - gd->post_log_word |= (testid)<<16; >> + gd->post_log_word |= testid; > > I think you can just assign it if you changed the meaning. Still, what if we > will have more than 32 tests? >
Yes, this will not work anymore when we have more than 32 tests. But we already have more than 16 tests so there was already a flaw. This at least corrects this flaw. The problem is that this has to stay in the global_data that has to remain small, so a u32 for bit setting has the great advantage of being small. -- Valentin Longchamp Embedded Software Engineer Hardware and Chip Integration ______________________________________ KEYMILE AG Schwarzenburgstr. 73 CH-3097 Liebefeld Phone +41 31 377 1318 Fax +41 31 377 1212 valentin.longch...@keymile.com www.keymile.com ______________________________________ KEYMILE: A Specialist as a Partner _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot