
Hi Stefano,
Le Tue, 01 Apr 2014 10:41:50 +0200, Stefano Babic sbabic@denx.de a écrit :
On 31/03/2014 22:02, Eric Bénard wrote:
Le Sun, 30 Mar 2014 18:20:49 +0200, Stefano Babic sbabic@denx.de a écrit :
A general remark. I agree by reading the whole thread about checking at runtime which is the running board (you do it getting the cpu type).
However, you use also a compiler switch mechanism, adding RIOTBOARD or MARSBOARD in the boards.cfg. You have implemented two ways to for the same thing. This makes in principle your runtime detection useless, because you can use #if CONFIG_MARSBOARD instead of "if board_type == BOARD_IS_MARSBOARD)". Is it possible to use only the runtime detection ? I think the main problem is CONFIG_ENV_IS_*, that is different for the two boards. What do you think about it ?
I've tried and I don't see how to include functions to handle both MMC and SF environment in the same binary with the current env code.
I was not sure, but I had the feeling this can be the major issue.
A workaround would be to use MMC to store env also on the MarSBoard but as it is using the SPI flash as the boot source I would prefer to keep the env in the SPI flash.
Ok - then I propose that you have still two entries in boards.cfg, and you set there ENV_IS_IN_MMC or ENV_IS_IN_SPI_FLASH. A lot of boards, having different hardware configurations, are doing in this way. You can drop CONFIG_RIOTBOARD and CONFIG_MARSBOARD as well (for example, mx28evk has an entry in boards.cfg mx28evk_nand for ENV on NAND).
you're right that will remove the ifdef in the config file, thanks.
Eric