_announce 2.2 KB

  1. This is a preliminary Plan 9 port to the Compulab Trimslice,
  2. containing a Tegra 2 SoC: a dual-core, (truly) dual-issue 1GHz
  3. Cortex-A9 v7a-architecture ARM system, *and* it comes in a case. VFP
  4. 3 floating-point hardware is present, but 5l doesn't yet generate
  5. those instructions. This is the first multiprocessor ARM port we've
  6. done, and much of the code should be reusable in future ports. There
  7. are still things to be done but it can run both processors and is
  8. believed to have adequate kernel support for VFP 3 floating-point.
  9. What's implemented.
  10. Two cpus running concurrently with level 1 and 2 caches enabled.
  11. Realtek 8168 Ethernet. A slightly dimmer 8169. Has to be jabbed with
  12. an electric cattle prod by software about once per day when it wedges.
  13. Profiling. Charles Forsyth fixed various bugs to make user-mode
  14. profiling on ARMs work for the first time ever.
  15. What's not (yet) implemented.
  16. USB. It probably just needs initialisation.
  17. NOR flash.
  18. Video.
  19. VFP3 floating point. The go 5l generates VFP 3 floating-point
  20. instructions (among other changes). Attempts to transplant just that
  21. code into our 5l failed to generate correct code. Eventually someone
  22. will get this to work, and then we'll be able to use the hardware
  23. floating-point. [Eventually someone did, thanks.] Even with only
  24. software emulation of floating-point, astro runs in under 3 seconds.
  25. In-line 64-bit arithmetic in 5[cl].
  26. And the really horrid peripherals: NAND flash and MMC.
  27. Known problems.
  28. kprof. kprof profiling doesn't work correctly, charging all CPU time
  29. to _start.
  30. Reboot. After an fshalt -r reboot (or two) with cpu1 enabled,
  31. accesses to pci registers (notably 0x80015000) in the newly-loaded
  32. kernel often hang. One of three watchdogs' reset should jolt the
  33. system back to life and force a reboot through u-boot when this
  34. happens. Sometimes the ethernet goes dead instead ("waiting for
  35. dhcp..." forever); this could be a different symptom of pci illness.
  36. Also following a reboot, cpu1's local (not tegra SoC shared) timers
  37. don't interrupt. Since the local watchdogs don't seem to actually
  38. interrupt nor generate resets when used in anger (as opposed to
  39. boot-time check-out), their loss is merely a mystery. The local timer
  40. not interrupting is more worrying.