Giter Club home page Giter Club logo

cortex-a's People

Contributors

agsaidi avatar albanseurat avatar andre-richter avatar berkus avatar crzwdjk avatar datacorrupted avatar dequbed avatar erikjv avatar javier-varez avatar javimerino avatar landhb avatar qwandor avatar sreehax avatar vbe0201 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cortex-a's Issues

AArch32 support

I'm interested in using this library with Raspberry Pi 2, which is 32-bit. Are there any pointers available on the best way to implement it? Thanks.

[Question] BeagleBone Black Support

Hi, I'm new to this space and came across this repo. Does this have support for BeagleBone Black? If so, do you have any samples to possibly get noobs started? Thanks for any info.

Protect register access with unsafe if memory safety could be compromised

Currently, we allow any register access without the unsafe keyword.

However, there are some registers that can potentially compromise Rust's memory safety one way or the other. For example, registers that control virtual memory could be used to install page tables that create aliases which would break Rust's memory safety guarantees.

Manipulating these registers should be guarded with unsafe to stay true to Rust. However, we ideally need support for this from tock-register-interface first to pull this off: tock/tock#3244

Re-release under new name. Brainstorming.

The name of this crate is not very fitting, I would like to change that.

I want to explore re-releasing this crate and want to brainstorm a better name. For quite some time it has been clear that the crate covers mainly AArch64 CPU register access wrappers and wrappers for trivial assembly snippets containing single or a few machine instructions such as barriers or control flow instructions. And I think that is a good scope that keep.
AArch32 is explicitly intended to play no role so mustn't be considered for the new crate's name.

I am currently thinking about aarch64-cpu. Any objections to that?

Adding a few users and contributors to get feedback: @berkus @Javier-varez @vbe0201 @raw-bin

Cortex A7 support?

Hello,

First of all, I am completely new to embedded development and relatively new to Rust, but I have an ARMv7 board with the Allwinner A20 (Olimex A20 OLinuXinoLime2 to be precise) laying around that I would like to experiment and learn embedded Rust with.

I saw that the PR for the Cortex A working group only mentioned aarch64 while the A20 uses Cortex A7 cores which would be the armv7 target.

Is there any work happening/done for supporting bare metal armv7 yet? Is this something that I should even attempt to work on as someone new to embedded?

Thanks in advance!

Supporting 32 bit for cortex-a

I have a system that's running A53 arm core in 32 bit mode. I'm interested in integrating Rust into this environment.
If I understand correctly, this project currently supports only 64-bit cortex-a. Can someone guide me as to what support is required to get 32 bit supported? I might give it a shot... thanks!

Nightly feature?

CC @AGSaidi since this is blocking the release of #38.

Hi @qwandor,

I am in the process of doing a new release (to make #38 public). However, I have a question regarding your PR #37.
When I build with with stable Rust using

cargo build --target aarch64-unknown-none-softfloat --no-default-features

it errors out on the the core intrinsics use in asm.rs:

error[E0658]: use of unstable library feature 'core_intrinsics': intrinsics are unlikely to ever be stabilized, instead they should be used through stabilized interfaces in the rest of the standard library
  --> src/asm.rs:96:9
   |
96 |         core::intrinsics::unreachable()
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: add `#![feature(core_intrinsics)]` to the crate attributes to enable

error[E0658]: use of unstable library feature 'core_intrinsics': intrinsics are unlikely to ever be stabilized, instead they should be used through stabilized interfaces in the rest of the standard library
   --> src/asm.rs:111:9
    |
111 |         core::intrinsics::unreachable()
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: add `#![feature(core_intrinsics)]` to the crate attributes to enable

For more information about this error, try `rustc --explain E0658`.
error: could not compile `cortex-a` due to 2 previous errors

Did you not stumble over these back then, or am I doing something wrong?

Consider supporting stable Rust

This crate currently requires nightly Rust, which as far as I can see is just because of the tock-registers crate using #![feature(const_fn_trait_bound)]. I'd like to be able to use at least some parts of the functionality provided by cortex-a on a stable toolchain. Would it be possible to have the parts that require nightly behind a feature, so the other parts can be used on stable?

ERET Opcode

I'm currently researching changing from EL2 to EL1 on a RaspberryPi 3 (Cortex-A53, AArch64).

I'm using the example found on this stackoverflow post for a starting point:
https://stackoverflow.com/questions/46194098/armv8-changing-from-el3-to-el1-secure

The cortex-a package provides all the necessary register mappings (thank you very much for that). I was wondering if there's a cortex-a library specific way to handle the necessary ERET opcode or if I should just use asm!("ERET");?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.