[kernel][arm64] Replace arm_boot_cpu_lock with atomics

During boot, the secondary CPUs need to wait for the primary to
complete some initialization before they can proceed.  Prior to this
change, it was accomplished using a special spinlock that started in
the locked state (arm_boot_cpu_lock).  Now, we use an atomic integer
to signal that the secondary CPUs may proceed.

Why change it?  Separately, spinlocks are being enhanced to keep track
of the number of spinlocks held (ZX-147).  For this use case, we don't
really need a spinlock to synchronize with the secondary CPUs and the
specialized nature of arm_boot_cpu_lock would require additional logic
to ensure the spinlock count is accurate.

Test: repeatedly booted vim2, qemu/arm64, and qemu/arm64+kvm(x2)
Change-Id: Id1f08213c7c09d61f40a1ec41f52038cbec90f24
1 file changed
tree: 9e8f15de8cb649e45cf025c73d22d3e87b3d71a7
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. infra/
  9. peridot/
  10. products/
  11. scripts/
  12. sdk/
  13. src/
  14. third_party/
  15. tools/
  16. zircon/
  17. .clang-format
  18. .clang-tidy
  19. .dir-locals.el
  20. .gitattributes
  21. .gitignore
  22. .gn
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. LICENSE
  28. OWNERS
  29. PATENTS
  30. README.md
  31. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.