blob: 0b5299a34078bead34294d652258c13b482aba23 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
Broadcom BCM283x
================
Raspberry Pi
------------
1. Prepare an SD or microSD card with a FAT filesystem of at least 30 MB in size.
2. Download the `Raspberry Pi firmware`_ (120 MB), unzip it, and copy the
contents of the ``boot/`` folder to your card.
3. Use ``make rpi_defconfig; make`` to build barebox. This will create the following images:
- ``images/barebox-raspberry-pi-1.img`` for the BCM2835/ARM1176JZF-S (Raspberry Pi 1, Raspberry Pi Zero)
- ``images/barebox-raspberry-pi-2.img`` for the BCM2836/CORTEX-A7 (Raspberry Pi 2)
- ``images/barebox-raspberry-pi-3.img`` for the BCM2837/CORTEX-A53 (Raspberry Pi 3)
- ``images/barebox-raspberry-pi-cm3.img`` for the BCM2837/CORTEX-A53 (Raspberry Pi CM3)
Copy the respective image for your model to your SD card and name it
``barebox.img``.
Alternatively, ``images/barebox-dt-2nd.img`` can be used as single bootloader for all
supported 32-bit boards. In this case the device tree supplied by the video core
is directly used by barebox to probe. The device trees in ``arch/arm/dts/*.dtb``
will need to be renamed for alignment with the naming scheme expected by the videocore.
4. Create a text file ``config.txt`` on the SD card with the following content::
kernel=barebox.img
enable_uart=1
If you want to use the mini-uart instead of the PL011, you may need to additionally set::
uart_2ndstage=1
This is required on boards, like the Raspberry Pi Zero W, that use the mini-uart as the
primary UART. It is needed on boards like the CM3 as well if the mini-uart is to be used.
(For more information, refer to the `documentation for config.txt`_.)
5. Connect to board's UART (115200 8N1);
Use PIN6 (GND), PIN8 (UART_TX), PIN10 (UART_RX) pins.
6. Turn board's power on.
VideoCore firmware creates a device tree based on the entries in ``config.txt``. This file is available to the Barebox environment in the file ``/vc.dtb``. For example, to boot a kernel shipped with Raspbian::
bootm -o /vc.dtb /boot/kernel7.img
VideoCore device tree also contains the kernel command-line that is constructed from ``cmdline.txt`` and other parameters internally determined by the VideoCore firmware. Normally in Barebox this command-line gets overwritten on boot by the Linux bootargs (see :ref:`booting_linux`).
The original command-line from VideoCore device tree is available to the Barebox environment in the ``vc.bootargs`` global variable. For example, to append it to the Linux bootargs::
global linux.bootargs.vc="$global.vc.bootargs"
.. _Raspberry Pi firmware: https://codeload.github.com/raspberrypi/firmware/zip/80e1fbeb78f9df06701d28c0ed3a3060a3f557ef
.. _documentation for config.txt: https://www.raspberrypi.org/documentation/configuration/config-txt/
|