summaryrefslogtreecommitdiff
path: root/doc/board/nxp/mx6sabresd.rst
blob: fe15ba7b798eb15da3dfb613eb97063d066c919e (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
.. SPDX-License-Identifier: GPL-2.0+

mx6sabresd
==========

How to use and build U-Boot on mx6sabresd
-----------------------------------------

The following methods can be used for booting mx6sabresd boards:

1. Booting from SD card

2. Booting from eMMC

3. Booting via Falcon mode (SPL launches the kernel directly)


1. Booting from SD card via SPL
-------------------------------

mx6sabresd_defconfig target supports mx6q/mx6dl/mx6qp sabresd variants.

In order to build it:

.. code-block:: bash

   $ make mx6sabresd_defconfig
   $ make

This will generate the SPL and u-boot-dtb.img binaries.

- Flash the SPL binary into the SD card:

.. code-block:: bash

   $ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 conv=notrunc && sync

- Flash the u-boot-dtb.img binary into the SD card:

.. code-block:: bash

   $ sudo dd if=u-boot-dtb.img of=/dev/sdX bs=1K seek=69 conv=notrunc && sync

2. Booting from eMMC
--------------------

.. code-block:: bash

   $ make mx6sabresd_defconfig
   $ make

This will generate the SPL and u-boot-dtb.img binaries.

- Boot first from SD card as shown in the previous section

In U-boot change the eMMC partition config::

   => mmc partconf 2 1 0 0

Mount the eMMC in the host PC::

   => ums 0 mmc 2

- Flash SPL and u-boot-dtb.img binaries into the eMMC:

.. code-block:: bash

   $ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 conv=notrunc && sync
   $ sudo dd if=u-boot-dtb.img of=/dev/sdX bs=1K seek=69 conv=notrunc && sync

Set SW6 to eMMC 8-bit boot: 11010110

3. Booting via Falcon mode
--------------------------

.. code-block:: bash

  $ make mx6sabresd_defconfig
  $ make

This will generate the SPL image called SPL and the u-boot-dtb.img.

- Flash the SPL image into the SD card

.. code-block:: bash

   $ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 oflag=sync status=none conv=notrunc && sync

- Flash the u-boot-dtb.img image into the SD card

.. code-block:: bash

   $ sudo dd if=u-boot-dtb.img of=/dev/sdX bs=1K seek=69 oflag=sync status=none conv=notrunc && sync

Create a partition for root file system and extract it there

.. code-block:: bash

   $ sudo tar xvf rootfs.tar.gz -C /media/root

The SD card must have enough space for raw "args" and "kernel".
To configure Falcon mode for the first time, on U-Boot do the following commands:

- Setup the IP server::

   # setenv serverip <server_ip_address>

- Download dtb file::

   # dhcp ${fdt_addr} imx6q-sabresd.dtb

- Download kernel image::

   # dhcp ${loadaddr} uImage

- Write kernel at 2MB offset::

   # mmc write ${loadaddr} 0x1000 0x4000

- Setup kernel bootargs::

   # setenv bootargs "console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait quiet rw"

- Prepare args::

   # spl export fdt ${loadaddr} - ${fdt_addr}

- Write args 1MB data (0x800 sectors) to 1MB offset (0x800 sectors)::

   # mmc write 18000000 0x800 0x800

- Press KEY_VOL_UP key, power up the board and then SPL binary will launch the kernel directly.