1040 Commits

Author SHA1 Message Date
9900f355e2 qemu: update to v3.0.0-rc3 2020-11-24 00:00:00 +00:00
da900a579c LKMC v3.0
This is a squash commit, the unsquashed development went through many
unstable phases which would break bisects. The unsquashed branch is:
https://github.com/cirosantilli/linux-kernel-module-cheat/tree/v3.0-unsquash

The main improvement of this release was to greatly generalize the testing system.

The key addition was cli_function.py, which allows scripts such as ./run to
be transparently called either from Python or from the command line.

New tests scripts were created using this improved framework: test-baremetal
and test-user-mode.

We were lazy to port some of less important tests to the new setup, TODO's were
added, and we need comes they will be fixed. Getting started is however sacred
as usual and should work.

Other changes include:

-   gem5: update to 7fa4c946386e7207ad5859e8ade0bbfc14000d91

-   run: --tmux-args implies --tmux

-   run: add --userland-args to make userland arguments across QEMU and gem5

    Get rid of --userland-before as a consequence.

-   bring initrd and initramfs back to life

-   build-userland: create --static to make build a bit easier

-   gem5: --gem5-worktree also set --gem5-build-id

-   remove --gem5, use --emulator gem5 everywhere

    Allow passing --emulator multiple times for transparent tests selection
    just like --arch.

-   test-userland: allow selecting just a few tests

-   linux: update to v4.20

-   buildroot: update to 2018.08

    The main motivation for this was to fix the build for Ubuntu 18.10, which
    has glibc 2.28, which broke the 2018.05 build at the m4-host package with:

        #error "Please port gnulib fseeko.c to your platform!

-   getvar --type input

-   failed xen attempt, refactor timer, failed svc attempt, aarch64 use gicv3

-   build-doc: exit 1 on error, add to release testing

-   build: add --apt option to make things easier on other distros

-   build-linux: --no-modules-install
v3.0
2019-01-22 00:00:00 +00:00
3b0a343647 kernel module: format, use tab to indent. v3.0-rc1 2018-12-12 08:07:34 +00:00
9f6ddbc436 parsec: fix package name on README with underscore 2018-12-10 00:00:00 +00:00
d569854ae1 kernel: add section about /proc/version
Customize user, host and date
2018-12-05 00:00:00 +00:00
4f115bbde3 gem5: improve factoring of gem5 linux kernel build references 2018-12-04 00:00:03 +00:00
cb32b2994c gem5: use --generate-dtb by default 2018-12-04 15:10:02 +00:00
f8d9514e79 add --custom-config-file-gem5 option to build gem5 kernels more easily 2018-12-04 15:10:02 +00:00
f03e6ea2eb linux: add --linux-source-dir to have custom linux source dir 2018-12-04 15:10:02 +00:00
38ba2b85fc gem5 display: a bit more info on dp650 2018-12-04 15:10:02 +00:00
61fa99844a run: minor style 2018-12-04 15:10:02 +00:00
bc9e348a44 start simple integration to test dp650
Not yet merged on gem5 mailine, review published at:
https://gem5-review.googlesource.com/c/public/gem5/+/11036/1
2018-12-04 00:00:00 +00:00
aefe11ab17 gem5: how to get the gem5 linux 2018-11-29 15:07:02 +00:00
bf54be658e run: comments 2018-11-29 15:07:02 +00:00
c76e700903 gdb: better test command 2018-11-29 15:07:02 +00:00
2a16ddc1bf run: trace to stdout 2018-11-29 15:07:02 +00:00
2e9ffcab63 lvimrc: move to kernel_modules directory
Keep insane tabs away from userland forever!
2018-11-29 15:07:02 +00:00
54e15e0433 multicore: remove references to PCSI 2018-11-26 00:00:00 +00:00
ba2976cc7f gem5: fix arm multicore with system.auto_reset_addr = True
baremetal: fix aarch64/no_bootloader/semihost_exit.S which was wrong
because was using unset sp for register block. Tests needed urgently!!
2018-11-26 00:00:00 +00:00
5b6a716a9b gem5: update to a5bc2291391b0497fdc60fdc960e07bcecebfb8f
gem5-build: use --gold-linker by default
2018-11-23 00:00:03 +00:00
747da3b417 baremetal: aarch64 multicore works!!! 2018-11-23 00:00:02 +00:00
2b10066549 run: forward --userland and --baremetal to tmux! It's just beautiful. 2018-11-23 00:00:01 +00:00
7816f1f635 trace: improve a bit, fix bugs 2018-11-23 00:00:00 +00:00
b57cf380f5 baremetal: document the bootloaders 2018-11-22 00:00:04 +00:00
8dd01415f5 baremetal: only rebuild required files based on mtime
Move multcore test up with bootloader.
2018-11-22 00:00:03 +00:00
f73eaaffd2 prebuilt: automatically pick up qemu from PATH if not built like qemu-img 2018-11-22 00:00:02 +00:00
701bf6703b more info on gem5 prebuilt support 2018-11-22 00:00:01 +00:00
de05e91689 baremetal: arm multicore attempt 2018-11-22 00:00:01 +00:00
35ab408e1e gem5: set kvm cpu type for arm 2018-11-22 12:28:07 +00:00
d6905e28f1 readme: minor fixes 2018-11-22 00:00:00 +00:00
70d26c7547 CONFIG_HAVE_KERNEL_UNCOMPRESSED=y is s390 only 2018-11-21 00:00:02 +00:00
fff2a60aa6 build-linux: split merge_config.sh configs line 2018-11-21 00:00:01 +00:00
0e9d24c592 kvm: arm stub 2018-11-21 00:00:00 +00:00
8e036992fa prebuilt: tell users to checkout ot latest tag, otherwise too unstable 2018-11-20 00:00:00 +00:00
65d33ab11e run: actually rename ./run --busybox-init to --eval-after
Had just changed the CLI parameter but nothing else!

Had half worked because Python argparse is insane and accepts substrings
like --eval-a.

Fix #43
2018-11-20 00:00:03 +00:00
034bd3600f build-buildroot: fix qemu-img -T order
Fix #42
2018-11-20 00:00:03 +00:00
35684b1b7e arm exception level emulator entry examples 2018-11-20 00:00:02 +00:00
07000300ab userland: support arch specific examples 2018-11-20 00:00:00 +00:00
454af5d03a build-linux: fix --verbose 2018-11-19 22:35:16 +00:00
985913e1e6 prepare for kvm testing 2018-11-19 22:35:16 +00:00
33f286b354 run: make qemu-img more resilient to --prebuilt by not doing -T in that case 2018-11-19 22:35:16 +00:00
2684133597 build-gem5: use arm-linux-gnueabihf- to match build -D 2018-11-17 19:42:33 +00:00
074fbbdf4c build: fix arm gcc package names for arm hosts 2018-11-17 00:00:01 +00:00
c2ac65a807 docker: split minimum setup to separate script 2018-11-17 00:00:00 +00:00
0bd53a46f6 getting started: some small fixes 2018-11-15 00:00:04 +00:00
1fda6357c3 gdb: stub for testing userland
Not working because cannot find, requires moving --userland to common.py
2018-11-15 20:07:47 +00:00
95c1800b0e run: dont break on userland due to missing termout file 2018-11-15 20:07:47 +00:00
f8631e58d0 userland: create interactive example 2018-11-15 20:07:47 +00:00
26b890f42f Factor common userland and baremetal C functions
This allows add.c to run unmodified on both!

For that to work, use int main on baremetal, and pass the return value to
the final exit.
2018-11-15 20:07:47 +00:00
ecc2a21b57 get rid of unused patches/buildroot 2018-11-15 10:15:07 +00:00