[kernel][riscv64] Avoid generating .got in start.S code

This cleans up the start.S code to be a little tighter in its
reuse of computations in registers.  For the one place this code
relies on loading a relocated value, it now uses an explicit
RELRO data word instead of letting the assembler / linker
generate an implicit .got entry with the same relocation.  This
makes it easier to rule out .got in the ELF kernel image, since
all other instances would be undesired compiler-generated cases
or other accidental uses in assembly (e.g. `la` used vs `lla`).

Change-Id: I632f80c5eddd7dca7e0f2ad1434badd7c3c54dd8
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1154012
Reviewed-by: Travis Geiselbrecht <travisg@google.com>
Fuchsia-Auto-Submit: Roland McGrath <mcgrathr@google.com>
Reviewed-by: Joshua Seaton <joshuaseaton@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
1 file changed
tree: c8b68703e1a03d77226898245808779463c61750
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. infra/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. .ignore
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyproject.toml
  33. pyrightconfig.json
  34. README.md
  35. rustfmt.toml
  36. shac.star
  37. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.