From: Breno Matheus Lima Date: Wed, 10 Oct 2018 01:10:48 +0000 (+0000) Subject: doc: imx: misc: Reorganize miscellaneous documentation X-Git-Tag: v2018.11-rc3~6^2~15 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=29530093ffea6b04dd62b8f07cf0c2ed9bff8f71;p=oweals%2Fu-boot.git doc: imx: misc: Reorganize miscellaneous documentation The Serial Download Protocol feature is availible in various i.MX SoCs. Move README.sdp document to imx/misc directory. Signed-off-by: Breno Lima --- diff --git a/doc/imx/README.sdp b/doc/imx/README.sdp deleted file mode 100644 index 6ea6e41395..0000000000 --- a/doc/imx/README.sdp +++ /dev/null @@ -1,118 +0,0 @@ -------------- -SDP in U-Boot -------------- - -SDP stands for serial download protocol. It is the protocol used in NXP's -i.MX SoCs ROM Serial Downloader and provides means to download a program -image to the chip over USB and UART serial connection. - -The implementation in U-Boot uses the USB Downloader Gadget (g_dnl) to -provide a SDP implementation over USB. This allows to download program -images to the target in SPL/U-Boot using the same protocol/tooling the -SoC's recovery mechanism is using. - -The SDP protocol over USB is a USB HID class protocol. USB HID class -protocols allow to access a USB device without OS specific drivers. The -U-Boot implementation has primarly been tested using the open source -imx_loader utility (https://github.com/boundarydevices/imx_usb_loader). - -imx_usb_loader is a very nice tool by Boundary Devices that allow to -install U-Boot without a JTAG debugger, using the USB boot mode as -described in the manual. It is a replacement for Freescale's -MFGTOOLS. - -The host side utilities are typically capable to interpret the i.MX -specific image header (see doc/README.imximage). There are extensions -for imx_loader's imx_usb utility which allow to interpret the U-Boot -specific legacy image format (see mkimage(1)). Also the U-Boot side -support beside the i.MX specific header the U-Boot legacy header. - -1. Using imx_usb_loader for first install with SPL --------------------------------------------------- - -This implementation can be started in U-Boot using the sdp command -(CONFIG_CMD_USB_SDP) or in SPL if Serial Downloader boot mode has been -detected (CONFIG_SPL_USB_SDP_SUPPORT). - -A typical use case is downloading full U-Boot after SPL has been -downloaded through the boot ROM's Serial Downloader. Using boot mode -detection the SPL will run the SDP implementation automatically in -this case: - - # imx_usb SPL - -Targets Serial Console: - - Trying to boot from USB SDP - SDP: initialize... - SDP: handle requests... - -At this point the SPL reenumerated as a new HID device and emulating -the boot ROM's SDP protocol. The USB VID/PID will depend on standard -U-Boot configurations CONFIG_G_DNL_(VENDOR|PRODUCT)_NUM. Make sure -imx_usb is aware of the USB VID/PID for your device by adding a -configuration entry in imx_usb.conf: - - 0x1b67:0x4fff, mx6_usb_sdp_spl.conf - -And the device specific configuration file mx6_usb_sdp_spl.conf: - - mx6_spl_sdp - hid,uboot_header,1024,0x910000,0x10000000,1G,0x00900000,0x40000 - -This allows to download the regular U-Boot with legacy image headers -(u-boot.img) using a second invocation of imx_usb: - - # imx_usb u-boot.img - -Furthermore, when U-Boot is running the sdp command can be used to -download and run scripts: - - # imx_usb script.scr - -imx_usb configuration files can be also used to download multiple -files and of arbitrary types, e.g. - - mx6_usb_sdp_uboot - hid,1024,0x10000000,1G,0x00907000,0x31000 - full.itb:load 0x12100000 - boot.scr:load 0x12000000,jump 0x12000000 - -There is also a batch mode which allows imx_usb to handle multiple -consecutive reenumerations by adding multiple VID/PID specifications -in imx_usb.conf: - - 0x15a2:0x0061, mx6_usb_rom.conf, 0x1b67:0x4fff, mx6_usb_sdp_spl.conf - -In this mode the file to download (imx_usb job) needs to be specified -in the configuration files. - -mx6_usb_rom.conf: - - mx6_qsb - hid,1024,0x910000,0x10000000,1G,0x00900000,0x40000 - SPL:jump header2 - -mx6_usb_sdp_spl.conf: - - mx6_spl_sdp - hid,uboot_header,1024,0x10000000,1G,0x00907000,0x31000 - u-boot.img:jump header2 - -With that SPL and U-Boot can be downloaded with a single invocation -of imx_usb without arguments: - - # imx_usb - -2. Using imx_usb_loader non-SPL images ---------------------------------------- - -Booting in USB mode, the i.MX6 announces itself to the Linux Host as: - -Bus 001 Device 111: ID 15a2:0061 Freescale Semiconductor, Inc. - -imx_usb_loader is able to download a single file (u-boot.imx) -to the board. For boards without SPL support, it is enough to -issue the command: - - sudo ../imx_usb_loader/imx_usb -v u-boot.imx diff --git a/doc/imx/misc/README.sdp b/doc/imx/misc/README.sdp new file mode 100644 index 0000000000..6ea6e41395 --- /dev/null +++ b/doc/imx/misc/README.sdp @@ -0,0 +1,118 @@ +------------- +SDP in U-Boot +------------- + +SDP stands for serial download protocol. It is the protocol used in NXP's +i.MX SoCs ROM Serial Downloader and provides means to download a program +image to the chip over USB and UART serial connection. + +The implementation in U-Boot uses the USB Downloader Gadget (g_dnl) to +provide a SDP implementation over USB. This allows to download program +images to the target in SPL/U-Boot using the same protocol/tooling the +SoC's recovery mechanism is using. + +The SDP protocol over USB is a USB HID class protocol. USB HID class +protocols allow to access a USB device without OS specific drivers. The +U-Boot implementation has primarly been tested using the open source +imx_loader utility (https://github.com/boundarydevices/imx_usb_loader). + +imx_usb_loader is a very nice tool by Boundary Devices that allow to +install U-Boot without a JTAG debugger, using the USB boot mode as +described in the manual. It is a replacement for Freescale's +MFGTOOLS. + +The host side utilities are typically capable to interpret the i.MX +specific image header (see doc/README.imximage). There are extensions +for imx_loader's imx_usb utility which allow to interpret the U-Boot +specific legacy image format (see mkimage(1)). Also the U-Boot side +support beside the i.MX specific header the U-Boot legacy header. + +1. Using imx_usb_loader for first install with SPL +-------------------------------------------------- + +This implementation can be started in U-Boot using the sdp command +(CONFIG_CMD_USB_SDP) or in SPL if Serial Downloader boot mode has been +detected (CONFIG_SPL_USB_SDP_SUPPORT). + +A typical use case is downloading full U-Boot after SPL has been +downloaded through the boot ROM's Serial Downloader. Using boot mode +detection the SPL will run the SDP implementation automatically in +this case: + + # imx_usb SPL + +Targets Serial Console: + + Trying to boot from USB SDP + SDP: initialize... + SDP: handle requests... + +At this point the SPL reenumerated as a new HID device and emulating +the boot ROM's SDP protocol. The USB VID/PID will depend on standard +U-Boot configurations CONFIG_G_DNL_(VENDOR|PRODUCT)_NUM. Make sure +imx_usb is aware of the USB VID/PID for your device by adding a +configuration entry in imx_usb.conf: + + 0x1b67:0x4fff, mx6_usb_sdp_spl.conf + +And the device specific configuration file mx6_usb_sdp_spl.conf: + + mx6_spl_sdp + hid,uboot_header,1024,0x910000,0x10000000,1G,0x00900000,0x40000 + +This allows to download the regular U-Boot with legacy image headers +(u-boot.img) using a second invocation of imx_usb: + + # imx_usb u-boot.img + +Furthermore, when U-Boot is running the sdp command can be used to +download and run scripts: + + # imx_usb script.scr + +imx_usb configuration files can be also used to download multiple +files and of arbitrary types, e.g. + + mx6_usb_sdp_uboot + hid,1024,0x10000000,1G,0x00907000,0x31000 + full.itb:load 0x12100000 + boot.scr:load 0x12000000,jump 0x12000000 + +There is also a batch mode which allows imx_usb to handle multiple +consecutive reenumerations by adding multiple VID/PID specifications +in imx_usb.conf: + + 0x15a2:0x0061, mx6_usb_rom.conf, 0x1b67:0x4fff, mx6_usb_sdp_spl.conf + +In this mode the file to download (imx_usb job) needs to be specified +in the configuration files. + +mx6_usb_rom.conf: + + mx6_qsb + hid,1024,0x910000,0x10000000,1G,0x00900000,0x40000 + SPL:jump header2 + +mx6_usb_sdp_spl.conf: + + mx6_spl_sdp + hid,uboot_header,1024,0x10000000,1G,0x00907000,0x31000 + u-boot.img:jump header2 + +With that SPL and U-Boot can be downloaded with a single invocation +of imx_usb without arguments: + + # imx_usb + +2. Using imx_usb_loader non-SPL images +--------------------------------------- + +Booting in USB mode, the i.MX6 announces itself to the Linux Host as: + +Bus 001 Device 111: ID 15a2:0061 Freescale Semiconductor, Inc. + +imx_usb_loader is able to download a single file (u-boot.imx) +to the board. For boards without SPL support, it is enough to +issue the command: + + sudo ../imx_usb_loader/imx_usb -v u-boot.imx