User Details
- User Since
- Jul 4 2018, 7:23 PM (312 w, 6 d)
Yesterday
Mon, Jul 1
Sat, Jun 22
Wed, Jun 19
_Static_assert is in the implementation namespace (_[A-Z]-prefixed), so we are within our right to define this. Whatever libc++ is doing should be made to be compatible; it looks like it's assuming things about the implementation that aren't true.
Tue, Jun 11
Mon, Jun 10
Without wanting to give a detailed review of the whole thing, I will say that implementing SBI should be done in userspace, it doesn't need to be in the kernel (and really needs to be in userspace to be able to handle the console I/O calls), just like arm64 has PSCI in userspace. You want to just have it send up a VM_EXITCODE_ECALL.
Wed, Jun 5
Please use conventional RISC-V IP. For the UART the platform standards want an 8250, and that’s what QEMU’s virt machine provides. For the RTC the goldfish RTC is simple to emulate and what its virt machine uses. If an OS boots on QEMU it should boot on bhyve.
Tue, Jun 4
The rest of page table system (including PTE format) is identical.
I feel like if you restructure things you should just be able to use the existing mkisoimages.sh:
Mon, Jun 3
Jun 2 2024
Please follow the wiki instructions and be sure to upload full context: https://wiki.freebsd.org/Phabricator#Create_a_Revision_via_Web_Interface
Jun 1 2024
May 31 2024
I don't think any of these need to be __extension__({ ... }), you're not using them as an expression, you're using them as a statement, so do { ... } while (0) is perfectly fine.
May 28 2024
May 26 2024
May 24 2024
I don’t understand how this diff relates to the commit message. Whether PASS contains a space or not, using its expansion and deleting its first line are two quite different things.
Though please mention that it's needed for musl in the commit message, otherwise it's not clear why we've been fine without this diff for years
May 23 2024
May 21 2024
Oh and MFC after?
Though please change your Fixes to be 3bfbb521fef5 ("ls: Improve POSIX compatibility for -g and -n.")
May 20 2024
This seems to match what GCC does, though I'm not sure why either need it. Both drivers pass both of -lgcc and -lgcc_s, whether building an executable or shared library (well, testing with GCC 13.2 on arm64 Linux, as that's easily to hand). Can you elaborate on the exact issue you're seeing without this?
It surprises me that GNU ld doesn't want to create canonical PLTs, but avoiding them is reasonable; they are to functions what copy relocations are to data.
May 15 2024
May 11 2024
It's hard to tell if this was a deliberate design choice or just not thought to be needed when the current UART_FDT_CLASS(_AND_DEVICE) framework was added, but I don't see a good alternative to this. Note that snps and tegra_uart are the only in-tree UART_FDT_CLASS users, and both wrap ns8250.
May 9 2024
May 3 2024
May 2 2024
May 1 2024
I believe it's also legal to go and map two BARs to overlap so long as you don't try to access the overlapping range when that's the case? QEMU just maintains a list of PCI BARs and goes for the first one in the list that matches. Allocating the big chunk of MMIO memory statically at the start and just maintaining the list layered on top in PCI code as you mess with BARs seems like it would be a simple, more general fix, and should perform just fine? (Though passthrough may well be "fun" as you mention)
Apr 25 2024
My opinion is that, whilst they are by no means completely unambiguous and fully descriptive, picking a value that's close to right so the user has some idea what the error was even in the absence of error messages is better than just using a hard-coded wholly-meaningless 1 everywhere, as will inevitably happen (and already does when not using sysexits) as a result of this.
Apr 24 2024
Apr 19 2024
Apr 8 2024
Apr 7 2024
Why do we need a copy of this code rather than just tweaking bsdconfig to support this?
Mar 27 2024
Mar 22 2024
Mar 18 2024
Mar 16 2024
Mar 13 2024
(The problem this fixes was introduced by me adding profiling to the linker in link_elf_ireloc.)
Mar 12 2024
By ABI break you mean for riscv64sf getting the old symbol versions? That architecture is dead, we should just delete the dead code in the header.
Oh I had it as an in-progress patch to make these *not* inline-only. I don't think it's a bug that they're only inline, but every other architecture exposes them as actual symbols too and GCC at least relies on that. See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272759 (comment 5 in particular) and https://cgit.freebsd.org/src/commit/?id=448c505c33cc334193590f3844406d6a74f26e2a.
Mar 7 2024
I considered extending the existing riscv_syscon for this purpose, but
it seems better to keep the StarFive/JH7110-specific drivers properly
separated.
Mar 6 2024
Mar 5 2024
s/POSIX files/POSIX text files/
What about all the other PCI controller drivers though? Various use ofw_pcib, for example.
Feb 27 2024
Feb 24 2024
Feb 23 2024
Feb 22 2024
To confirm I understand this: