On 04/27/2017 04:13 PM, Peter Maydell wrote: > On 27 April 2017 at 18:38, Wei Huang <w...@redhat.com> wrote: >> CONFIG_ARM_V7M is used to control the compilation of NVIC and SysTick >> Timer in QEMU. These two devices are not available when CONFIG_ARM_V7M >> is un-defined. This can cause problems with ARMv7M code as it is tightly >> integrated with NVIC for processing IRQ and exception. >> >> This patchset addresses the problem by introducing stub functions when >> CONFIG_ARM_V7M is not defined. It also makes the compilation of several >> existing v7M-profile SoCs depedent on CONFIG_ARM_V7M. > > Can you explain in what situation this causes a problem? > It's not clear to me what you're trying to fix...
In our downstream code, we try to minimize the number of supported devices to reduce the maintenance effort. ARM v7M is not in the supported list. For most unsupported devices, we can remove them by configuring default-configs file, except for CONFIG_ARM_V7M=y. This is because the ARMv7m code in target/arm/helper.c intertwines with NVIC code. As a result we have to keep NVIC and SysTick in order to compile helper.c, which is not desirable. This patchset tries to address the problem by making NVIC and SysTick removable. PS: There is a compilation issue under user mode. I will send out another version to address it (by adding #ifndef CONFIG_USER_ONLY in stub code). > > thanks > -- PMM >