12297

From OLPC
Revision as of 19:08, 27 February 2015 by Quozl (talk | contribs) (→‎Workaround)
Jump to navigation Jump to search

OLPC has begun enabling the second processor core in the XO-4 laptops.

Problem

The released operating systems 13.2.1 and 13.2.2 run only one core. The XO-4 underperforms compared to some other devices.

Solution

XO-4 only:

Upgrade to 14.1.0 once it is released

Workaround

Care is needed. Without the firmware upgrade, our dual-core kernel will not boot. With the firmware upgrade, the original kernel will not boot. The reason for the restriction is that changes to firmware and kernel must occur at the same time.

On unsecure laptops running 13.2.0, 13.2.1 and 13.2.2, upgrade the kernel and the firmware at the same time. The exact steps are:

sudo rpm -U kernel-3.5.7_xo4-20150108.2115.olpc.b2c8f99.armv7hl.rpm
  • shutdown,
sudo poweroff
  • upgrade the firmware,
ok flash u:\q7c02.rom
  • allow the laptop to boot, and verify dual-core operation:
bash-4.2# cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 2 (v7l)
processor       : 0
BogoMIPS        : 1196.85

processor       : 1
BogoMIPS        : 1196.85

Features        : swp half thumb fastmult vfp edsp iwmmxt thumbee neon vfpv3 tls 
CPU implementer : 0x56
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0x584
CPU revision    : 2

Hardware        : Marvell MMP3 (Device Tree Support) OLPC XO-4
Revision        : 0000
Serial          : 0000000000000000
-bash-4.2# █

To add dual core to a build of Fedora 18, add the kernel and firmware packages to your build.

Reverting

sudo poweroff
  • downgrade the firmware,
ok flash u:\q7b43.rom
  • allow the laptop to boot.

Using a single core kernel on 14.1.0

Certain tasks may benefit from the higher memory allocation bandwidth of the single core kernel.

sudo rm /bootpart/boot/bootfw4.zip
  • downgrade the kernel, by forcing upgrade to lower version;
sudo rpm --upgrade --force \
kernel-3.5.7_xo4-20141118.2329.olpc.cd558cf.armv7hl.rpm
  • shutdown,
sudo poweroff
  • downgrade the firmware,
ok flash u:\q7b43.rom
  • allow the laptop to boot, and verify single-core operation:
-bash-4.2# cat /proc/cpuinfo 
Processor       : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 1191.11
Features        : swp half thumb fastmult vfp edsp iwmmxt thumbee neon vfpv3 tls 
CPU implementer : 0x56
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0x584
CPU revision    : 2

Hardware        : Marvell MMP2 (Device Tree Support)
Revision        : 0000
Serial          : 0000000000000000
-bash-4.2# █

Booting a single core kernel on dual core firmware

For manual use only. Disable the dual core feature before booting, like this:

ok patch noop mmp3-gic linux-fixup
ok boot█

Do not deploy this workaround, as it causes a power draw regression.

See Also