Commit Graph

60 Commits

Author SHA1 Message Date
Nicholas Bishop 76f2ec7b61 Update license text in the readme 2025-02-05 16:52:14 -05:00
Philipp Schuster b9b30afd81 doc: final streamlining of README files
Now, the README are the entry into the repository and guide the user to the
actual documentation in lib.rs respectively on docs.rs.
2024-08-24 17:06:05 +02:00
Philipp Schuster 47aaec7b82 workspace: add uefi-std-example member 2024-08-21 13:46:35 +02:00
Philipp Schuster 048ffa1d9e doc: streamline sections Contributing, MSRV, and License
Copy MSRV, License, and Contributing sections to lib.rs and streamline it
with the README equivalents. We should also include these information in
lib.rs, as it is the main entry point into everything relevant about the
library. At least, it should from now on.

The big benefit is that the documentation on `docs.rs` then covers
everything relevant.
2024-08-07 10:04:39 +02:00
Philipp Schuster 876a2ccd74 doc: move Supported Architectures to lib.rs 2024-08-07 10:04:39 +02:00
Philipp Schuster 7a38b010e0 doc: drop Trivia section
We are already referring to the UEFI spec which is sufficient.
2024-08-07 10:04:07 +02:00
Philipp Schuster 1ad49ebbb5 doc: unified catchy new Crate introduction
The main idea here is to:
- tell that `uefi` is not only for EFI images but also apps that interact with
  UEFI functionality, such as parsing a memory map from a pre-defined chunk of
  memory.
- streamline the doc (cargo.toml, README, lib.rs)
2024-08-02 10:25:05 +02:00
Philipp Schuster 46d14a0a4e doc: remove some more uefi-services references 2024-04-19 16:52:29 +02:00
Philipp Schuster fb86b5a00f doc: update READMEs and CHANGELOGs 2024-04-14 11:18:50 +02:00
Philipp Schuster 4035cfa23b doc: cleanup & update README
- Better separation of developer documentation and user documentation
- More appealing introduction
2024-04-12 12:49:59 +02:00
Nicholas Bishop 68ac5fe89e Add links to the uefi-raw docs 2023-07-08 18:43:33 -04:00
Nicholas Bishop 2fec3f22b0 uefi-raw: Add mostly-empty package
This just adds the package and wires it into xtask. Nothing depends on it yet.
2023-04-14 20:19:34 -04:00
Nicholas Bishop 438be0953d Rework "Building UEFI programs" sections in the readmes
These sections were mostly duplicated between the top-level readme and the
`uefi` package's readme. In the top-level readme, it had a broken link to the
`BUILDING.md` document which has been deleted.

Since we now have "Documentation" sections in both those readmes, the "Building
UEFI programs" section was mostly redundent, except for the part about MSRV. Add
new MSRV sections, and in the top-level readme just link to the `uefi` package's
readme so that we don't have to update both places when the MSRV changes.
2023-03-07 17:03:49 -05:00
Nicholas Bishop 8ea88fbe5a xtask: Fully drop support for build-std
This requires an MSRV bump to 2022-11-22. (The build-std targets were
actually added in 2022-11-10, but there were some bugs in the dist at
that time that cause linker errors on i686.)
2023-02-22 13:00:19 -05:00
Nicholas Bishop f12ad2853d readme: Drop crate feature list
The feature lists are covered in the crate docstrings now, and the crate
READMEs link to that source as well. Drop the list here so we don't have
to worry about keeping them in sync.
2022-11-27 10:21:02 +01:00
Julian Stecklina 113a6c6fd7 Bump MSRV nightly to 2022-08-25
... to enable error_in_core feature.
2022-11-26 23:04:26 -05:00
Philipp Schuster 76b5a22981 rename crate features
To prevent confusion, this renames the `alloc` crate feature to
`global_allocator` and the `exts` feature to `alloc` to match the
conventions of the ecosystem.
2022-11-19 11:54:29 -05:00
Niklas Sombert 2c681393c2 Don't explicitly require compiler-builtins(-mem)
They are implicit on uefi as of
https://github.com/rust-lang/compiler-builtins/pull/473.

The first nightly version where this is working is 2022-08-08.
2022-11-15 17:54:57 -05:00
Nicholas Bishop ad6f0785c6 Update documentation section of readme 2022-10-09 13:32:40 +02:00
Nicholas Bishop 6ea13251a4 xtask: Add support for running examples
`cargo xtask run --example <name>` can now be used to run an
example. There are no examples to actually run yet, they will be added
in a later commit.

There's some added complexity here to get commands like `build` and
`clippy` to include the examples, see the long comment on `TargetTypes`
for details.

To make examples run faster, the QEMU runner does not set up the network
stuff (tftp and echo service) when running an example.
2022-09-27 20:12:09 -04:00
Nicholas Bishop 2fe8ed0157 Update readme to mention unstable features and nightly MSRV 2022-09-25 11:48:41 -04:00
Nicholas Bishop 26be8902f7 Add rust-toolchain.toml
Add a `rust-toolchain.toml` file that specifies the channel and
components needed to build uefi-rs. See
https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file for
documentation of the `rust-toolchain.toml` format.

Remove the `--toolchain` option from `xtask`, as using this file is a
simpler alternative. Also remove the instructions for installing the
nightly toolchain from the readme, as `rustup` will do this
automatically now.

The template application has been updated to add a
`rust-toolchain.toml`, and `BUILDING.md` has been updated to mention it
as well.

The `toolchain` action previously used in the CI is unmaintained and
doesn't understand `rust-toolchain.toml` (it does understand the older
`rust-toolchain` file, but that doesn't allow for including required
components). Since the runners come with rustup already installed, we
don't actually need a complex action here anyway, so just remove those
sections entirely. A few jobs need extra components installed, do that
with `rustup component add`.

Note that this change will also cause `xtask` itself to be built with
nightly. That should generally be fine, we only had it using stable
because of https://github.com/rust-osdev/uefi-rs/issues/397, and in the
future we can easily temporarily pin to a non-current nightly if a bug
occurs with an `xtask` dependency again.

Fixes https://github.com/rust-osdev/uefi-rs/issues/498
2022-09-06 11:21:01 -04:00
Nicholas Bishop 4221e42388 QEMU/OVMF improvements (#474)
Improvements to the `cargo xtask run` command to be more robust across different operating systems.
2022-08-04 12:26:06 +03:00
Nicholas Bishop 80a9600d73 Drop maintenance badges from README
It seems like these badges aren't getting dynamically updated the way
they're supposed to.
2022-03-17 12:00:46 +02:00
Nicholas Bishop 5c2d6ccfbd xtask: add ia32 target
This corresponds to the `i686-unknown-uefi` rust triple. The test runner
seems to work fine without any changes, so remove the note in the readme
saying the crate has only been tested on 64-bit.
2022-02-07 21:32:24 +02:00
Nicholas Bishop 9c1304022e Move badges from Cargo.toml to README.md (#349) 2022-01-24 16:31:29 +02:00
Nicholas Bishop a6bdfe54ad Replace build.py with the xtask pattern
This is a rewrite of the Python build.py code in Rust. See
https://github.com/matklad/cargo-xtask for details of the xtask
pattern. Essentially it's a pattern for extending cargo with
project-specific commands. Using Rust gives all the usual benefits of
checking stuff at compile time, thorough error handling, ease of
testing, etc. It is more verbose though, so the LOC goes up a bit.

* Removed `build-std` settings from `.cargo/config` because we want to
  run `xtask` with the default compiler config. The various `cargo
  xtask` commands handle adding the build-std args where needed. This
  has the side effect of obsoleting the
  `uefi-macros/tests/cargo_wrapper` hack.

* The build subcommand now builds the whole workspace (except for xtask,
  since that implicitly has already been built). So no separate CI step
  to test that the `tmplate` package builds is needed.

* Dropped the `--verbose` option, just always print the commands being
  run since it's helpful info.

* Looked like there was some vestigial timeout code for the VM test but
  no timeout was set that I could see; added a timeout to the github
  workflow yaml instead.
2022-01-19 15:04:08 +02:00
Nicholas Bishop 5b92cb3fc4 Move build.py to the root of the repo
build.py isn't really specific to uefi-test-runner; it has commands for
generating docs, running clippy, and running tests. Move it to the root
of the repo to reflect its broader role.

Updated various docs that reference build.py.
2021-12-23 15:14:48 +02:00
Gabriel Majeri 8aeac235ac Update and reorganize documentation 2021-11-29 18:36:30 -05:00
Nicholas Bishop d289e0c898 docs: update the lists of UEFI targets 2021-08-19 14:09:46 +03:00
Gil Mendes e482874f3d update blog link
this new article revision makes use of a recent version of uefi-rs and
some grammatical revisions
2020-08-27 08:26:52 +03:00
Gabriel Majeri 5e7a615d3e Add support for AArch64 to uefi-test-runner
This removes the `uefi-hello-world-aarch64` directory, and merges
the changes done to the `build.py` script.
2020-07-03 16:25:40 +03:00
Gabriel Majeri 56375412e6 Tutorial on how to add protocols 2020-06-24 11:46:21 +03:00
Gabriel Majeri 4f0c5477d9 Update CI badge 2020-05-13 21:44:55 +03:00
Gabriel Majeri 9778b415fc Add docs badge to README 2020-05-13 21:35:27 +03:00
Gabriel Majeri 502aecdc3b Move uefi-exts into core as an optional feature 2019-09-26 13:21:41 +03:00
Gabriel Majeri 818d5f5b1d Update docs related to entry point 2019-09-23 18:52:35 +03:00
Gabriel Majeri 96988362be Add badges to README 2019-09-22 08:39:31 +03:00
Gabriel Majeri a5e7040879 Make logger an optional feature 2019-09-22 08:31:57 +03:00
Joe Richey joerichey@google.com 9830f08ab3 Use x86_64-unknown-uefi target
Rust now supports uefi as a build target: https://github.com/rust-lang/rust/pull/56769

This change mainly eliminates references to the custom JSON target
file. It also requires that the entry point's name be changed to
`efi_main`.

Note that the "C" abi is now correct for EFI applications, but will
still be incorrect when uefi-rs is brought in as an external dependancy
for a different target. This means the entry point should always be
`extern "C"` while the table of function pointers should be `extern
"win64"`.
2019-02-06 14:44:26 +02:00
Hadrien G b57af64d90 Update README.md 2019-01-04 11:38:50 +01:00
Gabriel Majeri 0a63414a6a Update Travis CI link
Make it point to the organisation repo.

[skip ci]
2018-12-06 06:52:35 +02:00
Gabriel Majeri a556d226fb Add link to @gilomendes blog post
Fixes #58.
2018-10-01 06:44:20 +03:00
Gabriel Majeri f525b86ebe Fix function ABI (#39)
* Fix function ABI and drop support for 32-bit

* Update README to describe limitations
2018-09-24 10:36:23 +02:00
Gabriel Majeri e5ee849337 Add Travis CI build status badge 2018-09-20 13:19:16 +03:00
Gabriel Majeri 183dd33811 Update description of uefi-services 2018-09-20 07:42:24 +03:00
Gabriel Majeri cc8ff8598b Refactor uefi-utils crate, rename to uefi-exts
Instead of relying on global state, I plan to move all
the utility crates to a extension-trait based system.
2018-08-03 11:28:10 +03:00
Gabriel Majeri ad0db1769f Update image size 2018-06-04 10:03:00 +03:00
Gabriel Majeri b47cfc76dd Finish implementing the SimpleTextOutput protocol 2018-06-04 10:01:44 +03:00
Gabriel Majeri 327a025f1d Add an image to README
It shows `uefi-test-runner` running in QEMU.
2018-06-04 09:24:19 +03:00