[PATCH qemu 00/38] aspeed: going mainline

Cédric Le Goater clg at kaod.org
Sat Nov 19 01:21:40 AEDT 2016


Hello,

This is rather large patchset which I intend to send to mainline qemu
in a couple of weeks when time permits. In there, you will find a lot
of littles fixes, some improvements on existing models and a couple of
new models which were never exposed to mainline yet. Feel free to scan
through the patches or just read the summary below and ask questions.

* SoC level 
  - an AST2400 A1 SoC for the Palmetto machine
  - a Romulus machine  
  - a SRAM region (which is used at early boot in U-Boot, serves as a
    stack, and by DRAM calibration)

* SMC (Flash controller) 
  - Command mode support. Flash contents is accessed directly on the
    AHB bus   
  - DMA support
  - dummy bytes
  - auto strapping of configuration for boot flash
  - use CS0 as a boot ROM. Today, qemu can not boot from a MMIO region.
    As this is complex to do (TCG layer modification), we use a ROM
    region in which we copy the flash contents. Hopefully, I got it 
    right this time.

* SDMC (DRAM controller) 
  - support for new registers to fake DRAM calibration (AST2400). This
    is a good start to understand what these 3000 lines of ARM
    assembly do in the lowlevel_init routine of U-Boot. What a mess ...
  
* I2C
  - a couple more devices 
  - the current model does not support the Linux driver sent to
    mailine. This is because the irq status handling is way too
    simplistic, or even broken. Anyone has some spare cycles for it ?
  
* Watchdog 
  - new model.  
  - not complete but reset under U-Boot and reboot under Linux now
    work so I think it is time to send the model upstream.
  - needs an upstream sponsor 
  
* Network 
  - new model of the ftgmac100 device
  - the ring buffer handling is imperfect and it does not support
    U-Boot (a pity) but we need feedback else this is going to bit rot
    for another 6 months
  - NSCI fake backend

For future work, please see the wiki : 

   https://github.com/openbmc/qemu/wiki

Cheers,

C.


Andrew Jeffery (1):
  wdt: aspeed: Fix failed reboot due to timer miscalculation

Cédric Le Goater (36):
  m25p80: add support for the mx66l1g45g
  aspeed: QOMify the CPU object and attach it to the SoC
  aspeed: attach the second SPI controller object to the SoC
  aspeed: extend the board configuration with flash models
  aspeed: add support for the romulus-bmc board
  aspeed: add a memory region for SRAM
  aspeed: add the definitions for the AST2400 A1 SoC
  aspeed: change SoC revision of the palmetto-bmc machine
  aspeed/scu: fix SCU region size
  aspeed/smc: improve segment register support
  aspeed/smc: get the number of flash modules from hw strapping
  aspeed/smc: rework the prototype of the AspeedSMCFlash helper routines
  aspeed/smc: introduce a aspeed_smc_flash_update_cs() helper
  aspeed/smc: autostrap CE0/1 configuration
  aspeed/smc: handle SPI flash Command mode
  aspeed/smc: add tests for Command mode
  aspeed/smc: unfold the AspeedSMCController array
  aspeed/smc: add a 'sdram_base' property
  aspeed/smc: add support for DMAs
  aspeed/smc: handle dummy bytes when doing fast reads
  aspeed/smc: adjust the size of the register region
  aspeed: use first SPI flash as a boot ROM
  block: add a model option for MTD devices
  aspeed/smc: use flash model option
  aspeed/sdmc: rework the locking register of the memory controller
  aspeed/sdmc: fake a few more registers to let DRAM calibration run
  hw/misc: add a TMP42{1,2,3} device model
  aspeed: add a temp sensor device on I2C bus 3
  aspeed: add a rtc device on I2C bus 0
  aspeed: add a watchdog controller
  wdt: aspeed: use scu to get clock freq
  net: add FTGMAC100 support
  net/ftgmac100: add a 'aspeed' property
  ast2400: add a FTGMAC100 nic
  slirp: add a fake NCSI backend
  target-arm: Add VBAR support to ARM1176 CPUs

Joel Stanley (1):
  wdt: Add Aspeed watchdog device model

 blockdev.c                       |  13 +
 default-configs/arm-softmmu.mak  |   2 +
 hw/arm/aspeed.c                  | 108 ++++-
 hw/arm/aspeed_soc.c              | 162 ++++++-
 hw/block/m25p80.c                |   1 +
 hw/misc/Makefile.objs            |   1 +
 hw/misc/aspeed_scu.c             |  18 +-
 hw/misc/aspeed_sdmc.c            | 219 +++++++++-
 hw/misc/tmp421.c                 | 400 +++++++++++++++++
 hw/net/Makefile.objs             |   1 +
 hw/net/ftgmac100.c               | 916 +++++++++++++++++++++++++++++++++++++++
 hw/ssi/aspeed_smc.c              | 660 ++++++++++++++++++++++++----
 hw/watchdog/Makefile.objs        |   1 +
 hw/watchdog/wdt_aspeed.c         | 223 ++++++++++
 include/hw/arm/aspeed_soc.h      |   8 +-
 include/hw/misc/aspeed_scu.h     |   2 +
 include/hw/misc/aspeed_sdmc.h    |   3 +-
 include/hw/net/ftgmac100.h       |  64 +++
 include/hw/ssi/aspeed_smc.h      |   8 +-
 include/hw/watchdog/wdt_aspeed.h |  43 ++
 include/net/eth.h                |   1 +
 include/sysemu/blockdev.h        |   1 +
 qemu-options.hx                  |   4 +-
 slirp/Makefile.objs              |   2 +-
 slirp/ncsi-pkt.h                 | 394 +++++++++++++++++
 slirp/ncsi.c                     |  95 ++++
 slirp/slirp.c                    |   4 +
 slirp/slirp.h                    |   3 +
 target-arm/cpu.c                 |   2 +
 target-arm/cpu.h                 |   1 +
 target-arm/helper.c              |  18 +-
 tests/m25p80-test.c              |  86 ++++
 32 files changed, 3334 insertions(+), 130 deletions(-)
 create mode 100644 hw/misc/tmp421.c
 create mode 100644 hw/net/ftgmac100.c
 create mode 100644 hw/watchdog/wdt_aspeed.c
 create mode 100644 include/hw/net/ftgmac100.h
 create mode 100644 include/hw/watchdog/wdt_aspeed.h
 create mode 100644 slirp/ncsi-pkt.h
 create mode 100644 slirp/ncsi.c

-- 
2.7.4



More information about the openbmc mailing list