mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
hw/arm: Correctly disable FPU/DSP for some ARMSSE-based boards
The SSE-200 hardware has configurable integration settings which determine whether its two CPUs have the FPU and DSP: * CPU0_FPU (default 0) * CPU0_DSP (default 0) * CPU1_FPU (default 1) * CPU1_DSP (default 1) Similarly, the IoTKit has settings for its single CPU: * CPU0_FPU (default 1) * CPU0_DSP (default 1) Of our four boards that use either the IoTKit or the SSE-200: * mps2-an505, mps2-an521 and musca-a use the default settings * musca-b1 enables FPU and DSP on both CPUs Currently QEMU models all these boards using CPUs with both FPU and DSP enabled. This means that we are incorrect for mps2-an521 and musca-a, which should not have FPU or DSP on CPU0. Create QOM properties on the ARMSSE devices corresponding to the default h/w integration settings, and make the Musca-B1 board enable FPU and DSP on both CPUs. This fixes the mps2-an521 and musca-a behaviour, and leaves the musca-b1 and mps2-an505 behaviour unchanged. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20190517174046.11146-5-peter.maydell@linaro.org
This commit is contained in:
parent
e0cf7b8163
commit
a90a862b9e
3 changed files with 61 additions and 12 deletions
|
@ -50,6 +50,11 @@
|
|||
* address of each SRAM bank (and thus the total amount of internal SRAM)
|
||||
* + QOM property "init-svtor" sets the initial value of the CPU SVTOR register
|
||||
* (where it expects to load the PC and SP from the vector table on reset)
|
||||
* + QOM properties "CPU0_FPU", "CPU0_DSP", "CPU1_FPU" and "CPU1_DSP" which
|
||||
* set whether the CPUs have the FPU and DSP features present. The default
|
||||
* (matching the hardware) is that for CPU0 in an IoTKit and CPU1 in an
|
||||
* SSE-200 both are present; CPU0 in an SSE-200 has neither.
|
||||
* Since the IoTKit has only one CPU, it does not have the CPU1_* properties.
|
||||
* + Named GPIO inputs "EXP_IRQ" 0..n are the expansion interrupts for CPU 0,
|
||||
* which are wired to its NVIC lines 32 .. n+32
|
||||
* + Named GPIO inputs "EXP_CPU1_IRQ" 0..n are the expansion interrupts for
|
||||
|
@ -208,6 +213,8 @@ typedef struct ARMSSE {
|
|||
uint32_t mainclk_frq;
|
||||
uint32_t sram_addr_width;
|
||||
uint32_t init_svtor;
|
||||
bool cpu_fpu[SSE_MAX_CPUS];
|
||||
bool cpu_dsp[SSE_MAX_CPUS];
|
||||
} ARMSSE;
|
||||
|
||||
typedef struct ARMSSEInfo ARMSSEInfo;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue