06 Feb, 2020

1 commit

  • At present dm/device.h includes the linux-compatible features. This
    requires including linux/compat.h which in turn includes a lot of headers.
    One of these is malloc.h which we thus end up including in every file in
    U-Boot. Apart from the inefficiency of this, it is problematic for sandbox
    which needs to use the system malloc() in some files.

    Move the compatibility features into a separate header file.

    Signed-off-by: Simon Glass

    Simon Glass
     

15 Jan, 2020

2 commits


17 Jul, 2019

1 commit


13 Apr, 2019

1 commit

  • The first functions of the UEFI sub-system are invoked before reaching the
    U-Boot shell, e.g. efi_set_bootdev(), efi_dp_from_name(),
    efi_dp_from_file(). We should be able to print out device paths for
    debugging purposes here.

    When printing device paths via printf("%pD\n", dp) this invokes functions
    defined as EFIAPI. So efi_save_gd() must be called beforehand.

    So let's move the efi_save_gd() call to function initr_reloc_global_data(()
    in board_r.c.

    Signed-off-by: Heinrich Schuchardt

    Heinrich Schuchardt
     

13 Feb, 2019

1 commit


15 Nov, 2018

2 commits

  • part_init() is currently called in every DM BLK driver, either
    in its bind() or probe() method. However we can use the BLK
    uclass driver's post_probe() method to do it automatically.

    Update all DM BLK drivers to adopt this change.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • Currently the efi block driver uses priv_auto_alloc_size for the
    driver data, however that's only available after the device probe
    phase. In order to make it accessible in an earlier phase, switch
    to use platdata_auto_alloc_size instead.

    This patch is the prerequisite for the follow up patch of DM BLK
    driver changes to work with EFI loader.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     

24 Sep, 2018

1 commit


25 Jul, 2018

1 commit


11 May, 2018

1 commit

  • As part of the main conversion a few files were missed. These files had
    additional whitespace after the '*' and before the SPDX tag and my
    previous regex was too strict. This time I did a grep for all SPDX tags
    and then filtered out anything that matched the correct styles.

    Fixes: 83d290c56fab ("SPDX: Convert all of our single license tags to Linux Kernel style")
    Reported-by: Heinrich Schuchardt
    Signed-off-by: Tom Rini

    Tom Rini
     

10 Feb, 2018

1 commit

  • Change the return type of efi_driver_init() to efi_status_t.

    efi_driver_init() calls efi_add_driver() which returns an efi_status_t
    value. efi_driver_init() should not subject this value to a conversion to
    int losing high bits on 64bit systems.

    Signed-off-by: Heinrich Schuchardt
    Signed-off-by: Alexander Graf

    Heinrich Schuchardt
     

23 Jan, 2018

1 commit

  • This patch provides
    * a uclass for EFI drivers
    * a EFI driver for block devices

    For each EFI driver the uclass
    * creates a handle
    * adds the driver binding protocol

    The uclass provides the bind, start, and stop entry points for the driver
    binding protocol.

    In bind() and stop() it checks if the controller implements the protocol
    supported by the EFI driver. In the start() function it calls the bind()
    function of the EFI driver. In the stop() function it destroys the child
    controllers.

    The EFI block driver binds to controllers implementing the block io
    protocol.

    When the bind function of the EFI block driver is called it creates a
    new U-Boot block device. It installs child handles for all partitions and
    installs the simple file protocol on these.

    The read and write functions of the EFI block driver delegate calls to the
    controller that it is bound to.

    A usage example is as following:

    U-Boot loads the iPXE snp.efi executable. iPXE connects an iSCSI drive and
    exposes a handle with the block IO protocol. It calls ConnectController.

    Now the EFI block driver installs the partitions with the simple file
    protocol.

    iPXE uses the simple file protocol to load Grub or the Linux Kernel.

    Signed-off-by: Heinrich Schuchardt
    [agraf: add comment on calloc len]
    Signed-off-by: Alexander Graf

    Heinrich Schuchardt