* [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API
@ 2017-03-07 21:53 fuz at fuz.su
2017-03-13 12:33 ` Simon Glass
2017-04-09 1:14 ` Tom Rini
0 siblings, 2 replies; 5+ messages in thread
From: fuz at fuz.su @ 2017-03-07 21:53 UTC (permalink / raw)
To: u-boot
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) */
}
Yours,
Robert Clausecker
--
() ascii ribbon campaign - for an 8-bit clean world
/\ - against html email - against proprietary attachments
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API
2017-03-07 21:53 [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API fuz at fuz.su
@ 2017-03-13 12:33 ` Simon Glass
2017-03-13 13:51 ` fuz at fuz.su
2017-04-09 1:14 ` Tom Rini
1 sibling, 1 reply; 5+ messages in thread
From: Simon Glass @ 2017-03-13 12:33 UTC (permalink / raw)
To: u-boot
Hi,
On 7 March 2017 at 14:53, <fuz@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
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API
2017-03-13 12:33 ` Simon Glass
@ 2017-03-13 13:51 ` fuz at fuz.su
2017-03-13 20:46 ` Simon Glass
0 siblings, 1 reply; 5+ messages in thread
From: fuz at fuz.su @ 2017-03-13 13:51 UTC (permalink / raw)
To: u-boot
Hello Simon,
CONFIG_BLK is set by default for all Rockchip boards. Turning it off was
the first thing I tried, but I actually wasn't able to figure out how to
turn it off at all and was then advised elsewhere that this is probably
not a good idea either.
Yours,
Robert Clausecker
On Mon, Mar 13, 2017 at 06:33:16AM -0600, Simon Glass wrote:
> Hi,
>
> On 7 March 2017 at 14:53, <fuz@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
--
() ascii ribbon campaign - for an 8-bit clean world
/\ - against html email - against proprietary attachments
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API
2017-03-13 13:51 ` fuz at fuz.su
@ 2017-03-13 20:46 ` Simon Glass
0 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2017-03-13 20:46 UTC (permalink / raw)
To: u-boot
Hi Robert,
On 13 March 2017 at 07:51, <fuz@fuz.su> wrote:
> Hello Simon,
>
> CONFIG_BLK is set by default for all Rockchip boards. Turning it off was
> the first thing I tried, but I actually wasn't able to figure out how to
> turn it off at all and was then advised elsewhere that this is probably
> not a good idea either.
This means that you don't have an easy baseline. My suggest would be
to put debugging in the API functions within U-Boot and see if you can
work out where it is going wrong.
Regards,
Simon
>
> Yours,
> Robert Clausecker
>
> On Mon, Mar 13, 2017 at 06:33:16AM -0600, Simon Glass wrote:
>> Hi,
>>
>> On 7 March 2017 at 14:53, <fuz@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
>
> --
> () ascii ribbon campaign - for an 8-bit clean world
> /\ - against html email - against proprietary attachments
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API
2017-03-07 21:53 [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API fuz at fuz.su
2017-03-13 12:33 ` Simon Glass
@ 2017-04-09 1:14 ` Tom Rini
1 sibling, 0 replies; 5+ messages in thread
From: Tom Rini @ 2017-04-09 1:14 UTC (permalink / raw)
To: u-boot
On Tue, Mar 07, 2017 at 10:53:17PM +0100, 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:
>
>
> Yours,
> Robert Clausecker
>
> diff --git a/api/api_storage.c b/api/api_storage.c
> index e80818df1c..815ed1128d 100644
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170408/8a9a643c/attachment.sig>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-04-09 1:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-07 21:53 [U-Boot] Apparent conflict between CONFIG_BLK and CONFIG_API fuz at fuz.su
2017-03-13 12:33 ` Simon Glass
2017-03-13 13:51 ` fuz at fuz.su
2017-03-13 20:46 ` Simon Glass
2017-04-09 1:14 ` Tom Rini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.