The NVMe drivers are portable and are already included statically in
GENERIC on other architectures such as aarch64 and riscv64.
Sponsored by: Chelsio Communications
Differential D44690
sys: Enable NVMe drivers on all architectures jhb on Apr 8 2024, 8:31 PM. Authored by Tags None Referenced Files
Subscribers None
Details The NVMe drivers are portable and are already included statically in Sponsored by: Chelsio Communications
Diff Detail
Event TimelineComment Actions Humm, I'll see how broken that is. It might be nice though if we fixed the BROKEN_OPTIONS for NVME to blacklist the known bad arches as right now we don't build nvmecontrol on riscv64 but do include device nvme in GENERIC on riscv64. I'll have to make all the nvmf modules follow the same rules, and right now they build fine on all arches. It would be simpler if we could just build everywhere. :( At least the manpages should probably honor MK_NVME instead of being hardcoded for specific architectures. Comment Actions Oh, nvmecontrol was trivial fixable for armv7 and powerpc. It already has a hack to use uint64_t in place of uint128_t and I just changed it to apply that hack on all 32-bit architectures. And actually, I can fix nvmecontrol to not be so dumb. It already fails to handle big-endian properly regardless and it really isn't hard to fix. Comment Actions Well, not truncating values is a bit hard to fix actually, so I'll just let it truncate values on arm and 32-bit powerpc. Comment Actions Yea. I have code under review to make them compile... but I haven't used nvme on these platforms. This tells me they are completely untested on those platforms which makes me nervous. Compilers don't support int128 enough.. Comment Actions I have the big endian fix too since i had to touch all the log page code to shift it to the user of the page's responsibility to convert the endian to host. Comment Actions https://reviews.freebsd.org/D44650 are the reviews that I'd already done. It's how I knew nvmecontrol didn't build there :). Comment Actions I just removed the BROKEN_OPTIONS bits for NVME locally so the option is default enabled everywhere. Comment Actions Ok. Let's do this and mark as default no any architecture that people try and there are non trivial issues |