[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