Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Oct 2017 09:42:21 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Warner Losh <imp@bsdimp.com>, Ian Lepore <ian@freebsd.org>, Emmanuel Vadot <manu@bidouilliste.com>, freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: svn commit: r324822 - head/sys/modules/dtb/allwinner [removal of sinovoip-bpi-m3.dts from sys/modules/dtb/allwinner/Makefile DTS list]
Message-ID:  <3923365A-21CB-46AD-9715-A2F687ED4B97@dsl-only.net>
In-Reply-To: <CANCZdfoKtYgLFTCNuAaD1%2BF_aWCXhArAZwsJWmNqMYhkCcueKQ@mail.gmail.com>
References:  <3AD6B1F8-512C-43BB-AC76-7721454AD02F@dsl-only.net> <20171021195812.5bdb902401b8e756b6abfe40@bidouilliste.com> <C9F6BF5E-28DB-4569-B71E-EDE2A042FC78@dsl-only.net> <20171021204356.47e3cd6066144bcd07f46699@bidouilliste.com> <50728566-11C2-45EB-8367-00CAF38D4548@dsl-only.net> <B3F39A7C-339B-4072-9E41-A3F9DA1F590B@dsl-only.net> <8696CCFA-AE7D-4324-90A8-BB73402FA124@dsl-only.net> <FFF37C2C-D108-4583-8BE4-41DE9C535271@dsl-only.net> <757DA0FB-D69E-45BC-B81C-5CE0C6636E79@dsl-only.net> <1508688836.7314.6.camel@freebsd.org> <CANCZdfoKtYgLFTCNuAaD1%2BF_aWCXhArAZwsJWmNqMYhkCcueKQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[Providing UBLDR_LOADADDR fixed the problem for BPI-M3.]

On 2017-Oct-22, at 9:23 AM, Warner Losh <imp@bsdimp.com> wrote:

> On Sun, Oct 22, 2017 at 10:13 AM, Ian Lepore <ian@freebsd.org> wrote:
>> On Sat, 2017-10-21 at 22:52 -0700, Mark Millard wrote:
>> > [I was not controlling UBLDR_LOADADDR in
>> > my builds.]
>> >
>> 
>> UBLDR_LOADADDR is meaningless; it's not significant on arm systems,
>> dating back to well before 11.0 was released.  It used to set the fixed
>> physical address at which ubldr[.bin] was linked to run, but now ubldr
>> is self-relocating and can be loaded at any 2mb boundary (really 1mb
>> boundary on most arm systems).


For BPI-M3 ubldr is used and providing
UBLDR_LOADADDR=0x42000000 fixed the problem
by changing the start address actually used.

Systems that ignore ubldr.bin and use ubldr
do use UBLDR_LOADADDR as I understand. So,
at least the BPI-M3 fits my more general
understanding. (Is it the only one?)


As I understand Ian's comment is correct for
systems that use ubldr.bin and ignore ubldr:
ubldr.bin is the self relocating one and ubldr
is for ones that do not deal with that.

FYI: The sysutils/u-boot-sinovoip-bpi-m3 has
never been updated from its original distfiles.


>> It should be noted that ubldr is obsolete as well; only ubldr.bin is
>> needed.  The older version with the elf headers intact was supposed to
>> be kept around "for a few weeks, until crochet can be adjusted to not
>> refer to it".  That was like 3 years ago, but it never got removed.
>> 
>> Hmmm, actually, since UBLDR_LOADADDR does end up stored in the elf
>> headers, I guess if you're using the obsolete ubldr with headers
>> intact, maybe it is influencing uboot's behavior and causing failures.

That is what happens on the BPI-M3 based on its
sysutils/u-boot-sinovoip-bpi-m3 .

> Maybe it's time to delete it, other build systems ready or not.

If the BPI-M3 is the only one with the issue and if support
is dropped for the other issues with supporting it, then
sure.

Otherwise the BPI-M3 needs to progress to ubldr.bin use first.


FYI: BPI-M3 are an armv7 (cortex-a7) context.

===
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3923365A-21CB-46AD-9715-A2F687ED4B97>