Abdiel Janulgue
9901addae6
samples: rust: add Rust dma test sample driver
...
Add a simple driver to exercise the basics of the Rust DMA
coherent allocator bindings.
Suggested-by: Danilo Krummrich <dakr@kernel.org >
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@gmail.com >
Acked-by: Danilo Krummrich <dakr@kernel.org >
Link: https://lore.kernel.org/r/20250317185345.2608976-4-abdiel.janulgue@gmail.com
[ Renamed Kconfig symbol and moved it up. Migrated to the new
`authors` key in `module!`. Fixed module name in description
and typo in commit message. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org >
2025-03-20 21:44:46 +01:00
Lyude Paul
78418f300d
rust/kernel: Add faux device bindings
...
This introduces a module for working with faux devices in rust, along with
adding sample code to show how the API is used. Unlike other types of
devices, we don't provide any hooks for device probe/removal - since these
are optional for the faux API and are unnecessary in rust.
Signed-off-by: Lyude Paul <lyude@redhat.com >
Cc: Maíra Canal <mairacanal@riseup.net >
Cc: Danilo Krummrich <dakr@kernel.org >
Cc: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com >
Acked-by: Danilo Krummrich <dakr@kernel.org >
Link: https://lore.kernel.org/r/2025021026-exert-accent-b4c6@gregkh
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2025-02-13 16:58:58 +01:00
Danilo Krummrich
b2e8a83242
samples: rust: add Rust platform sample driver
...
Add a sample Rust platform driver illustrating the usage of the platform
bus abstractions.
This driver probes through either a match of device / driver name or a
match within the OF ID table.
Reviewed-by: Rob Herring (Arm) <robh@kernel.org >
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
Tested-by: Dirk Behme <dirk.behme@de.bosch.com >
Tested-by: Fabien Parent <fabien.parent@linaro.org >
Link: https://lore.kernel.org/r/20241219170425.12036-16-dakr@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2024-12-20 17:43:02 +01:00
Danilo Krummrich
685376d18e
samples: rust: add Rust PCI sample driver
...
This commit adds a sample Rust PCI driver for QEMU's "pci-testdev"
device. To enable this device QEMU has to be called with
`-device pci-testdev`.
The same driver shows how to use the PCI device / driver abstractions,
as well as how to request and map PCI BARs, including a short sequence of
MMIO operations.
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
Tested-by: Dirk Behme <dirk.behme@de.bosch.com >
Link: https://lore.kernel.org/r/20241219170425.12036-12-dakr@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2024-12-20 17:21:04 +01:00
Lee Jones
fdb1ac6c30
samples: rust: Provide example using the new Rust MiscDevice abstraction
...
This sample driver demonstrates the following basic operations:
* Register a Misc Device
* Create /dev/rust-misc-device
* Provide open call-back for the aforementioned character device
* Operate on the character device via a simple ioctl()
* Provide close call-back for the character device
Signed-off-by: Lee Jones <lee@kernel.org >
Reviewed-by: Danilo Krummrich <dakr@kernel.org >
Link: https://lore.kernel.org/r/20241213134715.601415-3-lee@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2024-12-16 16:12:45 +01:00
Miguel Ojeda
22193c586b
samples: rust: fix rust_print build making it a combined module
...
The `rust_print` module, when built as a module, fails to build with:
ERROR: modpost: missing MODULE_LICENSE() in samples/rust/rust_print_events.o
ERROR: modpost: "__tracepoint_rust_sample_loaded" [samples/rust/rust_print.ko] undefined!
ERROR: modpost: "rust_do_trace_rust_sample_loaded" [samples/rust/rust_print.ko] undefined!
Fix it by building it as a combined one.
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Alex Gaynor <alex.gaynor@gmail.com >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Boqun Feng <boqun.feng@gmail.com >
Cc: Gary Guo <gary@garyguo.net >
Cc: Björn Roy Baron <bjorn3_gh@protonmail.com >
Cc: Benno Lossin <benno.lossin@proton.me >
Cc: Andreas Hindborg <a.hindborg@kernel.org >
Cc: Alice Ryhl <aliceryhl@google.com >
Cc: Trevor Gross <tmgross@umich.edu >
Cc: "Linux Next Mailing List" <linux-next@vger.kernel.org >
Link: https://lore.kernel.org/20241111220805.708889-1-ojeda@kernel.org
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au >
Closes: https://lore.kernel.org/all/20241108152149.28459a72@canb.auug.org.au/
Fixes: 91d39024e1 ("rust: samples: add tracepoint to Rust sample")
Signed-off-by: Miguel Ojeda <ojeda@kernel.org >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2024-11-12 09:21:48 -05:00
Alice Ryhl
91d39024e1
rust: samples: add tracepoint to Rust sample
...
This updates the Rust printing sample to invoke a tracepoint. This
ensures that we have a user in-tree from the get-go even though the
patch is being merged before its real user.
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Josh Poimboeuf <jpoimboe@kernel.org >
Cc: Jason Baron <jbaron@akamai.com >
Cc: Ard Biesheuvel <ardb@kernel.org >
Cc: Miguel Ojeda <ojeda@kernel.org >
Cc: Alex Gaynor <alex.gaynor@gmail.com >
Cc: Wedson Almeida Filho <wedsonaf@gmail.com >
Cc: Gary Guo <gary@garyguo.net >
Cc: " =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= " <bjorn3_gh@protonmail.com >
Cc: Benno Lossin <benno.lossin@proton.me >
Cc: Andreas Hindborg <a.hindborg@kernel.org >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Sean Christopherson <seanjc@google.com >
Cc: Uros Bizjak <ubizjak@gmail.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Will Deacon <will@kernel.org >
Cc: Marc Zyngier <maz@kernel.org >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Ryan Roberts <ryan.roberts@arm.com >
Cc: Fuad Tabba <tabba@google.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Anup Patel <apatel@ventanamicro.com >
Cc: Andrew Jones <ajones@ventanamicro.com >
Cc: Alexandre Ghiti <alexghiti@rivosinc.com >
Cc: Conor Dooley <conor.dooley@microchip.com >
Cc: Samuel Holland <samuel.holland@sifive.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: Tiezhu Yang <yangtiezhu@loongson.cn >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Tianrui Zhao <zhaotianrui@loongson.cn >
Link: https://lore.kernel.org/20241030-tracepoint-v12-3-eec7f0f8ad22@google.com
Reviewed-by: Boqun Feng <boqun.feng@gmail.com >
Signed-off-by: Alice Ryhl <aliceryhl@google.com >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2024-11-04 16:21:44 -05:00
Miguel Ojeda
c3630df66f
rust: samples: add rust_print example
...
Add example to exercise the printing macros (`pr_*!`) introduced
in the previous patches.
Reviewed-by: Finn Behrens <me@kloenk.dev >
Reviewed-by: Wei Liu <wei.liu@kernel.org >
Tested-by: Sergio González Collado <sergio.collado@gmail.com >
Signed-off-by: Miguel Ojeda <ojeda@kernel.org >
2022-12-01 20:13:11 +01:00
Miguel Ojeda
e4fc6580b0
samples: add first Rust examples
...
The beginning of a set of Rust modules that showcase how Rust
modules look like and how to use the abstracted kernel features.
It also includes an example of a Rust host program with
several modules.
These samples also double as tests in the CI.
Reviewed-by: Kees Cook <keescook@chromium.org >
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Co-developed-by: Alex Gaynor <alex.gaynor@gmail.com >
Signed-off-by: Alex Gaynor <alex.gaynor@gmail.com >
Co-developed-by: Finn Behrens <me@kloenk.de >
Signed-off-by: Finn Behrens <me@kloenk.de >
Co-developed-by: Wedson Almeida Filho <wedsonaf@google.com >
Signed-off-by: Wedson Almeida Filho <wedsonaf@google.com >
Co-developed-by: Milan Landaverde <milan@mdaverde.com >
Signed-off-by: Milan Landaverde <milan@mdaverde.com >
Signed-off-by: Miguel Ojeda <ojeda@kernel.org >
2022-09-28 09:03:08 +02:00