Hello
I am trying to boot a quadcore system (1 core per cluster| 4 clusters |
per-core DVFS support | *dts file attached w**ith e-mail*) with
arm_detailed CPU model. I am running with DVFS enabled linux-linaro gem5
specific kernel configured for ondemand governor. I am using the disk
image ARMv7a-ICS-Android.SMP.Asimbench-v3.img that comes with asimbench.
The simulation panics wih following message:
info: trap check M:0 N:0 1:0 2:0 hdcr 0, hcptr 3fff, hstr 0
warn: Not doing anything for miscreg ACTLR
warn: Not doing anything for write of miscreg ACTLR
warn: instruction 'mcr bpiall' unimplemented
82292307048: system.cpu1.break_event: break event panic triggered
82292308476: system.cpu1.break_event: break event panic triggered
82292308476: system.cpu1.break_event: break event panic triggered
82292308476: system.cpu1.break_event: break event panic triggered
82292308476: system.cpu1.break_event: break event panic triggered
The *system.terminal output (fi**le attached with the email)* is stuck
at following point:
Calibrating delay loop (skipped) preset value.. 3997.69 BogoMIPS
(lpj=19988480)
52 ^Mpid_max: default: 32768 minimum: 301
53 ^MMount-cache hash table entries: 512
54 ^MCPU: Testing write buffer coherency: ok
55 ^MCPU0: update cpu_power 1024
56 ^MCPU0: thread -1, cpu 0, socket 0, mpidr 80000000
57 ^MSetting up static identity map for 0x8043d988 - 0x8043d9bc
58 ^M[<80015844>] (unwind_backtrace+0x0/0xf8) from [<80011d20>]
(show_stack+0x10/0x14)
59 ^M[<80011d20>] (show_stack+0x10/0x14) from [<80439214>]
(dump_stack+0x74/0xb4)
60 ^M[<80439214>] (dump_stack+0x74/0xb4) from [<80014840>]
(handle_IPI+0x194/0x1c8)
61 ^M[<80014840>] (handle_IPI+0x194/0x1c8) from [<80008598>]
(gic_handle_irq+0x54/0x5c)
62 ^M[<80008598>] (gic_handle_irq+0x54/0x5c) from [<80012800>]
(__irq_svc+0x40/0x70)
63 ^MException stack(0x9f843ea0 to 0x9f843ee8)
64 ^M3ea0: 001f99f9 00000000 ea15aaf8 8033ae48 806972f4 000000fb
001f995c 80630eb0
65 ^M3ec0: 8061a414 00000000 9f875400 00000000 00000002 9f843ee8
800152b4 8033ae4c
66 ^M3ee0: a0000113 ffffffff
67 ^M[<80012800>] (__irq_svc+0x40/0x70) from [<8033ae4c>]
(arch_counter_get_cntvct+0x4/0xc)
68 ^M[<8033ae4c>] (arch_counter_get_cntvct+0x4/0xc) from [<800152b4>]
(arch_timer_read_counter_long+0x14/0x18)
69 ^M[<800152b4>] (arch_timer_read_counter_long+0x14/0x18) from
[<8021fc54>] (__timer_delay+0x48/0x5c)
70 ^M[<8021fc54>] (__timer_delay+0x48/0x5c) from [<8001fa64>]
(versatile_boot_secondary+0x94/0xd8)
71 ^M[<8001fa64>] (versatile_boot_secondary+0x94/0xd8) from
[<8001406c>] (__cpu_up+0xa4/0x168)
72 ^M[<8001406c>] (__cpu_up+0xa4/0x168) from [<80022adc>]
(cpu_up+0xe4/0x188)
73 ^M[<80022adc>] (cpu_up+0xe4/0x188) from [<805d7368>]
(smp_init+0x68/0xac)
74 ^M[<805d7368>] (smp_init+0x68/0xac) from [<805c9bc4>]
(kernel_init_freeable+0xd0/0x22c)
75 ^M[<805c9bc4>] (kernel_init_freeable+0xd0/0x22c) from [<80433d14>]
(kernel_init+0x8/0x110)
76 ^M[<80433d14>] (kernel_init+0x8/0x110) from [<8000e378>]
(ret_from_fork+0x14/0x3c)
Interestingly, the *problem goes away when I change my CPU model in
commandline from "arm_detailed" to "detailed"*. Does anyone have any
ideas on this? I was under the impression that arm_detailed cpu was
different from detailed CPU only in size of certain resources like
buffer sizes, ALUs etc; but it seems there is more to it!
Further, I am *able to boot with arm_detailed cpu with a single core*.
Would really appreciate any help on understanding and resolving this issue!
--
Regards
Lokesh Jindal
Booting Linux on physical CPU 0x0
Initializing cgroup subsys cpuset
Linux version 3.13.0-rc2-00001-ga75e551-dirty (ljindal@bigbird) (gcc version
4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #24 SMP PREEMPT Wed Jan 21 14:10:45 CST
2015
Kernel was built at commit id 'a75e551'
CPU: ARMv7 Processor [410fc0f0] revision 0 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: V2P-CA15
bootconsole [earlycon0] enabled
Memory policy: Data cache writealloc
kdebugv2m: Following are test values to confirm proper working
kdebugv2m: Ranges 42000000 0
kdebugv2m: Regs 30000000 1000000
kdebugv2m: Virtual-Reg f0000000
kdebugv2m: pci node addr_cells 3
kdebugv2m: pci node size_cells 2
kdebugv2m: motherboard addr_cells 2
On node 0 totalpages: 131072
free_area_init_node: node 0, pgdat 806485c0, node_mem_map 806a7000
Normal zone: 1024 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 131072 pages, LIFO batch:31
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
PERCPU: Embedded 8 pages/cpu @80ab0000 s12160 r8192 d12416 u32768
pcpu-alloc: s12160 r8192 d12416 u32768 alloc=8*4096
pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
Kernel command line: earlyprintk=pl011,0x1c090000 console=ttyAMA0 lpj=19988480
norandmaps rw loglevel=8 mem=512MB root=/dev/sda1 init=/init
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 496408K/524288K available (4469K kernel code, 236K rwdata, 1420K
rodata, 287K init, 358K bss, 27880K reserved, 0K highmem)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xa0800000 - 0xff000000 (1512 MB)
lowmem : 0x80000000 - 0xa0000000 ( 512 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.text : 0x80008000 - 0x805c8a08 (5891 kB)
.init : 0x805c9000 - 0x80610f80 ( 288 kB)
.data : 0x80612000 - 0x8064d16c ( 237 kB)
.bss : 0x8064d16c - 0x806a6c90 ( 359 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
Preemptible hierarchical RCU implementation.
RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
NR_IRQS:16 nr_irqs:16 16
Architected cp15 timer(s) running at 25.16MHz (phys).
sched_clock: 56 bits at 25MHz, resolution 39ns, wraps every 2730666655744ns
Switching to timer-based delay loop
Console: colour dummy device 80x30
Calibrating delay loop (skipped) preset value.. 3997.69 BogoMIPS (lpj=19988480)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
CPU0: update cpu_power 1024
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x8043d988 - 0x8043d9bc
[<80015844>] (unwind_backtrace+0x0/0xf8) from [<80011d20>]
(show_stack+0x10/0x14)
[<80011d20>] (show_stack+0x10/0x14) from [<80439214>] (dump_stack+0x74/0xb4)
[<80439214>] (dump_stack+0x74/0xb4) from [<80014840>] (handle_IPI+0x194/0x1c8)
[<80014840>] (handle_IPI+0x194/0x1c8) from [<80008598>]
(gic_handle_irq+0x54/0x5c)
[<80008598>] (gic_handle_irq+0x54/0x5c) from [<80012800>] (__irq_svc+0x40/0x70)
Exception stack(0x9f843ea0 to 0x9f843ee8)
3ea0: 001f99f9 00000000 ea15aaf8 8033ae48 806972f4 000000fb 001f995c 80630eb0
3ec0: 8061a414 00000000 9f875400 00000000 00000002 9f843ee8 800152b4 8033ae4c
3ee0: a0000113 ffffffff
[<80012800>] (__irq_svc+0x40/0x70) from [<8033ae4c>]
(arch_counter_get_cntvct+0x4/0xc)
[<8033ae4c>] (arch_counter_get_cntvct+0x4/0xc) from [<800152b4>]
(arch_timer_read_counter_long+0x14/0x18)
[<800152b4>] (arch_timer_read_counter_long+0x14/0x18) from [<8021fc54>]
(__timer_delay+0x48/0x5c)
[<8021fc54>] (__timer_delay+0x48/0x5c) from [<8001fa64>]
(versatile_boot_secondary+0x94/0xd8)
[<8001fa64>] (versatile_boot_secondary+0x94/0xd8) from [<8001406c>]
(__cpu_up+0xa4/0x168)
[<8001406c>] (__cpu_up+0xa4/0x168) from [<80022adc>] (cpu_up+0xe4/0x188)
[<80022adc>] (cpu_up+0xe4/0x188) from [<805d7368>] (smp_init+0x68/0xac)
[<805d7368>] (smp_init+0x68/0xac) from [<805c9bc4>]
(kernel_init_freeable+0xd0/0x22c)
[<805c9bc4>] (kernel_init_freeable+0xd0/0x22c) from [<80433d14>]
(kernel_init+0x8/0x110)
[<80433d14>] (kernel_init+0x8/0x110) from [<8000e378>] (ret_from_fork+0x14/0x3c)
/*
* ARM Ltd. Versatile Express
*
* CoreTile Express A15x2 (version with Test Chip 1)
* Cortex-A15 MPCore (V2P-CA15)
*
* HBI-0237A
*/
/dts-v1/;
/memreserve/ 0x8f000000 0x01000000;
/ {
model = "V2P-CA15";
arm,hbi = <0x0>;
arm,vexpress,site = <0xf>;
compatible = "arm,vexpress,v2p-ca15,tc1", "arm,vexpress,v2p-ca15",
"arm,vexpress";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
chosen { };
aliases {
serial0 = &v2m_serial0;
serial1 = &v2m_serial1;
serial2 = &v2m_serial2;
serial3 = &v2m_serial3;
i2c0 = &v2m_i2c_dvi;
i2c1 = &v2m_i2c_pcie;
};
clusters {
#address-cells = <1>;
#size-cells = <0>;
cluster0: cluster@0 {
reg = <0>;
cores {
#address-cells = <1>;
#size-cells = <0>;
core0: core@0 {
reg = <0>;
};
};
};
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0>;
cluster = <&cluster0>;
core = <&core0>;
clock-frequency = <1000000000>;
};
};
memory@80000000 {
device_type = "memory";
reg = <0 0x80000000 0 0x40000000>;
};
hdlcd@2b000000 {
compatible = "arm,hdlcd";
reg = <0 0x2b000000 0 0x1000>;
interrupts = <0 85 4>;
clocks = <&oscclk5>;
clock-names = "pxlclk";
// mode = "1024x768MR-16@60";
mode = "1920x1080MR-16@60"; // HD mode string
// mode = "3840x2160MR-16@60"; // UHD4K mode string
framebuffer = <0 0x8f000000 0 0x01000000>;
};
/*
memory-controller@2b0a0000 {
compatible = "arm,pl341", "arm,primecell";
reg = <0 0x2b0a0000 0 0x1000>;
clocks = <&oscclk7>;
clock-names = "apb_pclk";
};
*/
/*
wdt@2b060000 {
compatible = "arm,sp805", "arm,primecell";
status = "disabled";
reg = <0 0x2b060000 0 0x1000>;
interrupts = <0 98 4>;
clocks = <&oscclk7>;
clock-names = "apb_pclk";
};
*/
gic: interrupt-controller@2c001000 {
compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
reg = <0 0x2c001000 0 0x1000>,
<0 0x2c002000 0 0x1000>,
<0 0x2c004000 0 0x2000>,
<0 0x2c006000 0 0x2000>;
interrupts = <1 9 0xf04>;
};
/*
memory-controller@7ffd0000 {
compatible = "arm,pl354", "arm,primecell";
reg = <0 0x7ffd0000 0 0x1000>;
interrupts = <0 86 4>,
<0 87 4>;
clocks = <&oscclk7>;
clock-names = "apb_pclk";
};
*/
/*
dma@7ffb0000 {
compatible = "arm,pl330", "arm,primecell";
reg = <0 0x7ffb0000 0 0x1000>;
interrupts = <0 92 4>,
<0 88 4>,
<0 89 4>,
<0 90 4>,
<0 91 4>;
clocks = <&oscclk7>;
clock-names = "apb_pclk";
};
*/
/*
timer {
compatible = "arm,armv7-timer";
interrupts = <1 13 0xf08>,
<1 14 0xf08>,
<1 11 0xf08>,
<1 10 0xf08>;
};
*/
timer {
compatible = "arm,cortex-a15-timer",
"arm,armv7-timer";
interrupts = <1 13 0xff01>,
<1 14 0xff01>;
clocks = <&oscclk7>;
clock-names="apb_pclk";
};
/** HACK : cortex-a9-twd-timer hack -- temporary fix */
/*timer@2c080000 {
compatible = "arm,cortex-a9-twd-timer";
reg = <0 0x2c080000 0 0x20>;
interrupts = <1 13 0xf04>;
clocks = <&oscclk7>;
clock-names = "apb_pclk";
};*/
pmu {
compatible = "arm,cortex-a15-pmu";
interrupts = <0 68 4>,
<0 69 4>;
};
gem5_energy_ctrl@1c080000 {
compatible = "arm,gem5-energy-ctrl";
reg = <0 0x1c080000 0 0x1000>;
};
dcc {
compatible = "arm,vexpress,config-bus";
arm,vexpress,config-bridge = <&v2m_sysreg>;
osc@0 {
/* CPU PLL reference clock */
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = <1 0>;
freq-range = <50000000 60000000>;
#clock-cells = <0>;
clock-output-names = "oscclk0";
};
osc@4 {
/* Multiplexed AXI master clock */
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = <1 4>;
freq-range = <20000000 40000000>;
#clock-cells = <0>;
clock-output-names = "oscclk4";
};
oscclk5: osc@5 {
/* HDLCD PLL reference clock */
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = <1 5>;
// freq-range = <23750000 165000000>; // original
freq-range = <23750000 1000000000>; // for gem5
extended
// resolution
support
#clock-cells = <0>;
clock-output-names = "oscclk5";
};
smbclk: osc@6 {
/* SMB clock */
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = <1 6>;
freq-range = <20000000 50000000>;
#clock-cells = <0>;
clock-output-names = "oscclk6";
};
oscclk7: osc@7 {
/* SYS PLL reference clock */
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = <1 7>;
freq-range = <20000000 60000000>;
#clock-cells = <0>;
clock-output-names = "oscclk7";
};
osc@8 {
/* DDR2 PLL reference clock */
compatible = "arm,vexpress-osc";
arm,vexpress-sysreg,func = <1 8>;
freq-range = <40000000 40000000>;
#clock-cells = <0>;
clock-output-names = "oscclk8";
};
volt@0 {
/* CPU core voltage */
compatible = "arm,vexpress-volt";
arm,vexpress-sysreg,func = <2 0>;
regulator-name = "Cores";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1050000>;
regulator-always-on;
label = "Cores";
};
amp@0 {
/* Total current for the two cores */
compatible = "arm,vexpress-amp";
arm,vexpress-sysreg,func = <3 0>;
label = "Cores";
};
temp@0 {
/* DCC internal temperature */
compatible = "arm,vexpress-temp";
arm,vexpress-sysreg,func = <4 0>;
label = "DCC";
};
power@0 {
/* Total power */
compatible = "arm,vexpress-power";
arm,vexpress-sysreg,func = <12 0>;
label = "Cores";
};
energy@0 {
/* Total energy */
compatible = "arm,vexpress-energy";
arm,vexpress-sysreg,func = <13 0>;
label = "Cores";
};
};
smb {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0 0x08000000 0x04000000>,
<1 0 0 0x14000000 0x04000000>,
<2 0 0 0x18000000 0x04000000>,
<3 0 0 0x1c000000 0x04000000>,
<4 0 0 0x0c000000 0x04000000>,
<5 0 0 0x10000000 0x04000000>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
interrupt-map = <0 0 0 &gic 0 0 4>,
<0 0 1 &gic 0 1 4>,
<0 0 2 &gic 0 2 4>,
<0 0 3 &gic 0 3 4>,
<0 0 4 &gic 0 4 4>,
<0 0 5 &gic 0 5 4>,
<0 0 6 &gic 0 6 4>,
<0 0 7 &gic 0 7 4>,
<0 0 8 &gic 0 8 4>,
<0 0 9 &gic 0 9 4>,
<0 0 10 &gic 0 10 4>,
<0 0 11 &gic 0 11 4>,
<0 0 12 &gic 0 12 4>,
<0 0 13 &gic 0 13 4>,
<0 0 14 &gic 0 14 4>,
<0 0 15 &gic 0 15 4>,
<0 0 16 &gic 0 16 4>,
<0 0 17 &gic 0 17 4>,
<0 0 18 &gic 0 18 4>,
<0 0 19 &gic 0 19 4>,
<0 0 20 &gic 0 20 4>,
<0 0 21 &gic 0 21 4>,
<0 0 22 &gic 0 22 4>,
<0 0 23 &gic 0 23 4>,
<0 0 24 &gic 0 24 4>,
<0 0 25 &gic 0 25 4>,
<0 0 26 &gic 0 26 4>,
<0 0 27 &gic 0 27 4>,
<0 0 28 &gic 0 28 4>,
<0 0 29 &gic 0 29 4>,
<0 0 30 &gic 0 30 4>,
<0 0 31 &gic 0 31 4>,
<0 0 32 &gic 0 32 4>,
<0 0 33 &gic 0 33 4>,
<0 0 34 &gic 0 34 4>,
<0 0 35 &gic 0 35 4>,
<0 0 36 &gic 0 36 4>,
<0 0 37 &gic 0 37 4>,
<0 0 38 &gic 0 38 4>,
<0 0 39 &gic 0 39 4>,
<0 0 40 &gic 0 40 4>,
<0 0 41 &gic 0 41 4>,
<0 0 42 &gic 0 42 4>;
/include/ "vexpress-v2m-rs1-gem5.dtsi"
};
};
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev