Jiajie Chen
c7b34a7f72
Use enable_irq explicitly in ixgbe driver
2019-03-22 12:33:48 +08:00
Jiajie Chen
6725ca10ab
Fix IXGBE driver with drop and update user with working userland networking
2019-03-20 19:04:07 +08:00
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