[U-Boot] [BUG] booting on the Tinker Board (tinker-rk3288_defconfig) is broken

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Feb 13 20:13:31 UTC 2019



On 2/13/19 2:24 PM, Tom Rini wrote:
> On Wed, Feb 13, 2019 at 02:16:12PM +0100, Heinrich Schuchardt wrote:
>>
>>
>> On 2/13/19 1:25 PM, Tom Rini wrote:
>>> On Wed, Feb 13, 2019 at 11:13:19AM +0100, Philipp Tomsich wrote:
>>>>
>>>>
>>>>> On 13.02.2019, at 11:10, David Wu <david.wu at rock-chips.com> wrote:
>>>>>
>>>>> Hi Philipp,
>>>>>
>>>>> 在 2019/2/12 下午9:54, Philipp Tomsich 写道:
>>>>>>> On 12.02.2019, at 13:38, David Wu <david.wu at rock-chips.com> wrote:
>>>>>>>
>>>>>>> Hi Philipp,
>>>>>>>
>>>>>>> 在 2019/2/10 上午2:24, Philipp Tomsich 写道:
>>>>>>>> That said, I have been fighting issues from this patchset when trying to read
>>>>>>>> from devices on the i2c0 bus on a RK3399—which had me add a “simple”
>>>>>>>> pinctrl device again, as pulling all the dependencies into the SPL is a pain.
>>>>>>>
>>>>>>> I think you can also add the simple ops if necessary. Full pinctrl
>>>>>>> should only be used at the U-boot stage, or the SPL stage where the TPL is available.
>>>>>>>
>>>>>>> For most boards about 3288, there is no need to enable pinctrl at SPL
>>>>>>> stage, such as Tinker board.
>>>>>> Could you check whether TPL_MAX_SIZE and SPL_MAX_SIZE are correct for
>>>>>> the RK3288? If not, please submit a patch.
>>>>>
>>>>> It is correct, 32KB.
>>>>
>>>> Interesting...
>>>> I wonder why the build did not fail then, if SPL became too big.
>>>
>>> This is probably the "we need BOARD_SIZE_CHECK used more widely too"
>>> issue that's come up in other threads.  The linker-only check does not
>>> catch the CONFIG_OF_SEPARATE dtb exceeds limit problem as it's
>>> post-link.
>>>
>>
>> This is the error message I currently get for U-Boot 2019.04 when
>> building for the Tinker Board:
>>
>> mkdir -p foo/usr/lib/u-boot/tinker/
>> denx/tools/mkimage -n rk3288 -T rksd -d denx/spl/u-boot-spl-dtb.bin \
>>   foo/usr/lib/u-boot/tinker/u-boot.img
>> Warning: SPL image is too large (size 0x8800) and will not boot
>> Error: image verification failed
>> cat denx/u-boot-dtb.bin >> foo/usr/lib/u-boot/tinker/u-boot.img
>> cp sd_fusing.sh foo/usr/lib/u-boot/tinker/
>>
>> @Tom
>> Shouldn't the mkimage step be included in Travis CI testing?
> 
> No, mkimage fails for almost every aarch64 target as we don't include
> ATF or the other blobs required to make things bootable.
> BOARD_SIZE_CHECK is where we can confirm that the U-Boot binary isn't
> too large.
> 

Hello Tom,

BOARD_SIZE_CHECK seems to be about the U-Boot image not about SPL. I
guess we need to copy this line to rk3288_common.h:

include/configs/rk3188_common.h:31:
#define CONFIG_SPL_MAX_SIZE          (0x8000 - 0x800)

But when I insert this line I get no linker error but the size of
denx/spl/u-boot-spl-dtb.bin is still too big.

Shouldn't count the DTB size be accounted for when doing the
CONFIG_SPL_MAX_SIZE check?

CONFIG_SPL_MAX_SIZE      30720 bytes
spl/u-boot-spl-nodtb.bin 28932 bytes
spl/u-boot-spl.dtb        4096 bytes
spl/u-boot-spl-dtb.bin   32986 bytes

Best regards

Heinrich


More information about the U-Boot mailing list