From owner-freebsd-bugs@freebsd.org Thu Sep 19 21:03:26 2019 Return-Path: Delivered-To: freebsd-bugs@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 26CAA12E6A8 for ; Thu, 19 Sep 2019 21:03:26 +0000 (UTC) (envelope-from xypron.glpk@gmx.de) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass Class 2 CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46Z8T918xhz4HFS; Thu, 19 Sep 2019 21:03:24 +0000 (UTC) (envelope-from xypron.glpk@gmx.de) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1568927003; bh=L1YM82mhfcFEtdXI6c6zWum0IrFv2BRIyibxUjGIk7s=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=NmQKJjK7y1hxVbDo+kqb2s5rejjW99TcdL8pgOZiYef4ElfkIU2hEluFZHec/H/eF KHQogSRPlHcEhB7eG3T2T9BAiGFchwVywX9hr1v9wnHfvBjQ0ge6d1uDowxxhy5A29 0k+xvca30e2zS/DOFajeqtZnA7PjaVlSdnqAfVTE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.123.51] ([88.152.145.122]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MORAa-1iZkHk1HH4-00PyPc; Thu, 19 Sep 2019 22:57:54 +0200 Subject: Re: [BUG] FreeBSD cannot boot with U-Boot patch efi_loader: parameter checks BLOCK_IO_PROTOCOL From: Heinrich Schuchardt To: Emmanuel Vadot Cc: Emmanuel Vadot , Alexander Graf , U-Boot Mailing List , freebsd-bugs@freebsd.org, AKASHI Takahiro References: Message-ID: Date: Thu, 19 Sep 2019 22:57:38 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:cjk9yBbFE/zxDNTvONHsnkFHmJILBGIVDpEZTZ16LdaeZy/Mjn3 dZtcohJDhDYbWU03KjpkVGX6AwnK+1JKpSNulJeJ00zHT/wpfkpkWTR/BA93XZu9EnhIaN/ EWoYliljgjGJK3c4WSDsqe+j0LIH0dHxPbeghFhF/IKRqsXT+zlkYN1o5qOND22ty1WORJu w5KiJrN10dz7m61auAuQQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:Sp07grTBE8E=:vd0XDNW876kV/lnnbd4moq GNXKH3eIheuSicS8HRlOgHPJM7r1wwdXYrK8WOk+tDIwi/33sJ1haJUYV5XGqpmt3v9XEG6bk V/NCFLI+QVJfvk0SlCI78s9y4RCLtmt7yKrRTCYNXuoY/TNQt27Bc+CTwnTJaost+fYMYiNlr nU0y/2zRYMRoJE0DiMTdF13I3A3BCaveXtzQNz2waqZL9Uoy7hANoMqXoNlbVQxMzbN9sj8iJ ojQhTS/0wW5AioWLme11uCoavaW9QHeSL7HB0a1DV7lSCkwg6/kluquiNSSAoUB+bE5xaoryJ RBLd0VfljXlVEutdI9B7ZRrHOXaKBmbWEs0xhbFbUS0VIKhq5nQVENMj+9PgzmnLvAYwcomzd 2zBByErI2NPsObb7Xlc6EGWCNn6HZsv7EaLJC34UY0quHEc5QuGcTwSzZRXOeRsTQ3on2Gow1 BoFhYkwpotS6az+5PAU0p14cvcsK4bunacXYr2aPulYNCtwChlxpeR4/h35Gp/1NE8vNrnFIb ZaBIKgwkaCDnLYT64jk1Ct284henHW2HYP5ROIpjVYAdxAbhZw7IJqZ+SWyTZe2BlwabigYyT nMPrt7cskh7DoaBYiLy0WGvLec4CWtFjwdBspRp9A1sXUsLPrr6wHSdsl7Kl5zJ59MVbrlzPG +5BOndehUrl/hAkUesz2PRR2zRDqZx+CSGFE8+6zB2CtE/J/Fw0eGrzlwD4ypCaqWVEFZnXMa /IdA1ErR7qsxCzHn3R6DZaQzR5ucZVKzVOwi5vwwilogm0FiZi7hZvji/i++mmtsmgcL+8pNV GIeXgu5q2jl9LwegCY84OPnTPOcZzbbiC1MSpvfqMtLgZ9X/wfxulqZqkC4dB9q/7+qijIp6W cnmKlVtQeOXbkWj2iF79oaEMFhTuXQwEA6ofGwvshZllBST8iWFLwBLn2oI8WI9s1c+yMXLrq moHRD4RmbOG1ebStuUZMe0eTUohE6gRd9cRYkp1otFKS5PG/VgcHP7lMv3eDAcpmUN7sbwmw8 HHwvHfnkOe0G55JaqEM5shemr36YfKn0nJkxkGTMFJpBP69xqDr+KqawKQGKbBr/OvE7aKweh 2LjFDMFzaEMuSVNdmMY7kM+jroLil2nETMkxZoZx5Ss99i/JJrPJ2si0o9Nboz7+4AgTqV0UQ msy9+k5FTB0f3/tpFh8bXRWfHgI2pQxMIw0kuPfrh5vhSEe/n6aPz8vxR2itAdW6SAI8EmV7Z 0jg5llGHikx17nXWpgHZu9Ao0LX90CgHyTODYUcWYInn9PgDJJcpHlTZEoO4= X-Rspamd-Queue-Id: 46Z8T918xhz4HFS X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmx.net header.s=badeba3b8450 header.b=NmQKJjK7; dmarc=none; spf=pass (mx1.freebsd.org: domain of xypron.glpk@gmx.de designates 212.227.15.15 as permitted sender) smtp.mailfrom=xypron.glpk@gmx.de X-Spamd-Result: default: False [-2.50 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmx.net:s=badeba3b8450]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:212.227.15.0/25]; FREEMAIL_FROM(0.00)[gmx.de]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[gmx.de]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmx.net:+]; RCVD_IN_DNSWL_NONE(0.00)[15.15.227.212.list.dnswl.org : 127.0.3.0]; IP_SCORE(0.00)[ip: (-6.78), ipnet: 212.227.0.0/16(-1.36), asn: 8560(2.13), country: DE(-0.01)]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmx.de]; ASN(0.00)[asn:8560, ipnet:212.227.0.0/16, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Sep 2019 21:03:26 -0000 On 9/13/19 11:48 PM, Heinrich Schuchardt wrote: > Hello Emmanuel, > > booting current FreeBSD fails since patch > f59f0825e8b9fdeb8abe43ffd10c5119ca1a032f > efi_loader: parameter checks BLOCK_IO_PROTOCOL > > The reason is that the buffer used by FreeBSD to read is not block align= ed. > > The UEFI spec requires that EFI_BLOCK_IO_PROTOCOL.ReadBlocks() returns > EFI_INVALID_PARAMETER if the buffer is not properly aligned (i.e. is not > a multiple of EFI_BLOCK_IO_MEDIA.IoAlign) > > FreeBSD does not guarantee this alignment, e.g. efi_disk_read_blocks() > is called with buffer 00000000995b08d0 which is not aligned to a > multiple of 512. > > FreeBSD function efipart_readwrite writes this error message: > efipart_readwrite: rw=3D1, blk=3D62333952 size=3D1 status=3D2 > > The problem can be traced back to the FreeBSD line: > > stand/efi/libefi/efipart.c(1043) efipart_realstrategy(): > blkbuf =3D malloc(blkio->Media->BlockSize); > > U-Boot does not yet implement the EFI_DISK_IO_PROTOCOL which is a > wrapper for the EFI_BLOCK_IO_PROTOCOL allowing unaligned access. > > malloc() could be replaced in FreeBSD by AllocatePages() which returns a > 4096 byte aligned memory block. > > Best regards > > Heinrich > Commit 16ef880ce6ee ("loader.efi: efipart needs to use ioalign") was merged into FreeBSD on Sep 17th, 2019.