-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
arch: arm64: ARMv8-A support for NuttX #6478
Conversation
@xiaoxiang781216 , please review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, this PR represents a tremendous amount of work and a huge potential improvement to NuttX! I will be very excited the day NuttX can run on SBCs such as the Raspberry Pi 4. I have given an initial cursory look over the 93 added files and I don't see any glaring obvious issues; currently I don't have the toolchain but I will try to at least do a test build with it soon. Hopefully we will get other reviews as well.
@qinwei2004 please rebase your patch to the latest mainline and squash the temp change to the master one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Accidentally merged some unrelated commits into this PR? Some changes in graphics, drivers, etc., which are good changes, seem unrelated to this PR. Suggest to separate these and submit in other PRs. Not necessary to wait for this PR to be merged, IMO. Thanks!
44e2c0b
to
c7d9b43
Compare
----Sorry, error submit and fix already, please check again, thanks |
aec6a6f
to
caad346
Compare
Yes, this looks much better. Thanks! |
In first commit log, s/Cotex-a53/Cortex-a53/ |
Yes, I agree. @qinwei2004 please squash your change, thanks. |
I think many comments have been addressed. I will not be able to do a review till Friday and I'm fine to address any leftovers with the next PR after this PR is merged. I will most probably post some comments to this PR after it is merged |
I squashed all change into two commit, please check |
let's merge the comment path into the master one too. it doesn't make sense to use two patch. |
the comments have merge, please check |
#define CONFIG_GICR_BASE 0x80a0000 | ||
|
||
#define CONFIG_RAMBANK1_ADDR 0x40000000 | ||
#define CONFIG_RAMBANK1_SIZE MB(128) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
above at line 32 of this file
@xiaoxiang781216 @pkarashchenko @hartmannathan |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few minor comments, then please squash and let's move forward to merging
@pkarashchenko , please check again |
Please squash into a single commit |
N/A Summary: Arm64 support for NuttX, Features supported: 1. Cortex-a53 single core and SMP support: it's can run into nsh shell at qemu virt machine. 2. qemu-a53 board configuration support: it's only for evaluate propose 3. FPU support for armv8-a: FPU context switching at NEON/floating-point TRAP is supported. 4. psci interface, armv8 cache operation(data cache) and smccc support. 5. fix mass code style issue, thank for @xiaoxiang781216, @hartmannathan @pkarashchenko Please refer to boards/arm64/qemu/qemu-a53/README.txt for detail Note: 1. GCC MACOS issue The GCC 11.2 toolchain for MACOS may get crash while compiling float operation function, the following link describe the issue and give analyse at the issue: https://bugs.linaro.org/show_bug.cgi?id=5825 it's seem GCC give a wrong instruction at certain machine which without architecture features the new toolchain is not available still, so just disable the MACOS cibuild check at present Signed-off-by: qinwei1 <[email protected]>
Done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beautiful! LGTM
I would like to say Congratulations on this HUGE PR! In the Single Core case, In the SMP case, it seems that Anyway, this PR is a very good starting point for NuttX on Arm64 and I look forward to seeing NuttX on real Arm64 hardware! |
Yes, for SMP,the PR in qemu seem behave very different!! things change when I debug the PR with a real Ubuntu PC, the crash not occurs anymore in that environment. I cannot explain why I see the phenomenon, but I cannot say it's certain a bug in qemu. because maybe with different speed it have different execution order between these two environment. My real Ubuntu environment I have a IMX8 porting patch but some change need to be done, I will testing it and submit ASAP |
Hi @qinwei2004 thank you so much for implementing Arm64 support! I have written an article that's based on your work, I hope to run it on PinePhone soon :-) "Apache NuttX RTOS on Arm Cortex-A53: How it might run on PinePhone" |
Summary:
Arm64 support for NuttX, Features supported:
qemu virt machine.
TRAP is supported.
Please refer to boards/arm64/qemu/qemu-a53/README.txt for detail
Signed-off-by: qinwei1 [email protected]
Impact
No impact to the other platform
Testing
testing with ostest, smp.