1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-27 02:03:29 +04:00
Commit Graph

96 Commits

Author SHA1 Message Date
Jiajie Chen
56f8f128ba Fix ixgbe driver 2019-03-20 16:43:40 +08:00
Jiajie Chen
e3b7efbc94 Move ixgbe to isomorphic_drivers, and format driver codes 2019-03-20 16:29:42 +08:00
Jiajie Chen
c6be460228 Fix PCI driver detaching 2019-03-20 14:35:37 +08:00
Jiajie Chen
a0d9a8b2de Detach driver from the device in sys_map_pci_driver 2019-03-20 13:00:19 +08:00
Jiajie Chen
960ef2e1f8 Implement PCI driver detach and merge NetDriver trait into Driver 2019-03-20 11:36:41 +08:00
Jiajie Chen
cf3b183311 Use jumbo frame in ixgbe 2019-03-20 10:24:45 +08:00
Jiajie Chen
5d601c3ea4 Move socket to global, move and merge functions to net/structs.rs 2019-03-19 18:33:13 +08:00
Jiajie Chen
c4df7cd3af Fix PCI MSI interrupt comment 2019-03-19 14:30:36 +08:00
Jiajie Chen
92d40fae61 Fix missing change in last commit 2019-03-18 20:06:42 +08:00
Jiajie Chen
0d2bc0a7d4 Implement irq allocation and use irq number to identify irq source 2019-03-18 19:58:35 +08:00
Jiajie Chen
c423f10483 Name ixgbe interfaces after systemd's and show link status change event 2019-03-18 19:26:47 +08:00
Jiajie Chen
b7f47235f8 Add support for PCI legacy interrupts 2019-03-18 16:17:01 +08:00
Jiajie Chen
23b4c39ec7 Enlarge tcp send/recv buf for sys_accept() sockets 2019-03-17 11:24:50 +08:00
Jiajie Chen
755f820c41 Enable interrupt throttling, use spin before wait in sys_read and fix sys_bind, sys_poll for udp 2019-03-17 00:33:05 +08:00
Jiajie Chen
236c403f36 Enable ixgbe ip receive checksum 2019-03-16 15:58:32 +08:00
Jiajie Chen
0977814d34 Fix ixgbe and e1000 drivers by adding IFCS bit 2019-03-16 10:05:43 +08:00
Jiajie Chen
e7657356a2 Implement sys_map_pci_device call for mapping BAR into user space 2019-03-16 07:21:54 +08:00
Jiajie Chen
8860f1e4a3 Implement mapping from riscv to x86_64 syscall numbering 2019-03-15 23:55:01 +08:00
Jiajie Chen
9dd576d6a1 Fix ixgbe transmitting 2019-03-14 14:40:52 +08:00
Jiajie Chen
e1bcbe7eb2 Initial ixgbe driver with transitting 2019-03-14 13:20:43 +08:00
Jiajie Chen
71808b49f5 Initial ixgbe driver capable of receiving frames 2019-03-14 09:30:43 +08:00
Jiajie Chen
a6bb042bd9 Support zero timeout in sys_select. Improve e1000 driver speed 2019-03-13 11:41:33 +08:00
Jiajie Chen
02a40b359b Only remap device memory region lazily 2019-03-12 14:33:29 +08:00
WangRunji
40ac510ecd fix compile on riscv & aarch64 2019-03-12 11:49:17 +08:00
Jiajie Chen
781630e06d Implement sys_select and nc is working 2019-03-07 09:47:36 +08:00
WangRunji
9e6483f488 refactor driver: make (Net)Driver Sync. may help avoid deadlock? 2019-03-07 01:00:46 +08:00
Jiajie Chen
42b02453a0 Implement basic version of sys_poll supporting stdin and socket, fix some deadlocks and introduce some others 2019-03-06 20:24:55 +08:00
Jiajie Chen
dcb1b51a5f Improve time-related syscall precision and add some comment for MSI 2019-03-04 23:52:19 +08:00
Jiajie Chen
c6c89198cd Add cmos rtc driver for x86 2019-03-04 16:25:57 +08:00
Jiajie Chen
1a1e39c960 Move socket set to iface, redesign NetDriver trait and implement blocking net syscalls 2019-03-04 15:34:02 +08:00
Jiajie Chen
81176e5561 Implement raw socket for ping and add SocketWrapper struct 2019-03-03 00:44:46 +08:00
Jiajie Chen
e543449836 Implement basic version of sys_munmap and sys_time 2019-03-02 20:15:55 +08:00
Jiajie Chen
71336aca5c Redesign NetDriver trait and update drivers 2019-02-28 12:31:10 +08:00
Jiajie Chen
6f1953b977 Add document for e1000 driver 2019-02-26 23:03:04 +08:00
Jiajie Chen
af9a978a9d Fix a bug in e1000 driver, run net thread and update Makefile 2019-02-26 20:46:51 +08:00
Jiajie Chen
7a3c66a923 Receiving from e1000 driver works 2019-02-26 19:33:20 +08:00
Jiajie Chen
dd61ce30ba Implement reading pci memory address 2019-02-25 21:18:09 +08:00
Jiajie Chen
197bebb1d2 Implement pci bus probing and fix a bug in virtio_mmio 2019-02-25 19:12:41 +08:00
WangRunji
08c8d89974 update SFS to new rcore-fs 2019-02-22 17:10:57 +08:00
WangRunji
a33d7632d6 rename 'KERN_VA_BASE' to 'KERNEL_OFFSET'. fix compile error 2019-02-18 14:42:25 +08:00
Jiajie Chen
fbf9409db2 Convert frame buffer to pa in virtio_gpu as well 2019-02-16 19:15:24 +08:00
Jiajie Chen
f399805196 Use KERN_VA_BASE and MEMORY_OFFSET to convert between kern va and pa 2019-02-16 18:06:32 +08:00
Jiajie Chen
8313b8854e cherry-pick virtio improvement from lab8-rv32
Move mandelbrot to test mod, cleanup virtio feature negotiation and add addr2line script to Makefile

Implement full virtqueue operations, virtio input driver

Use new virtqueue implementation for virtio net driver

Implement virtio blk device support and use it instead of memory sfs when available

fix dirty hack for virtio_blk
2019-02-16 16:52:11 +08:00
WangRunji
1ceb7ae12d use #[repr(C)] instead of #[repr(packed)] to avoid warning 2019-01-31 18:07:15 +08:00
WangRunji
847a1c7576 use core::sync::atomic::fence 2019-01-29 16:08:00 +08:00
WangRunji
047f4ffdcc cherry-pick jiegec's work (#3) from lab8-rv32: virtio drivers, network stack
Read and parse dtb upon boot

Implement virtio net device detection

Negotiate feature bits for virtio-net

Read MAC address from virtio-net device and detect virtqueues

Receiving from virtio net device is working for the first time

Implement driver interface and interrupt handling routines

Rearrange drivers into upper directory

Implement initial support for processing arp request and reply packet

Refactor MAC address and IPv4 address into structs, and implement ICMP echo reply

Fix typos

Implement initial support for virtio gpu driver

Complete first working version of virtio gpu driver with mandelbrot example

Use smoltcp and implement a udp and tcp server on top of it

Cleanup virtio net code
2019-01-23 22:28:45 +08:00