* Rust e1000 driver (Intel Ethernet adapter)
@ 2022-09-19 1:38 FUJITA Tomonori
2022-09-19 1:59 ` Alex Gaynor
2022-10-23 7:06 ` FUJITA Tomonori
0 siblings, 2 replies; 9+ messages in thread
From: FUJITA Tomonori @ 2022-09-19 1:38 UTC (permalink / raw)
To: rust-for-linux
Hi,
I've implemented Rust e1000 driver (Intel Ethernet adapter):
https://github.com/fujita/rust-e1000
There are many places to use the C bindings directly for now. I try to
clean up and push abstractions for NIC drivers (DMA, PCI, network,
etc).
I can ping on QEMU. Needs a bit more work for real hardware.
Thanks,
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-19 1:38 Rust e1000 driver (Intel Ethernet adapter) FUJITA Tomonori
@ 2022-09-19 1:59 ` Alex Gaynor
2022-09-28 14:31 ` Geert Stappers
2022-10-23 7:06 ` FUJITA Tomonori
1 sibling, 1 reply; 9+ messages in thread
From: Alex Gaynor @ 2022-09-19 1:59 UTC (permalink / raw)
To: FUJITA Tomonori; +Cc: rust-for-linux
That's great to see. Thanks for your work on this and looking forward
to seeing the pull requests!
Alex
On Sun, Sep 18, 2022 at 9:57 PM FUJITA Tomonori <tomo@exabit.dev> wrote:
>
> Hi,
>
> I've implemented Rust e1000 driver (Intel Ethernet adapter):
>
> https://github.com/fujita/rust-e1000
>
> There are many places to use the C bindings directly for now. I try to
> clean up and push abstractions for NIC drivers (DMA, PCI, network,
> etc).
>
> I can ping on QEMU. Needs a bit more work for real hardware.
>
> Thanks,
--
All that is necessary for evil to succeed is for good people to do nothing.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-19 1:59 ` Alex Gaynor
@ 2022-09-28 14:31 ` Geert Stappers
2022-09-28 15:24 ` Miguel Ojeda
0 siblings, 1 reply; 9+ messages in thread
From: Geert Stappers @ 2022-09-28 14:31 UTC (permalink / raw)
To: Alex Gaynor, FUJITA Tomonori, rust-for-linux
On Sun, Sep 18, 2022 at 09:59:02PM -0400, Alex Gaynor wrote:
> On Sun, Sep 18, 2022 at 9:57 PM FUJITA Tomonori <tomo@exabit.dev> wrote:
> >
> > Hi,
> >
> > I've implemented Rust e1000 driver (Intel Ethernet adapter):
> >
> > https://github.com/fujita/rust-e1000
> >
> > There are many places to use the C bindings directly for now. I try to
> > clean up and push abstractions for NIC drivers (DMA, PCI, network,
> > etc).
> >
> > I can ping on QEMU. Needs a bit more work for real hardware.
> >
> > Thanks,
>
> That's great to see. Thanks for your work on this and looking forward
> to seeing the pull requests!
>
Where to look for such merge request?
Long version of my question:
I can't tell how many hurdles there will be
nor how large (time consuming) the hurdles will be
for:
* git clone a modified version of a modified version of Linux kernel
* git clone the rust-e1000 at the right place
* build "rust for linux"
* start qemu with correct parameters
* find out that existing e1000 driver is NOT in the way
* see it working myself
Myself and probably others nearby the swimming pool
not knowning how nice the swimming water is.
Groeten
Geert Stappers
--
Silence is hard to parse
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-28 14:31 ` Geert Stappers
@ 2022-09-28 15:24 ` Miguel Ojeda
2022-09-28 16:35 ` Geert Stappers
0 siblings, 1 reply; 9+ messages in thread
From: Miguel Ojeda @ 2022-09-28 15:24 UTC (permalink / raw)
To: Geert Stappers; +Cc: Alex Gaynor, FUJITA Tomonori, rust-for-linux
On Wed, Sep 28, 2022 at 4:49 PM Geert Stappers <stappers@stappers.nl> wrote:
>
> Where to look for such merge request?
Tomonori has been sending nice PRs for a while -- you can look them up
using the author filter in GitHub, for instance.
> * git clone a modified version of a modified version of Linux kernel
> * git clone the rust-e1000 at the right place
I would expect the branch to contain whatever is needed, thus you
should only need to clone/fetch/checkout a single branch, i.e. without
having to do merges.
> * build "rust for linux"
> * start qemu with correct parameters
> * find out that existing e1000 driver is NOT in the way
Those are pretty standard steps, though I guess you could prepare a
container or VM image with everything ready if you need it for demo
purposes.
Cheers,
Miguel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-28 15:24 ` Miguel Ojeda
@ 2022-09-28 16:35 ` Geert Stappers
2022-09-28 16:46 ` Miguel Ojeda
2022-09-29 6:57 ` FUJITA Tomonori
0 siblings, 2 replies; 9+ messages in thread
From: Geert Stappers @ 2022-09-28 16:35 UTC (permalink / raw)
To: Miguel Ojeda, Alex Gaynor, FUJITA Tomonori, rust-for-linux
On Wed, Sep 28, 2022 at 05:24:23PM +0200, Miguel Ojeda wrote:
> On Wed, Sep 28, 2022 at 4:49 PM Geert Stappers wrote:
> >
> > Where to look for such merge request?
>
> Tomonori has been sending nice PRs for a while -- you can look them up
> using the author filter in GitHub, for instance.
At https://github.com/Rust-for-Linux/linux/pulls/fujita
are two open Merge Requests (no closed MRs).
My original question has been answered, thanks.
Summary of text below:
| } } Should I jump in the swimming pool?
| } Yes, the water temperature is fine
| It looks very cold to me
> > * git clone a modified version of a modified version of Linux kernel
> > * git clone the rust-e1000 at the right place
>
> I would expect the branch to contain whatever is needed, thus you
> should only need to clone/fetch/checkout a single branch, i.e. without
> having to do merges.
README.md at https://github.com/fujita/rust-e1000 hints,
hints me, "this part should be inserted in another source tree".
> > * build "rust for linux"
> > * start qemu with correct parameters
> > * find out that existing e1000 driver is NOT in the way
>
> Those are pretty standard steps, though I guess you could prepare a
> container or VM image with everything ready if you need it for demo
> purposes.
Time will tell which smart[*] questions will be asked.
Groeten
Geert Stappers
[*] http://www.catb.org/~esr/faqs/smart-questions.html
--
Silence is hard to parse
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-28 16:35 ` Geert Stappers
@ 2022-09-28 16:46 ` Miguel Ojeda
2022-09-29 6:36 ` FUJITA Tomonori
2022-09-29 6:57 ` FUJITA Tomonori
1 sibling, 1 reply; 9+ messages in thread
From: Miguel Ojeda @ 2022-09-28 16:46 UTC (permalink / raw)
To: Geert Stappers; +Cc: Alex Gaynor, FUJITA Tomonori, rust-for-linux
On Wed, Sep 28, 2022 at 6:35 PM Geert Stappers <stappers@stappers.nl> wrote:
>
> My original question has been answered, thanks.
My pleasure!
> README.md at https://github.com/fujita/rust-e1000 hints,
> hints me, "this part should be inserted in another source tree".
I don't see the quote you mention, but from a quick look it seems he
decided to develop the driver side as an out-of-tree module, with the
abstractions in the Linux one.
While that requires to clone both repos, you don't need to move files
between them: compiling the out-of-tree module after the main repo
should work.
Tomonori can probably clarify more...
Cheers,
Miguel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-28 16:46 ` Miguel Ojeda
@ 2022-09-29 6:36 ` FUJITA Tomonori
0 siblings, 0 replies; 9+ messages in thread
From: FUJITA Tomonori @ 2022-09-29 6:36 UTC (permalink / raw)
To: stappers, miguel.ojeda.sandonis; +Cc: alex.gaynor, tomo, rust-for-linux
Hi,
On Wed, 28 Sep 2022 18:46:59 +0200
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> wrote:
>> README.md at https://github.com/fujita/rust-e1000 hints,
>> hints me, "this part should be inserted in another source tree".
>
> I don't see the quote you mention, but from a quick look it seems he
> decided to develop the driver side as an out-of-tree module, with the
> abstractions in the Linux one.
>
> While that requires to clone both repos, you don't need to move files
> between them: compiling the out-of-tree module after the main repo
> should work.
Yeah, it's just an out-of-tree module. After compiling my
Rust-for-Linux tree:
https://github.com/fujita/linux/tree/rust-e1000
should be easy to compile rust-e1000 repo. No need to move the code to
somewhere.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-28 16:35 ` Geert Stappers
2022-09-28 16:46 ` Miguel Ojeda
@ 2022-09-29 6:57 ` FUJITA Tomonori
1 sibling, 0 replies; 9+ messages in thread
From: FUJITA Tomonori @ 2022-09-29 6:57 UTC (permalink / raw)
To: stappers; +Cc: miguel.ojeda.sandonis, alex.gaynor, tomo, rust-for-linux
Hi,
On Wed, 28 Sep 2022 18:35:14 +0200
Geert Stappers <stappers@stappers.nl> wrote:
>> > Where to look for such merge request?
>>
>> Tomonori has been sending nice PRs for a while -- you can look them up
>> using the author filter in GitHub, for instance.
>
> At https://github.com/Rust-for-Linux/linux/pulls/fujita
> are two open Merge Requests (no closed MRs).
Note that they are just the first step. Once the PCI PR is merged,
I'll send more. I need to finish my half-baked code (DMA, iomem,
network, etc) and send PRs.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Rust e1000 driver (Intel Ethernet adapter)
2022-09-19 1:38 Rust e1000 driver (Intel Ethernet adapter) FUJITA Tomonori
2022-09-19 1:59 ` Alex Gaynor
@ 2022-10-23 7:06 ` FUJITA Tomonori
1 sibling, 0 replies; 9+ messages in thread
From: FUJITA Tomonori @ 2022-10-23 7:06 UTC (permalink / raw)
To: tomo; +Cc: rust-for-linux
Hey,
On Mon, 19 Sep 2022 10:38:20 +0900 (JST)
FUJITA Tomonori <tomo@exabit.dev> wrote:
> I've implemented Rust e1000 driver (Intel Ethernet adapter):
>
> https://github.com/fujita/rust-e1000
>
> There are many places to use the C bindings directly for now. I try to
> clean up and push abstractions for NIC drivers (DMA, PCI, network,
> etc).
Removed all unsafe for the C bindings now. I implemented abstraction
APIs (PCI, DMA, network, etc) for minimum functionality of the driver.
Pull requests aren't merged yet. You can try the driver with my kernel
tree:
https://github.com/fujita/linux/tree/rust-e1000
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-10-23 7:06 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-19 1:38 Rust e1000 driver (Intel Ethernet adapter) FUJITA Tomonori
2022-09-19 1:59 ` Alex Gaynor
2022-09-28 14:31 ` Geert Stappers
2022-09-28 15:24 ` Miguel Ojeda
2022-09-28 16:35 ` Geert Stappers
2022-09-28 16:46 ` Miguel Ojeda
2022-09-29 6:36 ` FUJITA Tomonori
2022-09-29 6:57 ` FUJITA Tomonori
2022-10-23 7:06 ` FUJITA Tomonori
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).