Skip to content

HAL: Upstream from OVL works #14

Open
@jamesmunns

Description

@jamesmunns

Hey, I've been working on ATSAME70 support specifically in a repo as part of some contracting work (OVL => OneVariable UG Labs).

Since I've been focused on just this one chip, and a relatively limited set of features, it's probably not ready to merge 1:1, but just in case someone is interested, the repo is here, and I've published the crate under the name ovl-atsamx7x-hal for now, until this work gets upstreamed.

So far, I have the following components implemented:

  • EFC - basically just the ability to set wait states
  • GMAC - some corners rounded, really only tested to work with the KSZ8061 PHY, but capable of "doing ethernet" and has a smoltcp implementation capable of maintaining a TCP connection. Only supports one set of pins ATM
  • PIOx - generally all 5 ports are supported, and some pin functionality is working (mostly setting ABCD peripheral modes, and output pins)
  • PMC - Pretty rudimentary support, but enough to set some prescalers. I mostly use it to reach a single clock config (300MHz CPU clock, 150MHz MCK)
  • RTT - A fixed 8192kHz frequency, usable for rtic-monotonic::Monotonic and groundhog::RollingTimer trait implementations
  • Serial - I haven't really touched the upstream code here, I'm not using serial
  • SPI - Basic "transfer" API support for the SPI0 peripheral. Only supports one set of pins ATM
  • WDT - Basically just enough to shut it off

Feel free to take any of this work if you want/need it before I get a chance to upstream! I've kept the 0BSD license, so you can do what you'd like.

Edit (2022-04-22): Added RTT impl

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions