[U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API

Simon Glass sjg at chromium.org
Mon Mar 13 12:33:16 UTC 2017


Hi,

On 7 March 2017 at 14:53,  <fuz at fuz.su> wrote:
> Good evening,
>
> I am trying to port FreeBSD to the ASUS Tinker Board, a computer based
> on the Rockchip 3288 SoC. FreeBSD's boot loader (named loader(8)) needs
> CONFIG_API to be enabled, but trying to build an U-Boot from trunk with
> both CONFIG_API and CONFIG_BLK (as required for Rockchip SoC's?) leads
> to the following build failure:
>
> $ CROSS_COMPILE=arm-none-eabi- gmake tinker-rk3288_defconfig all
> ...
>   CC      api/api_storage.o
> api/api_storage.c: In function 'dev_read_stor':
> api/api_storage.c:334:9: error: 'struct blk_desc' has no member named 'block_read'
>   if ((dd->block_read) == NULL) {
>          ^~
> api/api_storage.c:339:11: error: 'struct blk_desc' has no member named 'block_read'
>   return dd->block_read(dd, start, len, buf);
>            ^~
> api/api_storage.c:340:1: warning: control reaches end of non-void function [-Wreturn-type]
>  }
>  ^
> gmake[2]: *** [scripts/Makefile.build:281: api/api_storage.o] Fehler 1
> gmake[1]: *** [Makefile:1229: api] Fehler 2
> gmake: *** [Makefile:460: __build_one_by_one] Error 2
>
> I applied the following fix, but the product doesn't boot. Perhaps
> that's not a property of the fix though:
>
> diff --git a/api/api_storage.c b/api/api_storage.c
> index e80818df1c..815ed1128d 100644
> --- a/api/api_storage.c
> +++ b/api/api_storage.c
> @@ -331,10 +331,14 @@ lbasize_t dev_read_stor(void *cookie, void *buf, lbasize_t len, lbastart_t start
>         if (!dev_stor_is_valid(type, dd))
>                 return 0;
>
> +#ifdef CONFIG_BLK
> +       return blk_dread(dd, start, len, buf);
> +#else
>         if ((dd->block_read) == NULL) {
>                 debugf("no block_read() for device 0x%08x\n", cookie);
>                 return 0;
>         }
>
>         return dd->block_read(dd, start, len, buf);
> +#endif /* defined(CONFIG_BLK) */

This fix looks right to me. There may be something else wrong. I have
not used API very much but it might be worth checking if the board
boots OK without CONFIG_BLK?

>  }
>
> Yours,
> Robert Clausecker
>
> --
> ()  ascii ribbon campaign - for an 8-bit clean world
> /\  - against html email  - against proprietary attachments
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Regards,
Simon


More information about the U-Boot mailing list