qemu/hw/arm
Havard Skinnemoen 2ddae9cc04 hw/arm/npcm7xx: add board setup stub for CPU and UART clocks
When booting directly into a kernel, bypassing the boot loader, the CPU and
UART clocks are not set up correctly. This makes the system appear very
slow, and causes the initrd boot test to fail when optimization is off.

The UART clock must run at 24 MHz. The default 25 MHz reference clock
cannot achieve this, so switch to PLL2/2 @ 480 MHz, which works
perfectly with the default /20 divider.

The CPU clock should run at 800 MHz, so switch it to PLL1/2. PLL1 runs
at 800 MHz by default, so we need to double the feedback divider as well
to make it run at 1600 MHz (so PLL1/2 runs at 800 MHz).

We don't bother checking for PLL lock because we know our emulated PLLs
lock instantly.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Havard Skinnemoen <hskinnemoen@google.com>
Message-id: 20200911052101.2602693-13-hskinnemoen@google.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2020-09-14 14:24:59 +01:00
..
allwinner-a10.c hw/sd/allwinner-sdhost: Use AddressSpace for DMA transfers 2020-08-28 10:02:45 +01:00
allwinner-h3.c target-arm queue: 2020-08-28 15:14:40 +01:00
armsse.c target-arm queue: 2020-08-28 15:14:40 +01:00
armv7m.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
aspeed_ast2600.c aspeed_soc: Rename memmap/irqmap enum constants 2020-08-27 14:04:54 -04:00
aspeed_soc.c aspeed_soc: Rename memmap/irqmap enum constants 2020-08-27 14:04:54 -04:00
aspeed.c hw/arm/aspeed: Add board model for Supermicro X11 BMC 2020-09-01 14:21:50 +02:00
bcm2835_peripherals.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
bcm2836.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
boot.c hw/arm/boot: Fix MTE for EL3 direct kernel boot 2020-07-27 16:12:10 +01:00
collie.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
cubieboard.c qom: Use returned bool to check for failure, Coccinelle part 2020-07-10 15:18:08 +02:00
digic_boards.c qdev: Use returned bool to check for qdev_realize() etc. failure 2020-07-10 15:01:06 +02:00
digic.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
exynos4_boards.c sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 1 2020-06-15 22:06:04 +02:00
exynos4210.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
fsl-imx6.c Add the ability to change the FEC PHY MDIO device number on i.MX6 processor 2020-07-13 14:36:08 +01:00
fsl-imx6ul.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
fsl-imx7.c Add the ability to change the FEC PHY MDIO devices numbers on i.MX7 processor 2020-07-13 14:36:08 +01:00
fsl-imx25.c Add the ability to change the FEC PHY MDIO device number on i.MX25 processor 2020-07-13 14:36:07 +01:00
fsl-imx31.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
gumstix.c hw/arm/gumstix: Simplify since the machines are little-endian only 2020-03-05 16:09:14 +00:00
highbank.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
imx25_pdk.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
integratorcp.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
Kconfig hw/ssi: NPCM7xx Flash Interface Unit device model 2020-09-14 14:24:59 +01:00
kzm.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
mainstone.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
mcimx6ul-evk.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
mcimx7d-sabre.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
meson.build hw/arm: Add two NPCM7xx-based machines 2020-09-14 14:24:58 +01:00
microbit.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
mps2-tz.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
mps2.c hw/arm/mps2: New board model mps2-an500 2020-09-14 14:23:19 +01:00
msf2-soc.c msf2-soc, stellaris: Don't wire up SYSRESETREQ 2020-08-03 17:55:03 +01:00
msf2-som.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
musca.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
musicpal.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
netduino2.c hw/arm/netduino2, netduinoplus2: Set system_clock_scale 2020-08-03 17:55:03 +01:00
netduinoplus2.c hw/arm/netduino2, netduinoplus2: Set system_clock_scale 2020-08-03 17:55:03 +01:00
npcm7xx_boards.c hw/arm: Wire up BMC boot flash for npcm750-evb and quanta-gsj 2020-09-14 14:24:59 +01:00
npcm7xx.c hw/arm/npcm7xx: add board setup stub for CPU and UART clocks 2020-09-14 14:24:59 +01:00
nrf51_soc.c hw/arm/nrf51_soc: Set system_clock_scale 2020-08-03 17:55:31 +01:00
nseries.c hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple() 2020-07-16 12:30:54 -05:00
omap1.c hw/arm/omap1:Remove redundant statement in omap_clkdsp_read() 2020-09-01 11:53:44 +02:00
omap2.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
omap_sx1.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
orangepi.c allwinner-h3: Rename memmap enum constants 2020-08-27 14:04:54 -04:00
palm.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
pxa2xx_gpio.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
pxa2xx_pic.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
pxa2xx.c trivial patches pull request 20200911 2020-09-12 14:23:15 +01:00
raspi.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
realview.c hw/sd/pl181: Do not create SD card within the SD host controller 2020-08-21 16:22:43 +02:00
sabrelite.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
sbsa-ref.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
smmu-common.c hw/arm/smmuv3: Support HAD and advertise SMMUv3.1 support 2020-08-24 10:02:06 +01:00
smmu-internal.h hw/arm/smmu-common: Manage IOTLB block entries 2020-08-24 10:02:06 +01:00
smmuv3-internal.h hw/arm/smmuv3: Advertise SMMUv3.2 range invalidation 2020-08-24 10:02:06 +01:00
smmuv3.c hw/arm/smmuv3: Advertise SMMUv3.2 range invalidation 2020-08-24 10:02:06 +01:00
spitz.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
stellaris.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
stm32f205_soc.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
stm32f405_soc.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
strongarm.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
strongarm.h hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
sysbus-fdt.c hw/arm/virt: vTPM support 2020-03-05 12:18:16 -05:00
tosa.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
trace-events hw/arm/smmuv3: Support HAD and advertise SMMUv3.1 support 2020-08-24 10:02:06 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
versatilepb.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
vexpress.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
virt-acpi-build.c hw/arm/virt-acpi-build:Remove dead assignment in build_madt() 2020-09-01 11:52:25 +02:00
virt.c hw: add compat machines for 5.2 2020-08-19 10:45:48 -04:00
xilinx_zynq.c This PR includes multiple fixes and features for RISC-V: 2020-09-13 20:29:35 +01:00
xlnx-versal-virt.c hw/arm: versal-virt: Correct the tx/rx GEM clocks 2020-09-14 14:24:15 +01:00
xlnx-versal.c hw/arm: xlnx: Set all boards' GEM 'phy-addr' property value to 23 2020-09-09 15:54:18 -07:00
xlnx-zcu102.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
xlnx-zynqmp.c hw/arm: xlnx: Set all boards' GEM 'phy-addr' property value to 23 2020-09-09 15:54:18 -07:00
z2.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00