u-boot-aspeed: Rebase on aspeed-master-v2019.04

As ASPEED develop their ast2600 u-boot features, we've had a need to
integrate changes from their tree into the openbmc tree. In the past
we lined this up with a major version bump (as with the kernel),
meaning we could create a new branch with our "out of tree" changes
applied on top. However, in this case their SDK is still based on the
2019.04 release, so there's not a clear way forward.

I've chosen to rebase the openbmc changes on top of their branch. The
old branch is still accessible at archive/v2019.04-aspeed-openbmc-1.
The bitbake recipe will continue to work as it uses the nobranch=1
flag, and specifies the version based on the SHA.

The new branch contains their aspeed-master-v2019.04 tree as of today,
with the OpenBMC changes applied on top.

The ASPEED changes include:

 - support for the ast2400
  - Disable of buggy AXI prefetch feature
  - SPL, OTP and secure boot fixes
  - SPI flash updates and calibration changes
  - eMMC, Ethernet, fixes

I've boot tested it running from SPI NOR on AST2600 A1 hardware, as
well as QEMU, and it reached userspace. I will bump the bitbake recipe
to integrate the changes into openbmc.

Andreas Dannenberg (1):
      spl: Make image loader infrastructure more universal

Chia-Wei, Wang (18):
      config: ast2600: Enable board early initialization
      ARM: dts: ast2600: Revert dm-pre-reloc property from eMMC
      configs: ast2600-slt: Change DRAM speed to 1600Mbps
      spl: fit: Separate FIT image load and processing
      spl: ast2600: Fix the load buffer address
      Revert "spl: fit: Separate FIT image load and processing"
      Revert "add LPC/eSPI storngest Driving Strength"
      configs: ast2600-slt: Add ENV default configuration
      aspeed: Fix compile warning
      ast2600: Remove AXI-prefetch support
      wdt: ast2600: Fix reset mask setting
      spl: ast2600: Add secure boot flow support
      update bootflow
      fix boots address
      configs: ast2600-fpga: Fix defconfig and header
      ARM: spl: Add SPL relocation support
      spl: ast2600: Add relocation support
      ARM: timer: ast2600: Add dynamic frequency detection

Chin-Ting Kuo (22):
      spi: timing: Change timing calibration method
      spi-flash: w25q01jv flash model support
      spi-flash: aspeed: Remove unused variable
      spi: Add w25q512jvfm flash model
      boot: emmc: Boot from eMMC feature early porting
      emmc: Move "u-boot,dm-pre-reloc" flag to evb.dts
      spi-nor: Add flash model w25q01jvfim and fix typo
      mmc: SD: Add property for timing phase and drive type
      mmc: slt: Add timing phase and drive type for MMC
      spi: cpuinfo: Add ABR, spi_aux_pin info
      spi: crypress: Set 4B mode to controller when address width is 4
      spi: AST2500: Modify ABR boot source log
      spi: scu_info: Simplify scu info log related to fmc/spi
      spi: ast2500: Porting spi1 setting
      spi-flash: Set FMC04/SPIR04[6:4] when enter 4B mode
      spi-flash: Use user mode under specific condition
      spi-flash: Modify SPI/FMC CE1 default decode address
      fpga: fixbug: Remove CONFIG_BOARD_EARLY_INIT_F
      dp: Update dp base address
      spi: bugfix: Do not change read command until flash probe
      fmc: Set FMC50[1] for waiting WIP idle
      eMMC: Do not fill FMC50[1] when boot from eMMC

Dylan Hung (18):
      add rmii rclk  oe control
      add rmii rclk pin control
      add board_ram_info for ast2600 series
      move borad_add_ram_info to borad_common.c
      fix FPGA RGMII pin setting
      revise fpga mac device
      fix typo
      don't print message in sdramphy_init
      write scu config back if vga config is "0"
      refactor code: add macro for ECC setup
      trim tailing whitespaces
      don't re-init ecc if dram has been initialized
      fix ncsi build
      don't reserve VGA memory if efuse bit is set
      fix fpga booting
      add ast2650 fpga config
      remove dram initialization from platfrom.S
      remove mac init from platform.S

Joel Stanley (7):
      dts: ast2600-evb: Enable FSI masters
      aspeed: Add machine names
      tools: Add script for generating recovery image
      configs: Add OpenBMC spl defconfig for AST2600 boards
      clk: ast2600: Add divisor settings for 100MHz PLL
      ram: ast2600: Enable device tree based DDR config
      ast2600: tacoma: Run DDR at 1333

Johnny Huang (37):
      otp: remove print process
      otp: ignore data region last 2 dw when program
      otp: program 2 dw then verify 2 dw when program data region
      otp: skip print data info when no key
      otp: set default value for otp strap programming
      rng: add aspeed rng cmd
      spl: fix duplicate define CONFIG_SYS_MONITOR_LEN
      defconfig: cot: reduce spl code size
      config: remove tftpput
      secure boot: fix hace reset and compile warning
      clk: rsa clock source set to hpll
      update otp patch code
      otp update
      otp: udpate program
      otp: udpate strap
      otp: update strap program bit
      otp: udpate strap read
      otp: reduce the code
      spl: ast2600: update secure boot flow
      defconfig: ast2600: update spl config
      spl: aspeed: fix ecc build
      secure: update bl2 verify
      secureboot: update bl3 verify
      aspeed: emmc: support emmc boot
      defconfig: support new boot flow
      defconfig: rename ast2600a1 as defaut config
      fix merge error
      defconfig: aspeed: update ecc config for new boot flow
      Revert "defconfig: aspeed: update ecc config for new boot flow"
      defconfig: aspeed: update ecc config for new boot flow
      otp: fix ast2600a1 info
      defconfig: enable position independent to support boot from uart
      config: enable CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK as default for ast2600
      boot0: aspeed: add image size header for boot form sram
      cmd: otp: udpate for ast2600a2
      update ast2600a2 otp register setup
      otp: fix compile warning and add strap info

Peter Robinson (1):
      Remove redundant YYLOC global declaration

ryan_chen (40):
      add link status
      update gpio driver
      fix i2c pinctrl
      update sd/emmc controller source
      update
      add ibm platform
      add kconfig for env
      add ast2600 openbmc defconfig
      fix env compile error
      update pcie driver
      mv to cmd/aspeed folder
      update for mv cmd/aspeed folder
      add pll test
      update full test
      update clk
      add display port driver
      add ast2600 defconfig
      update mac info
      update dp driver
      update hclk setting
      update axi ahb div cal
      update dp firmwire
      add more desciption about eMMC clk source
      update file mode
      update ast2400 have 32kbyte
      add ast2400 ompatible
      add ast2400
      add reset for ast2400
      add ast2400 include file
      add ast2400 board
      add ast2400 defconfig
      add ast2400 pinctrl
      update ast2400 reset
      add ast2400 clk
      add ast2400 defconfig
      update ast2500
      add mac for ast2400
      add for ast2400
      add ast2400 clk
      Video format look-up table is updated for 640x480@85Hz

(From meta-aspeed rev: 9d5ae052312dc45a645dc5e7ab8a9daf4ef686d6)

Change-Id: I50a06ca91d86f4548d47e85e215ace4498c0c9a8
Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
1 file changed
tree: 06596b5b9375b1727841f975e5a3abb4e1f79e76
  1. .github/
  2. meta-amd/
  3. meta-arm/
  4. meta-aspeed/
  5. meta-bytedance/
  6. meta-evb/
  7. meta-facebook/
  8. meta-google/
  9. meta-hpe/
  10. meta-hxt/
  11. meta-ibm/
  12. meta-ingrasys/
  13. meta-inspur/
  14. meta-intel/
  15. meta-inventec/
  16. meta-lenovo/
  17. meta-mellanox/
  18. meta-microsoft/
  19. meta-nuvoton/
  20. meta-openembedded/
  21. meta-openpower/
  22. meta-phosphor/
  23. meta-portwell/
  24. meta-qualcomm/
  25. meta-quanta/
  26. meta-raspberrypi/
  27. meta-security/
  28. meta-x86/
  29. meta-xilinx/
  30. meta-yadro/
  31. poky/
  32. .gitignore
  33. .gitreview
  34. .templateconf
  35. MAINTAINERS
  36. openbmc-env
  37. README.md
  38. setup
README.md

OpenBMC

Build Status

The OpenBMC project can be described as a Linux distribution for embedded devices that have a BMC; typically, but not limited to, things like servers, top of rack switches or RAID appliances. The OpenBMC stack uses technologies such as Yocto, OpenEmbedded, systemd, and D-Bus to allow easy customization for your server platform.

Setting up your OpenBMC project

1) Prerequisite

  • Ubuntu 14.04
sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat
  • Fedora 28
sudo dnf install -y git patch diffstat texinfo chrpath SDL-devel bitbake \
    rpcgen perl-Thread-Queue perl-bignum perl-Crypt-OpenSSL-Bignum
sudo dnf groupinstall "C Development Tools and Libraries"

2) Download the source

git clone git@github.com:openbmc/openbmc.git
cd openbmc

3) Target your hardware

Any build requires an environment set up according to your hardware target. There is a special script in the root of this repository that can be used to configure the environment as needed. The script is called setup and takes the name of your hardware target as an argument.

The script needs to be sourced while in the top directory of the OpenBMC repository clone, and, if run without arguments, will display the list of supported hardware targets, see the following example:

$ . setup <machine> [build_dir]
Target machine must be specified. Use one of:

centriq2400-rep         nicole                     stardragon4800-rep2
f0b                     olympus                    swift
fp5280g2                olympus-nuvoton            tiogapass
gsj                     on5263m5                   vesnin
hr630                   palmetto                   witherspoon
hr855xg2                qemuarm                    witherspoon-128
lanyang                 quanta-q71l                witherspoon-tacoma
mihawk                  rainier                    yosemitev2
msn                     romulus                    zaius
neptune                 s2600wf

Once you know the target (e.g. romulus), source the setup script as follows:

. setup romulus build

For evb-ast2500, please use the below command to specify the machine config, because the machine in meta-aspeed layer is in a BSP layer and does not build the openbmc image.

TEMPLATECONF=meta-evb/meta-evb-aspeed/meta-evb-ast2500/conf . openbmc-env

4) Build

bitbake obmc-phosphor-image

Additional details can be found in the docs repository.

OpenBMC Development

The OpenBMC community maintains a set of tutorials new users can go through to get up to speed on OpenBMC development out here

Build Validation and Testing

Commits submitted by members of the OpenBMC GitHub community are compiled and tested via our Jenkins server. Commits are run through two levels of testing. At the repository level the makefile make check directive is run. At the system level, the commit is built into a firmware image and run with an arm-softmmu QEMU model against a barrage of CI tests.

Commits submitted by non-members do not automatically proceed through CI testing. After visual inspection of the commit, a CI run can be manually performed by the reviewer.

Automated testing against the QEMU model along with supported systems are performed. The OpenBMC project uses the Robot Framework for all automation. Our complete test repository can be found here.

Submitting Patches

Support of additional hardware and software packages is always welcome. Please follow the contributing guidelines when making a submission. It is expected that contributions contain test cases.

Bug Reporting

Issues are managed on GitHub. It is recommended you search through the issues before opening a new one.

Questions

First, please do a search on the internet. There's a good chance your question has already been asked.

For general questions, please use the openbmc tag on Stack Overflow. Please review the discussion on Stack Overflow licensing before posting any code.

For technical discussions, please see contact info below for IRC and mailing list information. Please don't file an issue to ask a question. You'll get faster results by using the mailing list or IRC.

Features of OpenBMC

Feature List

  • Host management: Power, Cooling, LEDs, Inventory, Events, Watchdog
  • Full IPMI 2.0 Compliance with DCMI
  • Code Update Support for multiple BMC/BIOS images
  • Web-based user interface
  • REST interfaces
  • D-Bus based interfaces
  • SSH based SOL
  • Remote KVM
  • Hardware Simulation
  • Automated Testing
  • User management
  • Virtual media

Features In Progress

  • OpenCompute Redfish Compliance
  • Verified Boot

Features Requested but need help

  • OpenBMC performance monitoring

Finding out more

Dive deeper into OpenBMC by opening the docs repository.

Technical Steering Committee

The Technical Steering Committee (TSC) guides the project. Members are:

  • Brad Bishop (chair), IBM
  • Nancy Yuen, Google
  • Sai Dasari, Facebook
  • James Mihm, Intel
  • Sagar Dharia, Microsoft
  • Supreeth Venkatesh, Arm

Contact