Certainly a 32-bit and 64-bit cores can run Linux. You need to take care of page table differences when you configure Linux.
Atomic instructions are a must, or a suitable emulation library. An atomic emulation library exists in Linux but
I'm not sure how mature it is. Floating point is not needed for the kernel but is highly desirable for user mode applications.
Compressed instructions are in theory optional, but if not present you will have to recompile the entire userland yourself, since
the G (general purpose) baseline assumes it. You need to have an MMU, and FLUSH.VM, though in theory no mmu operation is possible.
FENCE.I and friends is required to support cache flushing.
FENCE.RW is needed in device drivers.
--
You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+un...@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/2352b79e-a563-4522-b71e-630eb1439bf0%40groups.riscv.org.
Your emulation routines should hook into the illegal instruction
trap vector
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/1583dc44-a13f-408f-b6b1-de00b6ebbe9a%40groups.riscv.org.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/CAEz%3Dsok-MojHe6sNy4qO%3DS%2B93cx4NE7Mx9iTbTu08Lia0X%2BhpQ%40mail.gmail.com.
Historically speaking G can exist without C, in fact all released versions of lowrisc just use G.
However this is a pain because the big Linux distributions have chosen C to be mandatory.
The Debian port uses RV64GC as the hardware baseline and the lp64d ABI (the default ABI for RV64G systems).
Making the C extension a part of the default hardware baseline for general-purpose binary Linux distributions has been agreed upon between Fedora porters, Debian porters and members of the RISC-V foundation. According to the chairman of the board of the RISC-V foundation, the foundation will provide "a profile for standard RISC-V Unix platforms that will include C as mandatory".is needed in device drivers. If you want to run pre-built debian or redhat riscv, you need to support IAMFDC in the hardware or IMC + emulation routines. On 30/07/18 12:17, vithurson wrote: What is the minimum requirement of a risc v core implementation in order to be able to run the current risc -v port of the linux? 1) rv32 or rv 64? 2) what are the extensions needed to be implemented.? 3) is memory management required to be implemented (TLBs and stuffs) 4) l1 instruction and l1 data cache needed to be coherent with each other or just flushing support is enough? any other requirement thanks -- You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+unsubscribe@groups.riscv.org. To post to this group, send email to hw-...@groups.riscv.org. Visit this group at
. -- You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+unsubscribe@groups.riscv.org. To post to this group, send email to hw-...@groups.riscv.org. Visit this group at
https://groups.google.com/a/groups.riscv.org/group/hw-dev/. To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/4934f44f-64b5-d670-881b-2d8c75ed218e%40cam.ac.uk.
--
You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/8797c32a-3a5c-cf8e-e9d1-b2fa76ce2e56%40cam.ac.uk.
--
You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+un...@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/CAEz%3DsomoHodKFKe%3Dim00MU3V7_Kst0hJcATwNeYBxuyhcNZaOQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/DM5PR2201MB10367D4924B4FA4B4BD061B4F92F0%40DM5PR2201MB1036.namprd22.prod.outlook.com.
--
You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+un...@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/3d13d731-2e12-44f6-ad19-b7c6b314cc57%40groups.riscv.org.
--
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/3d13d731-2e12-44f6-ad19-b7c6b314cc57%40groups.riscv.org.
--
You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/EE4D7338-59A3-4C97-8BA8-52C128B7FA11%40cam.ac.uk.
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+un...@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/3d13d731-2e12-44f6-ad19-b7c6b314cc57%40groups.riscv.org.
--
You received this message because you are subscribed to the Google Groups "RISC-V HW Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+un...@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/EE4D7338-59A3-4C97-8BA8-52C128B7FA11%40cam.ac.uk.
--regards,
Sathya
On our lowrisc system (which I believe is representative) the first stage boot loader runs in machine mode, hence PTEs are ignored.
This calls Berkeley Boot Loader (BBL) as a chain loader which also runs in machine mode.
This can then call any payload in supervisor mode but usually this is Linux,
which sets up its own SATP and PTEs very early on in an architecture dependent subroutine.
In virtual memory, the Linux kernel itself will be mapped to the end of memory.
Of course you are free to create PTEs in the boot loader but usually this is treated as romable code and traditionally
is as small and simple as possible to maximise flexibility.
PMP configurations are done by bbl ?how about pma s?
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/ac71ad5c-ffb9-4079-a18e-c3ba8e42035c%40groups.riscv.org.
moving forward , in the atomic instructions after a lr is executed to a memory location by the user space application ,the reservation should be done for the virtual addresses or physical address of that address?
if there is a context switching, reservation bit should be cleared by the hardware? or by the os (if so how os takes care of that)?
To unsubscribe from this group and stop receiving emails from it, send an email to hw-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to hw-...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/hw-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/aee1f2f0-b52c-4e22-83aa-80e607e2dfbf%40groups.riscv.org.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/aee1f2f0-b52c-4e22-83aa-80e607e2dfbf%40groups.riscv.org.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/CAAYNYsLC%3DT6imVPj4TkqaXftPEB16o0q%2BX6PpqTx43KEBZtqKg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/hw-dev/CAMeNML3r-TTjF1EdQVy%2B6zms5%2B5gogzbqPhAOU64KhjoZ%3DOPKQ%40mail.gmail.com.
In a single core implementation, for lr/sc implementation is it okay to
1. have a single XLEN bit register and valid bit which will be set by a LR's load address
2. SC match that address and return success / failure and then clears the valid bit?