Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Sep 2019 15:15:30 -0700
From:      John-Mark Gurney <jmg@funkthat.com>
To:        mko <me@mko.io>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@FreeBSD.org>
Subject:   Re: RockPro64 booting w/ u-boot v2019-rc3
Message-ID:  <20190916221530.GO96402@funkthat.com>
In-Reply-To: <EF2E4FC6-E490-47F0-9BA0-12B652980E94@mko.io>
References:  <20190916064640.GN96402@funkthat.com> <EF2E4FC6-E490-47F0-9BA0-12B652980E94@mko.io>

next in thread | previous in thread | raw e-mail | index | archive | help
mko wrote this message on Mon, Sep 16, 2019 at 22:06 +1200:
> Hi John,
> I???m also trying to make a RK3399 board work, in my case I???m using the Rock Pi 4 which is raspberry pi form factor and much cheaper. 
> 
> For rockpro64, manu has already submit the uboot for it, it's sysutils/u-boot-rockpro64, and I just make a trivial change to rock pi 4 u-boot config, and  it u-boot???s fine into multi-user mode, then panic.
> 
> Here???s the related bug report
> 
> Bug 240541 - Generic kernel on Rock Pi 4 RK3399 board panic 
> 
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240541

I received the same panic via the port, which is why I built v2019.10-rc3
of u-boot...

After reviewing the email I sent, realized that I left off what version
of u-boot I built to make it work...

Sorry about that..

> > On 16/09/2019, at 6:46 PM, John-Mark Gurney <jmg@funkthat.com> wrote:
> > 
> > I recently received my RockPro64, and w/ a bit of help from manu, I
> > built a new u-boot firmware and get it booting from SD card.  The
> > u-boot port firmware will boot, but receives an Unhandled System Error
> > shortly after going to multiuser mode.
> > 
> > It doesn't yet set the PCIe slot.  Is anyone working on this?  If so,
> > can you point me to code?  I'd like to get this working.
> > 
> > Building u-boot isn't hard, but finding the correct part to build took
> > some help.
> > 
> > Possibly imcomplete list of packages used:
> > aarch64-none-elf-binutils-2.32_1,1 GNU binutils for bare metal AArch64 cross-development
> > aarch64-none-elf-gcc-6.4.0_6   Cross GNU Compiler Collection for aarch64noneelf
> > atf-rk3399-v2.1                ARM TF-A for platform rk3399
> > bison-3.4.1,1                  Parser generator from FSF, (mostly) compatible with Yacc
> > dtc-1.4.7                      Device Tree Compiler
> > gmake-4.2.1_3                  GNU version of 'make' utility
> > gsed-4.7                       GNU stream editor
> > python3-3_3                    The "meta-port" for version 3 of the Python interpreter
> > 
> > The default sed fails at one point, so used this patch:
> > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> > index ef116e0e0a..e0dedf8943 100644
> > --- a/scripts/Makefile.lib
> > +++ b/scripts/Makefile.lib
> > @@ -302,7 +302,7 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
> >                -i $(dir $<) $(DTC_FLAGS) \
> >                -d $(depfile).dtc.tmp $(dtc-tmp) ; \
> >        cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) ; \
> > -       sed -i "s:$(pre-tmp):$(<):" $(depfile)
> > +       gsed -i "s:$(pre-tmp):$(<):" $(depfile)
> > 
> > $(obj)/%.dtb: $(src)/%.dts FORCE
> >        $(call if_changed_dep,dtc)
> > 
> > 
> > There is also a failure on the config step, and needs this patch as
> > well:
> > diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> > index b18eab1707..3260c472b9 100644
> > --- a/scripts/config_whitelist.txt
> > +++ b/scripts/config_whitelist.txt
> > @@ -3100,6 +3100,7 @@ CONFIG_SYS_MACB2_BASE
> > CONFIG_SYS_MACB3_BASE
> > CONFIG_SYS_MAIN_PWR_ON
> > CONFIG_SYS_MALLOC_BASE
> > +CONFIG_SYS_MALLOC_CLEAR_ON_INIT
> > CONFIG_SYS_MALLOC_SIMPLE
> > CONFIG_SYS_MAMR
> > CONFIG_SYS_MAPLE
> > 
> > 
> > And then built using the following commands:
> > export BL31=/usr/local/share/atf-rk3399/bl31.elf
> > gmake clean
> > gmake rockpro64-rk3399_defconfig
> > CROSS_COMPILE=aarch64-none-elf- gmake -j 4
> > 
> > I may have forgotten to include some steps.  After building, I
> > installed the parts via:
> > dd if=idbloader.img of=/dev/disk4 oseek=64 bs=512
> > dd if=u-boot.itb of=/dev/disk4 oseek=16384 bs=512
> > 
> > I used FreeBSD-13.0-CURRENT-arm64-aarch64-20190906-r351901-memstick.img
> > as a base, but it has the UEFI boot partition in this area, so I used
> > mdconfig to extract the parts, and then expanded the image, created a
> > new freebsd-boot partition to cover the space for the above, and then
> > replaced the images...
> > 
> > =>      3  2111549  mmcsd0  GPT  (30G) [CORRUPT]
> >        3    32765       2  freebsd-boot  (16M)
> >    32768    67584       1  efi  (33M)
> >   100352  2011200       3  freebsd  (982M)
> > 
> > The corrupt tag is because I haven't expanded the gpt to cover the
> > full SD card yet.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190916221530.GO96402>