diff --git a/Dockerfile b/Dockerfile index d7bc268..1277191 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,9 +48,9 @@ RUN cp boot.arm boot_emm.arm /generated_files/binaries #checkout and build kernel for VExpress_GEM5_V1 WORKDIR / -RUN git clone https://github.com/gem5/linux-arm-gem5.git -b gem5/v4.3 linux-arm-gem5_4.3 -WORKDIR linux-arm-gem5_4.3 -RUN git rev-parse --short HEAD > /generated_files/revisions/linux-arm-gem5_4.3 +RUN git clone https://github.com/gem5/linux-arm-gem5.git -b gem5/v4.4 linux-arm-gem5_4.4 +WORKDIR linux-arm-gem5_4.4 +RUN git rev-parse --short HEAD > /generated_files/revisions/linux-arm-gem5_4.4 RUN make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- gem5_defconfig RUN make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 RUN cp vmlinux /generated_files/binaries/vmlinux.vexpress_gem5_v1_64.$(cat /release_date.txt) diff --git a/README.md b/README.md index 92c5d4a..06fd183 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # gem5_arm_fullsystem_files_generator -Generator of kernels, bootloaders, DTBs and disk images for aarch32 and aarch64 gem5 Full System simulations (updated April 2017) +Generator of kernels, bootloaders, DTBs and disk images for aarch32 and aarch64 gem5 Full System simulations (updated April 26 2017) ## List of known changes from [aarch-system-2014-10.tar.xz](http://www.gem5.org/dist/current/arm/aarch-system-2014-10.tar.xz) 1. The aarch64 bootloader is newer ([info](https://gem5.googlesource.com/public/gem5/+/47326f54222af99d96ab57508449d1bb62d03842)). 2. The DTB for the VExpress_EMM64 platform is newer ([info](https://github.com/gem5/linux-arm64-gem5/commit/24fd6238427aad5c212493efeb1)). -3. Added DTBs and kernels for the VExpress_GEM5_V1\* platforms. +3. Added DTBs and kernels (version 4.4) for the VExpress_GEM5_V1\* platforms. 4. Updated the /sbin/m5 binary for the different disk images ([info](https://gem5.googlesource.com/public/gem5/+/d4c1600c4e3e4f380f5582f8bfba97fb466a18ce)). 5. Kernel for VExpress_EMM is 3.14 (it used to be 3.13) 6. Kernels for VExpress_EMM\* platforms are compiled with gcc 4.8.5 (it used to be 4.8.2) @@ -14,17 +14,17 @@ Generator of kernels, bootloaders, DTBs and disk images for aarch32 and aarch64 2. Optionally let users run docker as non-root ([info](https://docs.docker.com/engine/installation/linux/linux-postinstall/#manage-docker-as-a-non-root-user)). ## How to generate the files -1. Just run the run.sh script on the cloned repository (use sudo if you did not let users run docker as non-root as indicated above). On a successful run (that may take more than an hour), the user will get the aarch-system-20170421.tar.xz file in the same directory. +1. Just run the run.sh script on the cloned repository (use sudo if you did not let users run docker as non-root as indicated above). On a successful run (that may take more than an hour), the user will get the aarch-system-20170426.tar.xz file in the same directory. * `./run.sh` -2. Create a new_m5_path directory and untar the contents of the aarch-system-20170421.tar.xz file into it. +2. Create a new_m5_path directory and untar the contents of the aarch-system-20170426.tar.xz file into it. * `mkdir new_m5_path` - * `tar xJvf aarch-system-20170421.tar.xz -C new_m5_path` + * `tar xJvf aarch-system-20170426.tar.xz -C new_m5_path` 3. Make the M5_PATH environment variable point to the new directory before running any gem5 arm FullSystem simulation * `export M5_PATH=$PWD/new_m5_path` -4. Under new_m5_path/revisions, one will find the SHA-1 hash of the revision used for each repository involved in the files generation. These are the values for the "April 2017" release: - * `gem5: 3cc6df4` +4. Under new_m5_path/revisions, one will find the SHA-1 hash of the revision used for each repository involved in the files generation. These are the values for the "April 26 2017" release: + * `gem5: 2ee0992` * `linux-arm64-gem5: 24fd623` - * `linux-arm-gem5 (gem5/v4.3 branch): d5545a8` + * `linux-arm-gem5 (gem5/v4.4 branch): 2e54922` * `linux-arm-gem5 (gem5/linaro branch): b2af788` ## How to use the files @@ -37,8 +37,8 @@ These are some example command lines depending on the simulated platform: ./build/ARM/gem5.opt \ configs/example/fs.py \ --machine-type=VExpress_GEM5_V1 \ ---dtb=armv8_gem5_v1_1cpu.20170421.dtb \ ---kernel=vmlinux.vexpress_gem5_v1_64.20170421 \ +--dtb=armv8_gem5_v1_1cpu.20170426.dtb \ +--kernel=vmlinux.vexpress_gem5_v1_64.20170426 \ --script=$PWD/tests/halt.sh ``` @@ -47,8 +47,8 @@ configs/example/fs.py \ ./build/ARM/gem5.opt \ configs/example/fs.py \ --machine-type=VExpress_GEM5_V1 \ ---dtb=armv7_gem5_v1_1cpu.20170421.dtb \ ---kernel=vmlinux.vexpress_gem5_v1.20170421 \ +--dtb=armv7_gem5_v1_1cpu.20170426.dtb \ +--kernel=vmlinux.vexpress_gem5_v1.20170426 \ --script=$PWD/tests/halt.sh ``` @@ -58,8 +58,8 @@ For this command to work, one may need to remove the VExpress_EMM64 platform fro ./build/ARM/gem5.opt \ configs/example/fs.py \ --machine-type=VExpress_EMM64 \ ---dtb=aarch64_gem5_server.20170421.dtb \ ---kernel=vmlinux.vexpress_emm64.20170421 \ +--dtb=aarch64_gem5_server.20170426.dtb \ +--kernel=vmlinux.vexpress_emm64.20170426 \ --script=$PWD/tests/halt.sh ``` @@ -69,7 +69,7 @@ For this command to work, one may need to remove the VExpress_EMM platform from ./build/ARM/gem5.opt \ configs/example/fs.py \ --machine-type=VExpress_EMM \ ---dtb=vexpress-v2p-ca15-tc1-gem5.20170421.dtb \ ---kernel=vmlinux.vexpress_emm.20170421 \ +--dtb=vexpress-v2p-ca15-tc1-gem5.20170426.dtb \ +--kernel=vmlinux.vexpress_emm.20170426 \ --script=$PWD/tests/halt.sh ```