-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bring up Linux kernel #508
base: master
Are you sure you want to change the base?
Commits on Nov 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bf9d567 - Browse repository at this point
Copy the full SHA bf9d567View commit details -
Configuration menu - View commit details
-
Copy full SHA for a74a9e8 - Browse repository at this point
Copy the full SHA a74a9e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7087369 - Browse repository at this point
Copy the full SHA 7087369View commit details -
Move peripherals to devices directory
- modify Makefile to enable detect devices directory - decouple PLIC and UART into separate files - Bind RISC-V core to plic_t to enable sending interrupt from PLIC to core
Configuration menu - View commit details
-
Copy full SHA for 5b7fcbd - Browse repository at this point
Copy the full SHA 5b7fcbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3cd4460 - Browse repository at this point
Copy the full SHA 3cd4460View commit details -
Currently, the system test suite is compiled into a single ELF executable, leading to discrepancies between the inputs for Linux kernel emulation and the system test suite. By introducing ENABLE_USE_ELF, we can allow the use of the ELF executable when running the system test suite. This might be a temporarily solution, need to refactor more.
Configuration menu - View commit details
-
Copy full SHA for d3c493d - Browse repository at this point
Copy the full SHA d3c493dView commit details -
The MMU test suite relies on rv32emu's syscall function instead of its syscall table, unlike the Linux kernel. Therefore, use the ON_TEST macro to distinguish between the Linux kernel and MMU test suite as the emulation target.
Configuration menu - View commit details
-
Copy full SHA for b8e1e8e - Browse repository at this point
Copy the full SHA b8e1e8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9fe2ce7 - Browse repository at this point
Copy the full SHA 9fe2ce7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 921c300 - Browse repository at this point
Copy the full SHA 921c300View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4012f2a - Browse repository at this point
Copy the full SHA 4012f2aView commit details
Commits on Nov 3, 2024
-
- use stack storage for vm_data_t to eliminate potential mem leak. - run_and_trace only accessible when USE_ELF is enable since it needs parsing the symbol of the ELF. Add TODO on it for parsing Linux kernel symbol. In addition, Linux kernel emulation specified code shall be checked as well. - enable parsing different kernel image, rootfs image, and dtb file by CLI parameters. - Linux kernel emulation needs dedicated mem size, but the current Makefile default enable SDL if libsdl is installed in system and then enable FULL_4G feature. Thus, forcely undefine MEM_SIZE if current emulation target is Linux kernel and use the dedicated one.
Configuration menu - View commit details
-
Copy full SHA for 071b55d - Browse repository at this point
Copy the full SHA 071b55dView commit details
Commits on Nov 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5ed8482 - Browse repository at this point
Copy the full SHA 5ed8482View commit details -
- remove comment that related to MMU test suite in syscall_handler and mention them in Makefile instead - rename int and ints to intr and intrs respectively - use enum for PLIC's regs - Disable termios keyboard echoing and capture CTRL+a+x to exit VM
Configuration menu - View commit details
-
Copy full SHA for 5b64af8 - Browse repository at this point
Copy the full SHA 5b64af8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0915b75 - Browse repository at this point
Copy the full SHA 0915b75View commit details
Commits on Nov 6, 2024
-
When you build using the command make ENABLE_SYSTEM=1 -j$(nproc), the default target in the Makefile is invoked. At this stage, the Device Tree Blob (DTB) should already be built before executing rv32emu. Therefore, system.mk is included before the all target in the Makefile.
Configuration menu - View commit details
-
Copy full SHA for e1f9d0a - Browse repository at this point
Copy the full SHA e1f9d0aView commit details -
- rewrite MMIO handler. To adapt more MMIO in the future (e.g., VirtIO), the IIF(io) cannot be used since it supports only binary. Thus, rewrite using switch case can solve this. - suppress warning. In mmu-based read handler, warning 'non-void function does not return a value in all control paths' could be reached, so add __UNREACHABLE() to suppress it. - keyboard hacking should be defined only when Linux kernel emulation. - opt_trace only available when target RV32 file is ELF executable. - map_file might be not available on non POSIX compatible machine, thus adding a fault back implementation when HAVE_MMAP is not set.
Configuration menu - View commit details
-
Copy full SHA for 91c0287 - Browse repository at this point
Copy the full SHA 91c0287View commit details -
Add Build and Run and Automation image build section in README
- Stores the default configurations for buildroot, busybox, and Linux within the assets directory. Initially, assets were designated for wasm usage, but to avoid creating a new directory for configurations, the assets directory is reused for this purpose. Also, add an automation image build script 'build-img.sh'. - Add a new Makefile target called 'system' to build and run more easier for user.
Configuration menu - View commit details
-
Copy full SHA for 7151690 - Browse repository at this point
Copy the full SHA 7151690View commit details
Commits on Nov 10, 2024
-
Move system img build script to tools/
Since build linux images script is stored in tools/, thus define the build-linux-img Makefile target in mk/tools.mk for consistency.
Configuration menu - View commit details
-
Copy full SHA for fcf5848 - Browse repository at this point
Copy the full SHA fcf5848View commit details
Commits on Nov 11, 2024
-
Tweak artifact CI and Makefile
With the Linux image and ELF executable already separated, it is also necessary to decouple the tags. Add the suffix 'Linux-Image' for the Linux image release artifact and 'ELF' for the test bench ELF executable. Additionally, include the Buildroot and Linux kernel version files in .ci/. Updating either of these files will trigger a rebuild of the Linux image artifact.
Configuration menu - View commit details
-
Copy full SHA for 3432824 - Browse repository at this point
Copy the full SHA 3432824View commit details
Commits on Nov 12, 2024
-
- reuse mk/external.mk to verify integrity of the source. - let build-system-image Makefile target can be reused in build-artifact CI. - the download, extract and verify function in mk/external.mk are adjusted since git CLI command is added to pull buildroot and Linux. Note that the '*/.git/*' of a git cloned repository has to be filtered out during SHA value verification because the metadata is difference every time when cloning. - all linux image store in build/linux-image directory.
Configuration menu - View commit details
-
Copy full SHA for 296ebe2 - Browse repository at this point
Copy the full SHA 296ebe2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3705621 - Browse repository at this point
Copy the full SHA 3705621View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2d2e94d - Browse repository at this point
Copy the full SHA 2d2e94dView commit details -
Remove minimal.dtb when make distclean and clean
Note that ENABLE_SYSTEM=1 shall be specified
Configuration menu - View commit details
-
Copy full SHA for ab8b756 - Browse repository at this point
Copy the full SHA ab8b756View commit details -
CI: Tweak rebuild Linux image rules
The Linux image rebuild will be triggered if and only if the version of them are changed in mk/external.mk.
Configuration menu - View commit details
-
Copy full SHA for 36d664e - Browse repository at this point
Copy the full SHA 36d664eView commit details
Commits on Nov 21, 2024
-
Add a typedef name for uint32_t
To make PTE variable more semantic. Also, it can be easily to support more MMU schema afterwards.
Configuration menu - View commit details
-
Copy full SHA for 0574e35 - Browse repository at this point
Copy the full SHA 0574e35View commit details