Message ID | 20220405223640.2595730-1-wuhaotsh@google.com (mailing list archive) |
---|---|
Headers | show |
Series | hw/arm: Add NPCM8XX support | expand |
On Tue, 5 Apr 2022 at 23:37, Hao Wu <wuhaotsh@google.com> wrote: > > NPCM8XX BMCs are the successors of the NPCM7XX BMCs. They feature > quad-core ARM Cortex A35 that supports both 32 bits and 64 bits > operations. Here and in the documentation patch you say "Cortex-A35", but the patch implementing the new SoC creates Cortex-A53 CPUs. Which is correct ? thanks -- PMM
Thanks for all the comments you gave! I'll go over and address them recently. For this question, The actual CPU should be cortex A35. However, I don't see them supported in QEMU. If I inserted CPU with "cortex-a35" QEMU will complain: qemu-system-aarch64: missing object type 'cortex-a35-arm-cpu' What should I do here? On Thu, Apr 21, 2022 at 3:45 AM Peter Maydell <peter.maydell@linaro.org> wrote: > On Tue, 5 Apr 2022 at 23:37, Hao Wu <wuhaotsh@google.com> wrote: > > > > NPCM8XX BMCs are the successors of the NPCM7XX BMCs. They feature > > quad-core ARM Cortex A35 that supports both 32 bits and 64 bits > > operations. > > Here and in the documentation patch you say "Cortex-A35", but the > patch implementing the new SoC creates Cortex-A53 CPUs. Which > is correct ? > > thanks > -- PMM >
On Thu, 21 Apr 2022 at 17:29, Hao Wu <wuhaotsh@google.com> wrote: > > Thanks for all the comments you gave! I'll go over and address them recently. > > For this question, The actual CPU should be cortex A35. However, I don't see > them supported in QEMU. If I inserted CPU with "cortex-a35" QEMU will complain: > qemu-system-aarch64: missing object type 'cortex-a35-arm-cpu' > > What should I do here? You need to implement the new CPU type first... This means adding something to target/arm/cpu64.c which will look similar to the existing CPU handling. You need to watch out for: * getting all the ID register values right (check the TRM for the CPU) * implementing whatever the right impdef system registers are * checking whether QEMU is still missing support for any of the architectural features that the A35 implements (what QEMU supports is listed in docs/system/arm/emulation.rst) It's typically not much code but quite a lot of cross-checking against the TRM for the CPU that we're not missing pieces... Since you can add the A35 as a supported CPU type for the 'virt' board you can do A35 support as a separate patchset that doesn't depend on the npmc8xx work. https://patchew.org/QEMU/20220417174426.711829-1-richard.henderson@linaro.org/20220417174426.711829-60-richard.henderson@linaro.org/ is an example of how to add a new CPU (in that case the A76), at the end of a large patchset from RTH that's still going through code review. -- PMM
Thanks! I can add the new CPU type to virt in a separate patch set. It might take a while before I send out that patch set. Since this patch set will be dependent on that I won't send out a v2 on this patch set until that finishes. On Thu, Apr 21, 2022 at 9:42 AM Peter Maydell <peter.maydell@linaro.org> wrote: > On Thu, 21 Apr 2022 at 17:29, Hao Wu <wuhaotsh@google.com> wrote: > > > > Thanks for all the comments you gave! I'll go over and address them > recently. > > > > For this question, The actual CPU should be cortex A35. However, I don't > see > > them supported in QEMU. If I inserted CPU with "cortex-a35" QEMU will > complain: > > qemu-system-aarch64: missing object type 'cortex-a35-arm-cpu' > > > > What should I do here? > > You need to implement the new CPU type first... This means adding > something to target/arm/cpu64.c which will look similar to the > existing CPU handling. You need to watch out for: > * getting all the ID register values right (check the TRM for the CPU) > * implementing whatever the right impdef system registers are > * checking whether QEMU is still missing support for any of the > architectural features that the A35 implements (what QEMU > supports is listed in docs/system/arm/emulation.rst) > > It's typically not much code but quite a lot of cross-checking > against the TRM for the CPU that we're not missing pieces... > Since you can add the A35 as a supported CPU type for the 'virt' > board you can do A35 support as a separate patchset that doesn't > depend on the npmc8xx work. > > > https://patchew.org/QEMU/20220417174426.711829-1-richard.henderson@linaro.org/20220417174426.711829-60-richard.henderson@linaro.org/ > is an example of how to add a new CPU (in that case the A76), at > the end of a large patchset from RTH that's still going through > code review. > > -- PMM >