M-Boot ROM Description
560
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
The bootstrap protocol (BOOTP), a predecessor to the DHCP protocol, is used to discover the IP address
of the client, the IP address of the server, and the name of the firmware image to use. BOOTP uses
UDP/IP packets to communicate between the client and the server; the bootloader acts as the client. First,
it will send a BOOTP request using a broadcast message. When the server receives the request, it will
reply, thereby informing the client of its IP address, the IP address of the server, and the name of the
firmware image. Once this reply is received, the BOOTP protocol has completed.
Then, the trivial file transfer protocol (TFTP) is used to transfer the firmware image from the server to the
client. TFTP also uses UDP/IP packets to communicate between the client and the server, and the
bootloader also acts as the client in this protocol. As each data block is received, it is programmed into
flash. Once all data blocks are received and programmed, the device will automatically start running the
new firmware image.
Note:
When using the Ethernet update, the bootloader can only program images to the RAM beginning
from 0x20005000 since there is no mechanism in BOOTP to specify the address to program the image.
The following IETF specifications define the protocols used by the Ethernet update mechanism:
RFC951 (http://tools.ietf.org/html/rfc951.html) defines the bootstrap protocol
RFC1350 (http://tools.ietf.org/html/rfc1350.html) defines the trivial file transfer protocol.
6.5.15.2.1 M-Boot ROM EMAC Interface IO
MII_TXD3
-
PC4_GPIO68, peripheral Mode - 3
MII_MDIO
-
PE6_GPIO30, Peripheral Mode - Alternate Mode 12
MII_RXD3
-
PF5_GPIO37, peripheral Mode - 3
MIIRXD2
-
PG0_GPIO40, Peripheral Mode - Alternate Mode 12
MIIRXD1
-
PG1_GPIO41, Peripheral Mode - Alternate Mode 12
MII_RXDV
-
PG3_GPIO43, Peripheral Mode - Alternate Mode 12
MII_TXER
-
PG7_GPIO47, Peripheral Mode - 3
MIIRXD0
-
PH1_GPIO49, peripheral Mode - Alternate mode 12
MII_TXD2
-
PH3_GPIO51, Peripheral Mode - 9
MII_TXD1
-
PH4_GPIO52, Peripheral Mode - 9
MII_TXD0
-
PH5_GPIO53, Peripheral Mode - 9
MIITXEN
-
PH6_GPIO54, peripheral Mode - Alternate mode 12
MIITXCK
-
PH7_GPIO55, peripheral Mode - Alternate mode 12
MII_RXER
-
PJ0_GPIO56, Peripheral Mode - 3
MII_RXCK
-
PJ2_GPIO58, Peripheral Mode - Alternate Mode 12
MIIMDC
-
PJ3_GPIO59, peripheral Mode - Alternate mode 12
MIICOL
-
PJ4_GPIO60, peripheral Mode - Alternate mode 12
MII_CRS
-
PJ5_GPIO61, peripheral Mode - Alternate mode 12
MII_PHYINTRn
-
PJ6_GPIO62, peripheral Mode - Alternate mode 12
MIIPHYRSTn
-
PJ7_GPIO63, Peripheral Mode - Alternate Mode 12
Note:
EMAC interface is configured to operate during boot with the assumption that MAIN OSC clock
frequency is 20 MHz.
6.5.15.2.2 M-Boot ROM EMAC ID Configuration
M-Boot ROM follows below procedure to determine the EMAC ID of the device, when using EMAC boot
mode.
The locations below in Customer OTP memory must be programmed by user to let M-Boot ROM use the
EMAC ID provided by user.
Locations to be programmed will be referred to as below and point to the addresses as shown below:
CUSTOMER_OTP_EMAC_REG0_ADDR = 0x680810
CUSTOMER_OTP_EMAC_REG1_ADDR = 0x680814
A MAC address of 12:34:56:78:9A:BC should get stored/programmed as:
CUSTOMER_OTP_EMAC_REG0_ADDR = 0x00563412
CUSTOMER_OTP_EMAC_REG1_ADDR = 0x00BC9A78