aboutsummaryrefslogtreecommitdiff
path: root/hw/char
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2021-09-13 16:07:20 +0100
committerPeter Maydell <peter.maydell@linaro.org>2021-09-13 16:07:20 +0100
commita89b91addf2b28613a89b842f501c903a819de68 (patch)
treece0aaac06d83f928e52705be9c1f32b90eec3fb0 /hw/char
parenteae587e8e3694b1aceab23239493fb4c7e1a80f5 (diff)
downloadqemu-a89b91addf2b28613a89b842f501c903a819de68.zip
qemu-a89b91addf2b28613a89b842f501c903a819de68.tar.gz
qemu-a89b91addf2b28613a89b842f501c903a819de68.tar.bz2
hw/misc: zynq_slcr: Correctly compute output clocks in the reset exit phase
As of today, when booting upstream U-Boot for Xilinx Zynq, the UART does not receive anything. Debugging shows that the UART input clock frequency is zero which prevents the UART from receiving anything as per the logic in uart_receive(). From zynq_slcr_reset_exit() comment, it intends to compute output clocks according to ps_clk and registers. zynq_slcr_compute_clocks() is called to accomplish the task, inside which device_is_in_reset() is called to actually make the attempt in vain. Rework reset_hold() and reset_exit() so that in the reset exit phase, the logic can really compute output clocks in reset_exit(). With this change, upstream U-Boot boots properly again with: $ qemu-system-arm -M xilinx-zynq-a9 -m 1G -display none -serial null -serial stdio \ -device loader,file=u-boot-dtb.bin,addr=0x4000000,cpu-num=0 Fixes: 38867cb7ec90 ("hw/misc/zynq_slcr: add clock generation for uarts") Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Message-id: 20210901124521.30599-2-bmeng.cn@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/char')
0 files changed, 0 insertions, 0 deletions