summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/boards/at91.rst51
-rw-r--r--Documentation/boards/at91/microchip-at91rm9200-ek.rst8
-rw-r--r--Documentation/boards/at91/microchip-at91sam9260-ek.rst8
-rw-r--r--Documentation/boards/at91/microchip-at91sam9261-ek.rst18
-rw-r--r--Documentation/boards/at91/microchip-at91sam9263-ek.rst132
-rw-r--r--Documentation/boards/at91/microchip-at91sam9g10-ek.rst8
-rw-r--r--Documentation/boards/at91/microchip-at91sam9g20-ek.rst8
-rw-r--r--Documentation/boards/at91/microchip-at91sam9m10g45-ek.rst8
-rw-r--r--Documentation/boards/at91/microchip-at91sam9n12-ek.rst8
-rw-r--r--Documentation/boards/at91/microchip-at91sam9x5-ek.rst10
-rw-r--r--Documentation/boards/at91/microchip-ksz9477-evb.rst11
-rw-r--r--Documentation/boards/at91/microchip-sama5d3-xplained.rst8
-rw-r--r--Documentation/boards/at91/microchip-sama5d3x-ek.rst8
-rw-r--r--Documentation/boards/at91/microchip-sama5d4-xplained.rst8
-rw-r--r--Documentation/boards/at91/somfy-animeo-ip.rst4
-rw-r--r--Documentation/boards/at91/telit-evk-pro3.rst9
-rw-r--r--Documentation/boards/imx.rst107
-rw-r--r--Documentation/boards/imx/nxp-imx8mq-evk.rst4
-rw-r--r--Documentation/user/networking.rst4
19 files changed, 380 insertions, 42 deletions
diff --git a/Documentation/boards/at91.rst b/Documentation/boards/at91.rst
new file mode 100644
index 0000000000..f25cb01bb1
--- /dev/null
+++ b/Documentation/boards/at91.rst
@@ -0,0 +1,51 @@
+Microchip (Atmel) AT91
+======================
+
+The Microchip (former Atmel) AT91 architecure has very good support within
+barebox.
+Most boards today have their description in their board files, but
+boards are slowly migrating to use DT.
+Likewise most boards are not yet migrated to multi image support, but
+this is also ongoing.
+
+The boot process of the AT91 CPU's is a two step process.
+The first step is named the bootstrap and at91bootstrap
+is often used (https://github.com/linux4sam/at91bootstrap).
+barebox supports bootstrapping some at91 boards as documented
+in the following.
+
+The bootstrap program are loaded by a boot program and can be loaded
+from DataFlash, NAND Flash, SD Card or via USB.
+The bootstrap program do the low-level configuration of the
+processor and then load and execute barebox.
+
+AT91 boards
+-----------
+The majority of the supported boards have a short entry here.
+For each board defconfig file(s) are noted but barebox may include additional
+defconfig files and may also include boards not included in the following.
+
+.. toctree::
+ :glob:
+ :maxdepth: 1
+
+ at91/*
+
+TODO
+----
+This is a list of AT91 specific TODO items, listed in no particular order.
+
+* fix prototype for barebox_arm_reset_vector. Introduce the prototype:
+
+.. code-block:: c
+
+ void __naked __bare_init barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2)
+
+
+This will unify the prototype for the reset vector for multi image and standalone images
+
+* Update remaining boards to DT
+* Update remaing boards to support multi image boot
+* Get bootstrap working in combination with multi image
+* Introduce defaultenv2 for all boards
+* Add pwm driver (required to support backlight)
diff --git a/Documentation/boards/at91/microchip-at91rm9200-ek.rst b/Documentation/boards/at91/microchip-at91rm9200-ek.rst
new file mode 100644
index 0000000000..2eecf48272
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91rm9200-ek.rst
@@ -0,0 +1,8 @@
+Atmel AT91RM9200-EK Evaluation Kit
+==================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91rm9200ek_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9260-ek.rst b/Documentation/boards/at91/microchip-at91sam9260-ek.rst
new file mode 100644
index 0000000000..c54c262513
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9260-ek.rst
@@ -0,0 +1,8 @@
+Atmel AT91SAM9260-EK Evaluation Kit
+===================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9260ek_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9261-ek.rst b/Documentation/boards/at91/microchip-at91sam9261-ek.rst
new file mode 100644
index 0000000000..df88282959
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9261-ek.rst
@@ -0,0 +1,18 @@
+Atmel AT91SAM9261-EK Evaluation Kit
+===================================
+
+For AT91SAM9261-EK there are three defconfigs.
+
+The two defconfigs listed below are almost identical.
+The one named _first_stage_ can be used for FLASH as it allows the first part to be loaded to SRAM.
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9261ek_defconfig
+ make ARCH=arm at91sam9261ek_first_stage_defconfig
+
+The following defconfig can be used to build a bootstrap variant of barebox
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9261ek_bootstrap_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9263-ek.rst b/Documentation/boards/at91/microchip-at91sam9263-ek.rst
new file mode 100644
index 0000000000..8022cdd678
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9263-ek.rst
@@ -0,0 +1,132 @@
+Atmel AT91SAM9263-EK Evaluation Kit
+===================================
+
+The AT91SAM9263-EK evaluation kit supports Device Tree and Multi Images.
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9263ek_defconfig
+
+Notes while working on at91sam9263ek bootstrap support
+
+The at91sam9263 have support for a boot program,
+like the other members in the Atmel at91 series.
+
+The boot program (ROMBOOT) will try to load the
+boot program from DataFlash, SD Card, NAND Flash and USB
+
+SD Card is the first to try.
+It looks for a file named BOOT.BIN in the first
+partition in a FAT16/32 filesystem.
+
+To generate the SD Card image I used genimage:
+(https://github.com/pengutronix/genimage)
+Onle 2 GB SD card works, 4 GB did not work. ROMBOOT do not
+support high capacity SD cards.
+
+Configuration file:
+
+.. code-block:: none
+
+ image boot.vfat {
+ name = "boot"
+ vfat {
+ /*
+ * RomBOOT in the at91sam9263 does not recognize
+ * the default FAT partition created by mkdosfs.
+ * -n BOOT - Set volume label to "BOOT"
+ * -F 16 - Force the partition to FAT 16
+ * -D 0 - Set drive number to 0
+ * -R 1 -a - Reserve only one sector
+ * The combination of "-D 0" AND "-R 1 -a"
+ * is required with mkdosfs version 4.1
+ */
+ extraargs = "-n BOOT -F 16 -D 0 -R 1 -a"
+ file BOOT.BIN { image = "barebox.bin" } // barebox.bin from root of barebox dir
+ file barebox.bin { image = "barebox-at91sam9263ek.img" }
+ file zImage { image = "zImage" }
+ }
+
+ size = 16M
+ }
+
+ image rootfs.ext4 {
+ ext4 {
+ label = "root"
+ }
+ mountpoint = "/"
+ size = 1500M
+ }
+
+ image SD {
+ hdimage {}
+
+ partition boot {
+ partition-type = 0xc
+ bootable = "true"
+ image = "boot.vfat"
+ }
+
+ partition root {
+ image = "rootfs.ext4"
+ partition-type = 0x83
+ }
+
+ }
+
+ROMBOOT will load the BOOT.BIN file to internal SRAM that
+starts at 0x300000. Maximum size 0x12000 (72 KiB).
+When loaded ROMBOOT will remap like this:
+
+.. code-block:: none
+
+ 0x00000000 0x00000000
+ Internal ROM => Internal SRAM
+
+ 0x00300000 0x00400000
+ Internal SRAM => Internal ROM
+
+It is not documented but assumed that ROMBOOT uses the
+MMU to remap the addresses.
+There seems not to be a dedicated remapping feature that is used.
+
+Note: For DataFlash and NAND Flash the image is validated.
+The first 28 bytes must be valid load PC or PC relative addressing.
+Vector 0x6 must include the size of the image (in bytes).
+This validation is (according to datasheet) not done for SD Card boots.
+
+barebox related notes when trying to make it work with PBL enabled
+
+To let barebox detect the SD card early use: CONFIG_MCI_STARTUP=y
+
+When PBL (and MULTI_IMAGE) are enabled then barebox creates
+a binary with the following structure:
+
+.. code-block:: none
+
+ +----------------------+
+ | PBL (PreBootLoader) |
+ +----------------------+
+ | piggy.o |
+ |+--------------------+|
+ ||barebox second stage||
+ |+--------------------+|
+ +----------------------+
+
+The PBL contains code from the sections .text_head_entry*, .text_bare_init* and .text*
+
+``.text_head_entry*:``
+This is the reset vector and exception vectors. Must be the very first in the file
+
+``.text_bare_init*:``
+Everything in this section, and , is checked at link time.
+Size most be less than BAREBOX_MAX_BARE_INIT_SIZE / ARCH_BAREBOX_MAX_BARE_INIT_SIZE
+
+at91 specify the size of the two sections in exception vector 6 (see above),
+if CONFIG_AT91_LOAD_BAREBOX_SRAM is defined.
+I think this is because some at91 variants have only very limited SRAM size,
+and we copy only a minimal part to the SRAM. The remaining part is then
+executed in-place.
+For at91sam9263 we have a large SRAM so there is room for the full bootstrap binary.
diff --git a/Documentation/boards/at91/microchip-at91sam9g10-ek.rst b/Documentation/boards/at91/microchip-at91sam9g10-ek.rst
new file mode 100644
index 0000000000..f8f7d561a5
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9g10-ek.rst
@@ -0,0 +1,8 @@
+Atmel AT91SAM9G10-EK Evaluation Kit
+===================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9g10ek_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9g20-ek.rst b/Documentation/boards/at91/microchip-at91sam9g20-ek.rst
new file mode 100644
index 0000000000..b641e0a388
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9g20-ek.rst
@@ -0,0 +1,8 @@
+Atmel AT91SAM9G20-EK Evaluation Kit
+===================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9g20ek_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9m10g45-ek.rst b/Documentation/boards/at91/microchip-at91sam9m10g45-ek.rst
new file mode 100644
index 0000000000..ac54ed7c58
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9m10g45-ek.rst
@@ -0,0 +1,8 @@
+Atmel AT91SAM9M10G45-EK Evaluation Kit
+======================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9m10g45ek_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9n12-ek.rst b/Documentation/boards/at91/microchip-at91sam9n12-ek.rst
new file mode 100644
index 0000000000..8aeba53f1e
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9n12-ek.rst
@@ -0,0 +1,8 @@
+Atmel AT91SAM9N12-EK Evaluation Kit
+===================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9n12ek_defconfig
diff --git a/Documentation/boards/at91/microchip-at91sam9x5-ek.rst b/Documentation/boards/at91/microchip-at91sam9x5-ek.rst
new file mode 100644
index 0000000000..4c7b0cf3da
--- /dev/null
+++ b/Documentation/boards/at91/microchip-at91sam9x5-ek.rst
@@ -0,0 +1,10 @@
+Atmel AT91SAM9X5-EK Evaluation Kit
+===================================
+
+The AT91SAM9X5-EK kit supports Device Tree and Multi Images.
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm at91sam9x5ek_defconfig
diff --git a/Documentation/boards/at91/microchip-ksz9477-evb.rst b/Documentation/boards/at91/microchip-ksz9477-evb.rst
new file mode 100644
index 0000000000..4c4c4aecbf
--- /dev/null
+++ b/Documentation/boards/at91/microchip-ksz9477-evb.rst
@@ -0,0 +1,11 @@
+Microchip KSZ 9477 Evaluation board
+===================================
+
+This is an evaluation board for a switch that uses the at91sam9x5 CPU.
+The board uses Device Tree and supports multi image.
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm microchip_ksz9477_evb_defconfig
diff --git a/Documentation/boards/at91/microchip-sama5d3-xplained.rst b/Documentation/boards/at91/microchip-sama5d3-xplained.rst
new file mode 100644
index 0000000000..e96111af72
--- /dev/null
+++ b/Documentation/boards/at91/microchip-sama5d3-xplained.rst
@@ -0,0 +1,8 @@
+Atmel SAMA5D3_XPLAINED Evaluation Kit
+=====================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm sama5d3_xplained_defconfig
diff --git a/Documentation/boards/at91/microchip-sama5d3x-ek.rst b/Documentation/boards/at91/microchip-sama5d3x-ek.rst
new file mode 100644
index 0000000000..10bf2e611d
--- /dev/null
+++ b/Documentation/boards/at91/microchip-sama5d3x-ek.rst
@@ -0,0 +1,8 @@
+Atmel SAMA5D3X Evaluation Kit
+=============================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm sama5d3xek_defconfig
diff --git a/Documentation/boards/at91/microchip-sama5d4-xplained.rst b/Documentation/boards/at91/microchip-sama5d4-xplained.rst
new file mode 100644
index 0000000000..d8615e4aff
--- /dev/null
+++ b/Documentation/boards/at91/microchip-sama5d4-xplained.rst
@@ -0,0 +1,8 @@
+Atmel SAMA5D4 XPLAINED ULTRA Evaluation Kit
+===========================================
+
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm sama5d4_xplained_defconfig
diff --git a/Documentation/boards/at91/somfy-animeo-ip.rst b/Documentation/boards/at91/somfy-animeo-ip.rst
new file mode 100644
index 0000000000..a87179469b
--- /dev/null
+++ b/Documentation/boards/at91/somfy-animeo-ip.rst
@@ -0,0 +1,4 @@
+Somfy Animeo IP
+===============
+
+No defconfig provided to build barebox
diff --git a/Documentation/boards/at91/telit-evk-pro3.rst b/Documentation/boards/at91/telit-evk-pro3.rst
new file mode 100644
index 0000000000..ea0b070fd1
--- /dev/null
+++ b/Documentation/boards/at91/telit-evk-pro3.rst
@@ -0,0 +1,9 @@
+Atmel Telit EVK-PRO3
+====================
+
+Telit EVK-PRO3 with GE863-PRO3
+Building barebox:
+
+.. code-block:: sh
+
+ make ARCH=arm telit_evk_pro3_defconfig
diff --git a/Documentation/boards/imx.rst b/Documentation/boards/imx.rst
index 99ca10b7cc..2e6a30fd2f 100644
--- a/Documentation/boards/imx.rst
+++ b/Documentation/boards/imx.rst
@@ -43,22 +43,51 @@ SD card:
The above will overwrite the MBR (and consequently the partition table)
on the destination SD card. To preserve the MBR while writing the rest
-of the image to the card, use::
+of the image to the card, use:
+
+.. code-block:: sh
dd if=images/barebox-freescale-imx51-babbage.img of=/dev/sdd bs=1024 skip=1 seek=1
-NOTE: MaskROM on i.MX8 expects image to start at +33KiB mark, so the
+Note that MaskROM on i.MX8 expects the image to start at the +33KiB mark, so the
following command has to be used instead:
+.. code-block:: sh
+
dd if=images/barebox-nxp-imx8mq-evk.img of=/dev/sdd bs=1024 skip=33 seek=33
Or, in case of NAND:
+.. code-block:: sh
+
dd if=images/barebox-nxp-imx8mq-evk.img of=/dev/nand bs=1024 skip=33 seek=1
-The images can also always be started second stage::
+The images can also always be started as second stage on the target:
+
+.. code-block:: console
+
+ barebox@Board Name:/ bootm /mnt/tftp/barebox-freescale-imx51-babbage.img
+
+Using GPT on i.MX
+^^^^^^^^^^^^^^^^^
+
+For i.MX SoCs that place a vendor specific header at the +1KiB mark of a
+boot medium, special care needs to be taken when partitioning that medium
+with GPT. In order to make room for the i.MX boot header, the GPT Partition
+Entry Array needs to be moved from its typical location, LBA 2, to an
+offset past vendor specific information. One way to do this would be
+to use the ``-j`` or ``--adjust-main-table`` option of ``sgdisk``. For
+example, the following sequence
+
+.. code-block:: sh
+
+ sgdisk -Z <block device>
+ sgdisk -o -j 2048 -n 1:8192:+100M <block device>
- bootm /mnt/tftp/barebox-freescale-imx51-babbage.img
+will create a single GPT partition starting at LBA 8192 and would
+place the Partition Entry Array starting at LBA 2048, which should leave
+enough room for the Barebox/i.MX boot header. Once that is done, the ``dd``
+command above can be used to place Barebox on the same medium.
Information about the ``imx-image`` tool
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -70,46 +99,48 @@ options in this file are:
Header:
-+----------------+--------------------------------------------------------------+
-| soc <soctype> |soctype can be one of imx35, imx51, imx53, imx6, imx7, vf610, |
-| | imx8mq |
-+----------------+--------------------------------------------------------------+
-| loadaddr <adr> | The address the binary is uploaded to |
-+----------------+--------------------------------------------------------------+
-| dcdofs <ofs> | The offset of the image header in the image. This should be: |
-| | * ``0x400``: MMC/SD, NAND, serial ROM, PATA, SATA |
-| | * ``0x1000``: NOR Flash |
-| | * ``0x100``: OneNAND |
-+----------------+--------------------------------------------------------------+
++--------------------+--------------------------------------------------------------+
+| ``soc <soctype>`` | soctype can be one of imx35, imx51, imx53, imx6, imx7, vf610,|
+| | imx8mq |
++--------------------+--------------------------------------------------------------+
+| ``loadaddr <adr>`` | The address the binary is uploaded to |
++--------------------+--------------------------------------------------------------+
+| ``dcdofs <ofs>`` | The offset of the image header in the image. This should be: |
+| | |
+| | * ``0x400``: MMC/SD, NAND, serial ROM, PATA, SATA |
+| | * ``0x1000``: NOR Flash |
+| | * ``0x100``: OneNAND |
++--------------------+--------------------------------------------------------------+
Memory manipulation:
-+------------------------------------+-----------------------------------------+
-| wm 8 <addr> <value> | write <value> into byte <addr> |
-+------------------------------------+-----------------------------------------+
-| wm 16 <addr> <value> | write <value> into short <addr> |
-+------------------------------------+-----------------------------------------+
-| wm 32 <addr> <value> | write <value> into word <addr> |
-+------------------------------------+-----------------------------------------+
-| set_bits <width> <addr> <value> | set set bits in <value> in <addr> |
-+------------------------------------+-----------------------------------------+
-| clear_bits <width> <addr> <value> | clear set bits in <value> in <addr> |
-+------------------------------------+-----------------------------------------+
-| nop | do nothing (just waste time) |
-+------------------------------------+-----------------------------------------+
-
-<width> can be of 8, 16 or 32.
++----------------------------------------+-------------------------------------------------+
+| ``wm 8 <addr> <value>`` | write ``<value>`` into byte ``<addr>`` |
++----------------------------------------+-------------------------------------------------+
+| ``wm 16 <addr> <value>`` | write ``<value>`` into short ``<addr>`` |
++----------------------------------------+-------------------------------------------------+
+| ``wm 32 <addr> <value>`` | write ``<value>`` into word ``<addr>`` |
++----------------------------------------+-------------------------------------------------+
+| ``set_bits <width> <addr> <value>`` | set set bits in ``<value>`` in ``<addr>`` |
++----------------------------------------+-------------------------------------------------+
+| ``clear_bits <width> <addr> <value>`` | clear set bits in ``<value>`` in ``<addr>`` |
++----------------------------------------+-------------------------------------------------+
+| ``nop`` | do nothing (just waste time) |
++----------------------------------------+-------------------------------------------------+
+
+``<width>`` can be one of 8, 16 or 32.
Checking conditions:
-+------------------------------------+-----------------------------------------+
-| check <width> <cond> <addr> <mask> | Poll until condition becomes true. |
-| | with <cond> being one of: |
-| | * ``until_all_bits_clear`` |
-| | * ``until_all_bits_set`` |
-| | * ``until_any_bit_clear`` |
-| | * ``until_any_bit_set`` |
-+------------------------------------+-----------------------------------------+
++----------------------------------------+-----------------------------------------+
+| ``check <width> <cond> <addr> <mask>`` | Poll until condition becomes true. |
+| | with ``<cond>`` being one of: |
+| | |
+| | * ``until_all_bits_clear`` |
+| | * ``until_all_bits_set`` |
+| | * ``until_any_bit_clear`` |
+| | * ``until_any_bit_set`` |
++----------------------------------------+-----------------------------------------+
Some notes about the mentioned *conditions*.
diff --git a/Documentation/boards/imx/nxp-imx8mq-evk.rst b/Documentation/boards/imx/nxp-imx8mq-evk.rst
index f0cdc34866..dfe004e0e4 100644
--- a/Documentation/boards/imx/nxp-imx8mq-evk.rst
+++ b/Documentation/boards/imx/nxp-imx8mq-evk.rst
@@ -45,8 +45,8 @@ DDR Configuration Code
The following two files:
- - ddr_init.c
- - ddrphy_train.c
+ - arch/arm/boards/nxp-imx8mq-evk/ddr_init.c
+ - arch/arm/boards/nxp-imx8mq-evk/ddrphy_train.c
were obtained by running i.MX 8M DDR Tool that can be found here:
diff --git a/Documentation/user/networking.rst b/Documentation/user/networking.rst
index 6bb99b0da2..9231ebde56 100644
--- a/Documentation/user/networking.rst
+++ b/Documentation/user/networking.rst
@@ -45,8 +45,8 @@ device:
| | | any directly visible subnet. May be set |
| | | automatically by DHCP. |
+------------------------------+--------------+------------------------------------------------+
-| global.net.server | ipv4 host | The default server address. If unspecified, may|
-| | | be set by DHCP |
+| global.net.server | hostname or | The default server. If unspecified, may be set |
+| | ipv4 address | by DHCP |
+------------------------------+--------------+------------------------------------------------+
| global.net.nameserver | ipv4 address | The DNS server used for resolving host names. |
| | | May be set by DHCP |