Skip to content
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

Tracking issue: Feature completeness #2

Open
23 of 40 tasks
vbe0201 opened this issue Mar 3, 2020 · 0 comments
Open
23 of 40 tasks

Tracking issue: Feature completeness #2

vbe0201 opened this issue Mar 3, 2020 · 0 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@vbe0201
Copy link
Member

vbe0201 commented Mar 3, 2020

This is a tracking issue for the features of this library.

The TRM

The Tegra X1 Technical Reference Manual (TRM), along with the tegra210 drivers in the Linux kernel are probably the most complete and detailed sources of documentation of Tegra X1 SoC functionality out there. (Beware: Both are bad, but one better than the other!)

The TRM can be obtained from NVIDIA's download center as Tegra X1 (SoC) Technical Reference Manual as soon as you've created an account for free. It documents most hardware capabilities, which is a good starting point for new drivers.

Implementation Guidelines

  • Fundamentally, it is expected that registers are wrapped through register-rs and exposed.

    • Even if actual logic can't be implemented due to the lack of knowledge/documentation, users have the possibility to do that themselves.
    • An abstract driver implementation may not fit the needs of the user, giving them full control over what they are trying to achieve.
  • On top of the registers, a reference implementation of a driver can be built.

    • It is expected that the core functionality of a device is exposed.
    • These implementations should provide a safe and easy-to-use API for interfacing with the hardware.
    • Code is expected to be well-documented so readers can understand the logic and purpose behind it.

Features

  • 2. Address and Interrupt Map

  • 3. Interrupt Controller

  • 4. Semaphores

  • 5. Clock and Reset Controller

  • 6. CL-DVFS

  • 7. Atomics

  • 8. Timers

  • 9. Multi-Purpose I/O Pins and Pin Multiplexing (Pinmux)

  • 10. Activity Monitor

  • 11. Real-Time Clock

  • 12. Power Management Controller

  • 13. Boot Process (WIP)

    • Fuses
  • 14. Host Subsystem

  • 15. Video Image Compositor (VIC)

  • 16. CPU Complex

  • 17. Flow Controller

  • 18. Memory Controller

  • 19. AHB

  • 21. APB

  • 22. USB Complex

  • 23. Audio Processing Engine

  • 24. Display Controller

  • 25. Color Decompression Engine

  • 26./27. Display Interfaces

  • 28. HDMI CEC

  • 29./30. MIPI-CSI

  • 31. Video Input (VI)

  • 32. SD/MMC Controller

  • 33. SATA Controller

  • 34. PCI Express Controller

  • 35. I2C Controller

  • 36. UART Controller

  • 37. Serial Peripheral Interface (SPI) Controller (WIP)

  • 38. Quad Serial Peripheral Interface (QSPI) Controller (WIP)

  • 39. PWM Controller

  • 41. Boot and Power Management Processor-Lite

  • 42. CoreSight (Debugging)

Not mentioned on the TRM but also relevant:

  • Tegra Security Co-Processor (TSEC)

  • Security Engine (SE)

  • NVHOST

@vbe0201 vbe0201 added enhancement New feature or request help wanted Extra attention is needed labels Mar 3, 2020
@vbe0201 vbe0201 pinned this issue Mar 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant