Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 09 Nov 2018 21:10:02 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-arm@FreeBSD.org
Subject:   [Bug 233097] U-Boot/ubldr loaderdev broken
Message-ID:  <bug-233097-7@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D233097

            Bug ID: 233097
           Summary: U-Boot/ubldr loaderdev broken
           Product: Base System
           Version: 12.0-STABLE
          Hardware: arm
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: arm
          Assignee: freebsd-arm@FreeBSD.org
          Reporter: pawel.worach@gmail.com

Board: bcm283x armv6
U-Boot: 2018.09
FreeBSD: stable/12 r340282

Setting loaderdev in U-Boot is supposed to set the correct currdev for ubld=
r,
this seems to be broken.

Setting loaderdev to "mmc 0:3.0" seems to cause ubldr to use unit=3D0, slic=
e=3D0
and partition=3D3 instead of slice=3D3 and partition=3D0.

This is caused by stor_open() in stand/uboot/lib/disk.c which loads a vararg
uboot_devdesc struct as a disk_devdesc struct.

My workaround was to use the disk_devdesc struct in stand/uboot/common/main=
.c
instead of the uboot_devdesc struct.

Post-workaround:
U-Boot> setenv loaderdev mmc 0:3.0
U-Boot> boot
...
U-Boot env: loaderdev=3D'mmc 0:3.0'
Found U-Boot device: disk
  Checking unit=3D0 slice=3D3 partition=3D0... good.
Booting from disk0s3a:

--=20
You are receiving this mail because:
You are the assignee for the bug.=



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