Operation Manual

Using config.txt, you can tell the BCM2835 to allow its CPU portion access to the L2 cache memory. In some cases, this
can improve performance. In other cases, this can harm performance, due to the physical location of the cache being a relatively
long distance away from the CPU section of the chip and closer to the GPU.
Use of the L2 cache memory also requires a Linux distribution that has been compiled with the cache memory in mind. Enabling
the L2 cache on a distribution built for a standard Pi with cache disabled may result in strange and unwanted behaviour.
To switch the L2 cache on for CPU access, simply add the following line to the config.txt file:
disable_l2cache=0
As with all config.txt settings, the system must be rebooted before the change will take place. To disable the CPUs access
to the cache memory, replace the 0 with a 1.
Enabling Test Mode
This final option in config.txt is one the overwhelming majority of Pi users wont need to touch, but is included here for
completeness: test mode. Used during production of the Raspberry Pi at the factory, the test modecombined with special
hardware used to electrically check the boardallows the factory staff to make sure the Pi is operating as it should.
Enabling test mode wont do any permanent damage, but the Pi won’t boot into its operating system until the mode is disabled again and the power
to the Pi is switched off and back on.
If youre curious to see what the Pi looks like to factory staff, you can enable test mode by entering the following option into the
config.txt file:
test_mode=1
As with other config.txt settings, test mode wont be enabled until the Pi is restarted. Test mode can be disabled again by
removing the line in config.txt, deleting the file altogether, or replacing the 1 with a 0.
Memory Partitioning—start.elf
Although the Raspberry Pi only has a single 256 MB memory chip, that memory can be apportioned to the hardware in a variety
of ways. The BCM2835 is split into two main sections: the general-purpose CPU and the graphics-oriented GPU. Both of these
sections require memory to operate, meaning that the 256 MB of memory on the Raspberry Pi needs to be shared between the
two. This split is controlled by a file called start.elf.
The typical split is chosen by the maintainers of the Linux distribution installed on the Pi. Some choose to split the memory
straight down the middle, at 128 MB each for CPU and GPU, ensuring that the graphics hardware can perform to its fullest
potential. Others allow the CPU to have a larger share in order to improve general-purpose performance.
The majority of distributions include three copies of start.elf in addition to the one thats loaded when the Pi boots:
arm128_start.elf, arm192_start.elf, and arm224_start.elf (see Figure 6-2). These three files are identical except
for one small change: the amount of memory reserved for the BCM2835’s CPU.
Figure 6-2: The various start.elf files in the /boot directory