From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 0CmCGjuM7F9jdgAA0tVLHw (envelope-from ) for ; Wed, 30 Dec 2020 14:18:35 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 4EddFjuM7F8ZGQAA1q6Kng (envelope-from ) for ; Wed, 30 Dec 2020 14:18:35 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D2EEB940276 for ; Wed, 30 Dec 2020 14:18:34 +0000 (UTC) Received: from localhost ([::1]:43340 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kucJ6-0007fd-Ff for larch@yhetil.org; Wed, 30 Dec 2020 09:18:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33666) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ku61K-0004p9-TF for bug-guix@gnu.org; Mon, 28 Dec 2020 22:50:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:54027) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ku61K-00068p-MB for bug-guix@gnu.org; Mon, 28 Dec 2020 22:50:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ku61K-0005j1-K7 for bug-guix@gnu.org; Mon, 28 Dec 2020 22:50:02 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#45519: MLO failed to load u-boot.img on beaglebone black(AM335x) Resent-From: Denis 'GNUtoo' Carikli Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 29 Dec 2020 03:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 45519 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 45519@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.160921378121972 (code B ref -1); Tue, 29 Dec 2020 03:50:02 +0000 Received: (at submit) by debbugs.gnu.org; 29 Dec 2020 03:49:41 +0000 Received: from localhost ([127.0.0.1]:37340 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ku60y-0005iJ-Qs for submit@debbugs.gnu.org; Mon, 28 Dec 2020 22:49:41 -0500 Received: from lists.gnu.org ([209.51.188.17]:40212) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ku60v-0005iA-N3 for submit@debbugs.gnu.org; Mon, 28 Dec 2020 22:49:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33656) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ku60v-0004oC-F9 for bug-guix@gnu.org; Mon, 28 Dec 2020 22:49:37 -0500 Received: from cyberdimension.org ([2001:910:1314:ffff::1]:59040 helo=gnutoo.cyberdimension.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1ku60t-0005sT-0L for bug-guix@gnu.org; Mon, 28 Dec 2020 22:49:37 -0500 Received: from gnutoo.cyberdimension.org (localhost [127.0.0.1]) by cyberdimension.org (OpenSMTPD) with ESMTP id c14b24ee for ; Tue, 29 Dec 2020 03:43:06 +0000 (UTC) Received: from primarylaptop.localdomain (localhost.localdomain [::1]) by gnutoo.cyberdimension.org (OpenSMTPD) with ESMTP id 3c0d70d8 for ; Tue, 29 Dec 2020 03:43:06 +0000 (UTC) Date: Tue, 29 Dec 2020 04:47:25 +0100 From: Denis 'GNUtoo' Carikli Message-ID: <20201229044725.3856df42@primarylaptop.localdomain> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; i686-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/PZvnDMhVA80/kN20YHM9n78"; protocol="application/pgp-signature"; micalg=pgp-sha256 Received-SPF: pass client-ip=2001:910:1314:ffff::1; envelope-from=GNUtoo@cyberdimension.org; helo=gnutoo.cyberdimension.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Wed, 30 Dec 2020 09:17:41 -0500 X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -1.43 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Queue-Id: D2EEB940276 X-Spam-Score: -1.43 X-Migadu-Scanner: scn0.migadu.com X-TUID: hEhaTj3jj56x --Sig_/PZvnDMhVA80/kN20YHM9n78 Content-Type: multipart/mixed; boundary="MP_/dOVe3WMs7S.uGu0B3=xaiAz" --MP_/dOVe3WMs7S.uGu0B3=xaiAz Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, I've generated an image for the beaglebone black with this (beaglebone-black.scm) file: > ;; Based on Guix's beaglebone-black.tmpl > (use-modules (gnu) (gnu bootloader u-boot)) > (use-service-modules networking ssh) > (use-package-modules bootloaders screen ssh) > (operating-system > (host-name "beaglebone_black") > (timezone "Europe/Paris") > (locale "en_US.utf8") > ;; We use a microSD > (bootloader (bootloader-configuration > (bootloader u-boot-beaglebone-black-bootloader) > (target "/dev/mmcblk0"))) > (kernel-arguments (append '("console=3DttyO0,115200" > "ignore_loglevel"))) > ;; This module is required to mount the SD card. > (initrd-modules (cons "omap_hsmmc" %base-initrd-modules)) > (file-systems (cons (file-system > (device (file-system-label "my-root")) > (mount-point "/") > (type "ext4")) > %base-file-systems)) > (packages %base-packages) > (services (append (list > (agetty-service > (agetty-configuration > (extra-options '("-L")) > (baud-rate "115200") > (term "vt100") > (tty "ttyO0")))) > %base-services))) I then built it with: > cp `guix system disk-image --target=3Darm-linux-gnueabihf \ > beaglebone-black.scm` guix.img And at boot, it seems that MLO can't load u-boot.img: > U-Boot SPL 2020.10 (Jan 01 1970 - 00:00:01 +0000) > Trying to boot from MMC1 > > U-Boot SPL 2020.10 (Jan 01 1970 - 00:00:01 +0000) > Trying to boot from MMC1 >=20 > U-Boot SPL 2020.10 (Jan 01 1970 - 00:00:01 +0000) > Trying to boot from MMC1 I don't know why there is a loop here. I didn't check if the watchdog was disabled in MLO or not. In gnu/bootloader/u-boot.scm in guix source code, we have: > (define install-beaglebone-black-u-boot > ;; http://wiki.beyondlogic.org/index.php?title=3DBeagleBoneBlack_Upgrad= ing_uBoot > ;; This first stage bootloader called MLO (U-Boot SPL) is expected at > ;; 0x20000 by BBB ROM code. The second stage bootloader will be loaded = by > ;; the MLO and is expected at 0x60000. Write both first stage ("MLO") = and > ;; second stage ("u-boot.img") images, read in BOOTLOADER directory, to= the > ;; specified DEVICE. > #~(lambda (bootloader root-index image) > (let ((mlo (string-append bootloader "/libexec/MLO")) > (u-boot (string-append bootloader "/libexec/u-boot.img"))) > (write-file-on-device mlo (* 256 512) > image (* 256 512)) > (write-file-on-device u-boot (* 1024 512) > image (* 768 512))))) 0x60000 is at 384k. It's defined by CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR which defaults to 0x300. Here u-boot.img[1] is 600K, so if we add 600k and 384k we're still within the 1M alignment space before the first partition: > Device Boot Start End Sectors Size Id Type > guix.img1 2048 83967 81920 40M ef EFI (FAT-12/16/32) > guix.img2 83968 3287855 3203888 1.5G 83 Linux So we can rule out space issues. Another possibility is that it tries to boot on the filesystem instead of block offset. I've already tried to upstream a patch for that in u-boot (that I attached here) but it was refused because it had some side effects: On Mon, 20 Jan 2020 13:17:01 +0530 Lokesh Vutla wrote: > > With this change, and CONFIG_SPL_RAW_IMAGE_SUPPORT disabled, > > raw MMC boot will be tried first, and if it fails, it FS will > > be tried. =20 > This means that if FS boot is required then SPL_RAW_IMAGE_SUPPORT > should be disabled. So with this patch applied, the default > omap3_defconfig will fail to boot with FS mode. It is difficult to > support this unless ROM passes some information on the bootmode. We are using this patch in Parabola. I'll try to test it too in Guix though I can often take quite some time to manage to test things with Guix when patching Guix itself. References: ----------- [1]/gnu/store/83rpk8q9bww0phl6z6zgpf06qhqs8cw6-u-boot-am335x-boneblack-2020= .10/libexec/u-boot.img Denis. --MP_/dOVe3WMs7S.uGu0B3=xaiAz Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch =46rom a49275a3cc03970939585610ebcf3b3d7e547037 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Sat, 9 Nov 2019 18:53:40 +0100 Subject: [PATCH] omap34xx: SPL: enable MMC raw boot with u-boot.img The following commit enabled raw SPL booting: 22d90d560a omap3: Use raw SPL by default for mmc1 but it was reverted by the following commit: 821c89d38c Revert "omap3: Use raw SPL by default for mmc1" because SPL is unable to distinguish between RAW images and garbage. However if CONFIG_SPL_RAW_IMAGE_SUPPORT is disabled, SPL does identify if there is a valid image with spl_parse_image_header. With this change, and CONFIG_SPL_RAW_IMAGE_SUPPORT disabled, raw MMC boot will be tried first, and if it fails, it FS will be tried. The two scenarios have been tested on a BeagleBoard XM Revision C1. Signed-off-by: Denis 'GNUtoo' Carikli --- arch/arm/mach-omap2/boot-common.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-c= ommon.c index 734fa9d9e6..a48244e1c5 100644 --- a/arch/arm/mach-omap2/boot-common.c +++ b/arch/arm/mach-omap2/boot-common.c @@ -132,8 +132,10 @@ void save_omap_boot_params(void) (boot_device <=3D MMC_BOOT_DEVICES_END)) { switch (boot_device) { case BOOT_DEVICE_MMC1: +#ifdef CONFIG_SPL_RAW_IMAGE_SUPPORT boot_mode =3D MMCSD_MODE_FS; break; +#endif case BOOT_DEVICE_MMC2: boot_mode =3D MMCSD_MODE_RAW; break; --=20 2.24.0 --MP_/dOVe3WMs7S.uGu0B3=xaiAz-- --Sig_/PZvnDMhVA80/kN20YHM9n78 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEeC+d2+Nrp/PU3kkGX138wUF34mMFAl/qps4ACgkQX138wUF3 4mMamQ/+NTnRZeCR2Rb7Ja1pYcLoBHEZ9KEEEFKw79lgscJSdHO7A36+e4b/QJCK j6ftQRrWdKX0CdNUzlZYQsrCh3lW20JtOnP76Kvz247ok3fHEQuRTpVbmIuzh9Sv 3ogAXD2Id6LVvIozZJdZ759X+4UTIDNF5fyZmwYt5jtoprAw6Tu9oVjVWNYRCPhs qWoq4D/N1Sj8sCqxkeHYG2RLa9aaY67IXeHBUwj45lJLjRcxpWBZZodRk9a9TIJn cAdxyT52JuNEpeupWVlT8kZ4/2OMq8fZ/BQk5WcSkDjxLW569FOlkfkXBS5nzdKp w1YTiu3vPHHfFm5GOvEIU1UXcsFbmeRCpJSiiN2V5aVl8ZoShIyk1fzTbC/91n0R HOra2QKQoSqwnJK4o32N0udRPDhjdI1xcl98cmuSbgqY+83wJu4hzgQxD5r8eQJB lt7SHGIqHi5/8l6bhTD6JKvGlxXbCyEXl920oERvth/E3J0N/RrBOxbT/Ao/aqGJ dFQ6t4P3tlFWxiHPecFvTyepOyY6Mu0cR7btaWBx2mocFun2VfdAMn5/HTTjzo4i hciynh13MzI5rFJ9wEgnA2lm9JvBNmVthhQTjDBz8QovlPlzotUgShPbvXWVl1Ef UXJUt/rleOCCXvoOlyET3aMrrVM74dwcTKAxVfH/TE/mCB0JPfw= =ZGXI -----END PGP SIGNATURE----- --Sig_/PZvnDMhVA80/kN20YHM9n78--