User Details
- User Since
- Nov 27 2014, 10:57 AM (619 w, 2 d)
Fri, Oct 9
Tue, Oct 6
- explicit panic if the string does not fit static buffer
- reuse isa_extensions static buffer in the legacy routine
Thu, Oct 1
Wed, Sep 30
Tue, Sep 29
Fix checksum offload for IPV6, both receive and transmit paths.
Mon, Sep 28
resubmit correct file
remove wmb() on receive path as we don't set any descriptor bits prior setting OWN
implement IP checksum offload on receive path
Sun, Sep 27
Thu, Sep 24
Address @mhorne comments.
Wed, Sep 23
remove debug
- add panic() calls in place of TODO comments
- add wmb()
fix hartid type (should be uint32_t)
Tue, Sep 22
include the full patch
remove irq pool to simplify operation. Allocate and register IRQs on demand
Mon, Sep 21
- don't claim to be root PIC
- switch to intc bus
- NIRQ: lower down the value to 8192
- allocate memory for pcpu_data and imsic_irq_pool
Initialize the child PIC with interrupts disabled on the root PIC
Fri, Sep 18
Another idea draft for discussion
Tue, Sep 15
Sep 3 2026
Hi let me improve it a bit first as it looks incomplete
Aug 27 2026
Because both the DMA and the CPU may write to descriptors simultaneously, the driver must require BUS_DMA_COHERENT memory.
Aug 26 2026
Oh, I did not know eqos(4) was imported from NetBSD!
Aug 17 2026
Thanks. We needed that for many years as detaching was sometimes panic system:)
Jun 24 2026
Jun 10 2026
Implement ucontext.h POSIX API
Jun 3 2026
May 16 2026
May 12 2026
May 4 2026
Apr 15 2026
Mar 18 2026
Mar 5 2026
Mar 4 2026
Same toolchain (latest), but without this change a few functions don't have landing pad: copyin/copyout and sched_idletd.
Mar 3 2026
Mar 2 2026
Feb 27 2026
Could you try https://reviews.freebsd.org/D55564 (in addition to this change set) please?
found another bug here, will resubmit
I'm getting a little confused now. Does vtnet work on RISC-V IOMMU without my changes?
Feb 25 2026
looks like some part of vtnet still tries to pass physical addresses instead of bus dma addresses, so I get page faults
riscv_fq_intr riscv_iommu0: Fault: event 0xd received: Read page fault riscv_iommu0: iotval 0x80e4940a iotval2: 0x0 riscv_iommu0: Fault: event 0xd received: Read page fault riscv_iommu0: iotval 0x80e4940a iotval2: 0x0 riscv_iommu0: Fault: event 0xd received: Read page fault riscv_iommu0: iotval 0x80e4940d iotval2: 0x0 riscv_iommu0: Fault: event 0xd received: Read page fault riscv_iommu0: iotval 0x80e4940d iotval2: 0x0 riscv_iommu0: Fault: event 0xf received: Write/AMO page fault riscv_iommu0: iotval 0x80e4940f iotval2: 0x0 riscv_iommu0: Fault: event 0xf received: Write/AMO page fault riscv_iommu0: iotval 0x80e4940f iotval2: 0x0 vtnet0: cannot disable all-multicast mode
Could you try again with the most recent change please?
same panic
note function names in backtrace sometimes wrong, so it is more like
bus_dmamap_load_mbuf_sg() -> iommu_bus_dmamap_load_buffer() -> iommu_bus_dmamap_load_something() -> iommu_bus_dmamap_load_something1() -> panic
vtnet0: unable to set MAC address vtnet0: cannot disable promiscuous mode vtnet0: cannot disable all-multicast mode vtnet0: error setting host MAC filter table panic: alignment failed: ctx 0xffffffd0010d0e80 start 0x20c000 offset 82 align 0x4 cpuid = 0 time = 1772019624 KDB: stack backtrace: db_trace_self() at db_trace_self db_fetch_ksymtab() at db_fetch_ksymtab+0x142 kdb_backtrace() at kdb_backtrace+0x2c vpanic() at vpanic+0x16e panic() at panic+0x26 iommu_domain_fini() at iommu_domain_fini+0x36a iommu_is_buswide_ctx() at iommu_is_buswide_ctx+0x806 bus_dmamap_load_mbuf_sg() at bus_dmamap_load_mbuf_sg+0x60 vtmmio_attach() at vtmmio_attach+0x488c vtmmio_attach() at vtmmio_attach+0x6656 vtmmio_attach() at vtmmio_attach+0x5652 ether_ioctl() at ether_ioctl+0x1a0 vtmmio_attach() at vtmmio_attach+0x5844 in_control_ioctl() at in_control_ioctl+0x9ac rtnl_ifaces_destroy() at rtnl_ifaces_destroy+0x1a1e rtnl_register_messages() at rtnl_register_messages+0x2a0 nl_send() at nl_send+0x3ca nl_taskqueue_handler() at nl_taskqueue_handler+0x34e taskqueue_run() at taskqueue_run+0x1f0 taskqueue_thread_loop() at taskqueue_thread_loop+0xd4 fork_exit() at fork_exit+0x68 fork_trampoline() at fork_trampoline+0xa KDB: enter: panic [ thread pid 0 tid 100062 ] Stopped at kdb_enter+0x3a: sd zero,560(s1)
A quick test on RISC-V IOMMU gives me this issue:
vtnet0: unable to set MAC address vtnet0: cannot disable promiscuous mode vtnet0: cannot disable all-multicast mode vtnet0: error setting host MAC filter table panic: alignment failed: ctx 0xffffffd0010d0e80 start 0x20c000 offset 82 align 0x4
if td1 is always curthread, then a kassert is needed
Feb 24 2026
I tested this on RISC-V IOMMU under QEMU ("virt" machine) and modern virtio PCI -- seem to work!
Feb 19 2026
Feb 18 2026
Feb 17 2026
Feb 16 2026
Feb 11 2026
Feb 10 2026
Jan 30 2026
how hard it would be to implement MSI interface here? to support MSI interrupts from devices, which is a crucial functionality
Jan 22 2026
remove unused functions/prototypes
