01 Mar, 2019

3 commits

  • *.dtbo are dt overlays files which should be also ignored as *.dtb.

    Signed-off-by: Michal Simek

    Michal Simek
     
  • The loop implemented in the code is supposed to check whether the
    PL310 operation register has any bit from the mask set. Currently,
    the code checks whether the PL310 operation register has any bit
    set AND whether the mask is non-zero, which is incorrect. Fix the
    conditional.

    Signed-off-by: Marek Vasut
    Cc: Dalon Westergreen
    Cc: Dinh Nguyen
    Cc: Tom Rini
    Fixes: 93bc21930a1b ("armv7: add PL310 support to u-boot")
    Reviewed-by: Simon Goldschmidt
    Reviewed-by: Dinh Nguyen

    Marek Vasut
     
  • _omap3_spi_set_wordlen() indexed the regs->channel[] array with the
    old wordlen (instead of the chipselect number) when reading the current
    CHCONF register value. This meant it read from the wrong memory location,
    modified that value, and then wrote it back to the correct CHCONF
    register. The end result is that most slave configuration settings would
    be lost, such as clock divisor, clock/chipselect polarities, etc.

    Fixes: 77b8d04854f4 ("spi: omap3: Convert to driver model")
    Signed-off-by: David Rivshin

    David Rivshin
     

28 Feb, 2019

1 commit


27 Feb, 2019

15 commits

  • This patch enables CONFIG_SYS_BOOT_RAMDISK_HIGH for RISC-V
    because bootm will update initrd location in DTB only if
    CONFIG_SYS_BOOT_RAMDISK_HIGH is enabled. If we don't enable
    this option then bootm assumes DTB already has initrd details
    which is not the case most of the time.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Lukas Auer

    Anup Patel
     
  • The readme guide describes the procedure to build, flash and boot Linux
    using U-Boot on HiFive Unleashed. It also explains the current state of
    U-boot support and future action items.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Lukas Auer

    Atish Patra
     
  • This patch adds SiFive FU540 board support. For now, only
    SiFive serial, SiFive PRCI, and Cadance MACB drivers are
    only enabled. The SiFive FU540 defconfig by default builds
    U-Boot for S-Mode because U-Boot on SiFive FU540 will run
    in S-Mode as payload of BBL or OpenSBI.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf
    Reviewed-by: Lukas Auer
    Reviewed-by: Bin Meng

    Anup Patel
     
  • Currently, timer driver is bound only for hart0.

    There is no mandatory requirement that hart0 should always
    come up. In fact, HiFive Unleashed SoC hart0 doesn't boot
    in S-mode because it only has M-mode.

    The timer driver should be bound for boot hart.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf
    Reviewed-by: Lukas Auer
    Reviewed-by: Bin Meng

    Atish Patra
     
  • It is possible that input clock is not available because clk
    device was not available and 'clock-frequency' DT property is
    also not available.

    In this case, instead of failing we should just skip baudrate
    config by returning zero.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf

    Atish Patra
     
  • Compute the baud rate multipler with more precision.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf
    Reviewed-by: Lukas Auer

    Atish Patra
     
  • This patch adds fixed-factor clock driver which derives clock
    rate by dividing (div) and multiplying (mult) fixed factors
    to a parent clock.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Simon Glass

    Anup Patel
     
  • Add driver code for the SiFive FU540 PRCI IP block. This IP block
    handles reset and clock control for the SiFive FU540 device and
    implements SoC-level clock tree controls and dividers.

    Based on code written by Wesley Terpstra
    found in commit 999529edf517ed75b56659d456d221b2ee56bb60 of:
    https://github.com/riscv/riscv-linux

    Boot and PLL rate change were tested on a SiFive HiFive Unleashed
    board.

    Signed-off-by: Paul Walmsley
    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf

    Anup Patel
     
  • Fix MID bit field check to correctly identify all GEM hardwares.

    The check is updated as per macb driver in Linux location:
    /drivers/net/ethernet/cadence/macb_main.c:259

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf
    Reviewed-by: Lukas Auer
    Acked-by: Joe Hershberger

    Atish Patra
     
  • Don't fail in macb_enable_clk() if clk_enable() returns
    -ENOSYS because we get -ENOSYS for fixed-rate clocks.

    Signed-off-by: Anup Patel
    Reviewed-by: Bin Meng

    Anup Patel
     
  • On 64bit systems, the DRAM top can be easily beyond 4GB and U-Boot
    DMA mapping APIs will generate DMA addresses beyond 4GB. This
    breaks DMA programming in 32bit DMA capable devices (such as
    Cadence MACB ethernet). For example, If DRAM is more then 2GB
    on QEMU sifive_u machine then Cadence MACB ethernet stops working
    for U-Boot because it is a 32bit DMA capable device.

    To handle 32bit DMA capable devices on 64bit systems, we provide
    custom implementation of board_get_usable_ram_top() which ensures
    that usable ram top is not more then 4GB. This in-turn ensures
    that U-Boot always runs within 4GB hence DMA addresses generated
    by DMA mapping APIs will be within 4GB too.

    Signed-off-by: Atish Patra
    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf
    Reviewed-by: Lukas Auer
    Reviewed-by: Bin Meng

    Anup Patel
     
  • Some of the drivers (such as Cadence MACB ethernet driver) expect
    asm/arch/clk.h to be provided by arch support so we add place-holder
    asm/arch-generic/clk.h for RISC-V generic CPU.

    Signed-off-by: Anup Patel
    Reviewed-by: Lukas Auer

    Anup Patel
     
  • This patch adds asm/dma-mapping.h for Linux-like DMA mappings
    APIs required by some of the drivers (such as, Cadance MACB
    Ethernet driver).

    Signed-off-by: Anup Patel
    Reviewed-by: Bin Meng
    Reviewed-by: Alexander Graf
    Reviewed-by: Lukas Auer

    Anup Patel
     
  • The QEMU CPU support under arch/riscv is pretty much generic
    and works fine for SiFive Unleashed as well. In fact, there
    will be quite a few RISC-V SOCs for which QEMU CPU support
    will work fine.

    This patch renames cpu/qemu to cpu/generic to indicate the
    above fact. If there are SOC specific errata workarounds
    required in cpu/generic then those can be done at runtime
    in cpu/generic based on CPU vendor specific DT compatible
    string.

    Signed-off-by: Anup Patel
    Reviewed-by: Alexander Graf
    Reviewed-by: Lukas Auer
    Reviewed-by: Bin Meng

    Anup Patel
     
  • We select CREATE_ARCH_SYMLINK for RISC-V so that we can have
    include/asm/arch linked to include/asm/arch-xyz.

    Signed-off-by: Anup Patel
    Reviewed-by: Bin Meng

    Anup Patel
     

26 Feb, 2019

1 commit

  • Pull request for the UEFI sub-system for v2019.04-rc3

    A new option -e is added to the env command which allows to display and
    change UEFI variables in a user friendly way.

    A new command efidebug is introduced to edit the UEFI boot sequence and to
    display different aspects of the state of the UEFI sub-system: memory map,
    loaded images, handles, drivers and devices.

    A bug in the UEFI boot manager is fixed.

    Tom Rini
     

25 Feb, 2019

10 commits

  • "memmap" command prints uefi-specific memory map information.
    => efi memmap
    Type Start End Attributes
    ================ ================ ================ ==========
    CONVENTIONAL 0000000040000000-000000007de27000 WB
    RUNTIME DATA 000000007de27000-000000007de28000 WB|RT
    RESERVED 000000007de28000-000000007de2a000 WB
    RUNTIME DATA 000000007de2a000-000000007de2b000 WB|RT
    RESERVED 000000007de2b000-000000007de2c000 WB
    RUNTIME DATA 000000007de2c000-000000007de2d000 WB|RT
    LOADER DATA 000000007de2d000-000000007ff37000 WB
    RUNTIME CODE 000000007ff37000-000000007ff38000 WB|RT
    LOADER DATA 000000007ff38000-0000000080000000 WB

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • "images" command prints loaded images-related information.

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • "dh" command prints all the uefi handles used in the system.

    => efi dh
    7ef3bfa0: Device Path, Device Path To Text, Device Path Utilities,
    Unicode Collation 2
    7ef31d30: Driver Binding
    7ef31da0: Simple Text Output
    7ef31e10: Simple Text Input, Simple Text Input Ex
    7ef3cca0: Block IO, Device Path
    7ef3d070: Block IO, Device Path
    7ef3d1b0: Block IO, Device Path, Simple File System
    7ef3d3e0: Block IO, Device Path, Simple File System

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • "drivers" command prints all the uefi drivers on the system.

    => efi drivers
    Driver Name Image Path
    ================ ==================== ====================
    000000007ef003d0

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • "devices" command prints all the uefi variables on the system.

    => efi devices
    Scanning disk ahci_scsi.id0lun0...
    Scanning disk ahci_scsi.id1lun0...
    Found 4 disks
    Device Device Path
    ================ ====================
    000000007ef07ea0 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)
    000000007ef00c10 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(0,0)
    000000007ef00dd0 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)
    000000007ef07be0 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(1,MBR,0x086246ba,0x800,0x40000)
    000000007ef07510 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(2,MBR,0x086246ba,0x40800,0x3f800)

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • Currently, there is no easy way to add or modify UEFI variables.
    In particular, bootmgr supports BootOrder/BootXXXX variables, it is
    quite hard to define them as u-boot variables because they are represented
    in a complicated and encoded format.

    The new command, efidebug, helps address these issues and give us
    more friendly interfaces:
    * efidebug boot add: add BootXXXX variable
    * efidebug boot rm: remove BootXXXX variable
    * efidebug boot dump: display all BootXXXX variables
    * efidebug boot next: set BootNext variable
    * efidebug boot order: set/display a boot order (BootOrder)

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • See UEFI specification v2.7a, section 3.1.3, "Load Option Processing."

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • "env [print|set] -e" allows for handling uefi variables without
    knowing details about mapping to corresponding u-boot variables.

    Signed-off-by: AKASHI Takahiro
    Reviewed-by: Heinrich Schuchardt

    AKASHI Takahiro
     
  • Since commit 914df75b0c97 ("efi_loader: fix EFI entry counting")
    entry_count is already set to 1 before efi_bootmgr_load() is called. So we
    should not increment it when entering the function.

    Without the patch an assert error occurs in efi_get_variable() if DEBUG is
    defined.

    Fixes: 914df75b0c97 ("efi_loader: fix EFI entry counting")
    Signed-off-by: Heinrich Schuchardt

    Heinrich Schuchardt
     
  • For booting via `bootefi bootmgr` it is necessary that the EFI variable
    BootOrder is defined. Provide a diagnostic message if the variable is
    missing.

    Signed-off-by: Heinrich Schuchardt

    Heinrich Schuchardt
     

23 Feb, 2019

3 commits


22 Feb, 2019

1 commit


21 Feb, 2019

6 commits