166 Commits

Author SHA1 Message Date
34ee5f2fbf ./run --debug-vm: pass GDB arguments to the option on the CLI.
readme: remote g packet reply is too long

Benchmark gem5 single file rebuild
2018-11-02 00:00:02 +00:00
9571747859 kgdb is perfect
baremetal works on docker. Missing deps + virtfs now skips missing dirs.
2018-11-02 00:00:00 +00:00
1cd1e58b02 I understand kdb, now missing fix and document arm failures 2018-11-01 23:00:01 +00:00
8e07146606 kgdb kdb is broken, do I care? 2018-10-31 20:00:04 +00:00
e042a1b2ad console: make awesome 2018-10-31 21:00:03 +00:00
911dd8be32 remove some more kernel_module- references
make kgdb x86_64 work once again, now pending a decent serial refactor
2018-10-31 23:00:01 +00:00
4f47491482 userland: make uber awesome with --baremetal-like executable resolution 2018-10-30 22:00:02 +00:00
b5b646ffd4 qemu: document GDB user mode, fix some stuff 2018-10-29 22:00:02 +00:00
a29b5a41fb gem5: expose syscall emulation with --user
Then also expose QEMU user mode with --user. Docs not perfect yet,
would require a build alternative for userland/ for -static and or
passing options before the QEMU userland executable with a new CLI.
2018-10-29 22:00:02 +00:00
11fedc6045 gem5: document that arm v4.18 kernel boot was fixed
Fixed by gem5 commit 33b311d8d8b8d527d500d62a35b50be63e41b556

Automatically pass parnic_on_panic for archs that support it.
2018-10-28 00:00:01 +00:00
ceb64ab8e1 gem5: use --param to automate aarch64 baremetal BS, oh yeah 2018-10-28 00:00:00 +00:00
0edf7575cd gem5: update to d4b3e064adeeace3c3e7d106801f95c14637c12f
Mostly for --param to control debug properly.

Less README workarounds, more ./run automation, oh yeah.
2018-10-28 00:00:00 +00:00
a68c97ae42 merge run-gem5-se into run
This way it can re-use run functionality, notably setting gem5.opt
generic args, and putting m5out where it belongs.
2018-10-26 00:00:05 +00:00
98d2c83317 echo key configs as bash commands 2018-10-25 00:00:00 +00:00
4b99e522dd common.run_cmd: assert result == 0 by default 2018-10-23 09:58:30 +01:00
98bada1e7c getting started: explain 9p module rebuild
split networking and filesystem toplevel secions

create closest overlayfs attempt so far and document it
2018-10-14 00:00:00 +00:00
ce216152dd kernel cli: rw by default 2018-10-12 09:30:33 +01:00
bc73cebff1 Build the Linux kernel independently from Buildroot
This will allow for other types of root filesystems that don't rely on Buildroot
to be added and used in the future.

Propagate --verbose on all build scripts to see full GCC commands.

build-all: allow for neat subsets

also 9p share rootfs_overlay. TODO document.
2018-10-12 09:30:33 +01:00
d024dae98e ctng: use CT_JOBS instead of wrong -j 2018-09-28 00:00:00 +00:00
c53ccb0278 baremetal: aarch64 semihosting exit 2018-09-23 17:31:57 +01:00
74b51fc044 gem5: update to 7bfb7f3a43f382eb49853f47b140bfd6caad0fb8
The update is required to include 3c3ca64b5f0dd9eef7b1ce1c65cc6e8e9147dd38
otherwise baremetal does not on VExpress.

baremetal: create a baremetal setup with crosstool-ng

buildroot: improve directory location: move out/dl inside
out/buildroot/download, and add a new out/buildroot/build level

tagline: generalize, deliver more value than howto, since now howtos
are starting to multiply

rename all top scripts to separate words with hyphen more consistently,
e.g. run-gdb instead of rungdb

getvar: list all variables

gem5: make m5out section to focus all releated information at

Prevent m5term Text file busy when rebuilding gem5 while it is running.
2018-09-23 13:56:20 +01:00
b2238daee3 Split test kernel modules to a separate script.
Notice that Python sucks and does SIGPIPE annoyances, for now work around
by grepping the output file...

Fix the exit status read check with 'b', it broke down occasionally with:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 1832: invalid start byte
2018-09-16 09:16:18 +01:00
0bf7c7cb81 prebuilt: failed extract-vmlinux attempt 2018-09-16 06:43:18 +01:00
e2f36b5bc1 prebuilt: attempt gem5 a bit further, but stop at the vmlinux step 2018-09-15 23:01:49 +01:00
762bb78d89 investigate squashfs to overcome BR2_TARGET_ROOTFS_EXT2_SIZE but fail
Generate qcow2 when running QEMU if it is not present.
2018-09-15 20:29:09 +01:00
14a544a13b run: fix --kvm 2018-09-15 15:42:20 +01:00
a1a929ecaf run: create missing readfile dir if not present 2018-09-15 00:09:03 +01:00
40b5c5a023 time all builds and run 2018-09-14 15:53:08 +01:00
56738a1c70 lkmc v2-rc
Unsquashed version at v2-rc-unsquashed, but that cannot be merged as it
breaks bisects at several points. All bugs will not bisect to this
humongous change.

It all started with a conversion of the Bash scripts to Python, mainly
because I couldn't stand not being able to properly use --options for
run which has a million options.

Then since that required a full testing, I decided to do all the
refactorings that I had in mind at once, and so I did and it became
v2-rc.

This is the largest patch I have ever done! OMG a few weeks of extra time.
I'm never writing a Bash script for anything that starts getting big again.

Some of the features are:

* separate build-qemu and build-gem5 commands
* common: convert scripts to python. Add --option for everything
* rename build to build-buildroot now that we are splitting all the build
  commands, Linux kernel to follow
* move all git submodules to submodules/ and all buildroot packages to
  packages/
* refactor the out/ structure. Keep projects on toplevel, because guest
  projects separate archs and host ones don't, making a toplevel arch wrong
* do-release: rename to just release
  https://stackoverflow.com/questions/16174992/cant-get-argparse-to-read-quoted-string-with-dashes-in-it
* run: add --terminal and explain gem5 pdb
* just track the lvimrc
* store CLI kernel config fragment inside buildlroot to avoid conflicts
* gem5: document m5 initparam
* readme: make a bunch of things awesomer
* readme: fix broken refs
* parsec-benchmark: update to 75d55ac446a43c47efb1044844a108c6c330184c
  Could not fetch otherwise.
* gem5: M5_OVERRIDE_PY_SOURCE
2018-09-14 07:42:31 +01:00
085253a457 run: fix broken -h 2018-08-16 12:00:50 +01:00
59b6062b29 run: dont check for panic if executable failed 2018-08-14 13:40:53 +01:00
63ec42f72f common: factor out common opts to all scripts 2018-08-14 00:27:55 +01:00
0f5c5a9912 readme: move build and run docs in 2018-08-13 23:14:39 +01:00
626f5f9e22 bench-boot: add -f option to only run fast boots
Comment out all tests that are known to be failing.

run: exit 1 on failure, was broken dude to termout pipe
2018-08-13 22:56:20 +01:00
a8bc1f4cce readme: factor out hardcoded paths on code snippets with getvar 2018-08-13 21:09:27 +01:00
185c2730cc gem5: ./run -l works for fs_bigLITTLE.py
When you remove something from the README because it became obvious
through automation, that is a good thing.
2018-08-12 21:52:54 +01:00
4e648479f2 gem5: add run -l option to restore latest checkpoint with directory timestamps 2018-08-12 21:06:30 +01:00
8cd6ffda2a run: fix extra flags after -- 2018-08-12 19:31:28 +01:00
688d26ecd6 qemu arm: fix boot with -M virt,highmem=off 2018-08-11 20:52:41 +01:00
88cd4d6d0b gem5: parse logs and exit with status 1 in case of errors 2018-08-11 20:52:41 +01:00
539b176e1d gem5: test out panic_on_panic
patches: create patche/manual patch dir, put all patch directories under
patches/ subdir
2018-08-11 20:52:41 +01:00
5cdce7be46 run: factor out arm and aarch64
Make the generated command beautiful and perfect without any trailing whitespace.
I have to review my life choices
2018-08-11 12:36:38 +01:00
6ea0b16cd7 run: detect QEMU panics by log parsing
Add correct error messages to kernel v4.17 gem5 boot failures
2018-08-10 15:03:40 +01:00
13e0ea7801 qemu: exit on panic by default instead of hanging 2018-08-10 08:51:49 +01:00
b675cf35cb zip-image: factor out with common
Notably, only include the strictly necessary files in the archive, otherwise
initrd's from other builds might get in the way.
2018-08-09 22:25:53 +01:00
f5a997b2b6 do-release: sketch + a bunch of fixes from bench-all
qemu: monitor command from guest
2018-08-09 12:56:17 +01:00
b1bd45684f config: replace cli with direct common_ options 2018-08-09 07:12:20 +01:00
1cb056a995 common: simplify set_common_vars, rename to common_setup
Don't pass all arguments explicitly, just use existing vars.

Prefix all common_setup inputs and outputs with common_ to avoid name conflicts.
2018-08-09 06:59:52 +01:00
02e294c62c qemurr: create
qemu: start documenting unmerged replay reverse debugging while testing it
2018-08-08 00:41:13 +01:00
19f4d00f9b qemu: expose rr
run: expose forgotten -Q, document it
2018-08-06 02:48:43 +01:00