diff options
author | fuz@fuz.su <fuz@fuz.su> | 2017-03-07 21:53:17 (GMT) |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-04-08 13:26:48 (GMT) |
commit | f2288c5a5b2aa6ce8453725e81ce20361cee854e (patch) | |
tree | a1023f7d208ff3b4333b3e71d44769d6f3ba3b5e | |
parent | 411278b858732ccc12ae48715b3934514c904bd4 (diff) | |
download | u-boot-f2288c5a5b2aa6ce8453725e81ce20361cee854e.tar.xz |
Apparent conflict between CONFIG_BLK and CONFIG_API
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:
Yours,
Robert Clausecker
-rw-r--r-- | api/api_storage.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/api/api_storage.c b/api/api_storage.c index e80818d..a5357bc 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) */ } |