u-boot/board/technexion/pico-imx6
Masahiro Yamada b75d8dc564 treewide: convert bd_t to struct bd_info by coccinelle
The Linux coding style guide (Documentation/process/coding-style.rst)
clearly says:

  It's a **mistake** to use typedef for structures and pointers.

Besides, using typedef for structures is annoying when you try to make
headers self-contained.

Let's say you have the following function declaration in a header:

  void foo(bd_t *bd);

This is not self-contained since bd_t is not defined.

To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h>

  #include <asm/u-boot.h>
  void foo(bd_t *bd);

Then, the include direcective pulls in more bloat needlessly.

If you use 'struct bd_info' instead, it is enough to put a forward
declaration as follows:

  struct bd_info;
  void foo(struct bd_info *bd);

Right, typedef'ing bd_t is a mistake.

I used coccinelle to generate this commit.

The semantic patch that makes this change is as follows:

  <smpl>
  @@
  typedef bd_t;
  @@
  -bd_t
  +struct bd_info
  </smpl>

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2020-07-17 09:30:13 -04:00
..
Kconfig pico-imx6: Add initial support 2019-10-08 16:35:59 +02:00
MAINTAINERS pico-imx6: Add initial support 2019-10-08 16:35:59 +02:00
Makefile pico-imx6: Add initial support 2019-10-08 16:35:59 +02:00
pico-imx6.c treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
README pico-imx6: Add initial support 2019-10-08 16:35:59 +02:00
spl.c treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00

How to Update U-Boot on pico-imx6q/dl boards
--------------------------------------------

Required software on the host PC:

- UUU: https://github.com/NXPmicro/mfgtools

Build U-Boot for pico:

$ make mrproper
$ make pico-imx6_defconfig
$ make

This generates the SPL and u-boot-dtb.img binaries.

1. Loading U-Boot via USB Serial Download Protocol

Note: This method is convenient for development purposes.
If the eMMC has already a U-Boot flashed then the user can
go to step 2 below in order to update U-Boot.

Put pico board in USB download mode (Refer to the following link for details:
https://www.technexion.com/support/knowledgebase/boot-configuration-settings-for-pico-baseboards/).

Connect a USB to serial adapter between the host PC and pico.

Connect a USB cable between the OTG pico port and the host PC.

Open a terminal program such as minicom.

Copy SPL and u-boot-dtb.img to the uuu folder.

Load the U-Boot via USB:

$ sudo ./uuu -v uuu_script

where uuu_script contains the following:

SDP:  boot -f SPL
SDPU: write -f u-boot-dtb.img -addr 0x10000000
SDPU: jump -addr 0x10000000

Then U-Boot starts and its messages appear in the console program.

Use the default environment variables:

=> env default -f -a
=> saveenv

2. Flashing U-Boot into the eMMC

The  default  U-Boot   environment  expects  the  use   of  eMMC  user
partition. To ensure we are using  the proper eMMC partition for boot,
please run:

=> mmc partconf 0 0 0 0

Next, run the DFU agent so we can flash the new images using dfu-util
tool:

=> dfu 0 mmc 0

Flash SPL and u-boot-dtb.img into the eMMC running the following commands on a PC:

$ sudo dfu-util -D SPL -a spl

$ sudo dfu-util -D u-boot-dtb.img -a u-boot

Remove power from the pico board.

Put pico board into normal boot mode.

Power up the board and the new updated U-Boot should boot from eMMC.