From 3483b75d94716191b354d046b4ed3f322500a3ee Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Tue, 26 Jan 2016 11:10:12 -0700 Subject: distro bootcmd: make net boot only optionally start USB Currently, the distro boot commands always enumerate USB devices before performing network operations. However, depending on the board and end- user configuration, network devices may not be attached to USB, and so enumerating USB may not be necessary. Enhance the scripts to make this step optional, so that the user can decrease boot time if they don't need USB. This change is performed by moving the "usb start" invocation into a standalone variable. If the user desires, they can replace that variable's value with some no-op command such as "true" instead. Booting from a USB storage device always needs to enumerate USB devices, so this action is still hard-coded. Signed-off-by: Stephen Warren Reviewed-by: Simon Glass --- doc/README.distro | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'doc') diff --git a/doc/README.distro b/doc/README.distro index 9e4722a86ee..019903ea7d9 100644 --- a/doc/README.distro +++ b/doc/README.distro @@ -341,6 +341,13 @@ scan_dev_for_scripts: If you want to disable boot.scr on all disks, set the value to something innocuous, e.g. setenv scan_dev_for_scripts true. +boot_net_usb_start: + + If you want to prevent USB enumeration by distro boot commands which execute + network operations, set the value to something innocuous, e.g. setenv + boot_net_usb_start true. This would be useful if you know your Ethernet + device is not attached to USB, and you wish to increase boot speed by + avoiding unnecessary actions. Interactively booting from a specific device at the u-boot prompt ================================================================= -- cgit v1.3.1 From 986691fb97bc245be517a9db1297cfa71dd865cf Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Tue, 26 Jan 2016 11:10:13 -0700 Subject: distro bootcmd: enumerate PCI before network operations The PCI bus must be enumerated before PCI devices, such as Ethernet devices, are known to U-Boot. Enhance the distro boot commands to perform PCI enumeration when needed. Signed-off-by: Stephen Warren Reviewed-by: Simon Glass --- doc/README.distro | 8 ++++++++ include/config_distro_bootcmd.h | 12 ++++++++++++ 2 files changed, 20 insertions(+) (limited to 'doc') diff --git a/doc/README.distro b/doc/README.distro index 019903ea7d9..3715c8c3bad 100644 --- a/doc/README.distro +++ b/doc/README.distro @@ -349,6 +349,14 @@ boot_net_usb_start: device is not attached to USB, and you wish to increase boot speed by avoiding unnecessary actions. +boot_net_pci_enum: + + If you want to prevent PCI enumeration by distro boot commands which execute + network operations, set the value to something innocuous, e.g. setenv + boot_net_pci_enum true. This would be useful if you know your Ethernet + device is not attached to PCI, and you wish to increase boot speed by + avoiding unnecessary actions. + Interactively booting from a specific device at the u-boot prompt ================================================================= diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h index c027d864396..37c6b438e29 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h @@ -139,6 +139,15 @@ BOOT_TARGET_DEVICES_references_IDE_without_CONFIG_CMD_IDE #endif +#if defined(CONFIG_CMD_PCI_ENUM) || defined(CONFIG_DM_PCI) +#define BOOTENV_RUN_NET_PCI_ENUM "run boot_net_pci_enum; " +#define BOOTENV_SHARED_PCI \ + "boot_net_pci_enum=pci enum\0" +#else +#define BOOTENV_RUN_NET_PCI_ENUM +#define BOOTENV_SHARED_PCI +#endif + #ifdef CONFIG_CMD_USB #define BOOTENV_RUN_NET_USB_START "run boot_net_usb_start; " #define BOOTENV_SHARED_USB \ @@ -161,6 +170,7 @@ #define BOOTENV_DEV_DHCP(devtypeu, devtypel, instance) \ "bootcmd_dhcp=" \ BOOTENV_RUN_NET_USB_START \ + BOOTENV_RUN_NET_PCI_ENUM \ "if dhcp ${scriptaddr} ${boot_script_dhcp}; then " \ "source ${scriptaddr}; " \ "fi\0" @@ -177,6 +187,7 @@ #define BOOTENV_DEV_PXE(devtypeu, devtypel, instance) \ "bootcmd_pxe=" \ BOOTENV_RUN_NET_USB_START \ + BOOTENV_RUN_NET_PCI_ENUM \ "dhcp; " \ "if pxe get; then " \ "pxe boot; " \ @@ -200,6 +211,7 @@ #define BOOTENV \ BOOTENV_SHARED_HOST \ BOOTENV_SHARED_MMC \ + BOOTENV_SHARED_PCI \ BOOTENV_SHARED_USB \ BOOTENV_SHARED_SATA \ BOOTENV_SHARED_SCSI \ -- cgit v1.3.1