Skip to content
  1. Oct 28, 2021
    • Shriram's avatar
      Platform/Sgi: Enable Linuxboot for RD-N2-Cfg1 platform · b23fc763
      Shriram authored and Vijayenthiran Subramaniam's avatar Vijayenthiran Subramaniam committed
      
      
      Enable RD-N2-Cfg1 platform to choose linuxboot fdf file to replace the
      shell application with the stage-1 linuxboot kernel based on the build
      flag $LINUXBOOT_BUILD_ENABLED.
      
      This is an initial implementation of linuxboot for RD-N2-Cfg1 platform
      and not the final version.
      
      Signed-off-by: Shriram's avatarShriram K <shriram.k@arm.com>
      Change-Id: I607c2d6631a42115d50a801778933e4dc4e2c939
    • Shriram's avatar
      Platform/Sgi: Enable Linuxboot for RD-N2 platform · 23ef213f
      Shriram authored and Vijayenthiran Subramaniam's avatar Vijayenthiran Subramaniam committed
      
      
      Enable RD-N2 platform to choose linuxboot fdf file to replace the shell
      application with the stage-1 linuxboot kernel based on the build flag
      $LINUXBOOT_BUILD_ENABLED.
      
      This is an initial implementation of linuxboot for RD-N2 platform and
      not the final verison.
      
      Signed-off-by: Shriram's avatarShriram K <shriram.k@arm.com>
      Change-Id: Ic56c0a9e1135c7a8ea19a210006772d7b23aa62a
      23ef213f
    • Shriram's avatar
      Platform/Sgi: Enable Linuxboot for RD-V1 platform · 963b97fb
      Shriram authored and Vijayenthiran Subramaniam's avatar Vijayenthiran Subramaniam committed
      
      
      Enable RD-V1 platform to choose linuxboot fdf file to replace the shell
      application with the stage-1 linuxboot kernel based on the build flag
      $LINUXBOOT_BUILD_ENABLED.
      
      This is an initial implementation of linuxboot for RD-V1 platform and
      not the final version.
      
      Signed-off-by: Shriram's avatarShriram K <shriram.k@arm.com>
      Change-Id: I4091053ee4d3a216619556bf28fe20f2e070029f
      963b97fb
    • Shriram's avatar
      Platform/Sgi: Add LinuxBoot support · 93dfde96
      Shriram authored and Vijayenthiran Subramaniam's avatar Vijayenthiran Subramaniam committed
      
      
      LinuxBoot is a firmware that replaces specific firmware functionality
      like the UEFI DXE phase with a Linux kernel and runtime.
      
      This patch adds LinuxBootPkg and SgiPlatformLinuxBoot.fdf which replaces
      the shell application with stage-1 linuxboot kernel and will be built
      when build flag $LINUXBOOT_BUILD_ENABLED is set. The stage-1 linuxboot
      kernel uses the same GUID as the shell application, enabling the user to
      boot the stage-1 linxuboot kernel when launching the Shell from the Boot
      Manager.
      
      This is an initial implementation of linuxboot for RD platforms and not
      the final version.
      
      Signed-off-by: Shriram's avatarShriram K <shriram.k@arm.com>
      Change-Id: I952bd76487c9a643e39cd82ddcb222417a883847
      93dfde96
  2. Oct 25, 2021
  3. Oct 22, 2021
  4. Oct 19, 2021
    • Jeremy Linton's avatar
      Platform/RaspberryPi: Disconnect/shutdown all drivers before reboot · 63d520f9
      Jeremy Linton authored
      
      
      In theory we should be properly cleaning up all the device drivers before
      hitting the big reset. The partition manager will issue flush commands to
      attached disks as it goes down. This assures that devices running in WB mode,
      which correctly handle flush/sync/etc commands, are persisted to physical
      media before reset.
      
      Without this, there are definitely cases where the relevant specifications
      don't guarantee persistence of data in their buffers in the face of reset
      conditions. We can't really do anything about the many devices that don't
      honor persistence requests, but we can start here.
      
      Signed-off-by: Jeremy Linton's avatarJeremy Linton <jeremy.linton@arm.com>
      Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
      63d520f9
    • Jeremy Linton's avatar
      Platform/RaspberryPi: Normal memory should not be marked as uncached · af649f80
      Jeremy Linton authored
      
      
      The EFI spec seems to indicate that the EFI uncacheable attribute
      should be mapped to device memory rather than normal-nc. This means
      that the UEFI mem attribute for the >3G ram doesn't match the remainder
      of the RAM in the machine.
      
      So, lets remove the uncacheable attribute to make it more consistent.
      
      Signed-off-by: Jeremy Linton's avatarJeremy Linton <jeremy.linton@arm.com>
      Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
      af649f80
    • Jeremy Linton's avatar
      Platform/RaspberryPi: Expand locking to cover return data · fd988a9e
      Jeremy Linton authored
      
      
      It appears that the locking for many of the mailbox commands is
      incorrect. All UEFI firmware calls to the RPi mailbox share a single
      mDmaBuffer. That buffer is used to fill out the command passed to the
      vc firmware, and record its response. The buffer is protected by
      mMailboxLock, yet in many cases the mailbox response is copied from
      the buffer after the lock has been released. This doesn't currently
      appear to be causing any problems, but should be fixed anyway.
      
      There are a couple other minor tweaks in this patch that are hard to
      justify on their own, one is a bit of whitespace cleanup, and the
      other is the addition of a debug message to print the returned clock
      rate for the requested clock. This latter print would have immediatly
      shown that the vc firmware was returning 0 as the emmc clock rate
      rather than something reasonable.
      
      Signed-off-by: Jeremy Linton's avatarJeremy Linton <jeremy.linton@arm.com>
      Reviewed-by: default avatarAndrei Warkentin <awarkentin@vmware.com>
      fd988a9e
    • Jeremy Linton's avatar
      Platform/RaspberryPi: Fix vfr warning caused by two defaults · ee4be44e
      Jeremy Linton authored
      
      
      The build has been tossing a warning about having two defaults
      for a while now, lets fix it.
      
      Signed-off-by: Jeremy Linton's avatarJeremy Linton <jeremy.linton@arm.com>
      Reviewed-by: default avatarAndrei Warkentin <awarkentin@vmware.com>
      ee4be44e
    • Jeremy Linton's avatar
      Platform/RaspberryPi: Always use non translating DMA in DT mode · efff29cd
      Jeremy Linton authored
      
      
      One of the many issues with the PCIe on this platform is its inbound
      DMA is either constrained to the lower 3G, or on later SOC's a
      translation may be used. That translation is problematic with some of
      the OS's expected to boot on this platform. So, across the board a 3G
      DMA limit is enforced during boot when in ACPI mode. This itself
      causes problems because the later boards removed the SPI EEPROM used
      by the onboard XHCI controller, instead favoring using a block of RAM
      to load its firmware. Hence it is the lower level firmware's
      responsibility via a mailbox call, to read the bridge
      translation/configuration before telling the XHCI controller where it
      can find its firmware.
      
      Everything is great in ACPI land. Now it appears that Linux after
      reprogramming the bridge to match the DT (when using a translation)
      can't actually get the XHCI/quirk/reset to function. Apparently,
      because the firmware only reads the bridge configuration the first
      time its called(?), or the kernel reset sequence isn't correct. Worse,
      with just the DMA ranges corrected, the XHCI/QUIRK itself then causes
      the controller to start having what appear to be DMA issues.
      
      Lets simplify the situation and make all DT's provided by this
      firmware have a 3G DMA limit on the PCIe bus. Then remove the ability
      for Linux/etc to trigger the quirk by remove the DT node attaching the
      reset controller to the XHCI. The latter seems somewhat questionable,
      since the DT/PCIe host bridge driver is doing what appears to be a
      PERST which might then require a firmware reload, but at the
      moment seems to work without.
      
      The first part of this patch also appears to fix a problem with
      OpenBSD which interprets the DT as describing how the firmware
      has configured the device, and makes no attempt to reconfigure it.
      Hence the newer SOC's implementing a translation fail to boot
      since the DT being passed to the OS doesn't match the translation
      the firmware has setup.
      
      Signed-off-by: Jeremy Linton's avatarJeremy Linton <jeremy.linton@arm.com>
      Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
      efff29cd
    • Daniel Schaefer's avatar
      Move OpenSbiPlatformLib to RISC-V/PlatformPkg · dc7fe2ac
      Daniel Schaefer authored
      
      
      It's a generic platform file. Only the device tree decides what happens.
      
      Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
      Cc: Abner Chang <abner.chang@hpe.com>
      Cc: Sunil V L <sunilvl@ventanamicro.com>
      Reviewed-by: default avatarAbner Chang <abner.chang@hpe.com>
      
      Signed-off-by: default avatarDaniel Schaefer <daniel.schaefer@hpe.com>
      dc7fe2ac
    • Daniel Schaefer's avatar
      RISC-V: Implement ResetSystem RT call · 213b0517
      Daniel Schaefer authored
      
      
      Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
      Cc: Abner Chang <abner.chang@hpe.com>
      Cc: Sunil V L <sunilvl@ventanamicro.com>
      Reviewed-by: default avatarAbner Chang <abner.chang@hpe.com>
      
      Signed-off-by: default avatarDaniel Schaefer <daniel.schaefer@hpe.com>
      213b0517
Loading