Hi Ciro, Thanks for the reply. I made a mistake in my title. I actually meant the system hangs with 16 cores. Do I still need to set root.system.realview.gic.gem5_extensions to True in fs.py? Is the GICv2 extension only compatible with Linux kernel 4.15? Currently I'm using 4.4.
Thanks, Haiyang On Wed, May 9, 2018 at 2:11 AM Ciro Santilli <ciro.santi...@gmail.com> wrote: > As mentioned at: > https://www.mail-archive.com/gem5-dev@gem5.org/msg24593.html you need > to: > > - use the ARM linux kernel fork from: > https://gem5.googlesource.com/arm/linux/+/refs/heads/gem5/v4.15 in > particular the GICv2 extension script commit > - hack up gem5: > - fs.py to set `root.system.realview.gic.gem5_extensions = True` > - generate a 32 / 64 / etc. dtb if needed (16 already built by default) > > The following patch will do both: > > ``` > diff --git a/configs/example/fs.py b/configs/example/fs.py > index 4031fd05e..51dd1d4ff 100644 > --- a/configs/example/fs.py > +++ b/configs/example/fs.py > @@ -395,5 +395,6 @@ if buildEnv['TARGET_ISA'] == "arm" and > options.generate_dtb: > sys = getattr(root, sysname) > sys.dtb_filename = create_dtb_for_system(sys, '%s.dtb' % > sysname) > > +root.system.realview.gic.gem5_extensions = True > Simulation.setWorkCountOptions(test_sys, options) > Simulation.run(options, root, test_sys, FutureClass) > diff --git a/system/arm/dt/Makefile b/system/arm/dt/Makefile > index 62cf65f27..66f17a3c4 100644 > --- a/system/arm/dt/Makefile > +++ b/system/arm/dt/Makefile > @@ -38,6 +38,8 @@ TARGETS=\ > armv8_gem5_v1_1cpu.dtb armv8_gem5_v1_2cpu.dtb \ > armv8_gem5_v1_4cpu.dtb armv8_gem5_v1_8cpu.dtb \ > armv8_gem5_v1_16cpu.dtb \ > + armv8_gem5_v1_32cpu.dtb \ > + armv8_gem5_v1_64cpu.dtb \ > armv8_gem5_v1_big_little_2_2.dtb \ > armv8_gem5_v1_big_little_2_4.dtb > > diff --git a/system/arm/dt/armv8.dts b/system/arm/dt/armv8.dts > index 9e07decbd..ddef086a4 100644 > --- a/system/arm/dt/armv8.dts > +++ b/system/arm/dt/armv8.dts > @@ -105,6 +105,150 @@ > CPU(15) > #endif > #if CONF_CPUS > 16 > + CPU(16) > + #endif > + #if CONF_CPUS > 17 > + CPU(17) > + #endif > + #if CONF_CPUS > 18 > + CPU(18) > + #endif > + #if CONF_CPUS > 19 > + CPU(19) > + #endif > + #if CONF_CPUS > 20 > + CPU(20) > + #endif > + #if CONF_CPUS > 21 > + CPU(21) > + #endif > + #if CONF_CPUS > 22 > + CPU(22) > + #endif > + #if CONF_CPUS > 23 > + CPU(23) > + #endif > + #if CONF_CPUS > 24 > + CPU(24) > + #endif > + #if CONF_CPUS > 25 > + CPU(25) > + #endif > + #if CONF_CPUS > 26 > + CPU(26) > + #endif > + #if CONF_CPUS > 27 > + CPU(27) > + #endif > + #if CONF_CPUS > 28 > + CPU(28) > + #endif > + #if CONF_CPUS > 29 > + CPU(29) > + #endif > + #if CONF_CPUS > 30 > + CPU(30) > + #endif > + #if CONF_CPUS > 31 > + CPU(31) > + #endif > + #if CONF_CPUS > 32 > + CPU(32) > + #endif > + #if CONF_CPUS > 33 > + CPU(33) > + #endif > + #if CONF_CPUS > 34 > + CPU(34) > + #endif > + #if CONF_CPUS > 35 > + CPU(35) > + #endif > + #if CONF_CPUS > 36 > + CPU(36) > + #endif > + #if CONF_CPUS > 37 > + CPU(37) > + #endif > + #if CONF_CPUS > 38 > + CPU(38) > + #endif > + #if CONF_CPUS > 39 > + CPU(39) > + #endif > + #if CONF_CPUS > 40 > + CPU(40) > + #endif > + #if CONF_CPUS > 41 > + CPU(41) > + #endif > + #if CONF_CPUS > 42 > + CPU(42) > + #endif > + #if CONF_CPUS > 43 > + CPU(43) > + #endif > + #if CONF_CPUS > 44 > + CPU(44) > + #endif > + #if CONF_CPUS > 45 > + CPU(45) > + #endif > + #if CONF_CPUS > 46 > + CPU(46) > + #endif > + #if CONF_CPUS > 47 > + CPU(47) > + #endif > + #if CONF_CPUS > 48 > + CPU(48) > + #endif > + #if CONF_CPUS > 49 > + CPU(49) > + #endif > + #if CONF_CPUS > 50 > + CPU(50) > + #endif > + #if CONF_CPUS > 51 > + CPU(51) > + #endif > + #if CONF_CPUS > 52 > + CPU(52) > + #endif > + #if CONF_CPUS > 53 > + CPU(53) > + #endif > + #if CONF_CPUS > 54 > + CPU(54) > + #endif > + #if CONF_CPUS > 55 > + CPU(55) > + #endif > + #if CONF_CPUS > 56 > + CPU(56) > + #endif > + #if CONF_CPUS > 57 > + CPU(57) > + #endif > + #if CONF_CPUS > 58 > + CPU(58) > + #endif > + #if CONF_CPUS > 59 > + CPU(59) > + #endif > + #if CONF_CPUS > 60 > + CPU(60) > + #endif > + #if CONF_CPUS > 61 > + CPU(61) > + #endif > + #if CONF_CPUS > 62 > + CPU(62) > + #endif > + #if CONF_CPUS > 63 > + CPU(63) > + #endif > + #if CONF_CPUS > 64 > #error Unsupported number of CPUs > #endif > }; > > ``` > > (generated with vim macros and Ctrl-a :-)) > > I have just confirmed that this procedure works. > > fs_bigLITTLE.py apparently can automatically generate the DTBs without > the ugly patch. > > > On Tue, May 8, 2018 at 11:09 PM, Haiyang Han > <haiyang....@eecs.northwestern.edu> wrote: > > Hi all, > > > > I'm experiencing problems trying to boot up a 16-core ARM system. The > > command line I'm using is: > > /home/hhu010/tools/gem5/build/ARM/gem5.opt > > /home/hhu010/tools/gem5/configs/example/fs.py > > > --disk-image=/home/hhu010/tools/arm-gem5-rsk/fs_files/disks/aarch64-parsec-3.0-all.img > > --caches --l2cache --machine-type=VExpress_GEM5_V1 -n 16 > > > > I can boot up with 1, 2 ,4 and 8 cores but with 16 cores, the terminal > > doesn't output anything. > > > > Does anyone have a similar problem? > > > > Thanks, > > Haiyang > > > > _______________________________________________ > > gem5-users mailing list > > gem5-users@gem5.org > > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users -- Haiyang Han, Drake Ph.D. of Computer Engineering Northwestern University Evanston, IL Tel: (224)714-9974 E-mail: haiyang....@eecs.northwestern.edu, haiyanghan2...@u.northwestern.edu
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users