From: Peter Delevoryas <p...@fb.com> Hello!
This patch series creates an Aspeed machine type for Facebook's OpenBMC platform "fuji". The first 2 commits do some refactoring, to allow Aspeed machines to configure the first serial device. Most board configurations use UART5 for the console, but fuji uses UART1. Neither of these should change the behavior for any machine types. The third commit adds the fuji machine type definition, utilizing the "serial_dev" option from the previous two commits to configure the console device as UART1 instead of UART5. After the third commit, you can test booting a fuji image as follows: # Build a fuji image from Facebook's OpenBMC repository. git clone https://github.com/facebook/openbmc cd openbmc ./sync_yocto.sh source openbmc-init-build-env fuji build-fuji bitbake fuji-image dd if=/dev/zero of=/tmp/fuji-image.mtd bs=1M count=128 dd if=./tmp/deploy/images/fuji/flash-fuji of=/tmp/fuji-image.mtd \ bs=1k conv=notrunc git clone https://github.com/peterdelevoryas/qemu cd qemu ./configure --target-list=arm-softmmu make -j $(nproc) # Attempt to boot the fuji image: you should not see any console # output. ./build/arm-softmmu/qemu-system-arm -machine fuji \ -drive file=/tmp/fuji-image.mtd,format=raw,if=mtd -serial stdio You shouldn't see any serial console output, because U-Boot hangs in clock rate initialization due to a divide-by-zero. The last 2 commits fixup the clock registers to avoid the divide-by-zero, and fuji boots successfully after that. I organized the patch series with the clock rate fixes last because it was more natural to test the behavior before and after the fix, but I can understand if you'd like those patches to come first, or to even be added completely independently from the fuji patch series. This is my first contribution to QEMU, and I tried to follow the wiki/etc as best as possible, but I'm sure I probably made some mistakes, so let me know how best to submit this. Peter Delevoryas (5): hw/arm/aspeed: Add get_irq to AspeedSoCClass hw/arm/aspeed: Select console UART from machine hw/arm/aspeed: Add fuji machine type hw/arm/aspeed: Fix AST2600_CLK_SEL3 address hw/arm/aspeed: Initialize AST2600 clock selection registers hw/arm/aspeed.c | 20 ++++++++++++++++++++ hw/arm/aspeed_ast2600.c | 6 +----- hw/arm/aspeed_soc.c | 6 +----- hw/misc/aspeed_scu.c | 15 +++++++++++++-- include/hw/arm/aspeed.h | 1 + include/hw/arm/aspeed_soc.h | 1 + 6 files changed, 37 insertions(+), 12 deletions(-) -- 2.30.2