From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Graf Date: Thu, 14 Apr 2016 15:46:42 +0200 Subject: [U-Boot] [PATCH 2/2] efi_loader: Fall back to fdtfile naming convention In-Reply-To: <570F9E84.9030205@suse.de> References: <1460582546-128312-1-git-send-email-agraf@suse.de> <1460582546-128312-2-git-send-email-agraf@suse.de> <570F9E84.9030205@suse.de> Message-ID: <570F9F42.50304@suse.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 04/14/2016 03:43 PM, Andreas F?rber wrote: > Am 13.04.2016 um 23:22 schrieb Alexander Graf: >> When there is no $fdtfile variable set, we still have a good chance >> that on 32bit arm the fdtfile really is just called $soc-$board.dtb. >> >> Enable the exports for $soc and $board in our distr defaults and make >> use of them in the efi boot script. >> >> Reported-by: Andreas Faerber >> Reported-by: Stephen Warren >> Signed-off-by: Alexander Graf >> --- >> include/config_distro_bootcmd.h | 24 +++++++++++++++++++++--- >> include/config_distro_defaults.h | 1 + >> 2 files changed, 22 insertions(+), 3 deletions(-) >> >> diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h >> index 67eb8f2..eaaf2cc 100644 >> --- a/include/config_distro_bootcmd.h >> +++ b/include/config_distro_bootcmd.h >> @@ -99,6 +99,21 @@ >> #endif >> >> #ifdef BOOTEFI_NAME >> +#if defined(CONFIG_ARM) && !defined(CONFIG_ARM64) >> +/* >> + * On 32bit ARM systems there is a reasonable number of systems that follow >> + * the $soc-$board$boardver.dtb name scheme for their device trees. Use that >> + * scheme if we don't have an explicit fdtfile variable. >> + */ > Why limit this to 32-bit? If fdtfile is not set and we drop the > limitation above, then for CONFIG_ARM64 (and theoretically MIPS) we > could add the vendor subdir to our prefixes. Even without the latter it > does no harm, your config_distro_defaults.h change below does not seem > to be limited to ARM anyway. For ARM64 the pattern doesn't work because of the subdirectories, so we'll have to have a separate block that takes the soc vendor name into account as well. Does MIPS use dtb these days? > >> +#define BOOTENV_EFI_SET_FDTFILE_FALLBACK \ >> + "if test -z \"${fdtfile}\" -a -n \"${soc}\"; then " \ >> + "setenv efifdtfile ${soc}-${board}${boardver}.dtb; " \ > Please consistently use efi_ for readability. > > The logic looks slightly weird on first sight, being separated from the > below context. Can't we just set fdtfile here if unset and drop the four > extra lines below? Once boot has executed, there may be leftover > variables such as filesize anyway. The problem is that the boot may fail - and in that case you would have a potentially invalid fdtfile variable. Alex