Commit c46bf09e0b567dda477da53163fe646e66c4912e
Committed by
Anatolij Gustschin
1 parent
7e71dc6884
Exists in
master
and in
57 other branches
doc: Fix some typos in different files
adresses/addresses alernate/alternate asssuming/assuming calcualted/calculated enviroment/environment evalutation/evaluation falsh/flash labled/labeled paramaters/parameters Signed-off-by: Thomas Weber <thomas@tomweber.eu> Acked-by: Anatolij Gustschin <agust@denx.de>
Showing 17 changed files with 26 additions and 26 deletions Inline Diff
- doc/README.AVR32-port-muxing
- doc/README.SNTP
- doc/README.Sandpoint8240
- doc/README.at91
- doc/README.ebony
- doc/README.fsl-ddr
- doc/README.mpc832xemds
- doc/README.mpc8360emds
- doc/README.mpc837xemds
- doc/README.mpc8544ds
- doc/README.mpc8572ds
- doc/README.mpc85xxads
- doc/README.mvbc_p
- doc/README.mvblm7
- doc/README.mvsmr
- doc/README.ocotea
- doc/README.p2020rdb
doc/README.AVR32-port-muxing
| 1 | AVR32 Port multiplexer configuration | 1 | AVR32 Port multiplexer configuration |
| 2 | ==================================== | 2 | ==================================== |
| 3 | 3 | ||
| 4 | On AVR32 chips, most external I/O pins are routed through a port | 4 | On AVR32 chips, most external I/O pins are routed through a port |
| 5 | multiplexer. There are currently two kinds of port multiplexer | 5 | multiplexer. There are currently two kinds of port multiplexer |
| 6 | hardware around with different register interfaces: | 6 | hardware around with different register interfaces: |
| 7 | 7 | ||
| 8 | * PIO (AT32AP700x; this is also used on ARM AT91 chips) | 8 | * PIO (AT32AP700x; this is also used on ARM AT91 chips) |
| 9 | * GPIO (all other AVR32 chips) | 9 | * GPIO (all other AVR32 chips) |
| 10 | 10 | ||
| 11 | The "PIO" variant supports multiplexing up to two peripherals per pin | 11 | The "PIO" variant supports multiplexing up to two peripherals per pin |
| 12 | in addition to GPIO (software control). Each pin has configurable | 12 | in addition to GPIO (software control). Each pin has configurable |
| 13 | pull-up, glitch filter, interrupt and multi-drive capabilities. | 13 | pull-up, glitch filter, interrupt and multi-drive capabilities. |
| 14 | 14 | ||
| 15 | The "GPIO" variant supports multiplexing up to four peripherals per | 15 | The "GPIO" variant supports multiplexing up to four peripherals per |
| 16 | pin in addition to GPIO. Each pin has configurable | 16 | pin in addition to GPIO. Each pin has configurable |
| 17 | pull-up/pull-down/buskeeper, glitch filter, interrupt, open-drain and | 17 | pull-up/pull-down/buskeeper, glitch filter, interrupt, open-drain and |
| 18 | schmitt-trigger capabilities, as well as configurable drive strength | 18 | schmitt-trigger capabilities, as well as configurable drive strength |
| 19 | and slew rate control. | 19 | and slew rate control. |
| 20 | 20 | ||
| 21 | Both controllers are configured using the same API, but the functions | 21 | Both controllers are configured using the same API, but the functions |
| 22 | may accept different values for some parameters depending on the | 22 | may accept different values for some parameters depending on the |
| 23 | actual portmux implementation, and some parameters may be ignored by | 23 | actual portmux implementation, and some parameters may be ignored by |
| 24 | one of the implementation (e.g. the "PIO" implementation will ignore | 24 | one of the implementation (e.g. the "PIO" implementation will ignore |
| 25 | the drive strength flags since the hardware doesn't support | 25 | the drive strength flags since the hardware doesn't support |
| 26 | configurable drive strength.) | 26 | configurable drive strength.) |
| 27 | 27 | ||
| 28 | Selecting the portmux implementation | 28 | Selecting the portmux implementation |
| 29 | ------------------------------------ | 29 | ------------------------------------ |
| 30 | Since u-boot is lacking a Kconfig-style configuration engine, the | 30 | Since u-boot is lacking a Kconfig-style configuration engine, the |
| 31 | portmux implementation must be selected manually by defining one of | 31 | portmux implementation must be selected manually by defining one of |
| 32 | the following symbols: | 32 | the following symbols: |
| 33 | 33 | ||
| 34 | CONFIG_PORTMUX_PIO | 34 | CONFIG_PORTMUX_PIO |
| 35 | CONFIG_PORTMUX_GPIO | 35 | CONFIG_PORTMUX_GPIO |
| 36 | 36 | ||
| 37 | depending on which implementation the chip in question uses. | 37 | depending on which implementation the chip in question uses. |
| 38 | 38 | ||
| 39 | Identifying pins | 39 | Identifying pins |
| 40 | ---------------- | 40 | ---------------- |
| 41 | The portmux configuration functions described below identify the pins | 41 | The portmux configuration functions described below identify the pins |
| 42 | to act on based on two parameters: A "port" (i.e. a block of pins | 42 | to act on based on two parameters: A "port" (i.e. a block of pins |
| 43 | that somehow belong together) and a pin mask. Both are defined in an | 43 | that somehow belong together) and a pin mask. Both are defined in an |
| 44 | implementation-specific manner. | 44 | implementation-specific manner. |
| 45 | 45 | ||
| 46 | The available ports are defined on the form | 46 | The available ports are defined on the form |
| 47 | 47 | ||
| 48 | #define PORTMUX_PORT_A (something) | 48 | #define PORTMUX_PORT_A (something) |
| 49 | 49 | ||
| 50 | where "A" matches the identifier given in the chip's data sheet, and | 50 | where "A" matches the identifier given in the chip's data sheet, and |
| 51 | "something" is whatever the portmux implementation needs to identify | 51 | "something" is whatever the portmux implementation needs to identify |
| 52 | the port (usually a memory address). | 52 | the port (usually a memory address). |
| 53 | 53 | ||
| 54 | The pin mask is a bitmask where each '1' bit indicates a pin to apply | 54 | The pin mask is a bitmask where each '1' bit indicates a pin to apply |
| 55 | the current operation to. The width of the bitmask may vary from port | 55 | the current operation to. The width of the bitmask may vary from port |
| 56 | to port, but it is never wider than 32 bits (which is the width of | 56 | to port, but it is never wider than 32 bits (which is the width of |
| 57 | 'unsigned long' on avr32). | 57 | 'unsigned long' on avr32). |
| 58 | 58 | ||
| 59 | Selecting functions | 59 | Selecting functions |
| 60 | ------------------- | 60 | ------------------- |
| 61 | Each pin can either be assigned to one of a predefined set of on-chip | 61 | Each pin can either be assigned to one of a predefined set of on-chip |
| 62 | peripherals, or it can be set up to be controlled by software. For the | 62 | peripherals, or it can be set up to be controlled by software. For the |
| 63 | former case, the portmux implementation defines an enum containing all | 63 | former case, the portmux implementation defines an enum containing all |
| 64 | the possible peripheral functions that can be selected. For example, | 64 | the possible peripheral functions that can be selected. For example, |
| 65 | the PIO implementation, which allows multiplexing two peripherals per | 65 | the PIO implementation, which allows multiplexing two peripherals per |
| 66 | pin, defines it like this: | 66 | pin, defines it like this: |
| 67 | 67 | ||
| 68 | enum portmux_function { | 68 | enum portmux_function { |
| 69 | PORTMUX_FUNC_A, | 69 | PORTMUX_FUNC_A, |
| 70 | PORTMUX_FUNC_B, | 70 | PORTMUX_FUNC_B, |
| 71 | }; | 71 | }; |
| 72 | 72 | ||
| 73 | To configure a set of pins to be connected to a given peripheral | 73 | To configure a set of pins to be connected to a given peripheral |
| 74 | function, the following function is used. | 74 | function, the following function is used. |
| 75 | 75 | ||
| 76 | void portmux_select_peripheral(void *port, unsigned long pin_mask, | 76 | void portmux_select_peripheral(void *port, unsigned long pin_mask, |
| 77 | enum portmux_function func, unsigned long flags); | 77 | enum portmux_function func, unsigned long flags); |
| 78 | 78 | ||
| 79 | To configure a set of pins to be controlled by software (GPIO), the | 79 | To configure a set of pins to be controlled by software (GPIO), the |
| 80 | following function is used. In this case, no "function" argument is | 80 | following function is used. In this case, no "function" argument is |
| 81 | required since "GPIO" is a function in its own right. | 81 | required since "GPIO" is a function in its own right. |
| 82 | 82 | ||
| 83 | void portmux_select_gpio(void *port, unsigned int pin_mask, | 83 | void portmux_select_gpio(void *port, unsigned int pin_mask, |
| 84 | unsigned long flags); | 84 | unsigned long flags); |
| 85 | 85 | ||
| 86 | Both of these functions take a "flags" parameter which may be used to | 86 | Both of these functions take a "flags" parameter which may be used to |
| 87 | alter the default configuration of the pin. This is a bitmask of | 87 | alter the default configuration of the pin. This is a bitmask of |
| 88 | various flags defined in an implementation-specific way, but the names | 88 | various flags defined in an implementation-specific way, but the names |
| 89 | of the flags are the same on all implementations. | 89 | of the flags are the same on all implementations. |
| 90 | 90 | ||
| 91 | PORTMUX_DIR_OUTPUT | 91 | PORTMUX_DIR_OUTPUT |
| 92 | PORTMUX_DIR_INPUT | 92 | PORTMUX_DIR_INPUT |
| 93 | 93 | ||
| 94 | These mutually-exlusive flags configure the initial direction of the | 94 | These mutually-exclusive flags configure the initial direction of the |
| 95 | pins. PORTMUX_DIR_OUTPUT means that the pins are driven by the CPU, | 95 | pins. PORTMUX_DIR_OUTPUT means that the pins are driven by the CPU, |
| 96 | while PORTMUX_DIR_INPUT means that the pins are tristated by the CPU. | 96 | while PORTMUX_DIR_INPUT means that the pins are tristated by the CPU. |
| 97 | These flags are ignored by portmux_select_peripheral(). | 97 | These flags are ignored by portmux_select_peripheral(). |
| 98 | 98 | ||
| 99 | PORTMUX_INIT_HIGH | 99 | PORTMUX_INIT_HIGH |
| 100 | PORTMUX_INIT_LOW | 100 | PORTMUX_INIT_LOW |
| 101 | 101 | ||
| 102 | These mutually-exclusive flags configure the initial state of the | 102 | These mutually-exclusive flags configure the initial state of the |
| 103 | pins: High (Vdd) or low (Vss). They are only effective when | 103 | pins: High (Vdd) or low (Vss). They are only effective when |
| 104 | portmux_select_gpio() is called with the PORTMUX_DIR_OUTPUT flag set. | 104 | portmux_select_gpio() is called with the PORTMUX_DIR_OUTPUT flag set. |
| 105 | 105 | ||
| 106 | PORTMUX_PULL_UP | 106 | PORTMUX_PULL_UP |
| 107 | PORTMUX_PULL_DOWN | 107 | PORTMUX_PULL_DOWN |
| 108 | PORTMUX_BUSKEEPER | 108 | PORTMUX_BUSKEEPER |
| 109 | 109 | ||
| 110 | These mutually-exclusive flags are used to enable any on-chip CMOS | 110 | These mutually-exclusive flags are used to enable any on-chip CMOS |
| 111 | resistors connected to the pins. PORTMUX_PULL_UP causes the pins to be | 111 | resistors connected to the pins. PORTMUX_PULL_UP causes the pins to be |
| 112 | pulled up to Vdd, PORTMUX_PULL_DOWN causes the pins to be pulled down | 112 | pulled up to Vdd, PORTMUX_PULL_DOWN causes the pins to be pulled down |
| 113 | to Vss, and PORTMUX_BUSKEEPER will keep the pins in whatever state | 113 | to Vss, and PORTMUX_BUSKEEPER will keep the pins in whatever state |
| 114 | they were left in by whatever was driving them last. If none of the | 114 | they were left in by whatever was driving them last. If none of the |
| 115 | flags are specified, the pins are left floating if no one are driving | 115 | flags are specified, the pins are left floating if no one are driving |
| 116 | them; this is only recommended for always-output pins (e.g. extern | 116 | them; this is only recommended for always-output pins (e.g. extern |
| 117 | address and control lines driven by the CPU.) | 117 | address and control lines driven by the CPU.) |
| 118 | 118 | ||
| 119 | Note that the "PIO" implementation will silently ignore the | 119 | Note that the "PIO" implementation will silently ignore the |
| 120 | PORTMUX_PULL_DOWN flag and interpret PORTMUX_BUSKEEPER as | 120 | PORTMUX_PULL_DOWN flag and interpret PORTMUX_BUSKEEPER as |
| 121 | PORTMUX_PULL_UP. | 121 | PORTMUX_PULL_UP. |
| 122 | 122 | ||
| 123 | PORTMUX_DRIVE_MIN | 123 | PORTMUX_DRIVE_MIN |
| 124 | PORTMUX_DRIVE_LOW | 124 | PORTMUX_DRIVE_LOW |
| 125 | PORTMUX_DRIVE_HIGH | 125 | PORTMUX_DRIVE_HIGH |
| 126 | PORTMUX_DRIVE_MAX | 126 | PORTMUX_DRIVE_MAX |
| 127 | 127 | ||
| 128 | These mutually-exlusive flags determine the drive strength of the | 128 | These mutually-exclusive flags determine the drive strength of the |
| 129 | pins. PORTMUX_DRIVE_MIN will give low power-consumption, but may cause | 129 | pins. PORTMUX_DRIVE_MIN will give low power-consumption, but may cause |
| 130 | corruption of high-speed signals. PORTMUX_DRIVE_MAX will give high | 130 | corruption of high-speed signals. PORTMUX_DRIVE_MAX will give high |
| 131 | power-consumption, but may be necessary on pins toggling at very high | 131 | power-consumption, but may be necessary on pins toggling at very high |
| 132 | speeds. PORTMUX_DRIVE_LOW and PORTMUX_DRIVE_HIGH specify something in | 132 | speeds. PORTMUX_DRIVE_LOW and PORTMUX_DRIVE_HIGH specify something in |
| 133 | between the other two. | 133 | between the other two. |
| 134 | 134 | ||
| 135 | Note that setting the drive strength too high may cause excessive | 135 | Note that setting the drive strength too high may cause excessive |
| 136 | overshoot and EMI problems, which may in turn cause signal corruption. | 136 | overshoot and EMI problems, which may in turn cause signal corruption. |
| 137 | Also note that the "PIO" implementation will silently ignore these | 137 | Also note that the "PIO" implementation will silently ignore these |
| 138 | flags. | 138 | flags. |
| 139 | 139 | ||
| 140 | PORTMUX_OPEN_DRAIN | 140 | PORTMUX_OPEN_DRAIN |
| 141 | 141 | ||
| 142 | This flag will configure the pins as "open drain", i.e. setting the | 142 | This flag will configure the pins as "open drain", i.e. setting the |
| 143 | pin state to 0 will drive it low, while setting it to 1 will leave it | 143 | pin state to 0 will drive it low, while setting it to 1 will leave it |
| 144 | floating (or, in most cases, let it be pulled high by an internal or | 144 | floating (or, in most cases, let it be pulled high by an internal or |
| 145 | external pull-up resistor.) In the data sheet for chips using the | 145 | external pull-up resistor.) In the data sheet for chips using the |
| 146 | "PIO" variant, this mode is called "multi-driver". | 146 | "PIO" variant, this mode is called "multi-driver". |
| 147 | 147 | ||
| 148 | Enabling specific peripherals | 148 | Enabling specific peripherals |
| 149 | ----------------------------- | 149 | ----------------------------- |
| 150 | In addition to the above functions, each chip provides a set of | 150 | In addition to the above functions, each chip provides a set of |
| 151 | functions for setting up the port multiplexer to use a given | 151 | functions for setting up the port multiplexer to use a given |
| 152 | peripheral. The following are some of the functions available. | 152 | peripheral. The following are some of the functions available. |
| 153 | 153 | ||
| 154 | All the functions below take a "drive_strength" parameter, which must | 154 | All the functions below take a "drive_strength" parameter, which must |
| 155 | be one of the PORTMUX_DRIVE_x flags specified above. Any other | 155 | be one of the PORTMUX_DRIVE_x flags specified above. Any other |
| 156 | portmux flags will be silently filtered out. | 156 | portmux flags will be silently filtered out. |
| 157 | 157 | ||
| 158 | To set up the External Bus Interface (EBI), call | 158 | To set up the External Bus Interface (EBI), call |
| 159 | 159 | ||
| 160 | void portmux_enable_ebi(unsigned int bus_width, | 160 | void portmux_enable_ebi(unsigned int bus_width, |
| 161 | unsigned long flags, unsigned long drive_strength) | 161 | unsigned long flags, unsigned long drive_strength) |
| 162 | 162 | ||
| 163 | where "bus_width" must be either 16 or 32. "flags" can be any | 163 | where "bus_width" must be either 16 or 32. "flags" can be any |
| 164 | combination of the following flags. | 164 | combination of the following flags. |
| 165 | 165 | ||
| 166 | PORTMUX_EBI_CS(x) /* Enable chip select x */ | 166 | PORTMUX_EBI_CS(x) /* Enable chip select x */ |
| 167 | PORTMUX_EBI_NAND /* Enable NAND flash interface */ | 167 | PORTMUX_EBI_NAND /* Enable NAND flash interface */ |
| 168 | PORTMUX_EBI_CF(x) /* Enable CompactFlash interface x */ | 168 | PORTMUX_EBI_CF(x) /* Enable CompactFlash interface x */ |
| 169 | PORTMUX_EBI_NWAIT /* Enable NWAIT signal */ | 169 | PORTMUX_EBI_NWAIT /* Enable NWAIT signal */ |
| 170 | 170 | ||
| 171 | To set up a USART, call | 171 | To set up a USART, call |
| 172 | 172 | ||
| 173 | void portmux_enable_usartX(unsigned long drive_strength); | 173 | void portmux_enable_usartX(unsigned long drive_strength); |
| 174 | 174 | ||
| 175 | where X is replaced by the USART instance to be configured. | 175 | where X is replaced by the USART instance to be configured. |
| 176 | 176 | ||
| 177 | To set up an ethernet MAC: | 177 | To set up an ethernet MAC: |
| 178 | 178 | ||
| 179 | void portmux_enable_macbX(unsigned long flags, | 179 | void portmux_enable_macbX(unsigned long flags, |
| 180 | unsigned long drive_strength); | 180 | unsigned long drive_strength); |
| 181 | 181 | ||
| 182 | where X is replaced by the MACB instance to be configured. "flags" can | 182 | where X is replaced by the MACB instance to be configured. "flags" can |
| 183 | be any combination of the following flags. | 183 | be any combination of the following flags. |
| 184 | 184 | ||
| 185 | PORTMUX_MACB_RMII /* Just set up the RMII interface */ | 185 | PORTMUX_MACB_RMII /* Just set up the RMII interface */ |
| 186 | PORTMUX_MACB_MII /* Set up full MII interface */ | 186 | PORTMUX_MACB_MII /* Set up full MII interface */ |
| 187 | PORTMUX_MACB_SPEED /* Enable the SPEED pin */ | 187 | PORTMUX_MACB_SPEED /* Enable the SPEED pin */ |
| 188 | 188 | ||
| 189 | To set up the MMC controller: | 189 | To set up the MMC controller: |
| 190 | 190 | ||
| 191 | void portmux_enable_mmci(unsigned long slot, unsigned long flags | 191 | void portmux_enable_mmci(unsigned long slot, unsigned long flags |
| 192 | unsigned long drive_strength); | 192 | unsigned long drive_strength); |
| 193 | 193 | ||
| 194 | where "slot" identifies which of the alternative SD card slots to | 194 | where "slot" identifies which of the alternative SD card slots to |
| 195 | enable. "flags" can be any combination of the following flags: | 195 | enable. "flags" can be any combination of the following flags: |
| 196 | 196 | ||
| 197 | PORTMUX_MMCI_4BIT /* Enable 4-bit SD card interface */ | 197 | PORTMUX_MMCI_4BIT /* Enable 4-bit SD card interface */ |
| 198 | PORTMUX_MMCI_8BIT /* Enable 8-bit MMC+ interface */ | 198 | PORTMUX_MMCI_8BIT /* Enable 8-bit MMC+ interface */ |
| 199 | PORTMUX_MMCI_EXT_PULLUP /* Board has external pull-ups */ | 199 | PORTMUX_MMCI_EXT_PULLUP /* Board has external pull-ups */ |
| 200 | 200 | ||
| 201 | To set up a SPI controller: | 201 | To set up a SPI controller: |
| 202 | 202 | ||
| 203 | void portmux_enable_spiX(unsigned long cs_mask, | 203 | void portmux_enable_spiX(unsigned long cs_mask, |
| 204 | unsigned long drive_strength); | 204 | unsigned long drive_strength); |
| 205 | 205 | ||
| 206 | where X is replaced by the SPI instance to be configured. "cs_mask" is | 206 | where X is replaced by the SPI instance to be configured. "cs_mask" is |
| 207 | a 4-bit bitmask specifying which of the four standard chip select | 207 | a 4-bit bitmask specifying which of the four standard chip select |
| 208 | lines to set up as GPIOs. | 208 | lines to set up as GPIOs. |
| 209 | 209 |
doc/README.SNTP
| 1 | To use SNTP support, add define CONFIG_CMD_SNTP to the | 1 | To use SNTP support, add define CONFIG_CMD_SNTP to the |
| 2 | configuration file of the board. | 2 | configuration file of the board. |
| 3 | 3 | ||
| 4 | The "sntp" command gets network time from NTP time server and | 4 | The "sntp" command gets network time from NTP time server and |
| 5 | syncronize RTC of the board. This command needs the command line | 5 | syncronize RTC of the board. This command needs the command line |
| 6 | parameter of server's IP address or environment variable | 6 | parameter of server's IP address or environment variable |
| 7 | "ntpserverip". The network time is sent as UTC. So if you want to | 7 | "ntpserverip". The network time is sent as UTC. So if you want to |
| 8 | set local time to RTC, set the offset in second from UTC to the | 8 | set local time to RTC, set the offset in second from UTC to the |
| 9 | enviroment variable "time offset". | 9 | environment variable "time offset". |
| 10 | 10 | ||
| 11 | If the DHCP server provides time server's IP or time offset, you | 11 | If the DHCP server provides time server's IP or time offset, you |
| 12 | don't need to set the above environment variables yourself. | 12 | don't need to set the above environment variables yourself. |
| 13 | 13 | ||
| 14 | Current limitations of SNTP support: | 14 | Current limitations of SNTP support: |
| 15 | 1. The roundtrip time is ignored. | 15 | 1. The roundtrip time is ignored. |
| 16 | 2. Only the 1st NTP server IP, in the option ntp-servers of DHCP, will | 16 | 2. Only the 1st NTP server IP, in the option ntp-servers of DHCP, will |
| 17 | be used. | 17 | be used. |
| 18 | 18 |
doc/README.Sandpoint8240
| 1 | The port was tested on a Sandpoint 8240 X3 board, with U-Boot | 1 | The port was tested on a Sandpoint 8240 X3 board, with U-Boot |
| 2 | installed in the flash memory of the CPU card. Please use the | 2 | installed in the flash memory of the CPU card. Please use the |
| 3 | following DIP switch settings: | 3 | following DIP switch settings: |
| 4 | 4 | ||
| 5 | Motherboard: | 5 | Motherboard: |
| 6 | 6 | ||
| 7 | SW1.1: on SW1.2: on SW1.3: on SW1.4: on | 7 | SW1.1: on SW1.2: on SW1.3: on SW1.4: on |
| 8 | SW1.5: on SW1.6: on SW1.7: on SW1.8: on | 8 | SW1.5: on SW1.6: on SW1.7: on SW1.8: on |
| 9 | 9 | ||
| 10 | SW2.1: on SW2.2: on SW2.3: on SW2.4: on | 10 | SW2.1: on SW2.2: on SW2.3: on SW2.4: on |
| 11 | SW2.5: on SW2.6: on SW2.7: on SW2.8: on | 11 | SW2.5: on SW2.6: on SW2.7: on SW2.8: on |
| 12 | 12 | ||
| 13 | 13 | ||
| 14 | CPU Card: | 14 | CPU Card: |
| 15 | 15 | ||
| 16 | SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on | 16 | SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on |
| 17 | SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF | 17 | SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF |
| 18 | 18 | ||
| 19 | SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF | 19 | SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF |
| 20 | SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on | 20 | SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on |
| 21 | 21 | ||
| 22 | 22 | ||
| 23 | The followind detailed description of installation and initial steps | 23 | The followind detailed description of installation and initial steps |
| 24 | with U-Boot and QNX was provided by Jim Sandoz <sandoz@lucent.com>: | 24 | with U-Boot and QNX was provided by Jim Sandoz <sandoz@lucent.com>: |
| 25 | 25 | ||
| 26 | 26 | ||
| 27 | Directions for installing U-Boot on Sandpoint+Unity8240 | 27 | Directions for installing U-Boot on Sandpoint+Unity8240 |
| 28 | using the Abatron BDI2000 BDM/JTAG debugger ... | 28 | using the Abatron BDI2000 BDM/JTAG debugger ... |
| 29 | 29 | ||
| 30 | Background and Reference info: | 30 | Background and Reference info: |
| 31 | http://u-boot.sourceforge.net/ | 31 | http://u-boot.sourceforge.net/ |
| 32 | http://www.abatron.ch/ | 32 | http://www.abatron.ch/ |
| 33 | http://www.abatron.ch/BDI/bdihw.html | 33 | http://www.abatron.ch/BDI/bdihw.html |
| 34 | http://www.abatron.ch/DataSheets/BDI2000.pdf | 34 | http://www.abatron.ch/DataSheets/BDI2000.pdf |
| 35 | http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf | 35 | http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf |
| 36 | http://e-www.motorola.com/collateral/SPX3UM.pdf | 36 | http://e-www.motorola.com/collateral/SPX3UM.pdf |
| 37 | http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf | 37 | http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf |
| 38 | 38 | ||
| 39 | 39 | ||
| 40 | Connection Diagram: | 40 | Connection Diagram: |
| 41 | =========== | 41 | =========== |
| 42 | === ===== |----- | | 42 | === ===== |----- | |
| 43 | | | <---------------> | | | | | | 43 | | | <---------------> | | | | | |
| 44 | |PC | rs232 | BDI |=============[] | | | 44 | |PC | rs232 | BDI |=============[] | | |
| 45 | | | |2000 | BDM probe | | | | 45 | | | |2000 | BDM probe | | | |
| 46 | | | <---------------> | | |----- | | 46 | | | <---------------> | | |----- | |
| 47 | === ethernet ===== | | | 47 | === ethernet ===== | | |
| 48 | | | | 48 | | | |
| 49 | =========== | 49 | =========== |
| 50 | Sandpoint X3 with | 50 | Sandpoint X3 with |
| 51 | Unity 8240 proc | 51 | Unity 8240 proc |
| 52 | 52 | ||
| 53 | 53 | ||
| 54 | PART 1) | 54 | PART 1) |
| 55 | DIP Switch Settings: | 55 | DIP Switch Settings: |
| 56 | 56 | ||
| 57 | Sandpoint X3 8240 processor board DIP switch settings, with | 57 | Sandpoint X3 8240 processor board DIP switch settings, with |
| 58 | U-Boot to be installed in the flash memory of the CPU card: | 58 | U-Boot to be installed in the flash memory of the CPU card: |
| 59 | 59 | ||
| 60 | Motorola Sandpoint X3 Motherboard: | 60 | Motorola Sandpoint X3 Motherboard: |
| 61 | SW1.1: on SW1.2: on SW1.3: on SW1.4: on | 61 | SW1.1: on SW1.2: on SW1.3: on SW1.4: on |
| 62 | SW1.5: on SW1.6: on SW1.7: on SW1.8: on | 62 | SW1.5: on SW1.6: on SW1.7: on SW1.8: on |
| 63 | SW2.1: on SW2.2: on SW2.3: on SW2.4: on | 63 | SW2.1: on SW2.2: on SW2.3: on SW2.4: on |
| 64 | SW2.5: on SW2.6: on SW2.7: on SW2.8: on | 64 | SW2.5: on SW2.6: on SW2.7: on SW2.8: on |
| 65 | 65 | ||
| 66 | Motorola Unity 8240 CPU Card: | 66 | Motorola Unity 8240 CPU Card: |
| 67 | SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on | 67 | SW2.1: OFF SW2.2: OFF SW2.3: on SW2.4: on |
| 68 | SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF | 68 | SW2.5: OFF SW2.6: OFF SW2.7: OFF SW2.8: OFF |
| 69 | SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF | 69 | SW3.1: OFF SW3.2: on SW3.3: OFF SW3.4: OFF |
| 70 | SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on | 70 | SW3.5: on SW3.6: OFF SW3.7: OFF SW3.8: on |
| 71 | 71 | ||
| 72 | 72 | ||
| 73 | PART 2) | 73 | PART 2) |
| 74 | Connect the BDI2000 Cable to the Sandpoint/Unity 8240: | 74 | Connect the BDI2000 Cable to the Sandpoint/Unity 8240: |
| 75 | 75 | ||
| 76 | BDM Pin 1 on the Unity 8240 processor board is towards the | 76 | BDM Pin 1 on the Unity 8240 processor board is towards the |
| 77 | PCI PMC connectors, or away from the socketed SDRAM, i.e.: | 77 | PCI PMC connectors, or away from the socketed SDRAM, i.e.: |
| 78 | 78 | ||
| 79 | ==================== | 79 | ==================== |
| 80 | | ---------------- | | 80 | | ---------------- | |
| 81 | | | SDRAM | | | 81 | | | SDRAM | | |
| 82 | | | | | | 82 | | | | | |
| 83 | | ---------------- | | 83 | | ---------------- | |
| 84 | | |~| | | 84 | | |~| | |
| 85 | | |B| ++++++ | | 85 | | |B| ++++++ | |
| 86 | | |D| + uP + | | 86 | | |D| + uP + | |
| 87 | | |M| +8240+ | | 87 | | |M| +8240+ | |
| 88 | | ~ 1 ++++++ | | 88 | | ~ 1 ++++++ | |
| 89 | | | | 89 | | | |
| 90 | | | | 90 | | | |
| 91 | | | | 91 | | | |
| 92 | | PMC conn ====== | | 92 | | PMC conn ====== | |
| 93 | | ===== ====== | | 93 | | ===== ====== | |
| 94 | | | | 94 | | | |
| 95 | ==================== | 95 | ==================== |
| 96 | 96 | ||
| 97 | 97 | ||
| 98 | PART 3) | 98 | PART 3) |
| 99 | Setting up the BDI2000, and preparing for TCP/IP network comms: | 99 | Setting up the BDI2000, and preparing for TCP/IP network comms: |
| 100 | 100 | ||
| 101 | Connect the BDI2000 to the PC using the supplied serial cable. | 101 | Connect the BDI2000 to the PC using the supplied serial cable. |
| 102 | Download the BDI2000 software and install it using setup.exe. | 102 | Download the BDI2000 software and install it using setup.exe. |
| 103 | 103 | ||
| 104 | [Note: of course you can also use the Linux command line tool | 104 | [Note: of course you can also use the Linux command line tool |
| 105 | "bdisetup" to configure your BDI2000 - the sources are included on | 105 | "bdisetup" to configure your BDI2000 - the sources are included on |
| 106 | the floppy disk that comes with your BDI2000. Just in case you don't | 106 | the floppy disk that comes with your BDI2000. Just in case you don't |
| 107 | have any Windows PC's - like me :-) -- wd ] | 107 | have any Windows PC's - like me :-) -- wd ] |
| 108 | 108 | ||
| 109 | Power up the BDI2000; then follow directions to assign the IP | 109 | Power up the BDI2000; then follow directions to assign the IP |
| 110 | address and related network information. Note that U-Boot | 110 | address and related network information. Note that U-Boot |
| 111 | will be loaded to the Sandpoint via tftp. You need to either | 111 | will be loaded to the Sandpoint via tftp. You need to either |
| 112 | use the Abatron-provided tftp application or provide a tftp | 112 | use the Abatron-provided tftp application or provide a tftp |
| 113 | server (e.g. Linux/Solaris/*BSD) somewhere on your network. | 113 | server (e.g. Linux/Solaris/*BSD) somewhere on your network. |
| 114 | Once the IP address etc are assigned via the RS232 port, | 114 | Once the IP address etc are assigned via the RS232 port, |
| 115 | further communication with the BDI2000 will happen via the | 115 | further communication with the BDI2000 will happen via the |
| 116 | ethernet connection. | 116 | ethernet connection. |
| 117 | 117 | ||
| 118 | PART 4) | 118 | PART 4) |
| 119 | Making a TCP/IP network connection to the Abatron BDI2000: | 119 | Making a TCP/IP network connection to the Abatron BDI2000: |
| 120 | 120 | ||
| 121 | Telnet to the Abatron BDI2000. Assuming that all of the | 121 | Telnet to the Abatron BDI2000. Assuming that all of the |
| 122 | networking info was loaded via RS232 correctly, you will see | 122 | networking info was loaded via RS232 correctly, you will see |
| 123 | the following (scrolling): | 123 | the following (scrolling): |
| 124 | 124 | ||
| 125 | - TARGET: waiting for target Vcc | 125 | - TARGET: waiting for target Vcc |
| 126 | - TARGET: waiting for target Vcc | 126 | - TARGET: waiting for target Vcc |
| 127 | 127 | ||
| 128 | 128 | ||
| 129 | PART 5) | 129 | PART 5) |
| 130 | Power up the target Sandpoint: | 130 | Power up the target Sandpoint: |
| 131 | If the BDM connections are correct, the following will now appear: | 131 | If the BDM connections are correct, the following will now appear: |
| 132 | 132 | ||
| 133 | - TARGET: waiting for target Vcc | 133 | - TARGET: waiting for target Vcc |
| 134 | - TARGET: waiting for target Vcc | 134 | - TARGET: waiting for target Vcc |
| 135 | - TARGET: processing power-up delay | 135 | - TARGET: processing power-up delay |
| 136 | - TARGET: processing user reset request | 136 | - TARGET: processing user reset request |
| 137 | - BDI asserts HRESET | 137 | - BDI asserts HRESET |
| 138 | - Reset JTAG controller passed | 138 | - Reset JTAG controller passed |
| 139 | - Bypass check: 0x55 => 0xAA | 139 | - Bypass check: 0x55 => 0xAA |
| 140 | - Bypass check: 0x55 => 0xAA | 140 | - Bypass check: 0x55 => 0xAA |
| 141 | - JTAG exists check passed | 141 | - JTAG exists check passed |
| 142 | - Target PVR is 0x00810101 | 142 | - Target PVR is 0x00810101 |
| 143 | - COP status is 0x01 | 143 | - COP status is 0x01 |
| 144 | - Check running state passed | 144 | - Check running state passed |
| 145 | - BDI scans COP freeze command | 145 | - BDI scans COP freeze command |
| 146 | - BDI removes HRESET | 146 | - BDI removes HRESET |
| 147 | - COP status is 0x05 | 147 | - COP status is 0x05 |
| 148 | - Check stopped state passed | 148 | - Check stopped state passed |
| 149 | - Check LSRL length passed | 149 | - Check LSRL length passed |
| 150 | - BDI sets breakpoint at 0xFFF00100 | 150 | - BDI sets breakpoint at 0xFFF00100 |
| 151 | - BDI resumes program execution | 151 | - BDI resumes program execution |
| 152 | - Waiting for target stop passed | 152 | - Waiting for target stop passed |
| 153 | - TARGET: Target PVR is 0x00810101 | 153 | - TARGET: Target PVR is 0x00810101 |
| 154 | - TARGET: reseting target passed | 154 | - TARGET: reseting target passed |
| 155 | - TARGET: processing target startup .... | 155 | - TARGET: processing target startup .... |
| 156 | - TARGET: processing target startup passed | 156 | - TARGET: processing target startup passed |
| 157 | BDI> | 157 | BDI> |
| 158 | 158 | ||
| 159 | 159 | ||
| 160 | PART 6) | 160 | PART 6) |
| 161 | Erase the current contents of the flash memory: | 161 | Erase the current contents of the flash memory: |
| 162 | 162 | ||
| 163 | BDI>era 0xFFF00000 | 163 | BDI>era 0xFFF00000 |
| 164 | Erasing flash at 0xfff00000 | 164 | Erasing flash at 0xfff00000 |
| 165 | Erasing flash passed | 165 | Erasing flash passed |
| 166 | BDI>era 0xFFF04000 | 166 | BDI>era 0xFFF04000 |
| 167 | Erasing flash at 0xfff04000 | 167 | Erasing flash at 0xfff04000 |
| 168 | Erasing flash passed | 168 | Erasing flash passed |
| 169 | BDI>era 0xFFF06000 | 169 | BDI>era 0xFFF06000 |
| 170 | Erasing flash at 0xfff06000 | 170 | Erasing flash at 0xfff06000 |
| 171 | Erasing flash passed | 171 | Erasing flash passed |
| 172 | BDI>era 0xFFF08000 | 172 | BDI>era 0xFFF08000 |
| 173 | Erasing flash at 0xfff08000 | 173 | Erasing flash at 0xfff08000 |
| 174 | Erasing flash passed | 174 | Erasing flash passed |
| 175 | BDI>era 0xFFF10000 | 175 | BDI>era 0xFFF10000 |
| 176 | Erasing flash at 0xfff10000 | 176 | Erasing flash at 0xfff10000 |
| 177 | Erasing flash passed | 177 | Erasing flash passed |
| 178 | BDI>era 0xFFF20000 | 178 | BDI>era 0xFFF20000 |
| 179 | Erasing flash at 0xfff20000 | 179 | Erasing flash at 0xfff20000 |
| 180 | Erasing flash passed | 180 | Erasing flash passed |
| 181 | 181 | ||
| 182 | 182 | ||
| 183 | PART 7) | 183 | PART 7) |
| 184 | Program the flash memory with the U-Boot image: | 184 | Program the flash memory with the U-Boot image: |
| 185 | 185 | ||
| 186 | BDI>prog 0xFFF00000 u-boot.bin bin | 186 | BDI>prog 0xFFF00000 u-boot.bin bin |
| 187 | Programming u-boot.bin , please wait .... | 187 | Programming u-boot.bin , please wait .... |
| 188 | Programming flash passed | 188 | Programming flash passed |
| 189 | 189 | ||
| 190 | 190 | ||
| 191 | PART 8) | 191 | PART 8) |
| 192 | Connect PC to Sandpoint: | 192 | Connect PC to Sandpoint: |
| 193 | Using a crossover serial cable, attach the PC serial port to the | 193 | Using a crossover serial cable, attach the PC serial port to the |
| 194 | Sandpoint's COM1. Set communications parameters to 8N1 / 9600 baud. | 194 | Sandpoint's COM1. Set communications parameters to 8N1 / 9600 baud. |
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | PART 9) | 197 | PART 9) |
| 198 | Reset the Unity and begin U-Boot execution: | 198 | Reset the Unity and begin U-Boot execution: |
| 199 | 199 | ||
| 200 | BDI>reset | 200 | BDI>reset |
| 201 | - TARGET: processing user reset request | 201 | - TARGET: processing user reset request |
| 202 | - TARGET: Target PVR is 0x00810101 | 202 | - TARGET: Target PVR is 0x00810101 |
| 203 | - TARGET: reseting target passed | 203 | - TARGET: reseting target passed |
| 204 | - TARGET: processing target init list .... | 204 | - TARGET: processing target init list .... |
| 205 | - TARGET: processing target init list passed | 205 | - TARGET: processing target init list passed |
| 206 | 206 | ||
| 207 | BDI>go | 207 | BDI>go |
| 208 | 208 | ||
| 209 | Now see output from U-Boot running, sent via serial port: | 209 | Now see output from U-Boot running, sent via serial port: |
| 210 | 210 | ||
| 211 | U-Boot 1.1.4 (Jan 23 2002 - 18:29:19) | 211 | U-Boot 1.1.4 (Jan 23 2002 - 18:29:19) |
| 212 | 212 | ||
| 213 | CPU: MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache | 213 | CPU: MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache |
| 214 | Board: Sandpoint 8240 Unity | 214 | Board: Sandpoint 8240 Unity |
| 215 | DRAM: 64 MB | 215 | DRAM: 64 MB |
| 216 | FLASH: 2 MB | 216 | FLASH: 2 MB |
| 217 | PCI: scanning bus0 ... | 217 | PCI: scanning bus0 ... |
| 218 | bus dev fn venID devID class rev MBAR0 MBAR1 IPIN ILINE | 218 | bus dev fn venID devID class rev MBAR0 MBAR1 IPIN ILINE |
| 219 | 00 00 00 1057 0003 060000 13 00000008 00000000 01 00 | 219 | 00 00 00 1057 0003 060000 13 00000008 00000000 01 00 |
| 220 | 00 0b 00 10ad 0565 060100 10 00000000 00000000 00 00 | 220 | 00 0b 00 10ad 0565 060100 10 00000000 00000000 00 00 |
| 221 | 00 0f 00 8086 1229 020000 08 80000000 80000001 01 00 | 221 | 00 0f 00 8086 1229 020000 08 80000000 80000001 01 00 |
| 222 | In: serial | 222 | In: serial |
| 223 | Out: serial | 223 | Out: serial |
| 224 | Err: serial | 224 | Err: serial |
| 225 | => | 225 | => |
| 226 | 226 | ||
| 227 | 227 | ||
| 228 | PART 10) | 228 | PART 10) |
| 229 | Set and save any required environmental variables, examples of some: | 229 | Set and save any required environmental variables, examples of some: |
| 230 | 230 | ||
| 231 | => setenv ethaddr 00:03:47:97:D0:79 | 231 | => setenv ethaddr 00:03:47:97:D0:79 |
| 232 | => setenv bootfile your_qnx_image_here | 232 | => setenv bootfile your_qnx_image_here |
| 233 | => setenv hostname sandpointX | 233 | => setenv hostname sandpointX |
| 234 | => setenv netmask 255.255.255.0 | 234 | => setenv netmask 255.255.255.0 |
| 235 | => setenv ipaddr 192.168.0.11 | 235 | => setenv ipaddr 192.168.0.11 |
| 236 | => setenv serverip 192.168.0.10 | 236 | => setenv serverip 192.168.0.10 |
| 237 | => setenv gatewayip=192.168.0.1 | 237 | => setenv gatewayip=192.168.0.1 |
| 238 | => saveenv | 238 | => saveenv |
| 239 | Saving Enviroment to Flash... | 239 | Saving Environment to Flash... |
| 240 | Un-Protected 1 sectors | 240 | Un-Protected 1 sectors |
| 241 | Erasing Flash... | 241 | Erasing Flash... |
| 242 | done | 242 | done |
| 243 | Erased 1 sectors | 243 | Erased 1 sectors |
| 244 | Writing to Flash... done | 244 | Writing to Flash... done |
| 245 | Protected 1 sectors | 245 | Protected 1 sectors |
| 246 | => | 246 | => |
| 247 | 247 | ||
| 248 | **** Example environment: **** | 248 | **** Example environment: **** |
| 249 | 249 | ||
| 250 | => printenv | 250 | => printenv |
| 251 | baudrate=9600 | 251 | baudrate=9600 |
| 252 | bootfile=telemetry | 252 | bootfile=telemetry |
| 253 | hostname=sp1 | 253 | hostname=sp1 |
| 254 | ethaddr=00:03:47:97:E4:6B | 254 | ethaddr=00:03:47:97:E4:6B |
| 255 | load=tftp 100000 u-boot.bin | 255 | load=tftp 100000 u-boot.bin |
| 256 | update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 ${filesize};saveenv | 256 | update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 ${filesize};saveenv |
| 257 | filesize=1f304 | 257 | filesize=1f304 |
| 258 | gatewayip=145.17.228.1 | 258 | gatewayip=145.17.228.1 |
| 259 | netmask=255.255.255.0 | 259 | netmask=255.255.255.0 |
| 260 | ipaddr=145.17.228.42 | 260 | ipaddr=145.17.228.42 |
| 261 | serverip=145.17.242.46 | 261 | serverip=145.17.242.46 |
| 262 | stdin=serial | 262 | stdin=serial |
| 263 | stdout=serial | 263 | stdout=serial |
| 264 | stderr=serial | 264 | stderr=serial |
| 265 | 265 | ||
| 266 | Environment size: 332/8188 bytes | 266 | Environment size: 332/8188 bytes |
| 267 | => | 267 | => |
| 268 | 268 | ||
| 269 | here's some text useful stuff for cut-n-paste: | 269 | here's some text useful stuff for cut-n-paste: |
| 270 | setenv hostname sandpoint1 | 270 | setenv hostname sandpoint1 |
| 271 | setenv netmask 255.255.255.0 | 271 | setenv netmask 255.255.255.0 |
| 272 | setenv ipaddr 145.17.228.81 | 272 | setenv ipaddr 145.17.228.81 |
| 273 | setenv serverip 145.17.242.46 | 273 | setenv serverip 145.17.242.46 |
| 274 | setenv gatewayip 145.17.228.1 | 274 | setenv gatewayip 145.17.228.1 |
| 275 | saveenv | 275 | saveenv |
| 276 | 276 | ||
| 277 | PART 11) | 277 | PART 11) |
| 278 | Test U-Boot by tftp'ing new U-Boot, overwriting current: | 278 | Test U-Boot by tftp'ing new U-Boot, overwriting current: |
| 279 | 279 | ||
| 280 | => protect off all | 280 | => protect off all |
| 281 | Un-Protect Flash Bank # 1 | 281 | Un-Protect Flash Bank # 1 |
| 282 | => tftp 100000 u-boot.bin | 282 | => tftp 100000 u-boot.bin |
| 283 | eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0) | 283 | eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0) |
| 284 | ARP broadcast 1 | 284 | ARP broadcast 1 |
| 285 | TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through | 285 | TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through |
| 286 | gateway 145.17.228.1 | 286 | gateway 145.17.228.1 |
| 287 | Filename 'u-boot.bin'. | 287 | Filename 'u-boot.bin'. |
| 288 | Load address: 0x100000 | 288 | Load address: 0x100000 |
| 289 | Loading: ######################### | 289 | Loading: ######################### |
| 290 | done | 290 | done |
| 291 | Bytes transferred = 127628 (1f28c hex) | 291 | Bytes transferred = 127628 (1f28c hex) |
| 292 | => era all | 292 | => era all |
| 293 | Erase Flash Bank # 1 | 293 | Erase Flash Bank # 1 |
| 294 | done | 294 | done |
| 295 | Erase Flash Bank # 2 - missing | 295 | Erase Flash Bank # 2 - missing |
| 296 | => cp.b 0x100000 FFF00000 1f28c | 296 | => cp.b 0x100000 FFF00000 1f28c |
| 297 | Copy to Flash... done | 297 | Copy to Flash... done |
| 298 | => saveenv | 298 | => saveenv |
| 299 | Saving Enviroment to Flash... | 299 | Saving Environment to Flash... |
| 300 | Un-Protected 1 sectors | 300 | Un-Protected 1 sectors |
| 301 | Erasing Flash... | 301 | Erasing Flash... |
| 302 | done | 302 | done |
| 303 | Erased 1 sectors | 303 | Erased 1 sectors |
| 304 | Writing to Flash... done | 304 | Writing to Flash... done |
| 305 | Protected 1 sectors | 305 | Protected 1 sectors |
| 306 | => reset | 306 | => reset |
| 307 | 307 | ||
| 308 | You can put these commands into some environment variables; | 308 | You can put these commands into some environment variables; |
| 309 | 309 | ||
| 310 | => setenv load tftp 100000 u-boot.bin | 310 | => setenv load tftp 100000 u-boot.bin |
| 311 | => setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \${filesize}\;saveenv | 311 | => setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \${filesize}\;saveenv |
| 312 | => saveenv | 312 | => saveenv |
| 313 | 313 | ||
| 314 | Then you just have to type "run load" then "run update" | 314 | Then you just have to type "run load" then "run update" |
| 315 | 315 | ||
| 316 | => run load | 316 | => run load |
| 317 | eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0) | 317 | eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0) |
| 318 | ARP broadcast 1 | 318 | ARP broadcast 1 |
| 319 | TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through | 319 | TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through |
| 320 | gateway 145.17.228.1 | 320 | gateway 145.17.228.1 |
| 321 | Filename 'u-boot.bin'. | 321 | Filename 'u-boot.bin'. |
| 322 | Load address: 0x100000 | 322 | Load address: 0x100000 |
| 323 | Loading: ######################### | 323 | Loading: ######################### |
| 324 | done | 324 | done |
| 325 | Bytes transferred = 127748 (1f304 hex) | 325 | Bytes transferred = 127748 (1f304 hex) |
| 326 | => run update | 326 | => run update |
| 327 | Un-Protect Flash Bank # 1 | 327 | Un-Protect Flash Bank # 1 |
| 328 | Un-Protect Flash Bank # 2 | 328 | Un-Protect Flash Bank # 2 |
| 329 | Erase Flash from 0xfff00000 to 0xfff3ffff | 329 | Erase Flash from 0xfff00000 to 0xfff3ffff |
| 330 | done | 330 | done |
| 331 | Erased 7 sectors | 331 | Erased 7 sectors |
| 332 | Copy to Flash... done | 332 | Copy to Flash... done |
| 333 | Saving Enviroment to Flash... | 333 | Saving Environment to Flash... |
| 334 | Un-Protected 1 sectors | 334 | Un-Protected 1 sectors |
| 335 | Erasing Flash... | 335 | Erasing Flash... |
| 336 | done | 336 | done |
| 337 | Erased 1 sectors | 337 | Erased 1 sectors |
| 338 | Writing to Flash... done | 338 | Writing to Flash... done |
| 339 | Protected 1 sectors | 339 | Protected 1 sectors |
| 340 | => | 340 | => |
| 341 | 341 | ||
| 342 | 342 | ||
| 343 | PART 12) | 343 | PART 12) |
| 344 | Load OS image (ELF format) via U-Boot using tftp | 344 | Load OS image (ELF format) via U-Boot using tftp |
| 345 | 345 | ||
| 346 | 346 | ||
| 347 | => tftp 800000 sandpoint-simple.elf | 347 | => tftp 800000 sandpoint-simple.elf |
| 348 | eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0) | 348 | eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0) |
| 349 | ARP broadcast 1 | 349 | ARP broadcast 1 |
| 350 | TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through | 350 | TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through |
| 351 | gateway 145.17.228.1 | 351 | gateway 145.17.228.1 |
| 352 | Filename 'sandpoint-simple.elf'. | 352 | Filename 'sandpoint-simple.elf'. |
| 353 | Load address: 0x800000 | 353 | Load address: 0x800000 |
| 354 | Loading: ################################################################# | 354 | Loading: ################################################################# |
| 355 | ################################################################# | 355 | ################################################################# |
| 356 | ################################################################# | 356 | ################################################################# |
| 357 | ######################## | 357 | ######################## |
| 358 | done | 358 | done |
| 359 | Bytes transferred = 1120284 (11181c hex) | 359 | Bytes transferred = 1120284 (11181c hex) |
| 360 | ==> | 360 | ==> |
| 361 | 361 | ||
| 362 | PART 13) | 362 | PART 13) |
| 363 | Begin OS image execution: (note that unless you have the | 363 | Begin OS image execution: (note that unless you have the |
| 364 | serial parameters of your OS image set to 9600 (i.e. same as | 364 | serial parameters of your OS image set to 9600 (i.e. same as |
| 365 | the U-Boot binary) you will get garbage here until you change | 365 | the U-Boot binary) you will get garbage here until you change |
| 366 | the serial communications speed. | 366 | the serial communications speed. |
| 367 | 367 | ||
| 368 | => bootelf 800000 | 368 | => bootelf 800000 |
| 369 | Loading @ 0x001f0100 (1120028 bytes) | 369 | Loading @ 0x001f0100 (1120028 bytes) |
| 370 | ## Starting application at 0x001f1d28 ... | 370 | ## Starting application at 0x001f1d28 ... |
| 371 | Replace init_hwinfo() with a board specific version | 371 | Replace init_hwinfo() with a board specific version |
| 372 | 372 | ||
| 373 | Loading QNX6.... | 373 | Loading QNX6.... |
| 374 | 374 | ||
| 375 | Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1 | 375 | Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1 |
| 376 | <...loader and kernel messages snipped...> | 376 | <...loader and kernel messages snipped...> |
| 377 | 377 | ||
| 378 | Welcome to Neutrino on the Sandpoint | 378 | Welcome to Neutrino on the Sandpoint |
| 379 | # | 379 | # |
| 380 | 380 | ||
| 381 | 381 | ||
| 382 | other information: | 382 | other information: |
| 383 | 383 | ||
| 384 | CVS Retrieval Notes: | 384 | CVS Retrieval Notes: |
| 385 | 385 | ||
| 386 | U-Boot's SourceForge CVS repository can be checked out | 386 | U-Boot's SourceForge CVS repository can be checked out |
| 387 | through anonymous (pserver) CVS with the following | 387 | through anonymous (pserver) CVS with the following |
| 388 | instruction set. The module you wish to check out must | 388 | instruction set. The module you wish to check out must |
| 389 | be specified as the modulename. When prompted for a | 389 | be specified as the modulename. When prompted for a |
| 390 | password for anonymous, simply press the Enter key. | 390 | password for anonymous, simply press the Enter key. |
| 391 | 391 | ||
| 392 | cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login | 392 | cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login |
| 393 | 393 | ||
| 394 | cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot | 394 | cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot |
| 395 | 395 |
doc/README.at91
| 1 | Atmel AT91 Evaluation kits | 1 | Atmel AT91 Evaluation kits |
| 2 | 2 | ||
| 3 | http://atmel.com/dyn/products/tools.asp?family_id=605#1443 | 3 | http://atmel.com/dyn/products/tools.asp?family_id=605#1443 |
| 4 | 4 | ||
| 5 | I. Board mapping & boot media | 5 | I. Board mapping & boot media |
| 6 | ------------------------------------------------------------------------------ | 6 | ------------------------------------------------------------------------------ |
| 7 | AT91SAM9260EK, AT91SAM9G20EK & AT91SAM9XEEK | 7 | AT91SAM9260EK, AT91SAM9G20EK & AT91SAM9XEEK |
| 8 | ------------------------------------------------------------------------------ | 8 | ------------------------------------------------------------------------------ |
| 9 | 9 | ||
| 10 | Memory map | 10 | Memory map |
| 11 | 0x20000000 - 23FFFFFF SDRAM (64 MB) | 11 | 0x20000000 - 23FFFFFF SDRAM (64 MB) |
| 12 | 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J13) | 12 | 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J13) |
| 13 | 0xD0000000 - Dxxxxxxx Soldered Atmel Dataflash | 13 | 0xD0000000 - Dxxxxxxx Soldered Atmel Dataflash |
| 14 | 14 | ||
| 15 | Environment variables | 15 | Environment variables |
| 16 | 16 | ||
| 17 | U-Boot environment variables can be stored at different places: | 17 | U-Boot environment variables can be stored at different places: |
| 18 | - Dataflash on SPI chip select 1 (default) | 18 | - Dataflash on SPI chip select 1 (default) |
| 19 | - Dataflash on SPI chip select 0 (dataflash card) | 19 | - Dataflash on SPI chip select 0 (dataflash card) |
| 20 | - Nand flash. | 20 | - Nand flash. |
| 21 | 21 | ||
| 22 | You can choose your storage location at config step (here for at91sam9260ek) : | 22 | You can choose your storage location at config step (here for at91sam9260ek) : |
| 23 | make at91sam9260ek_config - use data flash (spi cs1) (default) | 23 | make at91sam9260ek_config - use data flash (spi cs1) (default) |
| 24 | make at91sam9260ek_nandflash_config - use nand flash | 24 | make at91sam9260ek_nandflash_config - use nand flash |
| 25 | make at91sam9260ek_dataflash_cs0_config - use data flash (spi cs0) | 25 | make at91sam9260ek_dataflash_cs0_config - use data flash (spi cs0) |
| 26 | make at91sam9260ek_dataflash_cs1_config - use data flash (spi cs1) | 26 | make at91sam9260ek_dataflash_cs1_config - use data flash (spi cs1) |
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | ------------------------------------------------------------------------------ | 29 | ------------------------------------------------------------------------------ |
| 30 | AT91SAM9261EK, AT91SAM9G10EK | 30 | AT91SAM9261EK, AT91SAM9G10EK |
| 31 | ------------------------------------------------------------------------------ | 31 | ------------------------------------------------------------------------------ |
| 32 | 32 | ||
| 33 | Memory map | 33 | Memory map |
| 34 | 0x20000000 - 23FFFFFF SDRAM (64 MB) | 34 | 0x20000000 - 23FFFFFF SDRAM (64 MB) |
| 35 | 0xC0000000 - Cxxxxxxx Soldered Atmel Dataflash | 35 | 0xC0000000 - Cxxxxxxx Soldered Atmel Dataflash |
| 36 | 0xD0000000 - Dxxxxxxx Atmel Dataflash card (J22) | 36 | 0xD0000000 - Dxxxxxxx Atmel Dataflash card (J22) |
| 37 | 37 | ||
| 38 | Environment variables | 38 | Environment variables |
| 39 | 39 | ||
| 40 | U-Boot environment variables can be stored at different places: | 40 | U-Boot environment variables can be stored at different places: |
| 41 | - Dataflash on SPI chip select 0 (default) | 41 | - Dataflash on SPI chip select 0 (default) |
| 42 | - Dataflash on SPI chip select 3 (dataflash card) | 42 | - Dataflash on SPI chip select 3 (dataflash card) |
| 43 | - Nand flash. | 43 | - Nand flash. |
| 44 | 44 | ||
| 45 | You can choose your storage location at config step (here for at91sam9260ek) : | 45 | You can choose your storage location at config step (here for at91sam9260ek) : |
| 46 | make at91sam9261ek_config - use data flash (spi cs0) (default) | 46 | make at91sam9261ek_config - use data flash (spi cs0) (default) |
| 47 | make at91sam9261ek_nandflash_config - use nand flash | 47 | make at91sam9261ek_nandflash_config - use nand flash |
| 48 | make at91sam9261ek_dataflash_cs0_config - use data flash (spi cs0) | 48 | make at91sam9261ek_dataflash_cs0_config - use data flash (spi cs0) |
| 49 | make at91sam9261ek_dataflash_cs3_config - use data flash (spi cs3) | 49 | make at91sam9261ek_dataflash_cs3_config - use data flash (spi cs3) |
| 50 | 50 | ||
| 51 | 51 | ||
| 52 | ------------------------------------------------------------------------------ | 52 | ------------------------------------------------------------------------------ |
| 53 | AT91SAM9263EK | 53 | AT91SAM9263EK |
| 54 | ------------------------------------------------------------------------------ | 54 | ------------------------------------------------------------------------------ |
| 55 | 55 | ||
| 56 | Memory map | 56 | Memory map |
| 57 | 0x20000000 - 23FFFFFF SDRAM (64 MB) | 57 | 0x20000000 - 23FFFFFF SDRAM (64 MB) |
| 58 | 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J9) | 58 | 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J9) |
| 59 | 59 | ||
| 60 | Environment variables | 60 | Environment variables |
| 61 | 61 | ||
| 62 | U-Boot environment variables can be stored at different places: | 62 | U-Boot environment variables can be stored at different places: |
| 63 | - Dataflash on SPI chip select 0 (dataflash card) | 63 | - Dataflash on SPI chip select 0 (dataflash card) |
| 64 | - Nand flash. | 64 | - Nand flash. |
| 65 | - Nor falsh (not populate by default) | 65 | - Nor flash (not populate by default) |
| 66 | 66 | ||
| 67 | You can choose your storage location at config step (here for at91sam9260ek) : | 67 | You can choose your storage location at config step (here for at91sam9260ek) : |
| 68 | make at91sam9263ek_config - use data flash (spi cs0) (default) | 68 | make at91sam9263ek_config - use data flash (spi cs0) (default) |
| 69 | make at91sam9263ek_nandflash_config - use nand flash | 69 | make at91sam9263ek_nandflash_config - use nand flash |
| 70 | make at91sam9263ek_dataflash_cs0_config - use data flash (spi cs0) | 70 | make at91sam9263ek_dataflash_cs0_config - use data flash (spi cs0) |
| 71 | make at91sam9263ek_norflash_config - use nor falsh | 71 | make at91sam9263ek_norflash_config - use nor flash |
| 72 | 72 | ||
| 73 | You can choose to boot directly from U-Boot at config step | 73 | You can choose to boot directly from U-Boot at config step |
| 74 | make at91sam9263ek_norflash_boot_config - boot from nor falsh | 74 | make at91sam9263ek_norflash_boot_config - boot from nor flash |
| 75 | 75 | ||
| 76 | 76 | ||
| 77 | ------------------------------------------------------------------------------ | 77 | ------------------------------------------------------------------------------ |
| 78 | AT91SAM9M10G45EK | 78 | AT91SAM9M10G45EK |
| 79 | ------------------------------------------------------------------------------ | 79 | ------------------------------------------------------------------------------ |
| 80 | 80 | ||
| 81 | Memory map | 81 | Memory map |
| 82 | 0x20000000 - 23FFFFFF SDRAM (64 MB) | 82 | 0x20000000 - 23FFFFFF SDRAM (64 MB) |
| 83 | 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J12) | 83 | 0xC0000000 - Cxxxxxxx Atmel Dataflash card (J12) |
| 84 | 84 | ||
| 85 | Environment variables | 85 | Environment variables |
| 86 | 86 | ||
| 87 | U-Boot environment variables can be stored at different places: | 87 | U-Boot environment variables can be stored at different places: |
| 88 | - Dataflash on SPI chip select 0 (dataflash card) | 88 | - Dataflash on SPI chip select 0 (dataflash card) |
| 89 | - Nand flash. | 89 | - Nand flash. |
| 90 | 90 | ||
| 91 | You can choose your storage location at config step (here for at91sam9m10g45ek) : | 91 | You can choose your storage location at config step (here for at91sam9m10g45ek) : |
| 92 | make at91sam9m10g45ek_config - use data flash (spi cs0) (default) | 92 | make at91sam9m10g45ek_config - use data flash (spi cs0) (default) |
| 93 | make at91sam9m10g45ek_nandflash_config - use nand flash | 93 | make at91sam9m10g45ek_nandflash_config - use nand flash |
| 94 | make at91sam9m10g45ek_dataflash_cs0_config - use data flash (spi cs0) | 94 | make at91sam9m10g45ek_dataflash_cs0_config - use data flash (spi cs0) |
| 95 | 95 | ||
| 96 | 96 | ||
| 97 | ------------------------------------------------------------------------------ | 97 | ------------------------------------------------------------------------------ |
| 98 | AT91SAM9RLEK | 98 | AT91SAM9RLEK |
| 99 | ------------------------------------------------------------------------------ | 99 | ------------------------------------------------------------------------------ |
| 100 | 100 | ||
| 101 | Memory map | 101 | Memory map |
| 102 | 0x20000000 - 23FFFFFF SDRAM (64 MB) | 102 | 0x20000000 - 23FFFFFF SDRAM (64 MB) |
| 103 | 0xC0000000 - Cxxxxxxx Soldered Atmel Dataflash | 103 | 0xC0000000 - Cxxxxxxx Soldered Atmel Dataflash |
| 104 | 104 | ||
| 105 | Environment variables | 105 | Environment variables |
| 106 | 106 | ||
| 107 | U-Boot environment variables can be stored at different places: | 107 | U-Boot environment variables can be stored at different places: |
| 108 | - Dataflash on SPI chip select 0 | 108 | - Dataflash on SPI chip select 0 |
| 109 | - Nand flash. | 109 | - Nand flash. |
| 110 | 110 | ||
| 111 | You can choose your storage location at config step (here for at91sam9260ek) : | 111 | You can choose your storage location at config step (here for at91sam9260ek) : |
| 112 | make at91sam9263ek_config - use data flash (spi cs0) (default) | 112 | make at91sam9263ek_config - use data flash (spi cs0) (default) |
| 113 | make at91sam9263ek_nandflash_config - use nand flash | 113 | make at91sam9263ek_nandflash_config - use nand flash |
| 114 | make at91sam9263ek_dataflash_cs0_config - use data flash (spi cs0) | 114 | make at91sam9263ek_dataflash_cs0_config - use data flash (spi cs0) |
| 115 | 115 | ||
| 116 | II. Watchdog support | 116 | II. Watchdog support |
| 117 | 117 | ||
| 118 | For security reasons, the at91 watchdog is running at boot time and, | 118 | For security reasons, the at91 watchdog is running at boot time and, |
| 119 | if deactivated, cannot be used anymore. | 119 | if deactivated, cannot be used anymore. |
| 120 | If you want to use the watchdog, you will need to keep it running in | 120 | If you want to use the watchdog, you will need to keep it running in |
| 121 | your code (make sure not to disable it in AT91Bootstrap for instance). | 121 | your code (make sure not to disable it in AT91Bootstrap for instance). |
| 122 | 122 | ||
| 123 | In the U-Boot configuration, the AT91 watchdog support is enabled using | 123 | In the U-Boot configuration, the AT91 watchdog support is enabled using |
| 124 | the CONFIG_AT91SAM9_WATCHDOG and CONFIG_HW_WATCHDOG options. | 124 | the CONFIG_AT91SAM9_WATCHDOG and CONFIG_HW_WATCHDOG options. |
| 125 | 125 |
doc/README.ebony
| 1 | AMCC Ebony Board | 1 | AMCC Ebony Board |
| 2 | 2 | ||
| 3 | Last Update: September 12, 2002 | 3 | Last Update: September 12, 2002 |
| 4 | ======================================================================= | 4 | ======================================================================= |
| 5 | 5 | ||
| 6 | This file contains some handy info regarding U-Boot and the AMCC | 6 | This file contains some handy info regarding U-Boot and the AMCC |
| 7 | Ebony evalutation board. See the README.ppc440 for additional | 7 | Ebony evaluation board. See the README.ppc440 for additional |
| 8 | information. | 8 | information. |
| 9 | 9 | ||
| 10 | 10 | ||
| 11 | SWITCH SETTINGS & JUMPERS | 11 | SWITCH SETTINGS & JUMPERS |
| 12 | ========================== | 12 | ========================== |
| 13 | 13 | ||
| 14 | Here's what I've been using successfully. If you feel inclined to | 14 | Here's what I've been using successfully. If you feel inclined to |
| 15 | change things ... please read the docs! | 15 | change things ... please read the docs! |
| 16 | 16 | ||
| 17 | DIPSW U46 U80 | 17 | DIPSW U46 U80 |
| 18 | ------------------------ | 18 | ------------------------ |
| 19 | SW 1 off on | 19 | SW 1 off on |
| 20 | SW 2 on on | 20 | SW 2 on on |
| 21 | SW 3 on on | 21 | SW 3 on on |
| 22 | SW 4 off on | 22 | SW 4 off on |
| 23 | SW 5 on off | 23 | SW 5 on off |
| 24 | SW 6 on on | 24 | SW 6 on on |
| 25 | SW 7 on off | 25 | SW 7 on off |
| 26 | SW 8 on off | 26 | SW 8 on off |
| 27 | 27 | ||
| 28 | J41: strapped | 28 | J41: strapped |
| 29 | J42: open | 29 | J42: open |
| 30 | 30 | ||
| 31 | All others are factory default. | 31 | All others are factory default. |
| 32 | 32 | ||
| 33 | 33 | ||
| 34 | I2C probe | 34 | I2C probe |
| 35 | ===================== | 35 | ===================== |
| 36 | 36 | ||
| 37 | The i2c utilities have been tested on both Rev B. and Rev C. and | 37 | The i2c utilities have been tested on both Rev B. and Rev C. and |
| 38 | look good. The CONFIG_SYS_I2C_NOPROBES macro is defined to prevent | 38 | look good. The CONFIG_SYS_I2C_NOPROBES macro is defined to prevent |
| 39 | probing the CDCV850 clock controller at address 0x69 (since reading | 39 | probing the CDCV850 clock controller at address 0x69 (since reading |
| 40 | it causes the i2c implementation to misbehave. The output of | 40 | it causes the i2c implementation to misbehave. The output of |
| 41 | 'i2c probe' should look like this (assuming you are only using a single | 41 | 'i2c probe' should look like this (assuming you are only using a single |
| 42 | SO-DIMM: | 42 | SO-DIMM: |
| 43 | 43 | ||
| 44 | => i2c probe | 44 | => i2c probe |
| 45 | Valid chip addresses: 50 53 54 | 45 | Valid chip addresses: 50 53 54 |
| 46 | Excluded chip addresses: 69 | 46 | Excluded chip addresses: 69 |
| 47 | 47 | ||
| 48 | 48 | ||
| 49 | GETTING OUT OF I2C TROUBLE | 49 | GETTING OUT OF I2C TROUBLE |
| 50 | =========================== | 50 | =========================== |
| 51 | 51 | ||
| 52 | If you're like me ... you may have screwed up your bootstrap serial | 52 | If you're like me ... you may have screwed up your bootstrap serial |
| 53 | eeprom ... or worse, your SPD eeprom when experimenting with the | 53 | eeprom ... or worse, your SPD eeprom when experimenting with the |
| 54 | i2c commands. If so, here are some ideas on how to get out of | 54 | i2c commands. If so, here are some ideas on how to get out of |
| 55 | trouble: | 55 | trouble: |
| 56 | 56 | ||
| 57 | Serial bootstrap eeprom corruption: | 57 | Serial bootstrap eeprom corruption: |
| 58 | ----------------------------------- | 58 | ----------------------------------- |
| 59 | Power down the board and set the following straps: | 59 | Power down the board and set the following straps: |
| 60 | 60 | ||
| 61 | J41 - open | 61 | J41 - open |
| 62 | J42 - strapped | 62 | J42 - strapped |
| 63 | 63 | ||
| 64 | This will select the default sys0 and sys1 settings (the serial | 64 | This will select the default sys0 and sys1 settings (the serial |
| 65 | eeproms are not used). Then power up the board and fix the serial | 65 | eeproms are not used). Then power up the board and fix the serial |
| 66 | eeprom using the 'i2c mm' command. Here are the values I currently | 66 | eeprom using the 'i2c mm' command. Here are the values I currently |
| 67 | use: | 67 | use: |
| 68 | 68 | ||
| 69 | => i2c md 50 0 10 | 69 | => i2c md 50 0 10 |
| 70 | 0000: bf a2 04 01 ae 94 11 00 00 00 00 00 00 00 00 00 ................ | 70 | 0000: bf a2 04 01 ae 94 11 00 00 00 00 00 00 00 00 00 ................ |
| 71 | 71 | ||
| 72 | => i2c md 54 0 10 | 72 | => i2c md 54 0 10 |
| 73 | 0000: 8f b3 24 01 4d 14 11 00 00 00 00 00 00 00 00 00 ..$.M........... | 73 | 0000: 8f b3 24 01 4d 14 11 00 00 00 00 00 00 00 00 00 ..$.M........... |
| 74 | 74 | ||
| 75 | Once you have the eeproms set correctly change the | 75 | Once you have the eeproms set correctly change the |
| 76 | J41/J42 straps as you desire. | 76 | J41/J42 straps as you desire. |
| 77 | 77 | ||
| 78 | SPD eeprom corruption: | 78 | SPD eeprom corruption: |
| 79 | ------------------------ | 79 | ------------------------ |
| 80 | I've corrupted the SPD eeprom several times ... perhaps too much coffee | 80 | I've corrupted the SPD eeprom several times ... perhaps too much coffee |
| 81 | and not enough presence of mind ;-). By default, the ebony code uses | 81 | and not enough presence of mind ;-). By default, the ebony code uses |
| 82 | the SPD to initialize the DDR SDRAM control registers. So if the SPD | 82 | the SPD to initialize the DDR SDRAM control registers. So if the SPD |
| 83 | eeprom is corrupted, U-Boot will never get into ram. Here's how I got | 83 | eeprom is corrupted, U-Boot will never get into ram. Here's how I got |
| 84 | out of this situation: | 84 | out of this situation: |
| 85 | 85 | ||
| 86 | 0. First, _before_ playing with the i2c utilities, do an 'i2c probe', then | 86 | 0. First, _before_ playing with the i2c utilities, do an 'i2c probe', then |
| 87 | use 'i2c md' to capture the various device contents to a file. Some day | 87 | use 'i2c md' to capture the various device contents to a file. Some day |
| 88 | you may be glad you did this ... trust me :-). Otherwise try the | 88 | you may be glad you did this ... trust me :-). Otherwise try the |
| 89 | following: | 89 | following: |
| 90 | 90 | ||
| 91 | 1. In the include/configs/EBONY.h file find the line that defines | 91 | 1. In the include/configs/EBONY.h file find the line that defines |
| 92 | the CONFIG_SPD_EEPROM macro and undefine it. E.g: | 92 | the CONFIG_SPD_EEPROM macro and undefine it. E.g: |
| 93 | 93 | ||
| 94 | #undef CONFIG_SPD_EEPROM | 94 | #undef CONFIG_SPD_EEPROM |
| 95 | 95 | ||
| 96 | This will make the code use default SDRAM control register | 96 | This will make the code use default SDRAM control register |
| 97 | settings without using the SPD eeprom. | 97 | settings without using the SPD eeprom. |
| 98 | 98 | ||
| 99 | 2. Rebuild U-Boot | 99 | 2. Rebuild U-Boot |
| 100 | 100 | ||
| 101 | 3. Load the new U-Boot image and reboot ebony. | 101 | 3. Load the new U-Boot image and reboot ebony. |
| 102 | 102 | ||
| 103 | 4. Repair the SPD eeprom using the 'i2c mm' command. Here's the eeprom | 103 | 4. Repair the SPD eeprom using the 'i2c mm' command. Here's the eeprom |
| 104 | contents that work with the default SO-DIMM that comes with the | 104 | contents that work with the default SO-DIMM that comes with the |
| 105 | ebony board (micron 8VDDT164AG-265A1). Note: these are probably | 105 | ebony board (micron 8VDDT164AG-265A1). Note: these are probably |
| 106 | _not_ the factory settings ... but they work. | 106 | _not_ the factory settings ... but they work. |
| 107 | 107 | ||
| 108 | => i2c md 53 0 10 80 | 108 | => i2c md 53 0 10 80 |
| 109 | 0000: 80 08 07 0c 0a 01 40 00 04 75 75 00 80 08 00 01 ......@..uu..... | 109 | 0000: 80 08 07 0c 0a 01 40 00 04 75 75 00 80 08 00 01 ......@..uu..... |
| 110 | 0010: 0e 04 0c 01 02 20 00 a0 75 00 00 50 3c 50 2d 20 ..... ..u..P<P- | 110 | 0010: 0e 04 0c 01 02 20 00 a0 75 00 00 50 3c 50 2d 20 ..... ..u..P<P- |
| 111 | 0020: 90 90 50 50 00 00 00 00 00 41 4b 34 32 75 00 00 ..PP.....AK42u.. | 111 | 0020: 90 90 50 50 00 00 00 00 00 41 4b 34 32 75 00 00 ..PP.....AK42u.. |
| 112 | 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c ................ | 112 | 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c ................ |
| 113 | 0040: 2c 00 00 00 00 00 00 00 08 38 56 44 44 54 31 36 ,........8VDDT16 | 113 | 0040: 2c 00 00 00 00 00 00 00 08 38 56 44 44 54 31 36 ,........8VDDT16 |
| 114 | 0050: 36 34 41 47 2d 32 36 35 41 31 20 01 00 01 2c 63 64AG-265A1 ...,c | 114 | 0050: 36 34 41 47 2d 32 36 35 41 31 20 01 00 01 2c 63 64AG-265A1 ...,c |
| 115 | 0060: 22 25 ab 00 00 00 00 00 00 00 00 00 00 00 00 00 "%.............. | 115 | 0060: 22 25 ab 00 00 00 00 00 00 00 00 00 00 00 00 00 "%.............. |
| 116 | 0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ | 116 | 0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
| 117 | 117 | ||
| 118 | 118 | ||
| 119 | PCI DOUBLE-ENUMERATION WOES | 119 | PCI DOUBLE-ENUMERATION WOES |
| 120 | =========================== | 120 | =========================== |
| 121 | 121 | ||
| 122 | If you're not using PCI-X cards and are simply using 32-bit and/or | 122 | If you're not using PCI-X cards and are simply using 32-bit and/or |
| 123 | 33 MHz cards via extenders and the like, you may notice that the | 123 | 33 MHz cards via extenders and the like, you may notice that the |
| 124 | initial pci scan reports various devices twice ... and configuration | 124 | initial pci scan reports various devices twice ... and configuration |
| 125 | does not succeed (one or more devices are enumerated twice). To correct | 125 | does not succeed (one or more devices are enumerated twice). To correct |
| 126 | this we replaced the 2K ohm resistor on the IDSEL line(s) with a | 126 | this we replaced the 2K ohm resistor on the IDSEL line(s) with a |
| 127 | 22 ohm resistor and the problem went away. This change hasn't broken | 127 | 22 ohm resistor and the problem went away. This change hasn't broken |
| 128 | anything yet -- use at your own risk. | 128 | anything yet -- use at your own risk. |
| 129 | 129 | ||
| 130 | We never tested anything other than 33 MHz/32-bit cards. If you have | 130 | We never tested anything other than 33 MHz/32-bit cards. If you have |
| 131 | the chance to do this, please let me know how things turn out :-) | 131 | the chance to do this, please let me know how things turn out :-) |
| 132 | 132 | ||
| 133 | 133 | ||
| 134 | Regards, | 134 | Regards, |
| 135 | --Scott | 135 | --Scott |
| 136 | <smcnutt@artesyncp.com> | 136 | <smcnutt@artesyncp.com> |
| 137 | 137 |
doc/README.fsl-ddr
| 1 | 1 | ||
| 2 | Table of interleaving modes supported in cpu/8xxx/ddr/ | 2 | Table of interleaving modes supported in cpu/8xxx/ddr/ |
| 3 | ====================================================== | 3 | ====================================================== |
| 4 | +-------------+---------------------------------------------------------+ | 4 | +-------------+---------------------------------------------------------+ |
| 5 | | | Rank Interleaving | | 5 | | | Rank Interleaving | |
| 6 | | +--------+-----------+-----------+------------+-----------+ | 6 | | +--------+-----------+-----------+------------+-----------+ |
| 7 | |Memory | | | | 2x2 | 4x1 | | 7 | |Memory | | | | 2x2 | 4x1 | |
| 8 | |Controller | None | 2x1 lower | 2x1 upper | {CS0+CS1}, | {CS0+CS1+ | | 8 | |Controller | None | 2x1 lower | 2x1 upper | {CS0+CS1}, | {CS0+CS1+ | |
| 9 | |Interleaving | | {CS0+CS1} | {CS2+CS3} | {CS2+CS3} | CS2+CS3} | | 9 | |Interleaving | | {CS0+CS1} | {CS2+CS3} | {CS2+CS3} | CS2+CS3} | |
| 10 | +-------------+--------+-----------+-----------+------------+-----------+ | 10 | +-------------+--------+-----------+-----------+------------+-----------+ |
| 11 | |None | Yes | Yes | Yes | Yes | Yes | | 11 | |None | Yes | Yes | Yes | Yes | Yes | |
| 12 | +-------------+--------+-----------+-----------+------------+-----------+ | 12 | +-------------+--------+-----------+-----------+------------+-----------+ |
| 13 | |Cacheline | Yes | Yes | No | No, Only(*)| Yes | | 13 | |Cacheline | Yes | Yes | No | No, Only(*)| Yes | |
| 14 | | |CS0 Only| | | {CS0+CS1} | | | 14 | | |CS0 Only| | | {CS0+CS1} | | |
| 15 | +-------------+--------+-----------+-----------+------------+-----------+ | 15 | +-------------+--------+-----------+-----------+------------+-----------+ |
| 16 | |Page | Yes | Yes | No | No, Only(*)| Yes | | 16 | |Page | Yes | Yes | No | No, Only(*)| Yes | |
| 17 | | |CS0 Only| | | {CS0+CS1} | | | 17 | | |CS0 Only| | | {CS0+CS1} | | |
| 18 | +-------------+--------+-----------+-----------+------------+-----------+ | 18 | +-------------+--------+-----------+-----------+------------+-----------+ |
| 19 | |Bank | Yes | Yes | No | No, Only(*)| Yes | | 19 | |Bank | Yes | Yes | No | No, Only(*)| Yes | |
| 20 | | |CS0 Only| | | {CS0+CS1} | | | 20 | | |CS0 Only| | | {CS0+CS1} | | |
| 21 | +-------------+--------+-----------+-----------+------------+-----------+ | 21 | +-------------+--------+-----------+-----------+------------+-----------+ |
| 22 | |Superbank | No | Yes | No | No, Only(*)| Yes | | 22 | |Superbank | No | Yes | No | No, Only(*)| Yes | |
| 23 | | | | | | {CS0+CS1} | | | 23 | | | | | | {CS0+CS1} | | |
| 24 | +-------------+--------+-----------+-----------+------------+-----------+ | 24 | +-------------+--------+-----------+-----------+------------+-----------+ |
| 25 | (*) Although the hardware can be configured with memory controller | 25 | (*) Although the hardware can be configured with memory controller |
| 26 | interleaving using "2x2" rank interleaving, it only interleaves {CS0+CS1} | 26 | interleaving using "2x2" rank interleaving, it only interleaves {CS0+CS1} |
| 27 | from each controller. {CS2+CS3} on each controller are only rank | 27 | from each controller. {CS2+CS3} on each controller are only rank |
| 28 | interleaved on that controller. | 28 | interleaved on that controller. |
| 29 | 29 | ||
| 30 | For memory controller interleaving, identical DIMMs are suggested. Software | 30 | For memory controller interleaving, identical DIMMs are suggested. Software |
| 31 | doesn't check the size or organization of interleaved DIMMs. | 31 | doesn't check the size or organization of interleaved DIMMs. |
| 32 | 32 | ||
| 33 | The ways to configure the ddr interleaving mode | 33 | The ways to configure the ddr interleaving mode |
| 34 | ============================================== | 34 | ============================================== |
| 35 | 1. In board header file(e.g.MPC8572DS.h), add default interleaving setting | 35 | 1. In board header file(e.g.MPC8572DS.h), add default interleaving setting |
| 36 | under "CONFIG_EXTRA_ENV_SETTINGS", like: | 36 | under "CONFIG_EXTRA_ENV_SETTINGS", like: |
| 37 | #define CONFIG_EXTRA_ENV_SETTINGS \ | 37 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
| 38 | "hwconfig=fsl_ddr:ctlr_intlv=bank" \ | 38 | "hwconfig=fsl_ddr:ctlr_intlv=bank" \ |
| 39 | ...... | 39 | ...... |
| 40 | 40 | ||
| 41 | 2. Run u-boot "setenv" command to configure the memory interleaving mode. | 41 | 2. Run u-boot "setenv" command to configure the memory interleaving mode. |
| 42 | Either numerical or string value is accepted. | 42 | Either numerical or string value is accepted. |
| 43 | 43 | ||
| 44 | # disable memory controller interleaving | 44 | # disable memory controller interleaving |
| 45 | setenv hwconfig "fsl_ddr:ctlr_intlv=null" | 45 | setenv hwconfig "fsl_ddr:ctlr_intlv=null" |
| 46 | 46 | ||
| 47 | # cacheline interleaving | 47 | # cacheline interleaving |
| 48 | setenv hwconfig "fsl_ddr:ctlr_intlv=cacheline" | 48 | setenv hwconfig "fsl_ddr:ctlr_intlv=cacheline" |
| 49 | 49 | ||
| 50 | # page interleaving | 50 | # page interleaving |
| 51 | setenv hwconfig "fsl_ddr:ctlr_intlv=page" | 51 | setenv hwconfig "fsl_ddr:ctlr_intlv=page" |
| 52 | 52 | ||
| 53 | # bank interleaving | 53 | # bank interleaving |
| 54 | setenv hwconfig "fsl_ddr:ctlr_intlv=bank" | 54 | setenv hwconfig "fsl_ddr:ctlr_intlv=bank" |
| 55 | 55 | ||
| 56 | # superbank | 56 | # superbank |
| 57 | setenv hwconfig "fsl_ddr:ctlr_intlv=superbank" | 57 | setenv hwconfig "fsl_ddr:ctlr_intlv=superbank" |
| 58 | 58 | ||
| 59 | # disable bank (chip-select) interleaving | 59 | # disable bank (chip-select) interleaving |
| 60 | setenv hwconfig "fsl_ddr:bank_intlv=null" | 60 | setenv hwconfig "fsl_ddr:bank_intlv=null" |
| 61 | 61 | ||
| 62 | # bank(chip-select) interleaving cs0+cs1 | 62 | # bank(chip-select) interleaving cs0+cs1 |
| 63 | setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1" | 63 | setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1" |
| 64 | 64 | ||
| 65 | # bank(chip-select) interleaving cs2+cs3 | 65 | # bank(chip-select) interleaving cs2+cs3 |
| 66 | setenv hwconfig "fsl_ddr:bank_intlv=cs2_cs3" | 66 | setenv hwconfig "fsl_ddr:bank_intlv=cs2_cs3" |
| 67 | 67 | ||
| 68 | # bank(chip-select) interleaving (cs0+cs1) and (cs2+cs3) (2x2) | 68 | # bank(chip-select) interleaving (cs0+cs1) and (cs2+cs3) (2x2) |
| 69 | setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_and_cs2_cs3" | 69 | setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_and_cs2_cs3" |
| 70 | 70 | ||
| 71 | # bank(chip-select) interleaving (cs0+cs1+cs2+cs3) (4x1) | 71 | # bank(chip-select) interleaving (cs0+cs1+cs2+cs3) (4x1) |
| 72 | setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3" | 72 | setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3" |
| 73 | 73 | ||
| 74 | Memory controller address hashing | 74 | Memory controller address hashing |
| 75 | ================================== | 75 | ================================== |
| 76 | If the DDR controller supports address hashing, it can be enabled by hwconfig. | 76 | If the DDR controller supports address hashing, it can be enabled by hwconfig. |
| 77 | 77 | ||
| 78 | Syntax is: | 78 | Syntax is: |
| 79 | hwconfig=fsl_ddr:addr_hash=true | 79 | hwconfig=fsl_ddr:addr_hash=true |
| 80 | 80 | ||
| 81 | Memory controller ECC on/off | 81 | Memory controller ECC on/off |
| 82 | ============================ | 82 | ============================ |
| 83 | If ECC is enabled in board configuratoin file, i.e. #define CONFIG_DDR_ECC, | 83 | If ECC is enabled in board configuratoin file, i.e. #define CONFIG_DDR_ECC, |
| 84 | ECC can be turned on/off by hwconfig. | 84 | ECC can be turned on/off by hwconfig. |
| 85 | 85 | ||
| 86 | Syntax is | 86 | Syntax is |
| 87 | hwconfig=fsl_ddr:ecc=off | 87 | hwconfig=fsl_ddr:ecc=off |
| 88 | 88 | ||
| 89 | Memory testing options for mpc85xx | 89 | Memory testing options for mpc85xx |
| 90 | ================================== | 90 | ================================== |
| 91 | 1. Memory test can be done once U-boot prompt comes up using mtest, or | 91 | 1. Memory test can be done once U-boot prompt comes up using mtest, or |
| 92 | 2. Memory test can be done with Power-On-Self-Test function, activated at | 92 | 2. Memory test can be done with Power-On-Self-Test function, activated at |
| 93 | compile time. | 93 | compile time. |
| 94 | 94 | ||
| 95 | In order to enable the POST memory test, CONFIG_POST needs to be | 95 | In order to enable the POST memory test, CONFIG_POST needs to be |
| 96 | defined in board configuraiton header file. By default, POST memory test | 96 | defined in board configuraiton header file. By default, POST memory test |
| 97 | performs a fast test. A slow test can be enabled by changing the flag at | 97 | performs a fast test. A slow test can be enabled by changing the flag at |
| 98 | compiling time. To test memory bigger than 2GB, 36BIT support is needed. | 98 | compiling time. To test memory bigger than 2GB, 36BIT support is needed. |
| 99 | Memory is tested within a 2GB window. TLBs are used to map the virtual 2GB | 99 | Memory is tested within a 2GB window. TLBs are used to map the virtual 2GB |
| 100 | window to physical address so that all physical memory can be tested. | 100 | window to physical address so that all physical memory can be tested. |
| 101 | 101 | ||
| 102 | Combination of hwconfig | 102 | Combination of hwconfig |
| 103 | ======================= | 103 | ======================= |
| 104 | Hwconfig can be combined with multiple parameters, for example, on a supported | 104 | Hwconfig can be combined with multiple parameters, for example, on a supported |
| 105 | platform | 105 | platform |
| 106 | 106 | ||
| 107 | hwconfig=fsl_ddr:addr_hash=true,ctlr_intlv=cacheline,bank_intlv=cs0_cs1_cs2_cs3,ecc=on | 107 | hwconfig=fsl_ddr:addr_hash=true,ctlr_intlv=cacheline,bank_intlv=cs0_cs1_cs2_cs3,ecc=on |
| 108 | 108 | ||
| 109 | Table for dynamic ODT for DDR3 | 109 | Table for dynamic ODT for DDR3 |
| 110 | ============================== | 110 | ============================== |
| 111 | For single-slot system with quad-rank DIMM and dual-slot system, dynamic ODT may | 111 | For single-slot system with quad-rank DIMM and dual-slot system, dynamic ODT may |
| 112 | be needed, depending on the configuration. The numbers in the following tables are | 112 | be needed, depending on the configuration. The numbers in the following tables are |
| 113 | in Ohms. | 113 | in Ohms. |
| 114 | 114 | ||
| 115 | * denotes dynamic ODT | 115 | * denotes dynamic ODT |
| 116 | 116 | ||
| 117 | Two slots system | 117 | Two slots system |
| 118 | +-----------------------+----------+---------------+-----------------------------+-----------------------------+ | 118 | +-----------------------+----------+---------------+-----------------------------+-----------------------------+ |
| 119 | | Configuration | |DRAM controller| Slot 1 | Slot 2 | | 119 | | Configuration | |DRAM controller| Slot 1 | Slot 2 | |
| 120 | +-----------+-----------+----------+-------+-------+--------------+--------------+--------------+--------------+ | 120 | +-----------+-----------+----------+-------+-------+--------------+--------------+--------------+--------------+ |
| 121 | | | | | | | Rank 1 | Rank 2 | Rank 1 | Rank 2 | | 121 | | | | | | | Rank 1 | Rank 2 | Rank 1 | Rank 2 | |
| 122 | + Slot 1 | Slot 2 |Write/Read| Write | Read |-------+------+-------+------+-------+------+-------+------+ | 122 | + Slot 1 | Slot 2 |Write/Read| Write | Read |-------+------+-------+------+-------+------+-------+------+ |
| 123 | | | | | | | Write | Read | Write | Read | Write | Read | Write | Read | | 123 | | | | | | | Write | Read | Write | Read | Write | Read | Write | Read | |
| 124 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 124 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 125 | | | | Slot 1 | off | 75 | 120 | off | off | off | off | off | 30 | 30 | | 125 | | | | Slot 1 | off | 75 | 120 | off | off | off | off | off | 30 | 30 | |
| 126 | | Dual Rank | Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 126 | | Dual Rank | Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 127 | | | | Slot 2 | off | 75 | off | off | 30 | 30 | 120 | off | off | off | | 127 | | | | Slot 2 | off | 75 | off | off | 30 | 30 | 120 | off | off | off | |
| 128 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 128 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 129 | | | | Slot 1 | off | 75 | 120 | off | off | off | 20 | 20 | | | | 129 | | | | Slot 1 | off | 75 | 120 | off | off | off | 20 | 20 | | | |
| 130 | | Dual Rank |Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 130 | | Dual Rank |Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 131 | | | | Slot 2 | off | 75 | off | off | 20 | 20 | 120 *| off | | | | 131 | | | | Slot 2 | off | 75 | off | off | 20 | 20 | 120 *| off | | | |
| 132 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 132 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 133 | | | | Slot 1 | off | 75 | 120 *| off | | | off | off | 20 | 20 | | 133 | | | | Slot 1 | off | 75 | 120 *| off | | | off | off | 20 | 20 | |
| 134 | |Single Rank| Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 134 | |Single Rank| Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 135 | | | | Slot 2 | off | 75 | 20 | 20 | | | 120 | off | off | off | | 135 | | | | Slot 2 | off | 75 | 20 | 20 | | | 120 | off | off | off | |
| 136 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 136 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 137 | | | | Slot 1 | off | 75 | 120 *| off | | | 30 | 30 | | | | 137 | | | | Slot 1 | off | 75 | 120 *| off | | | 30 | 30 | | | |
| 138 | |Single Rank|Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 138 | |Single Rank|Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 139 | | | | Slot 2 | off | 75 | 30 | 30 | | | 120 *| off | | | | 139 | | | | Slot 2 | off | 75 | 30 | 30 | | | 120 *| off | | | |
| 140 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 140 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 141 | | Dual Rank | Empty | Slot 1 | off | 75 | 40 | off | off | off | | | | | | 141 | | Dual Rank | Empty | Slot 1 | off | 75 | 40 | off | off | off | | | | | |
| 142 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 142 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 143 | | Empty | Dual Rank | Slot 2 | off | 75 | | | | | 40 | off | off | off | | 143 | | Empty | Dual Rank | Slot 2 | off | 75 | | | | | 40 | off | off | off | |
| 144 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 144 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 145 | |Single Rank| Empty | Slot 1 | off | 75 | 40 | off | | | | | | | | 145 | |Single Rank| Empty | Slot 1 | off | 75 | 40 | off | | | | | | | |
| 146 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 146 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 147 | | Empty |Single Rank| Slot 2 | off | 75 | | | | | 40 | off | | | | 147 | | Empty |Single Rank| Slot 2 | off | 75 | | | | | 40 | off | | | |
| 148 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 148 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 149 | 149 | ||
| 150 | Single slot system | 150 | Single slot system |
| 151 | +-------------+------------+---------------+-----------------------------+-----------------------------+ | 151 | +-------------+------------+---------------+-----------------------------+-----------------------------+ |
| 152 | | | |DRAM controller| Rank 1 | Rank 2 | Rank 3 | Rank 4 | | 152 | | | |DRAM controller| Rank 1 | Rank 2 | Rank 3 | Rank 4 | |
| 153 | |Configuration| Write/Read |-------+-------+-------+------+-------+------+-------+------+-------+------+ | 153 | |Configuration| Write/Read |-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 154 | | | | Write | Read | Write | Read | Write | Read | Write | Read | Write | Read | | 154 | | | | Write | Read | Write | Read | Write | Read | Write | Read | Write | Read | |
| 155 | +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 155 | +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 156 | | | R1 | off | 75 | 120 *| off | off | off | 20 | 20 | off | off | | 156 | | | R1 | off | 75 | 120 *| off | off | off | 20 | 20 | off | off | |
| 157 | | |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 157 | | |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 158 | | | R2 | off | 75 | off | 20 | 120 | off | 20 | 20 | off | off | | 158 | | | R2 | off | 75 | off | 20 | 120 | off | 20 | 20 | off | off | |
| 159 | | Quad Rank |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 159 | | Quad Rank |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 160 | | | R3 | off | 75 | 20 | 20 | off | off | 120 *| off | off | off | | 160 | | | R3 | off | 75 | 20 | 20 | off | off | 120 *| off | off | off | |
| 161 | | |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 161 | | |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 162 | | | R4 | off | 75 | 20 | 20 | off | off | off | 20 | 120 | off | | 162 | | | R4 | off | 75 | 20 | 20 | off | off | off | 20 | 120 | off | |
| 163 | +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 163 | +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 164 | | | R1 | off | 75 | 40 | off | off | off | | 164 | | | R1 | off | 75 | 40 | off | off | off | |
| 165 | | Dual Rank |------------+-------+-------+-------+------+-------+------+ | 165 | | Dual Rank |------------+-------+-------+-------+------+-------+------+ |
| 166 | | | R2 | off | 75 | 40 | off | off | off | | 166 | | | R2 | off | 75 | 40 | off | off | off | |
| 167 | +-------------+------------+-------+-------+-------+------+-------+------+ | 167 | +-------------+------------+-------+-------+-------+------+-------+------+ |
| 168 | | Single Rank | R1 | off | 75 | 40 | off | | 168 | | Single Rank | R1 | off | 75 | 40 | off | |
| 169 | +-------------+------------+-------+-------+-------+------+ | 169 | +-------------+------------+-------+-------+-------+------+ |
| 170 | 170 | ||
| 171 | Reference http://www.xrosstalkmag.com/mag_issues/xrosstalk_oct08_final.pdf | 171 | Reference http://www.xrosstalkmag.com/mag_issues/xrosstalk_oct08_final.pdf |
| 172 | http://download.micron.com/pdf/technotes/ddr3/tn4108_ddr3_design_guide.pdf | 172 | http://download.micron.com/pdf/technotes/ddr3/tn4108_ddr3_design_guide.pdf |
| 173 | 173 | ||
| 174 | 174 | ||
| 175 | Table for ODT for DDR2 | 175 | Table for ODT for DDR2 |
| 176 | ====================== | 176 | ====================== |
| 177 | Two slots system | 177 | Two slots system |
| 178 | +-----------------------+----------+---------------+-----------------------------+-----------------------------+ | 178 | +-----------------------+----------+---------------+-----------------------------+-----------------------------+ |
| 179 | | Configuration | |DRAM controller| Slot 1 | Slot 2 | | 179 | | Configuration | |DRAM controller| Slot 1 | Slot 2 | |
| 180 | +-----------+-----------+----------+-------+-------+--------------+--------------+--------------+--------------+ | 180 | +-----------+-----------+----------+-------+-------+--------------+--------------+--------------+--------------+ |
| 181 | | | | | | | Rank 1 | Rank 2 | Rank 1 | Rank 2 | | 181 | | | | | | | Rank 1 | Rank 2 | Rank 1 | Rank 2 | |
| 182 | + Slot 1 | Slot 2 |Write/Read| Write | Read |-------+------+-------+------+-------+------+-------+------+ | 182 | + Slot 1 | Slot 2 |Write/Read| Write | Read |-------+------+-------+------+-------+------+-------+------+ |
| 183 | | | | | | | Write | Read | Write | Read | Write | Read | Write | Read | | 183 | | | | | | | Write | Read | Write | Read | Write | Read | Write | Read | |
| 184 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 184 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 185 | | | | Slot 1 | off | 150 | off | off | off | off | 75 | 75 | off | off | | 185 | | | | Slot 1 | off | 150 | off | off | off | off | 75 | 75 | off | off | |
| 186 | | Dual Rank | Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 186 | | Dual Rank | Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 187 | | | | Slot 2 | off | 150 | 75 | 75 | off | off | off | off | off | off | | 187 | | | | Slot 2 | off | 150 | 75 | 75 | off | off | off | off | off | off | |
| 188 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 188 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 189 | | | | Slot 1 | off | 150 | off | off | off | off | 75 | 75 | | | | 189 | | | | Slot 1 | off | 150 | off | off | off | off | 75 | 75 | | | |
| 190 | | Dual Rank |Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 190 | | Dual Rank |Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 191 | | | | Slot 2 | off | 150 | 75 | 75 | off | off | off | off | | | | 191 | | | | Slot 2 | off | 150 | 75 | 75 | off | off | off | off | | | |
| 192 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 192 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 193 | | | | Slot 1 | off | 150 | off | off | | | 75 | 75 | off | off | | 193 | | | | Slot 1 | off | 150 | off | off | | | 75 | 75 | off | off | |
| 194 | |Single Rank| Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 194 | |Single Rank| Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 195 | | | | Slot 2 | off | 150 | 75 | 75 | | | off | off | off | off | | 195 | | | | Slot 2 | off | 150 | 75 | 75 | | | off | off | off | off | |
| 196 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 196 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 197 | | | | Slot 1 | off | 150 | off | off | | | 75 | 75 | | | | 197 | | | | Slot 1 | off | 150 | off | off | | | 75 | 75 | | | |
| 198 | |Single Rank|Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 198 | |Single Rank|Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 199 | | | | Slot 2 | off | 150 | 75 | 75 | | | off | off | | | | 199 | | | | Slot 2 | off | 150 | 75 | 75 | | | off | off | | | |
| 200 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 200 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 201 | | Dual Rank | Empty | Slot 1 | off | 75 | 150 | off | off | off | | | | | | 201 | | Dual Rank | Empty | Slot 1 | off | 75 | 150 | off | off | off | | | | | |
| 202 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 202 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 203 | | Empty | Dual Rank | Slot 2 | off | 75 | | | | | 150 | off | off | off | | 203 | | Empty | Dual Rank | Slot 2 | off | 75 | | | | | 150 | off | off | off | |
| 204 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 204 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 205 | |Single Rank| Empty | Slot 1 | off | 75 | 150 | off | | | | | | | | 205 | |Single Rank| Empty | Slot 1 | off | 75 | 150 | off | | | | | | | |
| 206 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 206 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 207 | | Empty |Single Rank| Slot 2 | off | 75 | | | | | 150 | off | | | | 207 | | Empty |Single Rank| Slot 2 | off | 75 | | | | | 150 | off | | | |
| 208 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ | 208 | +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+ |
| 209 | 209 | ||
| 210 | Single slot system | 210 | Single slot system |
| 211 | +-------------+------------+---------------+-----------------------------+ | 211 | +-------------+------------+---------------+-----------------------------+ |
| 212 | | | |DRAM controller| Rank 1 | Rank 2 | | 212 | | | |DRAM controller| Rank 1 | Rank 2 | |
| 213 | |Configuration| Write/Read |-------+-------+-------+------+-------+------+ | 213 | |Configuration| Write/Read |-------+-------+-------+------+-------+------+ |
| 214 | | | | Write | Read | Write | Read | Write | Read | | 214 | | | | Write | Read | Write | Read | Write | Read | |
| 215 | +-------------+------------+-------+-------+-------+------+-------+------+ | 215 | +-------------+------------+-------+-------+-------+------+-------+------+ |
| 216 | | | R1 | off | 75 | 150 | off | off | off | | 216 | | | R1 | off | 75 | 150 | off | off | off | |
| 217 | | Dual Rank |------------+-------+-------+-------+------+-------+------+ | 217 | | Dual Rank |------------+-------+-------+-------+------+-------+------+ |
| 218 | | | R2 | off | 75 | 150 | off | off | off | | 218 | | | R2 | off | 75 | 150 | off | off | off | |
| 219 | +-------------+------------+-------+-------+-------+------+-------+------+ | 219 | +-------------+------------+-------+-------+-------+------+-------+------+ |
| 220 | | Single Rank | R1 | off | 75 | 150 | off | | 220 | | Single Rank | R1 | off | 75 | 150 | off | |
| 221 | +-------------+------------+-------+-------+-------+------+ | 221 | +-------------+------------+-------+-------+-------+------+ |
| 222 | 222 | ||
| 223 | Reference http://www.samsung.com/global/business/semiconductor/products/dram/downloads/applicationnote/ddr2_odt_control_200603.pdf | 223 | Reference http://www.samsung.com/global/business/semiconductor/products/dram/downloads/applicationnote/ddr2_odt_control_200603.pdf |
| 224 | 224 | ||
| 225 | 225 | ||
| 226 | Interactive DDR debugging | 226 | Interactive DDR debugging |
| 227 | =========================== | 227 | =========================== |
| 228 | 228 | ||
| 229 | For DDR parameter tuning up and debugging, the interactive DDR debugging can | 229 | For DDR parameter tuning up and debugging, the interactive DDR debugging can |
| 230 | be activated by saving an environment variable "ddr_interactive". The value | 230 | be activated by saving an environment variable "ddr_interactive". The value |
| 231 | doesn't matter. Once activated, U-boot prompts "FSL DDR>" before enabling DDR | 231 | doesn't matter. Once activated, U-boot prompts "FSL DDR>" before enabling DDR |
| 232 | controller. The available commands can be seen by typing "help". | 232 | controller. The available commands can be seen by typing "help". |
| 233 | 233 | ||
| 234 | The example flow of using interactive debugging is | 234 | The example flow of using interactive debugging is |
| 235 | type command "compute" to calculate the parameters from the default | 235 | type command "compute" to calculate the parameters from the default |
| 236 | type command "print" with arguments to show SPD, options, registers | 236 | type command "print" with arguments to show SPD, options, registers |
| 237 | type command "edit" with arguments to change any if desired | 237 | type command "edit" with arguments to change any if desired |
| 238 | type command "go" to continue calculation and enable DDR controller | 238 | type command "go" to continue calculation and enable DDR controller |
| 239 | type command "reset" to reset the board | 239 | type command "reset" to reset the board |
| 240 | type command "recompute" to reload SPD and start over | 240 | type command "recompute" to reload SPD and start over |
| 241 | 241 | ||
| 242 | Note, check "next_step" to show the flow. For example, after edit opts, the | 242 | Note, check "next_step" to show the flow. For example, after edit opts, the |
| 243 | next_step is STEP_ASSIGN_ADDRESSES. After editing registers, the next_step is | 243 | next_step is STEP_ASSIGN_ADDRESSES. After editing registers, the next_step is |
| 244 | STEP_PROGRAM_REGS. Upon issuing command "go", DDR controller will be enabled | 244 | STEP_PROGRAM_REGS. Upon issuing command "go", DDR controller will be enabled |
| 245 | with current setting without further calculation. | 245 | with current setting without further calculation. |
| 246 | 246 | ||
| 247 | The detail syntax for each commands are | 247 | The detail syntax for each commands are |
| 248 | 248 | ||
| 249 | print [c<n>] [d<n>] [spd] [dimmparms] [commonparms] [opts] [addresses] [regs] | 249 | print [c<n>] [d<n>] [spd] [dimmparms] [commonparms] [opts] [addresses] [regs] |
| 250 | c<n> - the controller number, eg. c0, c1 | 250 | c<n> - the controller number, eg. c0, c1 |
| 251 | d<n> - the DIMM number, eg. d0, d1 | 251 | d<n> - the DIMM number, eg. d0, d1 |
| 252 | spd - print SPD data | 252 | spd - print SPD data |
| 253 | dimmparms - DIMM paramaters, calcualted from SPD | 253 | dimmparms - DIMM parameters, calculated from SPD |
| 254 | commonparms - lowest common parameters for all DIMMs | 254 | commonparms - lowest common parameters for all DIMMs |
| 255 | opts - options | 255 | opts - options |
| 256 | addresses - address assignment (not implemented yet) | 256 | addresses - address assignment (not implemented yet) |
| 257 | regs - controller registers | 257 | regs - controller registers |
| 258 | 258 | ||
| 259 | edit <c#> <d#> <spd|dimmparms|commonparms|opts|addresses|regs> <element> <value> | 259 | edit <c#> <d#> <spd|dimmparms|commonparms|opts|addresses|regs> <element> <value> |
| 260 | c<n> - the controller number, eg. c0, c1 | 260 | c<n> - the controller number, eg. c0, c1 |
| 261 | d<n> - the DIMM number, eg. d0, d1 | 261 | d<n> - the DIMM number, eg. d0, d1 |
| 262 | spd - print SPD data | 262 | spd - print SPD data |
| 263 | dimmparms - DIMM paramaters, calcualted from SPD | 263 | dimmparms - DIMM parameters, calculated from SPD |
| 264 | commonparms - lowest common parameters for all DIMMs | 264 | commonparms - lowest common parameters for all DIMMs |
| 265 | opts - options | 265 | opts - options |
| 266 | addresses - address assignment (not implemented yet) | 266 | addresses - address assignment (not implemented yet) |
| 267 | regs - controller registers | 267 | regs - controller registers |
| 268 | <element> - name of the modified element | 268 | <element> - name of the modified element |
| 269 | byte number if the object is SPD | 269 | byte number if the object is SPD |
| 270 | <value> - decimal or heximal (prefixed with 0x) numbers | 270 | <value> - decimal or heximal (prefixed with 0x) numbers |
| 271 | 271 | ||
| 272 | reset | 272 | reset |
| 273 | no arguement - reset the board | 273 | no arguement - reset the board |
| 274 | 274 | ||
| 275 | recompute | 275 | recompute |
| 276 | no argument - reload SPD and start over | 276 | no argument - reload SPD and start over |
| 277 | 277 | ||
| 278 | compute | 278 | compute |
| 279 | no argument - recompute from current next_step | 279 | no argument - recompute from current next_step |
| 280 | 280 | ||
| 281 | next_step | 281 | next_step |
| 282 | no argument - show current next_step | 282 | no argument - show current next_step |
| 283 | 283 | ||
| 284 | help | 284 | help |
| 285 | no argument - print a list of all commands | 285 | no argument - print a list of all commands |
| 286 | 286 | ||
| 287 | go | 287 | go |
| 288 | no argument - program memory controller(s) and continue with U-boot | 288 | no argument - program memory controller(s) and continue with U-boot |
| 289 | 289 | ||
| 290 | Examples of debugging flow | 290 | Examples of debugging flow |
| 291 | 291 | ||
| 292 | FSL DDR>compute | 292 | FSL DDR>compute |
| 293 | Detected UDIMM UG51U6400N8SU-ACF | 293 | Detected UDIMM UG51U6400N8SU-ACF |
| 294 | SL DDR>print | 294 | SL DDR>print |
| 295 | print [c<n>] [d<n>] [spd] [dimmparms] [commonparms] [opts] [addresses] [regs] | 295 | print [c<n>] [d<n>] [spd] [dimmparms] [commonparms] [opts] [addresses] [regs] |
| 296 | FSL DDR>print dimmparms | 296 | FSL DDR>print dimmparms |
| 297 | DIMM parameters: Controller=0 DIMM=0 | 297 | DIMM parameters: Controller=0 DIMM=0 |
| 298 | DIMM organization parameters: | 298 | DIMM organization parameters: |
| 299 | module part name = UG51U6400N8SU-ACF | 299 | module part name = UG51U6400N8SU-ACF |
| 300 | rank_density = 2147483648 bytes (2048 megabytes) | 300 | rank_density = 2147483648 bytes (2048 megabytes) |
| 301 | capacity = 4294967296 bytes (4096 megabytes) | 301 | capacity = 4294967296 bytes (4096 megabytes) |
| 302 | burst_lengths_bitmask = 0C | 302 | burst_lengths_bitmask = 0C |
| 303 | base_addresss = 0 (00000000 00000000) | 303 | base_addresss = 0 (00000000 00000000) |
| 304 | n_ranks = 2 | 304 | n_ranks = 2 |
| 305 | data_width = 64 | 305 | data_width = 64 |
| 306 | primary_sdram_width = 64 | 306 | primary_sdram_width = 64 |
| 307 | ec_sdram_width = 0 | 307 | ec_sdram_width = 0 |
| 308 | registered_dimm = 0 | 308 | registered_dimm = 0 |
| 309 | n_row_addr = 15 | 309 | n_row_addr = 15 |
| 310 | n_col_addr = 10 | 310 | n_col_addr = 10 |
| 311 | edc_config = 0 | 311 | edc_config = 0 |
| 312 | n_banks_per_sdram_device = 8 | 312 | n_banks_per_sdram_device = 8 |
| 313 | tCKmin_X_ps = 1500 | 313 | tCKmin_X_ps = 1500 |
| 314 | tCKmin_X_minus_1_ps = 0 | 314 | tCKmin_X_minus_1_ps = 0 |
| 315 | tCKmin_X_minus_2_ps = 0 | 315 | tCKmin_X_minus_2_ps = 0 |
| 316 | tCKmax_ps = 0 | 316 | tCKmax_ps = 0 |
| 317 | caslat_X = 960 | 317 | caslat_X = 960 |
| 318 | tAA_ps = 13125 | 318 | tAA_ps = 13125 |
| 319 | caslat_X_minus_1 = 0 | 319 | caslat_X_minus_1 = 0 |
| 320 | caslat_X_minus_2 = 0 | 320 | caslat_X_minus_2 = 0 |
| 321 | caslat_lowest_derated = 0 | 321 | caslat_lowest_derated = 0 |
| 322 | tRCD_ps = 13125 | 322 | tRCD_ps = 13125 |
| 323 | tRP_ps = 13125 | 323 | tRP_ps = 13125 |
| 324 | tRAS_ps = 36000 | 324 | tRAS_ps = 36000 |
| 325 | tWR_ps = 15000 | 325 | tWR_ps = 15000 |
| 326 | tWTR_ps = 7500 | 326 | tWTR_ps = 7500 |
| 327 | tRFC_ps = 160000 | 327 | tRFC_ps = 160000 |
| 328 | tRRD_ps = 6000 | 328 | tRRD_ps = 6000 |
| 329 | tRC_ps = 49125 | 329 | tRC_ps = 49125 |
| 330 | refresh_rate_ps = 7800000 | 330 | refresh_rate_ps = 7800000 |
| 331 | tIS_ps = 0 | 331 | tIS_ps = 0 |
| 332 | tIH_ps = 0 | 332 | tIH_ps = 0 |
| 333 | tDS_ps = 0 | 333 | tDS_ps = 0 |
| 334 | tDH_ps = 0 | 334 | tDH_ps = 0 |
| 335 | tRTP_ps = 7500 | 335 | tRTP_ps = 7500 |
| 336 | tDQSQ_max_ps = 0 | 336 | tDQSQ_max_ps = 0 |
| 337 | tQHS_ps = 0 | 337 | tQHS_ps = 0 |
| 338 | FSL DDR>edit c0 opts ECC_mode 0 | 338 | FSL DDR>edit c0 opts ECC_mode 0 |
| 339 | FSL DDR>edit c0 regs cs0_bnds 0x000000FF | 339 | FSL DDR>edit c0 regs cs0_bnds 0x000000FF |
| 340 | FSL DDR>go | 340 | FSL DDR>go |
| 341 | 2 GiB left unmapped | 341 | 2 GiB left unmapped |
| 342 | 4 GiB (DDR3, 64-bit, CL=9, ECC off) | 342 | 4 GiB (DDR3, 64-bit, CL=9, ECC off) |
| 343 | DDR Chip-Select Interleaving Mode: CS0+CS1 | 343 | DDR Chip-Select Interleaving Mode: CS0+CS1 |
| 344 | Testing 0x00000000 - 0x7fffffff | 344 | Testing 0x00000000 - 0x7fffffff |
| 345 | Testing 0x80000000 - 0xffffffff | 345 | Testing 0x80000000 - 0xffffffff |
| 346 | Remap DDR 2 GiB left unmapped | 346 | Remap DDR 2 GiB left unmapped |
| 347 | 347 | ||
| 348 | POST memory PASSED | 348 | POST memory PASSED |
| 349 | Flash: 128 MiB | 349 | Flash: 128 MiB |
| 350 | L2: 128 KB enabled | 350 | L2: 128 KB enabled |
| 351 | Corenet Platform Cache: 1024 KB enabled | 351 | Corenet Platform Cache: 1024 KB enabled |
| 352 | SERDES: timeout resetting bank 3 | 352 | SERDES: timeout resetting bank 3 |
| 353 | SRIO1: disabled | 353 | SRIO1: disabled |
| 354 | SRIO2: disabled | 354 | SRIO2: disabled |
| 355 | MMC: FSL_ESDHC: 0 | 355 | MMC: FSL_ESDHC: 0 |
| 356 | EEPROM: Invalid ID (ff ff ff ff) | 356 | EEPROM: Invalid ID (ff ff ff ff) |
| 357 | PCIe1: disabled | 357 | PCIe1: disabled |
| 358 | PCIe2: Root Complex, x1, regs @ 0xfe201000 | 358 | PCIe2: Root Complex, x1, regs @ 0xfe201000 |
| 359 | 01:00.0 - 8086:10d3 - Network controller | 359 | 01:00.0 - 8086:10d3 - Network controller |
| 360 | PCIe2: Bus 00 - 01 | 360 | PCIe2: Bus 00 - 01 |
| 361 | PCIe3: disabled | 361 | PCIe3: disabled |
| 362 | In: serial | 362 | In: serial |
| 363 | Out: serial | 363 | Out: serial |
| 364 | Err: serial | 364 | Err: serial |
| 365 | Net: Initializing Fman | 365 | Net: Initializing Fman |
| 366 | Fman1: Uploading microcode version 101.8.0 | 366 | Fman1: Uploading microcode version 101.8.0 |
| 367 | e1000: 00:1b:21:81:d2:e0 | 367 | e1000: 00:1b:21:81:d2:e0 |
| 368 | FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3, FM1@DTSEC4, FM1@DTSEC5, e1000#0 [PRIME] | 368 | FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3, FM1@DTSEC4, FM1@DTSEC5, e1000#0 [PRIME] |
| 369 | Warning: e1000#0 MAC addresses don't match: | 369 | Warning: e1000#0 MAC addresses don't match: |
| 370 | Address in SROM is 00:1b:21:81:d2:e0 | 370 | Address in SROM is 00:1b:21:81:d2:e0 |
| 371 | Address in environment is 00:e0:0c:00:ea:05 | 371 | Address in environment is 00:e0:0c:00:ea:05 |
| 372 | 372 | ||
| 373 | Hit any key to stop autoboot: 0 | 373 | Hit any key to stop autoboot: 0 |
| 374 | => | 374 | => |
| 375 | 375 |
doc/README.mpc832xemds
| 1 | Freescale MPC832XEMDS Board | 1 | Freescale MPC832XEMDS Board |
| 2 | ----------------------------------------- | 2 | ----------------------------------------- |
| 3 | 1. Board Switches and Jumpers | 3 | 1. Board Switches and Jumpers |
| 4 | 1.0 There are five Dual-In-Line Packages(DIP) Switches on MPC832XE SYS board | 4 | 1.0 There are five Dual-In-Line Packages(DIP) Switches on MPC832XE SYS board |
| 5 | For some reason, the HW designers describe the switch settings | 5 | For some reason, the HW designers describe the switch settings |
| 6 | in terms of 0 and 1, and then map that to physical switches where | 6 | in terms of 0 and 1, and then map that to physical switches where |
| 7 | the label "On" refers to logic 0 and "Off" is logic 1. | 7 | the label "On" refers to logic 0 and "Off" is logic 1. |
| 8 | 8 | ||
| 9 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the | 9 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the |
| 10 | bits may contribute to signals that are numbered based at 0, | 10 | bits may contribute to signals that are numbered based at 0, |
| 11 | and some of those signals may be high-bit-number-0 too. Heed | 11 | and some of those signals may be high-bit-number-0 too. Heed |
| 12 | well the names and labels and do not get confused. | 12 | well the names and labels and do not get confused. |
| 13 | 13 | ||
| 14 | "Off" == 1 | 14 | "Off" == 1 |
| 15 | "On" == 0 | 15 | "On" == 0 |
| 16 | 16 | ||
| 17 | SW3 is switch 18 as silk-screened onto the board. | 17 | SW3 is switch 18 as silk-screened onto the board. |
| 18 | SW4[8] is the bit labled 8 on Switch 4. | 18 | SW4[8] is the bit labeled 8 on Switch 4. |
| 19 | SW5[1:6] refers to bits labeled 1 through 6 in order on switch 5. | 19 | SW5[1:6] refers to bits labeled 1 through 6 in order on switch 5. |
| 20 | SW6[7:1] refers to bits labeled 7 through 1 in order on switch 6. | 20 | SW6[7:1] refers to bits labeled 7 through 1 in order on switch 6. |
| 21 | SW7[1:8]= 0000_0001 refers to bits labeled 1 through 6 is set as "On" | 21 | SW7[1:8]= 0000_0001 refers to bits labeled 1 through 6 is set as "On" |
| 22 | and bits labeled 8 is set as "Off". | 22 | and bits labeled 8 is set as "Off". |
| 23 | 23 | ||
| 24 | 1.1 For the MPC832XEMDS PROTO Board | 24 | 1.1 For the MPC832XEMDS PROTO Board |
| 25 | 25 | ||
| 26 | First, make sure the board default setting is consistent with the document | 26 | First, make sure the board default setting is consistent with the document |
| 27 | shipped with your board. Then apply the following setting: | 27 | shipped with your board. Then apply the following setting: |
| 28 | SW3[1-8]= 0000_1000 (core PLL setting, core enable) | 28 | SW3[1-8]= 0000_1000 (core PLL setting, core enable) |
| 29 | SW4[1-8]= 0001_0010 (Flash boot on local bus, system PLL setting) | 29 | SW4[1-8]= 0001_0010 (Flash boot on local bus, system PLL setting) |
| 30 | SW5[1-8]= 0010_0110 (Boot from high end) | 30 | SW5[1-8]= 0010_0110 (Boot from high end) |
| 31 | SW6[1-8]= 0011_0100 (Flash boot on 16 bit local bus) | 31 | SW6[1-8]= 0011_0100 (Flash boot on 16 bit local bus) |
| 32 | SW7[1-8]= 1000_0011 (QE PLL setting) | 32 | SW7[1-8]= 1000_0011 (QE PLL setting) |
| 33 | 33 | ||
| 34 | ENET3/4 MII mode settings: | 34 | ENET3/4 MII mode settings: |
| 35 | J1 1-2 (ETH3_TXER) | 35 | J1 1-2 (ETH3_TXER) |
| 36 | J2 2-3 (MII mode) | 36 | J2 2-3 (MII mode) |
| 37 | J3 2-3 (MII mode) | 37 | J3 2-3 (MII mode) |
| 38 | J4 2-3 (ADSL clockOscillator) | 38 | J4 2-3 (ADSL clockOscillator) |
| 39 | J5 1-2 (ETH4_TXER) | 39 | J5 1-2 (ETH4_TXER) |
| 40 | J6 2-3 (ClockOscillator) | 40 | J6 2-3 (ClockOscillator) |
| 41 | JP1 removed (don't force PORESET) | 41 | JP1 removed (don't force PORESET) |
| 42 | JP2 mounted (ETH4/2 MII) | 42 | JP2 mounted (ETH4/2 MII) |
| 43 | JP3 mounted (ETH3 MII) | 43 | JP3 mounted (ETH3 MII) |
| 44 | JP4 mounted (HRCW from BCSR) | 44 | JP4 mounted (HRCW from BCSR) |
| 45 | 45 | ||
| 46 | ENET3/4 RMII mode settings: | 46 | ENET3/4 RMII mode settings: |
| 47 | J1 1-2 (ETH3_TXER) | 47 | J1 1-2 (ETH3_TXER) |
| 48 | J2 1-2 (RMII mode) | 48 | J2 1-2 (RMII mode) |
| 49 | J3 1-2 (RMII mode) | 49 | J3 1-2 (RMII mode) |
| 50 | J4 2-3 (ADSL clockOscillator) | 50 | J4 2-3 (ADSL clockOscillator) |
| 51 | J5 1-2 (ETH4_TXER) | 51 | J5 1-2 (ETH4_TXER) |
| 52 | J6 2-3 (ClockOscillator) | 52 | J6 2-3 (ClockOscillator) |
| 53 | JP1 removed (don't force PORESET) | 53 | JP1 removed (don't force PORESET) |
| 54 | JP2 removed (ETH4/2 RMII) | 54 | JP2 removed (ETH4/2 RMII) |
| 55 | JP3 removed (ETH3 RMII) | 55 | JP3 removed (ETH3 RMII) |
| 56 | JP4 removed (HRCW from FLASH) | 56 | JP4 removed (HRCW from FLASH) |
| 57 | 57 | ||
| 58 | on board Oscillator: 66M | 58 | on board Oscillator: 66M |
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | 2. Memory Map | 61 | 2. Memory Map |
| 62 | 62 | ||
| 63 | 2.1 The memory map should look pretty much like this: | 63 | 2.1 The memory map should look pretty much like this: |
| 64 | 64 | ||
| 65 | 0x0000_0000 0x7fff_ffff DDR 2G | 65 | 0x0000_0000 0x7fff_ffff DDR 2G |
| 66 | 0x8000_0000 0x8fff_ffff PCI MEM prefetch 256M | 66 | 0x8000_0000 0x8fff_ffff PCI MEM prefetch 256M |
| 67 | 0x9000_0000 0x9fff_ffff PCI MEM non-prefetch 256M | 67 | 0x9000_0000 0x9fff_ffff PCI MEM non-prefetch 256M |
| 68 | 0xc000_0000 0xdfff_ffff Empty 512M | 68 | 0xc000_0000 0xdfff_ffff Empty 512M |
| 69 | 0xe000_0000 0xe01f_ffff Int Mem Reg Space 2M | 69 | 0xe000_0000 0xe01f_ffff Int Mem Reg Space 2M |
| 70 | 0xe020_0000 0xe02f_ffff Empty 1M | 70 | 0xe020_0000 0xe02f_ffff Empty 1M |
| 71 | 0xe030_0000 0xe03f_ffff PCI IO 1M | 71 | 0xe030_0000 0xe03f_ffff PCI IO 1M |
| 72 | 0xe040_0000 0xefff_ffff Empty 252M | 72 | 0xe040_0000 0xefff_ffff Empty 252M |
| 73 | 0xf400_0000 0xf7ff_ffff Empty 64M | 73 | 0xf400_0000 0xf7ff_ffff Empty 64M |
| 74 | 0xf800_0000 0xf800_7fff BCSR on CS1 32K | 74 | 0xf800_0000 0xf800_7fff BCSR on CS1 32K |
| 75 | 0xf800_8000 0xf800_ffff PIB CS2 32K | 75 | 0xf800_8000 0xf800_ffff PIB CS2 32K |
| 76 | 0xf801_0000 0xf801_7fff PIB CS3 32K | 76 | 0xf801_0000 0xf801_7fff PIB CS3 32K |
| 77 | 0xfe00_0000 0xfeff_ffff FLASH on CS0 16M | 77 | 0xfe00_0000 0xfeff_ffff FLASH on CS0 16M |
| 78 | 78 | ||
| 79 | 79 | ||
| 80 | 3. Definitions | 80 | 3. Definitions |
| 81 | 81 | ||
| 82 | 3.1 Explanation of NEW definitions in: | 82 | 3.1 Explanation of NEW definitions in: |
| 83 | 83 | ||
| 84 | include/configs/MPC832XEPB.h | 84 | include/configs/MPC832XEPB.h |
| 85 | 85 | ||
| 86 | CONFIG_MPC83xx MPC83xx family for MPC8349, MPC8360 and MPC832x | 86 | CONFIG_MPC83xx MPC83xx family for MPC8349, MPC8360 and MPC832x |
| 87 | CONFIG_MPC832x MPC832x specific | 87 | CONFIG_MPC832x MPC832x specific |
| 88 | CONFIG_MPC832XEMDS MPC832XEMDS board specific | 88 | CONFIG_MPC832XEMDS MPC832XEMDS board specific |
| 89 | 89 | ||
| 90 | 4. Compilation | 90 | 4. Compilation |
| 91 | 91 | ||
| 92 | Assuming you're using BASH shell: | 92 | Assuming you're using BASH shell: |
| 93 | 93 | ||
| 94 | export CROSS_COMPILE=your-cross-compile-prefix | 94 | export CROSS_COMPILE=your-cross-compile-prefix |
| 95 | cd u-boot | 95 | cd u-boot |
| 96 | make distclean | 96 | make distclean |
| 97 | make MPC832XEMDS_config | 97 | make MPC832XEMDS_config |
| 98 | make | 98 | make |
| 99 | 99 | ||
| 100 | MPC832x support PCI 33MHz and PCI 66MHz, to make u-boot support PCI: | 100 | MPC832x support PCI 33MHz and PCI 66MHz, to make u-boot support PCI: |
| 101 | 101 | ||
| 102 | 1)Make sure the DIP SW support PCI mode as described in Section 1.1. | 102 | 1)Make sure the DIP SW support PCI mode as described in Section 1.1. |
| 103 | 103 | ||
| 104 | 2)To Make U-Boot image support PCI 33MHz, use | 104 | 2)To Make U-Boot image support PCI 33MHz, use |
| 105 | Make MPC832XEMDS_HOST_33_config | 105 | Make MPC832XEMDS_HOST_33_config |
| 106 | 106 | ||
| 107 | 3)To Make U-Boot image support PCI 66MHz, use | 107 | 3)To Make U-Boot image support PCI 66MHz, use |
| 108 | Make MPC832XEMDS_HOST_66M_config | 108 | Make MPC832XEMDS_HOST_66M_config |
| 109 | 109 | ||
| 110 | 5. Downloading and Flashing Images | 110 | 5. Downloading and Flashing Images |
| 111 | 111 | ||
| 112 | 5.0 Download over network: | 112 | 5.0 Download over network: |
| 113 | 113 | ||
| 114 | tftp 10000 u-boot.bin | 114 | tftp 10000 u-boot.bin |
| 115 | 115 | ||
| 116 | 5.1 Reflash U-boot Image using U-boot | 116 | 5.1 Reflash U-boot Image using U-boot |
| 117 | 117 | ||
| 118 | tftp 20000 u-boot.bin | 118 | tftp 20000 u-boot.bin |
| 119 | protect off fe000000 fe0fffff | 119 | protect off fe000000 fe0fffff |
| 120 | erase fe000000 fe0fffff | 120 | erase fe000000 fe0fffff |
| 121 | cp.b 20000 fe000000 xxxx | 121 | cp.b 20000 fe000000 xxxx |
| 122 | 122 | ||
| 123 | You have to supply the correct byte count with 'xxxx' from the TFTP result log. | 123 | You have to supply the correct byte count with 'xxxx' from the TFTP result log. |
| 124 | Maybe 3ffff will work too, that corresponds to the erased sectors. | 124 | Maybe 3ffff will work too, that corresponds to the erased sectors. |
| 125 | 125 | ||
| 126 | 126 | ||
| 127 | 6. Notes | 127 | 6. Notes |
| 128 | 1) The console baudrate for MPC832XEMDS is 115200bps. | 128 | 1) The console baudrate for MPC832XEMDS is 115200bps. |
| 129 | 129 |
doc/README.mpc8360emds
| 1 | Freescale MPC8360EMDS Board | 1 | Freescale MPC8360EMDS Board |
| 2 | ----------------------------------------- | 2 | ----------------------------------------- |
| 3 | 1. Board Switches and Jumpers | 3 | 1. Board Switches and Jumpers |
| 4 | 1.0 There are four Dual-In-Line Packages(DIP) Switches on MPC8360EMDS board | 4 | 1.0 There are four Dual-In-Line Packages(DIP) Switches on MPC8360EMDS board |
| 5 | For some reason, the HW designers describe the switch settings | 5 | For some reason, the HW designers describe the switch settings |
| 6 | in terms of 0 and 1, and then map that to physical switches where | 6 | in terms of 0 and 1, and then map that to physical switches where |
| 7 | the label "On" refers to logic 0 and "Off" is logic 1. | 7 | the label "On" refers to logic 0 and "Off" is logic 1. |
| 8 | 8 | ||
| 9 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the | 9 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the |
| 10 | bits may contribute to signals that are numbered based at 0, | 10 | bits may contribute to signals that are numbered based at 0, |
| 11 | and some of those signals may be high-bit-number-0 too. Heed | 11 | and some of those signals may be high-bit-number-0 too. Heed |
| 12 | well the names and labels and do not get confused. | 12 | well the names and labels and do not get confused. |
| 13 | 13 | ||
| 14 | "Off" == 1 | 14 | "Off" == 1 |
| 15 | "On" == 0 | 15 | "On" == 0 |
| 16 | 16 | ||
| 17 | SW18 is switch 18 as silk-screened onto the board. | 17 | SW18 is switch 18 as silk-screened onto the board. |
| 18 | SW4[8] is the bit labled 8 on Switch 4. | 18 | SW4[8] is the bit labeled 8 on Switch 4. |
| 19 | SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2. | 19 | SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2. |
| 20 | SW3[7:1] refers to bits labeled 7 through 1 in order on switch 3. | 20 | SW3[7:1] refers to bits labeled 7 through 1 in order on switch 3. |
| 21 | SW3[1:8]= 0000_0001 refers to bits labeled 1 through 6 is set as "On" | 21 | SW3[1:8]= 0000_0001 refers to bits labeled 1 through 6 is set as "On" |
| 22 | and bits labeled 8 is set as "Off". | 22 | and bits labeled 8 is set as "Off". |
| 23 | 23 | ||
| 24 | 1.1 There are three type boards for MPC8360E silicon up to now, They are | 24 | 1.1 There are three type boards for MPC8360E silicon up to now, They are |
| 25 | 25 | ||
| 26 | * MPC8360E-MDS-PB PROTO (a.k.a 8360SYS PROTOTYPE) | 26 | * MPC8360E-MDS-PB PROTO (a.k.a 8360SYS PROTOTYPE) |
| 27 | * MPC8360E-MDS-PB PILOT (a.k.a 8360SYS PILOT) | 27 | * MPC8360E-MDS-PB PILOT (a.k.a 8360SYS PILOT) |
| 28 | * MPC8360EA-MDS-PB PROTO (a.k.a 8360SYS2 PROTOTYPE) | 28 | * MPC8360EA-MDS-PB PROTO (a.k.a 8360SYS2 PROTOTYPE) |
| 29 | 29 | ||
| 30 | 1.2 For all the MPC8360EMDS Board | 30 | 1.2 For all the MPC8360EMDS Board |
| 31 | 31 | ||
| 32 | First, make sure the board default setting is consistent with the | 32 | First, make sure the board default setting is consistent with the |
| 33 | document shipped with your board. Then apply the following setting: | 33 | document shipped with your board. Then apply the following setting: |
| 34 | SW3[1-8]= 0000_0100 (HRCW setting value is performed on local bus) | 34 | SW3[1-8]= 0000_0100 (HRCW setting value is performed on local bus) |
| 35 | SW4[1-8]= 0011_0000 (Flash boot on local bus) | 35 | SW4[1-8]= 0011_0000 (Flash boot on local bus) |
| 36 | SW9[1-8]= 0110_0110 (PCI Mode enabled. HRCW is read from FLASH) | 36 | SW9[1-8]= 0110_0110 (PCI Mode enabled. HRCW is read from FLASH) |
| 37 | SW10[1-8]= 0000_1000 (core PLL setting) | 37 | SW10[1-8]= 0000_1000 (core PLL setting) |
| 38 | SW11[1-8]= 0000_0100 (SW11 is on the another side of the board) | 38 | SW11[1-8]= 0000_0100 (SW11 is on the another side of the board) |
| 39 | JP6 1-2 | 39 | JP6 1-2 |
| 40 | on board Oscillator: 66M | 40 | on board Oscillator: 66M |
| 41 | 41 | ||
| 42 | 1.3 Since different board/chip rev. combinations have AC timing issues, | 42 | 1.3 Since different board/chip rev. combinations have AC timing issues, |
| 43 | u-boot forces RGMII-ID (RGMII with Internal Delay) mode on by default | 43 | u-boot forces RGMII-ID (RGMII with Internal Delay) mode on by default |
| 44 | by the patch (mpc83xx: Disable G1TXCLK, G2TXCLK h/w buffers). | 44 | by the patch (mpc83xx: Disable G1TXCLK, G2TXCLK h/w buffers). |
| 45 | 45 | ||
| 46 | When the rev2.x silicon mount on these boards, and if you are using | 46 | When the rev2.x silicon mount on these boards, and if you are using |
| 47 | u-boot version after this patch, to make the ethernet interfaces usable, | 47 | u-boot version after this patch, to make the ethernet interfaces usable, |
| 48 | and to enable RGMII-ID on your board, you have to setup the jumpers | 48 | and to enable RGMII-ID on your board, you have to setup the jumpers |
| 49 | correctly. | 49 | correctly. |
| 50 | 50 | ||
| 51 | * MPC8360E-MDS-PB PROTO | 51 | * MPC8360E-MDS-PB PROTO |
| 52 | nothing to do | 52 | nothing to do |
| 53 | * MPC8360E-MDS-PB PILOT | 53 | * MPC8360E-MDS-PB PILOT |
| 54 | JP9 and JP8 should be ON | 54 | JP9 and JP8 should be ON |
| 55 | * MPC8360EA-MDS-PB PROTO | 55 | * MPC8360EA-MDS-PB PROTO |
| 56 | JP2 and JP3 should be ON | 56 | JP2 and JP3 should be ON |
| 57 | 57 | ||
| 58 | 2. Memory Map | 58 | 2. Memory Map |
| 59 | 59 | ||
| 60 | 2.1. The memory map should look pretty much like this: | 60 | 2.1. The memory map should look pretty much like this: |
| 61 | 61 | ||
| 62 | 0x0000_0000 0x7fff_ffff DDR 2G | 62 | 0x0000_0000 0x7fff_ffff DDR 2G |
| 63 | 0x8000_0000 0x8fff_ffff PCI MEM prefetch 256M | 63 | 0x8000_0000 0x8fff_ffff PCI MEM prefetch 256M |
| 64 | 0x9000_0000 0x9fff_ffff PCI MEM non-prefetch 256M | 64 | 0x9000_0000 0x9fff_ffff PCI MEM non-prefetch 256M |
| 65 | 0xc000_0000 0xdfff_ffff Empty 512M | 65 | 0xc000_0000 0xdfff_ffff Empty 512M |
| 66 | 0xe000_0000 0xe01f_ffff Int Mem Reg Space 2M | 66 | 0xe000_0000 0xe01f_ffff Int Mem Reg Space 2M |
| 67 | 0xe020_0000 0xe02f_ffff Empty 1M | 67 | 0xe020_0000 0xe02f_ffff Empty 1M |
| 68 | 0xe030_0000 0xe03f_ffff PCI IO 1M | 68 | 0xe030_0000 0xe03f_ffff PCI IO 1M |
| 69 | 0xe040_0000 0xefff_ffff Empty 252M | 69 | 0xe040_0000 0xefff_ffff Empty 252M |
| 70 | 0xf000_0000 0xf3ff_ffff Local Bus SDRAM 64M | 70 | 0xf000_0000 0xf3ff_ffff Local Bus SDRAM 64M |
| 71 | 0xf400_0000 0xf7ff_ffff Empty 64M | 71 | 0xf400_0000 0xf7ff_ffff Empty 64M |
| 72 | 0xf800_0000 0xf800_7fff BCSR on CS1 32K | 72 | 0xf800_0000 0xf800_7fff BCSR on CS1 32K |
| 73 | 0xf800_8000 0xf800_ffff PIB CS4 32K | 73 | 0xf800_8000 0xf800_ffff PIB CS4 32K |
| 74 | 0xf801_0000 0xf801_7fff PIB CS5 32K | 74 | 0xf801_0000 0xf801_7fff PIB CS5 32K |
| 75 | 0xfe00_0000 0xfeff_ffff FLASH on CS0 16M | 75 | 0xfe00_0000 0xfeff_ffff FLASH on CS0 16M |
| 76 | 76 | ||
| 77 | 77 | ||
| 78 | 3. Definitions | 78 | 3. Definitions |
| 79 | 79 | ||
| 80 | 3.1 Explanation of NEW definitions in: | 80 | 3.1 Explanation of NEW definitions in: |
| 81 | 81 | ||
| 82 | include/configs/MPC8360EMDS.h | 82 | include/configs/MPC8360EMDS.h |
| 83 | 83 | ||
| 84 | CONFIG_MPC83xx MPC83xx family for both MPC8349 and MPC8360 | 84 | CONFIG_MPC83xx MPC83xx family for both MPC8349 and MPC8360 |
| 85 | CONFIG_MPC8360 MPC8360 specific | 85 | CONFIG_MPC8360 MPC8360 specific |
| 86 | CONFIG_MPC8360EMDS MPC8360EMDS board specific | 86 | CONFIG_MPC8360EMDS MPC8360EMDS board specific |
| 87 | 87 | ||
| 88 | 4. Compilation | 88 | 4. Compilation |
| 89 | 89 | ||
| 90 | MPC8360EMDS shipped with 33.33MHz or 66MHz oscillator(check U41 chip). | 90 | MPC8360EMDS shipped with 33.33MHz or 66MHz oscillator(check U41 chip). |
| 91 | 91 | ||
| 92 | Assuming you're using BASH shell: | 92 | Assuming you're using BASH shell: |
| 93 | 93 | ||
| 94 | export CROSS_COMPILE=your-cross-compile-prefix | 94 | export CROSS_COMPILE=your-cross-compile-prefix |
| 95 | cd u-boot | 95 | cd u-boot |
| 96 | make distclean | 96 | make distclean |
| 97 | make MPC8360EMDS_XX_config | 97 | make MPC8360EMDS_XX_config |
| 98 | make | 98 | make |
| 99 | 99 | ||
| 100 | MPC8360EMDS support ATM, PCI in host and slave mode. | 100 | MPC8360EMDS support ATM, PCI in host and slave mode. |
| 101 | 101 | ||
| 102 | To make u-boot support ATM : | 102 | To make u-boot support ATM : |
| 103 | 1) Make MPC8360EMDS_XX_ATM_config | 103 | 1) Make MPC8360EMDS_XX_ATM_config |
| 104 | 104 | ||
| 105 | To make u-boot support PCI host 66M : | 105 | To make u-boot support PCI host 66M : |
| 106 | 1) DIP SW support PCI mode as described in Section 1.1. | 106 | 1) DIP SW support PCI mode as described in Section 1.1. |
| 107 | 2) Make MPC8360EMDS_XX_HOST_66_config | 107 | 2) Make MPC8360EMDS_XX_HOST_66_config |
| 108 | 108 | ||
| 109 | To make u-boot support PCI host 33M : | 109 | To make u-boot support PCI host 33M : |
| 110 | 1) DIP SW setting is similar as Section 1.1, except for SW3[4] is 1 | 110 | 1) DIP SW setting is similar as Section 1.1, except for SW3[4] is 1 |
| 111 | 2) Make MPC8360EMDS_XX_HOST_33_config | 111 | 2) Make MPC8360EMDS_XX_HOST_33_config |
| 112 | 112 | ||
| 113 | To make u-boot support PCI slave 66M : | 113 | To make u-boot support PCI slave 66M : |
| 114 | 1) DIP SW setting is similar as Section 1.1, except for SW9[3] is 1 | 114 | 1) DIP SW setting is similar as Section 1.1, except for SW9[3] is 1 |
| 115 | 2) Make MPC8360EMDS_XX_SLAVE_config | 115 | 2) Make MPC8360EMDS_XX_SLAVE_config |
| 116 | 116 | ||
| 117 | (where XX is: | 117 | (where XX is: |
| 118 | 33 - 33.33MHz oscillator | 118 | 33 - 33.33MHz oscillator |
| 119 | 66 - 66MHz oscillator) | 119 | 66 - 66MHz oscillator) |
| 120 | 120 | ||
| 121 | 5. Downloading and Flashing Images | 121 | 5. Downloading and Flashing Images |
| 122 | 122 | ||
| 123 | 5.0 Download over serial line using Kermit: | 123 | 5.0 Download over serial line using Kermit: |
| 124 | 124 | ||
| 125 | loadb | 125 | loadb |
| 126 | [Drop to kermit: | 126 | [Drop to kermit: |
| 127 | ^\c | 127 | ^\c |
| 128 | send <u-boot-bin-image> | 128 | send <u-boot-bin-image> |
| 129 | c | 129 | c |
| 130 | ] | 130 | ] |
| 131 | 131 | ||
| 132 | 132 | ||
| 133 | Or via tftp: | 133 | Or via tftp: |
| 134 | 134 | ||
| 135 | tftp 10000 u-boot.bin | 135 | tftp 10000 u-boot.bin |
| 136 | 136 | ||
| 137 | 5.1 Reflash U-boot Image using U-boot | 137 | 5.1 Reflash U-boot Image using U-boot |
| 138 | 138 | ||
| 139 | tftp 20000 u-boot.bin | 139 | tftp 20000 u-boot.bin |
| 140 | protect off fef00000 fef3ffff | 140 | protect off fef00000 fef3ffff |
| 141 | erase fef00000 fef3ffff | 141 | erase fef00000 fef3ffff |
| 142 | 142 | ||
| 143 | cp.b 20000 fef00000 xxxx | 143 | cp.b 20000 fef00000 xxxx |
| 144 | 144 | ||
| 145 | or | 145 | or |
| 146 | 146 | ||
| 147 | cp.b 20000 fef00000 3ffff | 147 | cp.b 20000 fef00000 3ffff |
| 148 | 148 | ||
| 149 | 149 | ||
| 150 | You have to supply the correct byte count with 'xxxx' from the TFTP result log. | 150 | You have to supply the correct byte count with 'xxxx' from the TFTP result log. |
| 151 | Maybe 3ffff will work too, that corresponds to the erased sectors. | 151 | Maybe 3ffff will work too, that corresponds to the erased sectors. |
| 152 | 152 | ||
| 153 | 153 | ||
| 154 | 6. Notes | 154 | 6. Notes |
| 155 | 1) The console baudrate for MPC8360EMDS is 115200bps. | 155 | 1) The console baudrate for MPC8360EMDS is 115200bps. |
| 156 | 156 |
doc/README.mpc837xemds
| 1 | Freescale MPC837xEMDS Board | 1 | Freescale MPC837xEMDS Board |
| 2 | ----------------------------------------- | 2 | ----------------------------------------- |
| 3 | 1. Board Switches and Jumpers | 3 | 1. Board Switches and Jumpers |
| 4 | 1.0 There are four Dual-In-Line Packages(DIP) Switches on MPC837xEMDS board | 4 | 1.0 There are four Dual-In-Line Packages(DIP) Switches on MPC837xEMDS board |
| 5 | For some reason, the HW designers describe the switch settings | 5 | For some reason, the HW designers describe the switch settings |
| 6 | in terms of 0 and 1, and then map that to physical switches where | 6 | in terms of 0 and 1, and then map that to physical switches where |
| 7 | the label "On" refers to logic 0 and "Off" is logic 1. | 7 | the label "On" refers to logic 0 and "Off" is logic 1. |
| 8 | 8 | ||
| 9 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the | 9 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the |
| 10 | bits may contribute to signals that are numbered based at 0, | 10 | bits may contribute to signals that are numbered based at 0, |
| 11 | and some of those signals may be high-bit-number-0 too. Heed | 11 | and some of those signals may be high-bit-number-0 too. Heed |
| 12 | well the names and labels and do not get confused. | 12 | well the names and labels and do not get confused. |
| 13 | 13 | ||
| 14 | "Off" == 1 | 14 | "Off" == 1 |
| 15 | "On" == 0 | 15 | "On" == 0 |
| 16 | 16 | ||
| 17 | SW4[8] is the bit labled 8 on Switch 4. | 17 | SW4[8] is the bit labeled 8 on Switch 4. |
| 18 | SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2. | 18 | SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2. |
| 19 | SW2[1:8]= 0000_0001 refers to bits labeled 1 through 7 is set as "On" | 19 | SW2[1:8]= 0000_0001 refers to bits labeled 1 through 7 is set as "On" |
| 20 | and bits labeled 8 is set as "Off". | 20 | and bits labeled 8 is set as "Off". |
| 21 | 21 | ||
| 22 | 1.1 For the MPC837xEMDS Processor Board | 22 | 1.1 For the MPC837xEMDS Processor Board |
| 23 | 23 | ||
| 24 | First, make sure the board default setting is consistent with the | 24 | First, make sure the board default setting is consistent with the |
| 25 | document shipped with your board. Then apply the following setting: | 25 | document shipped with your board. Then apply the following setting: |
| 26 | SW3[1-8]= 0011_0000 (BOOTSEQ, ROMLOC setting) | 26 | SW3[1-8]= 0011_0000 (BOOTSEQ, ROMLOC setting) |
| 27 | SW4[1-8]= 0000_0110 (core PLL setting) | 27 | SW4[1-8]= 0000_0110 (core PLL setting) |
| 28 | SW5[1-8]= 1001_1000 (system PLL, boot up from low end of flash) | 28 | SW5[1-8]= 1001_1000 (system PLL, boot up from low end of flash) |
| 29 | SW6[1-8]= 0000_1000 (HRCW is read from NOR FLASH) | 29 | SW6[1-8]= 0000_1000 (HRCW is read from NOR FLASH) |
| 30 | SW7[1-8]= 0110_1101 (TSEC1/2 interface setting - RGMII) | 30 | SW7[1-8]= 0110_1101 (TSEC1/2 interface setting - RGMII) |
| 31 | J3 2-3, TSEC1 LVDD1 with 2.5V | 31 | J3 2-3, TSEC1 LVDD1 with 2.5V |
| 32 | J6 2-3, TSEC2 LVDD2 with 2.5V | 32 | J6 2-3, TSEC2 LVDD2 with 2.5V |
| 33 | J9 2-3, CLKIN from osc on board | 33 | J9 2-3, CLKIN from osc on board |
| 34 | J10 removed, CS0 connect to NOR flash; when mounted, CS0 connect to NAND | 34 | J10 removed, CS0 connect to NOR flash; when mounted, CS0 connect to NAND |
| 35 | J11 removed, Hardware Reset Configuration Word load from FLASH(NOR or NAND) | 35 | J11 removed, Hardware Reset Configuration Word load from FLASH(NOR or NAND) |
| 36 | mounted, HRCW load from BCSR. | 36 | mounted, HRCW load from BCSR. |
| 37 | 37 | ||
| 38 | on board Oscillator: 66M | 38 | on board Oscillator: 66M |
| 39 | 39 | ||
| 40 | 2. Memory Map | 40 | 2. Memory Map |
| 41 | 41 | ||
| 42 | 2.1. The memory map should look pretty much like this: | 42 | 2.1. The memory map should look pretty much like this: |
| 43 | 43 | ||
| 44 | 0x0000_0000 0x7fff_ffff DDR 2G | 44 | 0x0000_0000 0x7fff_ffff DDR 2G |
| 45 | 0x8000_0000 0x8fff_ffff PCI MEM prefetch 256M | 45 | 0x8000_0000 0x8fff_ffff PCI MEM prefetch 256M |
| 46 | 0x9000_0000 0x9fff_ffff PCI MEM non-prefetch 256M | 46 | 0x9000_0000 0x9fff_ffff PCI MEM non-prefetch 256M |
| 47 | 0xc000_0000 0xdfff_ffff Empty 512M | 47 | 0xc000_0000 0xdfff_ffff Empty 512M |
| 48 | 0xe000_0000 0xe00f_ffff Int Mem Reg Space 1M | 48 | 0xe000_0000 0xe00f_ffff Int Mem Reg Space 1M |
| 49 | 0xe010_0000 0xe02f_ffff Empty 2M | 49 | 0xe010_0000 0xe02f_ffff Empty 2M |
| 50 | 0xe030_0000 0xe03f_ffff PCI IO 1M | 50 | 0xe030_0000 0xe03f_ffff PCI IO 1M |
| 51 | 0xe040_0000 0xe05f_ffff Empty 2M | 51 | 0xe040_0000 0xe05f_ffff Empty 2M |
| 52 | 0xe060_0000 0xe060_7fff NAND Flash 32K | 52 | 0xe060_0000 0xe060_7fff NAND Flash 32K |
| 53 | 0xf400_0000 0xf7ff_ffff Empty 64M | 53 | 0xf400_0000 0xf7ff_ffff Empty 64M |
| 54 | 0xf800_0000 0xf800_7fff BCSR on CS1 32K | 54 | 0xf800_0000 0xf800_7fff BCSR on CS1 32K |
| 55 | 0xfe00_0000 0xffff_ffff NOR Flash on CS0 32M | 55 | 0xfe00_0000 0xffff_ffff NOR Flash on CS0 32M |
| 56 | 56 | ||
| 57 | 3. Definitions | 57 | 3. Definitions |
| 58 | 58 | ||
| 59 | 3.1 Explanation of NEW definitions in: | 59 | 3.1 Explanation of NEW definitions in: |
| 60 | 60 | ||
| 61 | include/configs/MPC837XEMDS.h | 61 | include/configs/MPC837XEMDS.h |
| 62 | 62 | ||
| 63 | CONFIG_MPC83xx MPC83xx family for both MPC837x and MPC8360 | 63 | CONFIG_MPC83xx MPC83xx family for both MPC837x and MPC8360 |
| 64 | CONFIG_MPC837x MPC837x specific | 64 | CONFIG_MPC837x MPC837x specific |
| 65 | CONFIG_MPC837XEMDS MPC837XEMDS board specific | 65 | CONFIG_MPC837XEMDS MPC837XEMDS board specific |
| 66 | 66 | ||
| 67 | 4. Compilation | 67 | 4. Compilation |
| 68 | 68 | ||
| 69 | Assuming you're using BASH shell: | 69 | Assuming you're using BASH shell: |
| 70 | 70 | ||
| 71 | export CROSS_COMPILE=your-cross-compile-prefix | 71 | export CROSS_COMPILE=your-cross-compile-prefix |
| 72 | cd u-boot | 72 | cd u-boot |
| 73 | make distclean | 73 | make distclean |
| 74 | make MPC837XEMDS_config | 74 | make MPC837XEMDS_config |
| 75 | make | 75 | make |
| 76 | 76 | ||
| 77 | 5. Downloading and Flashing Images | 77 | 5. Downloading and Flashing Images |
| 78 | 78 | ||
| 79 | 5.0 Download over serial line using Kermit: | 79 | 5.0 Download over serial line using Kermit: |
| 80 | 80 | ||
| 81 | loadb | 81 | loadb |
| 82 | [Drop to kermit: | 82 | [Drop to kermit: |
| 83 | ^\c | 83 | ^\c |
| 84 | send <u-boot-bin-image> | 84 | send <u-boot-bin-image> |
| 85 | c | 85 | c |
| 86 | ] | 86 | ] |
| 87 | 87 | ||
| 88 | 88 | ||
| 89 | Or via tftp: | 89 | Or via tftp: |
| 90 | 90 | ||
| 91 | tftp 40000 u-boot.bin | 91 | tftp 40000 u-boot.bin |
| 92 | 92 | ||
| 93 | 5.1 Reflash U-boot Image using U-boot | 93 | 5.1 Reflash U-boot Image using U-boot |
| 94 | 94 | ||
| 95 | tftp 40000 u-boot.bin | 95 | tftp 40000 u-boot.bin |
| 96 | protect off fe000000 fe1fffff | 96 | protect off fe000000 fe1fffff |
| 97 | erase fe000000 fe1fffff | 97 | erase fe000000 fe1fffff |
| 98 | 98 | ||
| 99 | cp.b 40000 fe000000 xxxx | 99 | cp.b 40000 fe000000 xxxx |
| 100 | 100 | ||
| 101 | You have to supply the correct byte count with 'xxxx' from the TFTP result log. | 101 | You have to supply the correct byte count with 'xxxx' from the TFTP result log. |
| 102 | 102 | ||
| 103 | 6. Notes | 103 | 6. Notes |
| 104 | 1) The console baudrate for MPC837XEMDS is 115200bps. | 104 | 1) The console baudrate for MPC837XEMDS is 115200bps. |
| 105 | 105 |
doc/README.mpc8544ds
| 1 | Overview | 1 | Overview |
| 2 | -------- | 2 | -------- |
| 3 | The MPC8544DS system is similar to the 85xx CDS systems such | 3 | The MPC8544DS system is similar to the 85xx CDS systems such |
| 4 | as the MPC8548CDS due to the similar E500 core. However, it | 4 | as the MPC8548CDS due to the similar E500 core. However, it |
| 5 | is placed on the same board as the 8641 HPCN system. | 5 | is placed on the same board as the 8641 HPCN system. |
| 6 | 6 | ||
| 7 | 7 | ||
| 8 | Flash Banks | 8 | Flash Banks |
| 9 | ----------- | 9 | ----------- |
| 10 | Like the 85xx CDS systems, the 8544 DS board has two flash banks. | 10 | Like the 85xx CDS systems, the 8544 DS board has two flash banks. |
| 11 | They are both present on boot, but there locations can be swapped | 11 | They are both present on boot, but there locations can be swapped |
| 12 | using the dip-switch SW10, bit 2. | 12 | using the dip-switch SW10, bit 2. |
| 13 | 13 | ||
| 14 | However, unlike the CDS systems, but similar to the 8641 HPCN | 14 | However, unlike the CDS systems, but similar to the 8641 HPCN |
| 15 | board, a runtime reset through the FPGA can also affect a swap | 15 | board, a runtime reset through the FPGA can also affect a swap |
| 16 | on the flash bank mappings for the next reset cycle. | 16 | on the flash bank mappings for the next reset cycle. |
| 17 | 17 | ||
| 18 | Irrespective of the switch SW10[2], booting is always from the | 18 | Irrespective of the switch SW10[2], booting is always from the |
| 19 | boot bank at 0xfff8_0000. | 19 | boot bank at 0xfff8_0000. |
| 20 | 20 | ||
| 21 | 21 | ||
| 22 | Memory Map | 22 | Memory Map |
| 23 | ---------- | 23 | ---------- |
| 24 | 24 | ||
| 25 | 0xff80_0000 - 0xffbf_ffff Alernate bank 4MB | 25 | 0xff80_0000 - 0xffbf_ffff Alternate bank 4MB |
| 26 | 0xffc0_0000 - 0xffff_ffff Boot bank 4MB | 26 | 0xffc0_0000 - 0xffff_ffff Boot bank 4MB |
| 27 | 27 | ||
| 28 | 0xffb8_0000 Alternate image start 512KB | 28 | 0xffb8_0000 Alternate image start 512KB |
| 29 | 0xfff8_0000 Boot image start 512KB | 29 | 0xfff8_0000 Boot image start 512KB |
| 30 | 30 | ||
| 31 | 31 | ||
| 32 | Flashing Images | 32 | Flashing Images |
| 33 | --------------- | 33 | --------------- |
| 34 | 34 | ||
| 35 | For example, to place a new image in the alternate flash bank | 35 | For example, to place a new image in the alternate flash bank |
| 36 | and then reset with that new image temporarily, use this: | 36 | and then reset with that new image temporarily, use this: |
| 37 | 37 | ||
| 38 | tftp 1000000 u-boot.bin.8544ds | 38 | tftp 1000000 u-boot.bin.8544ds |
| 39 | erase ffb80000 ffbfffff | 39 | erase ffb80000 ffbfffff |
| 40 | cp.b 1000000 ffb80000 80000 | 40 | cp.b 1000000 ffb80000 80000 |
| 41 | pixis_reset altbank | 41 | pixis_reset altbank |
| 42 | 42 | ||
| 43 | 43 | ||
| 44 | To overwrite the image in the boot flash bank: | 44 | To overwrite the image in the boot flash bank: |
| 45 | 45 | ||
| 46 | tftp 1000000 u-boot.bin.8544ds | 46 | tftp 1000000 u-boot.bin.8544ds |
| 47 | protect off all | 47 | protect off all |
| 48 | erase fff80000 ffffffff | 48 | erase fff80000 ffffffff |
| 49 | cp.b 1000000 fff80000 80000 | 49 | cp.b 1000000 fff80000 80000 |
| 50 | 50 | ||
| 51 | Other example U-Boot image and flash manipulations examples | 51 | Other example U-Boot image and flash manipulations examples |
| 52 | can be found in the README.mpc85xxcds file as well. | 52 | can be found in the README.mpc85xxcds file as well. |
| 53 | 53 | ||
| 54 | 54 | ||
| 55 | The pixis_reset command | 55 | The pixis_reset command |
| 56 | ----------------------- | 56 | ----------------------- |
| 57 | A new command, "pixis_reset", is introduced to reset mpc8641hpcn board | 57 | A new command, "pixis_reset", is introduced to reset mpc8641hpcn board |
| 58 | using the FPGA sequencer. When the board restarts, it has the option | 58 | using the FPGA sequencer. When the board restarts, it has the option |
| 59 | of using either the current or alternate flash bank as the boot | 59 | of using either the current or alternate flash bank as the boot |
| 60 | image, with or without the watchdog timer enabled, and finally with | 60 | image, with or without the watchdog timer enabled, and finally with |
| 61 | or without frequency changes. | 61 | or without frequency changes. |
| 62 | 62 | ||
| 63 | Usage is; | 63 | Usage is; |
| 64 | 64 | ||
| 65 | pixis_reset | 65 | pixis_reset |
| 66 | pixis_reset altbank | 66 | pixis_reset altbank |
| 67 | pixis_reset altbank wd | 67 | pixis_reset altbank wd |
| 68 | pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> | 68 | pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> |
| 69 | pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> | 69 | pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> |
| 70 | 70 | ||
| 71 | Examples; | 71 | Examples; |
| 72 | 72 | ||
| 73 | /* reset to current bank, like "reset" command */ | 73 | /* reset to current bank, like "reset" command */ |
| 74 | pixis_reset | 74 | pixis_reset |
| 75 | 75 | ||
| 76 | /* reset board but use the to alternate flash bank */ | 76 | /* reset board but use the to alternate flash bank */ |
| 77 | pixis_reset altbank | 77 | pixis_reset altbank |
| 78 | 78 | ||
| 79 | /* reset board, use alternate flash bank with watchdog timer enabled*/ | 79 | /* reset board, use alternate flash bank with watchdog timer enabled*/ |
| 80 | pixis_reset altbank wd | 80 | pixis_reset altbank wd |
| 81 | 81 | ||
| 82 | /* reset board to alternate bank with frequency changed. | 82 | /* reset board to alternate bank with frequency changed. |
| 83 | * 40 is SYSCLK, 2.5 is COREPLL ratio, 10 is MPXPLL ratio | 83 | * 40 is SYSCLK, 2.5 is COREPLL ratio, 10 is MPXPLL ratio |
| 84 | */ | 84 | */ |
| 85 | pixis-reset altbank cf 40 2.5 10 | 85 | pixis-reset altbank cf 40 2.5 10 |
| 86 | 86 | ||
| 87 | Valid clock choices are in the 8641 Reference Manuals. | 87 | Valid clock choices are in the 8641 Reference Manuals. |
| 88 | 88 | ||
| 89 | 89 | ||
| 90 | Using the Device Tree Source File | 90 | Using the Device Tree Source File |
| 91 | --------------------------------- | 91 | --------------------------------- |
| 92 | To create the DTB (Device Tree Binary) image file, | 92 | To create the DTB (Device Tree Binary) image file, |
| 93 | use a command similar to this: | 93 | use a command similar to this: |
| 94 | 94 | ||
| 95 | dtc -b 0 -f -I dts -O dtb mpc8544ds.dts > mpc8544ds.dtb | 95 | dtc -b 0 -f -I dts -O dtb mpc8544ds.dts > mpc8544ds.dtb |
| 96 | 96 | ||
| 97 | Likely, that .dts file will come from here; | 97 | Likely, that .dts file will come from here; |
| 98 | 98 | ||
| 99 | linux-2.6/arch/powerpc/boot/dts/mpc8544ds.dts | 99 | linux-2.6/arch/powerpc/boot/dts/mpc8544ds.dts |
| 100 | 100 | ||
| 101 | After placing the DTB file in your TFTP disk area, | 101 | After placing the DTB file in your TFTP disk area, |
| 102 | you can download that dtb file using a command like: | 102 | you can download that dtb file using a command like: |
| 103 | 103 | ||
| 104 | tftp 900000 mpc8544ds.dtb | 104 | tftp 900000 mpc8544ds.dtb |
| 105 | 105 | ||
| 106 | Burn it to flash if you want. | 106 | Burn it to flash if you want. |
| 107 | 107 | ||
| 108 | 108 | ||
| 109 | Booting Linux | 109 | Booting Linux |
| 110 | ------------- | 110 | ------------- |
| 111 | 111 | ||
| 112 | Place a linux uImage in the TFTP disk area too. | 112 | Place a linux uImage in the TFTP disk area too. |
| 113 | 113 | ||
| 114 | tftp 1000000 uImage.8544 | 114 | tftp 1000000 uImage.8544 |
| 115 | tftp 900000 mpc8544ds.dtb | 115 | tftp 900000 mpc8544ds.dtb |
| 116 | bootm 1000000 - 900000 | 116 | bootm 1000000 - 900000 |
| 117 | 117 | ||
| 118 | Watch your ethact, netdev and bootargs U-Boot environment variables. | 118 | Watch your ethact, netdev and bootargs U-Boot environment variables. |
| 119 | You may want to do something like this too: | 119 | You may want to do something like this too: |
| 120 | 120 | ||
| 121 | setenv ethact eTSEC3 | 121 | setenv ethact eTSEC3 |
| 122 | setenv netdev eth1 | 122 | setenv netdev eth1 |
| 123 | 123 |
doc/README.mpc8572ds
| 1 | Overview | 1 | Overview |
| 2 | -------- | 2 | -------- |
| 3 | MPC8572DS is a high-performance computing, evaluation and development platform | 3 | MPC8572DS is a high-performance computing, evaluation and development platform |
| 4 | supporting the mpc8572 PowerTM processor. | 4 | supporting the mpc8572 PowerTM processor. |
| 5 | 5 | ||
| 6 | Building U-boot | 6 | Building U-boot |
| 7 | ----------- | 7 | ----------- |
| 8 | make MPC8572DS_config | 8 | make MPC8572DS_config |
| 9 | make | 9 | make |
| 10 | 10 | ||
| 11 | Flash Banks | 11 | Flash Banks |
| 12 | ----------- | 12 | ----------- |
| 13 | MPC8572DS board has two flash banks. They are both present on boot, but their | 13 | MPC8572DS board has two flash banks. They are both present on boot, but their |
| 14 | locations can be swapped using the dip-switch SW9[1:2]. | 14 | locations can be swapped using the dip-switch SW9[1:2]. |
| 15 | 15 | ||
| 16 | Booting is always from the boot bank at 0xec00_0000. | 16 | Booting is always from the boot bank at 0xec00_0000. |
| 17 | 17 | ||
| 18 | 18 | ||
| 19 | Memory Map | 19 | Memory Map |
| 20 | ---------- | 20 | ---------- |
| 21 | 21 | ||
| 22 | 0xe800_0000 - 0xebff_ffff Alernate bank 64MB | 22 | 0xe800_0000 - 0xebff_ffff Alternate bank 64MB |
| 23 | 0xec00_0000 - 0xefff_ffff Boot bank 64MB | 23 | 0xec00_0000 - 0xefff_ffff Boot bank 64MB |
| 24 | 24 | ||
| 25 | 0xebf8_0000 - 0xebff_ffff Alternate u-boot address 512KB | 25 | 0xebf8_0000 - 0xebff_ffff Alternate u-boot address 512KB |
| 26 | 0xeff8_0000 - 0xefff_ffff Boot u-boot address 512KB | 26 | 0xeff8_0000 - 0xefff_ffff Boot u-boot address 512KB |
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | Flashing Images | 29 | Flashing Images |
| 30 | --------------- | 30 | --------------- |
| 31 | 31 | ||
| 32 | To place a new u-boot image in the alternate flash bank and then reset with that | 32 | To place a new u-boot image in the alternate flash bank and then reset with that |
| 33 | new image temporarily, use this: | 33 | new image temporarily, use this: |
| 34 | 34 | ||
| 35 | tftp 1000000 u-boot.bin | 35 | tftp 1000000 u-boot.bin |
| 36 | erase ebf80000 ebffffff | 36 | erase ebf80000 ebffffff |
| 37 | cp.b 1000000 ebf80000 80000 | 37 | cp.b 1000000 ebf80000 80000 |
| 38 | pixis_reset altbank | 38 | pixis_reset altbank |
| 39 | 39 | ||
| 40 | 40 | ||
| 41 | To program the image in the boot flash bank: | 41 | To program the image in the boot flash bank: |
| 42 | 42 | ||
| 43 | tftp 1000000 u-boot.bin | 43 | tftp 1000000 u-boot.bin |
| 44 | protect off all | 44 | protect off all |
| 45 | erase eff80000 ffffffff | 45 | erase eff80000 ffffffff |
| 46 | cp.b 1000000 eff80000 80000 | 46 | cp.b 1000000 eff80000 80000 |
| 47 | 47 | ||
| 48 | 48 | ||
| 49 | The pixis_reset command | 49 | The pixis_reset command |
| 50 | ----------------------- | 50 | ----------------------- |
| 51 | The command - "pixis_reset", is introduced to reset mpc8572ds board | 51 | The command - "pixis_reset", is introduced to reset mpc8572ds board |
| 52 | using the FPGA sequencer. When the board restarts, it has the option | 52 | using the FPGA sequencer. When the board restarts, it has the option |
| 53 | of using either the current or alternate flash bank as the boot | 53 | of using either the current or alternate flash bank as the boot |
| 54 | image, with or without the watchdog timer enabled, and finally with | 54 | image, with or without the watchdog timer enabled, and finally with |
| 55 | or without frequency changes. | 55 | or without frequency changes. |
| 56 | 56 | ||
| 57 | Usage is; | 57 | Usage is; |
| 58 | 58 | ||
| 59 | pixis_reset | 59 | pixis_reset |
| 60 | pixis_reset altbank | 60 | pixis_reset altbank |
| 61 | pixis_reset altbank wd | 61 | pixis_reset altbank wd |
| 62 | pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> | 62 | pixis_reset altbank cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> |
| 63 | pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> | 63 | pixis_reset cf <SYSCLK freq> <COREPLL ratio> <MPXPLL ratio> |
| 64 | 64 | ||
| 65 | Examples: | 65 | Examples: |
| 66 | 66 | ||
| 67 | /* reset to current bank, like "reset" command */ | 67 | /* reset to current bank, like "reset" command */ |
| 68 | pixis_reset | 68 | pixis_reset |
| 69 | 69 | ||
| 70 | /* reset board but use the to alternate flash bank */ | 70 | /* reset board but use the to alternate flash bank */ |
| 71 | pixis_reset altbank | 71 | pixis_reset altbank |
| 72 | 72 | ||
| 73 | 73 | ||
| 74 | Using the Device Tree Source File | 74 | Using the Device Tree Source File |
| 75 | --------------------------------- | 75 | --------------------------------- |
| 76 | To create the DTB (Device Tree Binary) image file, | 76 | To create the DTB (Device Tree Binary) image file, |
| 77 | use a command similar to this: | 77 | use a command similar to this: |
| 78 | 78 | ||
| 79 | dtc -b 0 -f -I dts -O dtb mpc8572ds.dts > mpc8572ds.dtb | 79 | dtc -b 0 -f -I dts -O dtb mpc8572ds.dts > mpc8572ds.dtb |
| 80 | 80 | ||
| 81 | Likely, that .dts file will come from here; | 81 | Likely, that .dts file will come from here; |
| 82 | 82 | ||
| 83 | linux-2.6/arch/powerpc/boot/dts/mpc8572ds.dts | 83 | linux-2.6/arch/powerpc/boot/dts/mpc8572ds.dts |
| 84 | 84 | ||
| 85 | 85 | ||
| 86 | Booting Linux | 86 | Booting Linux |
| 87 | ------------- | 87 | ------------- |
| 88 | 88 | ||
| 89 | Place a linux uImage in the TFTP disk area. | 89 | Place a linux uImage in the TFTP disk area. |
| 90 | 90 | ||
| 91 | tftp 1000000 uImage.8572 | 91 | tftp 1000000 uImage.8572 |
| 92 | tftp c00000 mpc8572ds.dtb | 92 | tftp c00000 mpc8572ds.dtb |
| 93 | bootm 1000000 - c00000 | 93 | bootm 1000000 - c00000 |
| 94 | 94 | ||
| 95 | 95 | ||
| 96 | Implementing AMP(Asymmetric MultiProcessing) | 96 | Implementing AMP(Asymmetric MultiProcessing) |
| 97 | ------------- | 97 | ------------- |
| 98 | 1. Build kernel image for core0: | 98 | 1. Build kernel image for core0: |
| 99 | 99 | ||
| 100 | a. $ make 85xx/mpc8572_ds_defconfig | 100 | a. $ make 85xx/mpc8572_ds_defconfig |
| 101 | 101 | ||
| 102 | b. $ make menuconfig | 102 | b. $ make menuconfig |
| 103 | - un-select "Processor support"->"Symetric multi-processing support" | 103 | - un-select "Processor support"->"Symetric multi-processing support" |
| 104 | 104 | ||
| 105 | c. $ make uImage | 105 | c. $ make uImage |
| 106 | 106 | ||
| 107 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core0 | 107 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core0 |
| 108 | 108 | ||
| 109 | 2. Build kernel image for core1: | 109 | 2. Build kernel image for core1: |
| 110 | 110 | ||
| 111 | a. $ make 85xx/mpc8572_ds_defconfig | 111 | a. $ make 85xx/mpc8572_ds_defconfig |
| 112 | 112 | ||
| 113 | b. $ make menuconfig | 113 | b. $ make menuconfig |
| 114 | - Un-select "Processor support"->"Symetric multi-processing support" | 114 | - Un-select "Processor support"->"Symetric multi-processing support" |
| 115 | - Select "Advanced setup" -> " Prompt for advanced kernel | 115 | - Select "Advanced setup" -> " Prompt for advanced kernel |
| 116 | configuration options" | 116 | configuration options" |
| 117 | - Select "Set physical address where the kernel is loaded" and | 117 | - Select "Set physical address where the kernel is loaded" and |
| 118 | set it to 0x20000000, asssuming core1 will start from 512MB. | 118 | set it to 0x20000000, assuming core1 will start from 512MB. |
| 119 | - Select "Set custom page offset address" | 119 | - Select "Set custom page offset address" |
| 120 | - Select "Set custom kernel base address" | 120 | - Select "Set custom kernel base address" |
| 121 | - Select "Set maximum low memory" | 121 | - Select "Set maximum low memory" |
| 122 | - "Exit" and save the selection. | 122 | - "Exit" and save the selection. |
| 123 | 123 | ||
| 124 | c. $ make uImage | 124 | c. $ make uImage |
| 125 | 125 | ||
| 126 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core1 | 126 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core1 |
| 127 | 127 | ||
| 128 | 3. Create dtb for core0: | 128 | 3. Create dtb for core0: |
| 129 | 129 | ||
| 130 | $ dtc -I dts -O dtb -f -b 0 arch/powerpc/boot/dts/mpc8572ds_core0.dts > /tftpboot/mpc8572ds_core0.dtb | 130 | $ dtc -I dts -O dtb -f -b 0 arch/powerpc/boot/dts/mpc8572ds_core0.dts > /tftpboot/mpc8572ds_core0.dtb |
| 131 | 131 | ||
| 132 | 4. Create dtb for core1: | 132 | 4. Create dtb for core1: |
| 133 | 133 | ||
| 134 | $ dtc -I dts -O dtb -f -b 1 arch/powerpc/boot/dts/mpc8572ds_core1.dts > /tftpboot/mpc8572ds_core1.dtb | 134 | $ dtc -I dts -O dtb -f -b 1 arch/powerpc/boot/dts/mpc8572ds_core1.dts > /tftpboot/mpc8572ds_core1.dtb |
| 135 | 135 | ||
| 136 | 5. Bring up two cores separately: | 136 | 5. Bring up two cores separately: |
| 137 | 137 | ||
| 138 | a. Power on the board, under u-boot prompt: | 138 | a. Power on the board, under u-boot prompt: |
| 139 | => setenv <serverip> | 139 | => setenv <serverip> |
| 140 | => setenv <ipaddr> | 140 | => setenv <ipaddr> |
| 141 | => setenv bootargs root=/dev/ram rw console=ttyS0,115200 | 141 | => setenv bootargs root=/dev/ram rw console=ttyS0,115200 |
| 142 | b. Bring up core1's kernel first: | 142 | b. Bring up core1's kernel first: |
| 143 | => setenv bootm_low 0x20000000 | 143 | => setenv bootm_low 0x20000000 |
| 144 | => setenv bootm_size 0x10000000 | 144 | => setenv bootm_size 0x10000000 |
| 145 | => tftp 21000000 8572/uImage.core1 | 145 | => tftp 21000000 8572/uImage.core1 |
| 146 | => tftp 22000000 8572/ramdiskfile | 146 | => tftp 22000000 8572/ramdiskfile |
| 147 | => tftp 20c00000 8572/mpc8572ds_core1.dtb | 147 | => tftp 20c00000 8572/mpc8572ds_core1.dtb |
| 148 | => interrupts off | 148 | => interrupts off |
| 149 | => bootm start 21000000 22000000 20c00000 | 149 | => bootm start 21000000 22000000 20c00000 |
| 150 | => bootm loados | 150 | => bootm loados |
| 151 | => bootm ramdisk | 151 | => bootm ramdisk |
| 152 | => bootm fdt | 152 | => bootm fdt |
| 153 | => fdt boardsetup | 153 | => fdt boardsetup |
| 154 | => fdt chosen $initrd_start $initrd_end | 154 | => fdt chosen $initrd_start $initrd_end |
| 155 | => bootm prep | 155 | => bootm prep |
| 156 | => cpu 1 release $bootm_low - $fdtaddr - | 156 | => cpu 1 release $bootm_low - $fdtaddr - |
| 157 | c. Bring up core0's kernel(on the same u-boot console): | 157 | c. Bring up core0's kernel(on the same u-boot console): |
| 158 | => setenv bootm_low 0 | 158 | => setenv bootm_low 0 |
| 159 | => setenv bootm_size 0x20000000 | 159 | => setenv bootm_size 0x20000000 |
| 160 | => tftp 1000000 8572/uImage.core0 | 160 | => tftp 1000000 8572/uImage.core0 |
| 161 | => tftp 2000000 8572/ramdiskfile | 161 | => tftp 2000000 8572/ramdiskfile |
| 162 | => tftp c00000 8572/mpc8572ds_core0.dtb | 162 | => tftp c00000 8572/mpc8572ds_core0.dtb |
| 163 | => bootm 1000000 2000000 c00000 | 163 | => bootm 1000000 2000000 c00000 |
| 164 | 164 | ||
| 165 | Please note only core0 will run u-boot, core1 starts kernel directly after | 165 | Please note only core0 will run u-boot, core1 starts kernel directly after |
| 166 | "cpu release" command is issued. | 166 | "cpu release" command is issued. |
| 167 | 167 |
doc/README.mpc85xxads
| 1 | Motorola MPC8540ADS and MPC8560ADS board | 1 | Motorola MPC8540ADS and MPC8560ADS board |
| 2 | 2 | ||
| 3 | Created 10/15/03 Xianghua Xiao | 3 | Created 10/15/03 Xianghua Xiao |
| 4 | Updated 13-July-2004 Jon Loeliger | 4 | Updated 13-July-2004 Jon Loeliger |
| 5 | ----------------------------------------- | 5 | ----------------------------------------- |
| 6 | 6 | ||
| 7 | 0. Toolchain | 7 | 0. Toolchain |
| 8 | 8 | ||
| 9 | The Binutils in current ELDK toolchain will not support MPC85xx | 9 | The Binutils in current ELDK toolchain will not support MPC85xx |
| 10 | chip. You need to use binutils-2.14.tar.bz2 (or newer) from | 10 | chip. You need to use binutils-2.14.tar.bz2 (or newer) from |
| 11 | http://ftp.gnu.org/gnu/binutils. | 11 | http://ftp.gnu.org/gnu/binutils. |
| 12 | 12 | ||
| 13 | The 8540/8560 ADS code base is known to compile using: | 13 | The 8540/8560 ADS code base is known to compile using: |
| 14 | gcc (GCC) 3.2.2 20030217 (Yellow Dog Linux 3.0 3.2.2-2a) | 14 | gcc (GCC) 3.2.2 20030217 (Yellow Dog Linux 3.0 3.2.2-2a) |
| 15 | 15 | ||
| 16 | 16 | ||
| 17 | 1. SWITCH SETTINGS & JUMPERS | 17 | 1. SWITCH SETTINGS & JUMPERS |
| 18 | 18 | ||
| 19 | 1.0 Nomenclature | 19 | 1.0 Nomenclature |
| 20 | 20 | ||
| 21 | For some reason, the HW designers describe the switch settings | 21 | For some reason, the HW designers describe the switch settings |
| 22 | in terms of 0 and 1, and then map that to physical switches where | 22 | in terms of 0 and 1, and then map that to physical switches where |
| 23 | the label "On" refers to logic 0 and "Off" (unlabeled) is logic 1. | 23 | the label "On" refers to logic 0 and "Off" (unlabeled) is logic 1. |
| 24 | Luckily, we're SW types and virtual settings are handled daily. | 24 | Luckily, we're SW types and virtual settings are handled daily. |
| 25 | 25 | ||
| 26 | The switches for the Rev A board are numbered differently than | 26 | The switches for the Rev A board are numbered differently than |
| 27 | for the Pilot board. Oh yeah. | 27 | for the Pilot board. Oh yeah. |
| 28 | 28 | ||
| 29 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the | 29 | Switch bits are numbered 1 through, like, 4 6 8 or 10, but the |
| 30 | bits may contribute to signals that are numbered based at 0, | 30 | bits may contribute to signals that are numbered based at 0, |
| 31 | and some of those signals may be high-bit-number-0 too. Heed | 31 | and some of those signals may be high-bit-number-0 too. Heed |
| 32 | well the names and labels and do not get confused. | 32 | well the names and labels and do not get confused. |
| 33 | 33 | ||
| 34 | "Off" == 1 | 34 | "Off" == 1 |
| 35 | "On" == 0 | 35 | "On" == 0 |
| 36 | 36 | ||
| 37 | SW18 is switch 18 as silk-screened onto the board. | 37 | SW18 is switch 18 as silk-screened onto the board. |
| 38 | SW4[8] is the bit labled 8 on Switch 4. | 38 | SW4[8] is the bit labeled 8 on Switch 4. |
| 39 | SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2 | 39 | SW2[1:6] refers to bits labeled 1 through 6 in order on switch 2 |
| 40 | SW3[7:1] refers to bits labeled 7 through 1 in order on switch 3 | 40 | SW3[7:1] refers to bits labeled 7 through 1 in order on switch 3 |
| 41 | 41 | ||
| 42 | 1.1 For the MPC85xxADS Pilot Board | 42 | 1.1 For the MPC85xxADS Pilot Board |
| 43 | 43 | ||
| 44 | First, make sure the board default setting is consistent with the document | 44 | First, make sure the board default setting is consistent with the document |
| 45 | shipped with your board. Then apply the following changes: | 45 | shipped with your board. Then apply the following changes: |
| 46 | SW3[1-6]="all OFF" (boot from 32bit flash, no boot sequence is used) | 46 | SW3[1-6]="all OFF" (boot from 32bit flash, no boot sequence is used) |
| 47 | SW10[2-6]="all OFF" (turn on CPM SCC for serial port,works for 8540/8560) | 47 | SW10[2-6]="all OFF" (turn on CPM SCC for serial port,works for 8540/8560) |
| 48 | SW11[2]='OFF for 8560, ON for 8540' (toggle 8540.8560 mode) | 48 | SW11[2]='OFF for 8560, ON for 8540' (toggle 8540.8560 mode) |
| 49 | SW11[7]='ON' (rev2), 'OFF' (rev1) | 49 | SW11[7]='ON' (rev2), 'OFF' (rev1) |
| 50 | SW4[7-8]="OFF OFF" (enable serial ports,I'm using the top serial connector) | 50 | SW4[7-8]="OFF OFF" (enable serial ports,I'm using the top serial connector) |
| 51 | SW22[1-4]="OFF OFF ON OFF" | 51 | SW22[1-4]="OFF OFF ON OFF" |
| 52 | SW5[1-10[="ON ON OFF OFF OFF OFF OFF OFF OFF OFF" | 52 | SW5[1-10[="ON ON OFF OFF OFF OFF OFF OFF OFF OFF" |
| 53 | J1 = "Enable Prog" (Make sure your flash is programmable for development) | 53 | J1 = "Enable Prog" (Make sure your flash is programmable for development) |
| 54 | 54 | ||
| 55 | If you want to test PCI functionality with a 33Mhz PCI card, you will | 55 | If you want to test PCI functionality with a 33Mhz PCI card, you will |
| 56 | have to change the system clock from the default 66Mhz to 33Mhz by | 56 | have to change the system clock from the default 66Mhz to 33Mhz by |
| 57 | setting SW15[1]="OFF" and SW17[8]="OFF". After that you may also need | 57 | setting SW15[1]="OFF" and SW17[8]="OFF". After that you may also need |
| 58 | double your platform clock(SW6) because the system clock is now only | 58 | double your platform clock(SW6) because the system clock is now only |
| 59 | half of its original value. For example, if at 66MHz your system | 59 | half of its original value. For example, if at 66MHz your system |
| 60 | clock showed SW6[0:1] = 01, then at 33MHz SW6[0:1] it should be 10. | 60 | clock showed SW6[0:1] = 01, then at 33MHz SW6[0:1] it should be 10. |
| 61 | 61 | ||
| 62 | SW17[8] ------+ SW6 | 62 | SW17[8] ------+ SW6 |
| 63 | SW15[1] ----+ | [0:1] | 63 | SW15[1] ----+ | [0:1] |
| 64 | V V V V | 64 | V V V V |
| 65 | 33MHz 1 1 1 0 | 65 | 33MHz 1 1 1 0 |
| 66 | 66MHz 0 0 0 1 | 66 | 66MHz 0 0 0 1 |
| 67 | 67 | ||
| 68 | Hmmm... That SW6 setting description is incomplete but it works. | 68 | Hmmm... That SW6 setting description is incomplete but it works. |
| 69 | 69 | ||
| 70 | 70 | ||
| 71 | 1.3 For the MPC85xxADS Rev A Board | 71 | 1.3 For the MPC85xxADS Rev A Board |
| 72 | 72 | ||
| 73 | As shipped, the board should be a 33MHz PCI bus with a CPU Clock | 73 | As shipped, the board should be a 33MHz PCI bus with a CPU Clock |
| 74 | rate of 825 +/- fuzz: | 74 | rate of 825 +/- fuzz: |
| 75 | 75 | ||
| 76 | Clocks: CPU: 825 MHz, CCB: 330 MHz, DDR: 165 MHz, LBC: 82 MHz | 76 | Clocks: CPU: 825 MHz, CCB: 330 MHz, DDR: 165 MHz, LBC: 82 MHz |
| 77 | 77 | ||
| 78 | For 33MHz PCI, the switch settings should be like this: | 78 | For 33MHz PCI, the switch settings should be like this: |
| 79 | 79 | ||
| 80 | SW18[7:1] = 0100001 = M==33 => 33MHz | 80 | SW18[7:1] = 0100001 = M==33 => 33MHz |
| 81 | SW18[8] = 1 => PWD Divider == 16 | 81 | SW18[8] = 1 => PWD Divider == 16 |
| 82 | SW16[1:2] = 11 => N == 16 as PWD==1 | 82 | SW16[1:2] = 11 => N == 16 as PWD==1 |
| 83 | 83 | ||
| 84 | Use the magical formula: | 84 | Use the magical formula: |
| 85 | Fout (MHz) = 16 * M / N = 16 * 33 / 16 = 33 MHz | 85 | Fout (MHz) = 16 * M / N = 16 * 33 / 16 = 33 MHz |
| 86 | 86 | ||
| 87 | SW7[1:4] = 1010 = 10 => 10 x 33 = 330 CCB Sysclk | 87 | SW7[1:4] = 1010 = 10 => 10 x 33 = 330 CCB Sysclk |
| 88 | SW7[5:6] = 01 => 5:2 x 330 = 825 Core clock | 88 | SW7[5:6] = 01 => 5:2 x 330 = 825 Core clock |
| 89 | 89 | ||
| 90 | 90 | ||
| 91 | For 66MHz PCI, the switch settings should be like this: | 91 | For 66MHz PCI, the switch settings should be like this: |
| 92 | 92 | ||
| 93 | SW18[7:1] = 0100001 = M==33 => 33MHz | 93 | SW18[7:1] = 0100001 = M==33 => 33MHz |
| 94 | SW18[8] = 0 => PWD Divider == 1 | 94 | SW18[8] = 0 => PWD Divider == 1 |
| 95 | SW16[1:2] = 01 => N == 8 as PWD == 0 | 95 | SW16[1:2] = 01 => N == 8 as PWD == 0 |
| 96 | 96 | ||
| 97 | Use the magical formula: | 97 | Use the magical formula: |
| 98 | Fout (MHz) = 16 * M / N = 16 * 33 / 8 = 66 MHz | 98 | Fout (MHz) = 16 * M / N = 16 * 33 / 8 = 66 MHz |
| 99 | 99 | ||
| 100 | SW7[1:4] = 0101 = 5 => 5 x 66 = 330 CCB Sysclk | 100 | SW7[1:4] = 0101 = 5 => 5 x 66 = 330 CCB Sysclk |
| 101 | SW7[5:6] = 01 => 5:2 x 330 = 825 Core clock | 101 | SW7[5:6] = 01 => 5:2 x 330 = 825 Core clock |
| 102 | 102 | ||
| 103 | In order to use PCI-X (only in the first PCI slot. The one with | 103 | In order to use PCI-X (only in the first PCI slot. The one with |
| 104 | the RIO connector), you need to set SW1[4] (config) to 1 (off). | 104 | the RIO connector), you need to set SW1[4] (config) to 1 (off). |
| 105 | Also, configure the board to run PCI at 66 MHz. | 105 | Also, configure the board to run PCI at 66 MHz. |
| 106 | 106 | ||
| 107 | 2. MEMORY MAP TO WORK WITH LINUX KERNEL | 107 | 2. MEMORY MAP TO WORK WITH LINUX KERNEL |
| 108 | 108 | ||
| 109 | 2.1. For the initial bringup, we adopted a consistent memory scheme | 109 | 2.1. For the initial bringup, we adopted a consistent memory scheme |
| 110 | between u-boot and linux kernel, you can customize it based on your | 110 | between u-boot and linux kernel, you can customize it based on your |
| 111 | system requirements: | 111 | system requirements: |
| 112 | 112 | ||
| 113 | 0x0000_0000 0x7fff_ffff DDR 2G | 113 | 0x0000_0000 0x7fff_ffff DDR 2G |
| 114 | 0x8000_0000 0x9fff_ffff PCI MEM 512M | 114 | 0x8000_0000 0x9fff_ffff PCI MEM 512M |
| 115 | 0xc000_0000 0xdfff_ffff Rapid IO 512M | 115 | 0xc000_0000 0xdfff_ffff Rapid IO 512M |
| 116 | 0xe000_0000 0xe00f_ffff CCSR 1M | 116 | 0xe000_0000 0xe00f_ffff CCSR 1M |
| 117 | 0xe200_0000 0xe2ff_ffff PCI IO 16M | 117 | 0xe200_0000 0xe2ff_ffff PCI IO 16M |
| 118 | 0xf000_0000 0xf7ff_ffff SDRAM 128M | 118 | 0xf000_0000 0xf7ff_ffff SDRAM 128M |
| 119 | 0xf800_0000 0xf80f_ffff BCSR 1M | 119 | 0xf800_0000 0xf80f_ffff BCSR 1M |
| 120 | 0xff00_0000 0xffff_ffff FLASH (boot bank) 16M | 120 | 0xff00_0000 0xffff_ffff FLASH (boot bank) 16M |
| 121 | 121 | ||
| 122 | 2.2 We are submitting Linux kernel patches for MPC8540 and MPC8560. You | 122 | 2.2 We are submitting Linux kernel patches for MPC8540 and MPC8560. You |
| 123 | can download them from linuxppc-2.4 public source. Please make sure the | 123 | can download them from linuxppc-2.4 public source. Please make sure the |
| 124 | kernel's ppcboot.h is consistent with U-Boot's u-boot.h. You can use two | 124 | kernel's ppcboot.h is consistent with U-Boot's u-boot.h. You can use two |
| 125 | default configuration files as your starting points to configure the | 125 | default configuration files as your starting points to configure the |
| 126 | kernel: | 126 | kernel: |
| 127 | arch/powerpc/configs/mpc8540_ads_defconfig | 127 | arch/powerpc/configs/mpc8540_ads_defconfig |
| 128 | arch/powerpc/configs/mpc8560_ads_defconfig | 128 | arch/powerpc/configs/mpc8560_ads_defconfig |
| 129 | 129 | ||
| 130 | 3. DEFINITIONS AND COMPILATION | 130 | 3. DEFINITIONS AND COMPILATION |
| 131 | 131 | ||
| 132 | 3.1 Explanation on NEW definitions in: | 132 | 3.1 Explanation on NEW definitions in: |
| 133 | include/configs/MPC8540ADS.h | 133 | include/configs/MPC8540ADS.h |
| 134 | include/configs/MPC8560ADS.h | 134 | include/configs/MPC8560ADS.h |
| 135 | 135 | ||
| 136 | CONFIG_BOOKE BOOKE(e.g. Motorola MPC85xx, AMCC 440, etc) | 136 | CONFIG_BOOKE BOOKE(e.g. Motorola MPC85xx, AMCC 440, etc) |
| 137 | CONFIG_E500 BOOKE e500 family(Motorola) | 137 | CONFIG_E500 BOOKE e500 family(Motorola) |
| 138 | CONFIG_MPC85xx MPC8540,MPC8560 and their derivatives | 138 | CONFIG_MPC85xx MPC8540,MPC8560 and their derivatives |
| 139 | CONFIG_MPC8540 MPC8540 specific | 139 | CONFIG_MPC8540 MPC8540 specific |
| 140 | CONFIG_MPC8540ADS MPC8540ADS board specific | 140 | CONFIG_MPC8540ADS MPC8540ADS board specific |
| 141 | CONFIG_MPC8560ADS MPC8560ADS board specific | 141 | CONFIG_MPC8560ADS MPC8560ADS board specific |
| 142 | CONFIG_TSEC_ENET Use on-chip 10/100/1000 ethernet for networking | 142 | CONFIG_TSEC_ENET Use on-chip 10/100/1000 ethernet for networking |
| 143 | CONFIG_SPD_EEPROM Use SPD EEPROM for DDR auto configuration, you can | 143 | CONFIG_SPD_EEPROM Use SPD EEPROM for DDR auto configuration, you can |
| 144 | also manual config the DDR after undef this | 144 | also manual config the DDR after undef this |
| 145 | definition. | 145 | definition. |
| 146 | CONFIG_DDR_ECC only for ECC DDR module | 146 | CONFIG_DDR_ECC only for ECC DDR module |
| 147 | CONFIG_SYS_FSL_ERRATUM_DDR_MSYNC_IN DLL fix on some ADS boards needed | 147 | CONFIG_SYS_FSL_ERRATUM_DDR_MSYNC_IN DLL fix on some ADS boards needed |
| 148 | for more stability. | 148 | for more stability. |
| 149 | CONFIG_HAS_FEC If an FEC is on chip, set to 1, else 0. | 149 | CONFIG_HAS_FEC If an FEC is on chip, set to 1, else 0. |
| 150 | 150 | ||
| 151 | Other than the above definitions, the rest in the config files are | 151 | Other than the above definitions, the rest in the config files are |
| 152 | straightforward. | 152 | straightforward. |
| 153 | 153 | ||
| 154 | 154 | ||
| 155 | 3.2 Compilation | 155 | 3.2 Compilation |
| 156 | 156 | ||
| 157 | Assuming you're using BASH shell: | 157 | Assuming you're using BASH shell: |
| 158 | 158 | ||
| 159 | export CROSS_COMPILE=your-cross-compile-prefix | 159 | export CROSS_COMPILE=your-cross-compile-prefix |
| 160 | cd u-boot | 160 | cd u-boot |
| 161 | make distclean | 161 | make distclean |
| 162 | make MPC8560ADS_config (or make MPC8540ADS_config) | 162 | make MPC8560ADS_config (or make MPC8540ADS_config) |
| 163 | make | 163 | make |
| 164 | 164 | ||
| 165 | 4. Notes: | 165 | 4. Notes: |
| 166 | 166 | ||
| 167 | 4.1 When connecting with kermit, the following commands must be present.in | 167 | 4.1 When connecting with kermit, the following commands must be present.in |
| 168 | your .kermrc file. These are especially important when booting as | 168 | your .kermrc file. These are especially important when booting as |
| 169 | MPC8560, as the serial console will not work without them: | 169 | MPC8560, as the serial console will not work without them: |
| 170 | 170 | ||
| 171 | set speed 115200 | 171 | set speed 115200 |
| 172 | set carrier-watch off | 172 | set carrier-watch off |
| 173 | set handshake none | 173 | set handshake none |
| 174 | set flow-control none | 174 | set flow-control none |
| 175 | robust | 175 | robust |
| 176 | 176 | ||
| 177 | 177 | ||
| 178 | 4.2 Sometimes after U-Boot is up, the 'tftp' won't work well with TSEC | 178 | 4.2 Sometimes after U-Boot is up, the 'tftp' won't work well with TSEC |
| 179 | ethernet. If that happens, you can try the following steps to make | 179 | ethernet. If that happens, you can try the following steps to make |
| 180 | network work: | 180 | network work: |
| 181 | 181 | ||
| 182 | MPC8560ADS>tftp 1000000 pImage | 182 | MPC8560ADS>tftp 1000000 pImage |
| 183 | (if it hangs, use Ctrl-C to quit) | 183 | (if it hangs, use Ctrl-C to quit) |
| 184 | MPC8560ADS>nm fdf24524 | 184 | MPC8560ADS>nm fdf24524 |
| 185 | >0 | 185 | >0 |
| 186 | >1 | 186 | >1 |
| 187 | >. (to quit this memory operation) | 187 | >. (to quit this memory operation) |
| 188 | MPC8560ADS>tftp 1000000 pImage | 188 | MPC8560ADS>tftp 1000000 pImage |
| 189 | 189 | ||
| 190 | 4.3 If you're one of the early developers using the Rev1 8540/8560 chips, | 190 | 4.3 If you're one of the early developers using the Rev1 8540/8560 chips, |
| 191 | please use U-Boot 1.0.0, as the newer silicon will only support Rev2 | 191 | please use U-Boot 1.0.0, as the newer silicon will only support Rev2 |
| 192 | and future revisions of 8540/8560. | 192 | and future revisions of 8540/8560. |
| 193 | 193 | ||
| 194 | 194 | ||
| 195 | 4.4 Reflash U-boot Image using U-boot | 195 | 4.4 Reflash U-boot Image using U-boot |
| 196 | 196 | ||
| 197 | tftp 10000 u-boot.bin | 197 | tftp 10000 u-boot.bin |
| 198 | protect off fff80000 ffffffff | 198 | protect off fff80000 ffffffff |
| 199 | erase fff80000 ffffffff | 199 | erase fff80000 ffffffff |
| 200 | cp.b 10000 fff80000 80000 | 200 | cp.b 10000 fff80000 80000 |
| 201 | 201 | ||
| 202 | 202 | ||
| 203 | 4.5 Reflash U-Boot with a BDI-2000 | 203 | 4.5 Reflash U-Boot with a BDI-2000 |
| 204 | 204 | ||
| 205 | BDI> erase 0xFFF80000 0x4000 0x20 | 205 | BDI> erase 0xFFF80000 0x4000 0x20 |
| 206 | BDI> prog 0xfff80000 u-boot.bin.8560ads | 206 | BDI> prog 0xfff80000 u-boot.bin.8560ads |
| 207 | BDI> verify | 207 | BDI> verify |
| 208 | 208 | ||
| 209 | 209 | ||
| 210 | 5. Screen dump MPC8540ADS board | 210 | 5. Screen dump MPC8540ADS board |
| 211 | 211 | ||
| 212 | U-Boot 1.1.2(pq3-20040707-0) (Jul 6 2004 - 17:34:25) | 212 | U-Boot 1.1.2(pq3-20040707-0) (Jul 6 2004 - 17:34:25) |
| 213 | 213 | ||
| 214 | Freescale PowerPC | 214 | Freescale PowerPC |
| 215 | Core: E500, Version: 2.0, (0x80200020) | 215 | Core: E500, Version: 2.0, (0x80200020) |
| 216 | System: 8540, Version: 2.0, (0x80300020) | 216 | System: 8540, Version: 2.0, (0x80300020) |
| 217 | Clocks: CPU: 825 MHz, CCB: 330 MHz, DDR: 165 MHz, LBC: 82 MHz | 217 | Clocks: CPU: 825 MHz, CCB: 330 MHz, DDR: 165 MHz, LBC: 82 MHz |
| 218 | L1 D-cache 32KB, L1 I-cache 32KB enabled. | 218 | L1 D-cache 32KB, L1 I-cache 32KB enabled. |
| 219 | Board: ADS | 219 | Board: ADS |
| 220 | PCI1: 32 bit, 66 MHz (compiled) | 220 | PCI1: 32 bit, 66 MHz (compiled) |
| 221 | I2C: ready | 221 | I2C: ready |
| 222 | DRAM: Initializing | 222 | DRAM: Initializing |
| 223 | SDRAM: 64 MB | 223 | SDRAM: 64 MB |
| 224 | DDR: 256 MB | 224 | DDR: 256 MB |
| 225 | FLASH: 16 MB | 225 | FLASH: 16 MB |
| 226 | L2 cache enabled: 256KB | 226 | L2 cache enabled: 256KB |
| 227 | *** Warning - bad CRC, using default environment | 227 | *** Warning - bad CRC, using default environment |
| 228 | 228 | ||
| 229 | In: serial | 229 | In: serial |
| 230 | Out: serial | 230 | Out: serial |
| 231 | Err: serial | 231 | Err: serial |
| 232 | Net: MOTO ENET0: PHY is Marvell 88E1011S (1410c62) | 232 | Net: MOTO ENET0: PHY is Marvell 88E1011S (1410c62) |
| 233 | MOTO ENET1: PHY is Marvell 88E1011S (1410c62) | 233 | MOTO ENET1: PHY is Marvell 88E1011S (1410c62) |
| 234 | MOTO ENET2: PHY is Davicom DM9161E (181b881) | 234 | MOTO ENET2: PHY is Davicom DM9161E (181b881) |
| 235 | MOTO ENET0, MOTO ENET1, MOTO ENET2 | 235 | MOTO ENET0, MOTO ENET1, MOTO ENET2 |
| 236 | Hit any key to stop autoboot: 0 | 236 | Hit any key to stop autoboot: 0 |
| 237 | => | 237 | => |
| 238 | => fli | 238 | => fli |
| 239 | 239 | ||
| 240 | Bank # 1: Intel 28F640J3A (64 Mbit, 64 x 128K) | 240 | Bank # 1: Intel 28F640J3A (64 Mbit, 64 x 128K) |
| 241 | Size: 16 MB in 64 Sectors | 241 | Size: 16 MB in 64 Sectors |
| 242 | Sector Start Addresses: | 242 | Sector Start Addresses: |
| 243 | FF000000 FF040000 FF080000 FF0C0000 FF100000 | 243 | FF000000 FF040000 FF080000 FF0C0000 FF100000 |
| 244 | FF140000 FF180000 FF1C0000 FF200000 FF240000 | 244 | FF140000 FF180000 FF1C0000 FF200000 FF240000 |
| 245 | FF280000 FF2C0000 FF300000 FF340000 FF380000 | 245 | FF280000 FF2C0000 FF300000 FF340000 FF380000 |
| 246 | FF3C0000 FF400000 FF440000 FF480000 FF4C0000 | 246 | FF3C0000 FF400000 FF440000 FF480000 FF4C0000 |
| 247 | FF500000 FF540000 FF580000 FF5C0000 FF600000 | 247 | FF500000 FF540000 FF580000 FF5C0000 FF600000 |
| 248 | FF640000 FF680000 FF6C0000 FF700000 FF740000 | 248 | FF640000 FF680000 FF6C0000 FF700000 FF740000 |
| 249 | FF780000 FF7C0000 FF800000 FF840000 FF880000 | 249 | FF780000 FF7C0000 FF800000 FF840000 FF880000 |
| 250 | FF8C0000 FF900000 FF940000 FF980000 FF9C0000 | 250 | FF8C0000 FF900000 FF940000 FF980000 FF9C0000 |
| 251 | FFA00000 FFA40000 FFA80000 FFAC0000 FFB00000 | 251 | FFA00000 FFA40000 FFA80000 FFAC0000 FFB00000 |
| 252 | FFB40000 FFB80000 FFBC0000 FFC00000 FFC40000 | 252 | FFB40000 FFB80000 FFBC0000 FFC00000 FFC40000 |
| 253 | FFC80000 FFCC0000 FFD00000 FFD40000 FFD80000 | 253 | FFC80000 FFCC0000 FFD00000 FFD40000 FFD80000 |
| 254 | FFDC0000 FFE00000 FFE40000 FFE80000 FFEC0000 | 254 | FFDC0000 FFE00000 FFE40000 FFE80000 FFEC0000 |
| 255 | FFF00000 FFF40000 FFF80000 (RO) FFFC0000 (RO) | 255 | FFF00000 FFF40000 FFF80000 (RO) FFFC0000 (RO) |
| 256 | 256 | ||
| 257 | => bdinfo | 257 | => bdinfo |
| 258 | memstart = 0x00000000 | 258 | memstart = 0x00000000 |
| 259 | memsize = 0x10000000 | 259 | memsize = 0x10000000 |
| 260 | flashstart = 0xFF000000 | 260 | flashstart = 0xFF000000 |
| 261 | flashsize = 0x01000000 | 261 | flashsize = 0x01000000 |
| 262 | flashoffset = 0x00000000 | 262 | flashoffset = 0x00000000 |
| 263 | sramstart = 0x00000000 | 263 | sramstart = 0x00000000 |
| 264 | sramsize = 0x00000000 | 264 | sramsize = 0x00000000 |
| 265 | immr_base = 0xE0000000 | 265 | immr_base = 0xE0000000 |
| 266 | bootflags = 0xE4013F80 | 266 | bootflags = 0xE4013F80 |
| 267 | intfreq = 825 MHz | 267 | intfreq = 825 MHz |
| 268 | busfreq = 330 MHz | 268 | busfreq = 330 MHz |
| 269 | ethaddr = 00:E0:0C:00:00:FD | 269 | ethaddr = 00:E0:0C:00:00:FD |
| 270 | eth1addr = 00:E0:0C:00:01:FD | 270 | eth1addr = 00:E0:0C:00:01:FD |
| 271 | eth2addr = 00:E0:0C:00:02:FD | 271 | eth2addr = 00:E0:0C:00:02:FD |
| 272 | IP addr = 192.168.1.253 | 272 | IP addr = 192.168.1.253 |
| 273 | baudrate = 115200 bps | 273 | baudrate = 115200 bps |
| 274 | 274 | ||
| 275 | 275 | ||
| 276 | => printenv | 276 | => printenv |
| 277 | bootcmd=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;bootm $loadaddr | 277 | bootcmd=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;bootm $loadaddr |
| 278 | ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;bootm $loadaddr $ramdiskaddr | 278 | ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;bootm $loadaddr $ramdiskaddr |
| 279 | nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;bootm $loadaddr | 279 | nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;bootm $loadaddr |
| 280 | bootdelay=10 | 280 | bootdelay=10 |
| 281 | baudrate=115200 | 281 | baudrate=115200 |
| 282 | loads_echo=1 | 282 | loads_echo=1 |
| 283 | ethaddr=00:E0:0C:00:00:FD | 283 | ethaddr=00:E0:0C:00:00:FD |
| 284 | eth1addr=00:E0:0C:00:01:FD | 284 | eth1addr=00:E0:0C:00:01:FD |
| 285 | eth2addr=00:E0:0C:00:02:FD | 285 | eth2addr=00:E0:0C:00:02:FD |
| 286 | ipaddr=192.168.1.253 | 286 | ipaddr=192.168.1.253 |
| 287 | serverip=192.168.1.1 | 287 | serverip=192.168.1.1 |
| 288 | rootpath=/nfsroot | 288 | rootpath=/nfsroot |
| 289 | gatewayip=192.168.1.1 | 289 | gatewayip=192.168.1.1 |
| 290 | netmask=255.255.255.0 | 290 | netmask=255.255.255.0 |
| 291 | hostname=unknown | 291 | hostname=unknown |
| 292 | bootfile=your.uImage | 292 | bootfile=your.uImage |
| 293 | loadaddr=200000 | 293 | loadaddr=200000 |
| 294 | netdev=eth0 | 294 | netdev=eth0 |
| 295 | consoledev=ttyS0 | 295 | consoledev=ttyS0 |
| 296 | ramdiskaddr=400000 | 296 | ramdiskaddr=400000 |
| 297 | ramdiskfile=your.ramdisk.u-boot | 297 | ramdiskfile=your.ramdisk.u-boot |
| 298 | stdin=serial | 298 | stdin=serial |
| 299 | stdout=serial | 299 | stdout=serial |
| 300 | stderr=serial | 300 | stderr=serial |
| 301 | ethact=MOTO ENET0 | 301 | ethact=MOTO ENET0 |
| 302 | 302 | ||
| 303 | Environment size: 1020/8188 bytes | 303 | Environment size: 1020/8188 bytes |
| 304 | 304 |
doc/README.mvbc_p
| 1 | Matrix Vision mvBlueCOUGAR-P (mvBC-P) | 1 | Matrix Vision mvBlueCOUGAR-P (mvBC-P) |
| 2 | ------------------------------------- | 2 | ------------------------------------- |
| 3 | 3 | ||
| 4 | 1. Board Description | 4 | 1. Board Description |
| 5 | 5 | ||
| 6 | The mvBC-P is a 70x40x40mm multi board gigabit ethernet network camera | 6 | The mvBC-P is a 70x40x40mm multi board gigabit ethernet network camera |
| 7 | with main focus on GigEVision protocol in combination with local image | 7 | with main focus on GigEVision protocol in combination with local image |
| 8 | preprocessing. | 8 | preprocessing. |
| 9 | 9 | ||
| 10 | Power Supply is either VDC 48V or Pover over Ethernet (PoE). | 10 | Power Supply is either VDC 48V or Pover over Ethernet (PoE). |
| 11 | 11 | ||
| 12 | 2 System Components | 12 | 2 System Components |
| 13 | 13 | ||
| 14 | 2.1 CPU | 14 | 2.1 CPU |
| 15 | Freescale MPC5200B CPU running at 400MHz core and 133MHz XLB/IPB. | 15 | Freescale MPC5200B CPU running at 400MHz core and 133MHz XLB/IPB. |
| 16 | 64MB SDRAM @ 133MHz. | 16 | 64MB SDRAM @ 133MHz. |
| 17 | 8 MByte Nor Flash on local bus. | 17 | 8 MByte Nor Flash on local bus. |
| 18 | 1 serial ports. Console running on ttyS0 @ 115200 8N1. | 18 | 1 serial ports. Console running on ttyS0 @ 115200 8N1. |
| 19 | 19 | ||
| 20 | 2.2 PCI | 20 | 2.2 PCI |
| 21 | PCI clock fixed at 66MHz. Arbitration inside FPGA. | 21 | PCI clock fixed at 66MHz. Arbitration inside FPGA. |
| 22 | Intel GD82541ER network MAC/PHY and FPGA connected. | 22 | Intel GD82541ER network MAC/PHY and FPGA connected. |
| 23 | 23 | ||
| 24 | 2.3 FPGA | 24 | 2.3 FPGA |
| 25 | Altera Cyclone-II EP2C8 with PCI DMA engine. | 25 | Altera Cyclone-II EP2C8 with PCI DMA engine. |
| 26 | Connects to Matrix Vision specific CCD/CMOS sensor interface. | 26 | Connects to Matrix Vision specific CCD/CMOS sensor interface. |
| 27 | Utilizes 64MB Nand Flash. | 27 | Utilizes 64MB Nand Flash. |
| 28 | 28 | ||
| 29 | 2.3.1 I/O @ FPGA | 29 | 2.3.1 I/O @ FPGA |
| 30 | 2 Outputs : photo coupler | 30 | 2 Outputs : photo coupler |
| 31 | 2 Inputs : photo coupler | 31 | 2 Inputs : photo coupler |
| 32 | 32 | ||
| 33 | 2.4 I2C | 33 | 2.4 I2C |
| 34 | LM75 @ 0x90 for temperature monitoring. | 34 | LM75 @ 0x90 for temperature monitoring. |
| 35 | EEPROM @ 0xA0 for vendor specifics. | 35 | EEPROM @ 0xA0 for vendor specifics. |
| 36 | image sensor interface (slave adresses depend on sensor) | 36 | image sensor interface (slave addresses depend on sensor) |
| 37 | 37 | ||
| 38 | 3 Flash layout. | 38 | 3 Flash layout. |
| 39 | 39 | ||
| 40 | reset vector is 0x00000100, i.e. "LOWBOOT". | 40 | reset vector is 0x00000100, i.e. "LOWBOOT". |
| 41 | 41 | ||
| 42 | FF800000 u-boot | 42 | FF800000 u-boot |
| 43 | FF840000 u-boot script image | 43 | FF840000 u-boot script image |
| 44 | FF850000 redundant u-boot script image | 44 | FF850000 redundant u-boot script image |
| 45 | FF860000 FPGA raw bit file | 45 | FF860000 FPGA raw bit file |
| 46 | FF8A0000 tbd. | 46 | FF8A0000 tbd. |
| 47 | FF900000 root FS | 47 | FF900000 root FS |
| 48 | FFC00000 kernel | 48 | FFC00000 kernel |
| 49 | FFFC0000 device tree blob | 49 | FFFC0000 device tree blob |
| 50 | FFFD0000 redundant device tree blob | 50 | FFFD0000 redundant device tree blob |
| 51 | FFFE0000 environment | 51 | FFFE0000 environment |
| 52 | FFFF0000 redundant environment | 52 | FFFF0000 redundant environment |
| 53 | 53 | ||
| 54 | mtd partitions are propagated to linux kernel via device tree blob. | 54 | mtd partitions are propagated to linux kernel via device tree blob. |
| 55 | 55 | ||
| 56 | 4 Booting | 56 | 4 Booting |
| 57 | 57 | ||
| 58 | On startup the bootscript @ FF840000 is executed. This script can be | 58 | On startup the bootscript @ FF840000 is executed. This script can be |
| 59 | exchanged easily. Default boot mode is "boot from flash", i.e. system | 59 | exchanged easily. Default boot mode is "boot from flash", i.e. system |
| 60 | works stand-alone. | 60 | works stand-alone. |
| 61 | 61 | ||
| 62 | This behaviour depends on some environment variables : | 62 | This behaviour depends on some environment variables : |
| 63 | 63 | ||
| 64 | "netboot" : yes ->try dhcp/bootp and boot from network. | 64 | "netboot" : yes ->try dhcp/bootp and boot from network. |
| 65 | A "dhcp_client_id" and "dhcp_vendor-class-identifier" can be used for | 65 | A "dhcp_client_id" and "dhcp_vendor-class-identifier" can be used for |
| 66 | DHCP server configuration, e.g. to provide different images to | 66 | DHCP server configuration, e.g. to provide different images to |
| 67 | different devices. | 67 | different devices. |
| 68 | 68 | ||
| 69 | During netboot the system tries to get 3 image files: | 69 | During netboot the system tries to get 3 image files: |
| 70 | 1. Kernel - name + data is given during BOOTP. | 70 | 1. Kernel - name + data is given during BOOTP. |
| 71 | 2. Initrd - name is stored in "initrd_name" | 71 | 2. Initrd - name is stored in "initrd_name" |
| 72 | 3. device tree blob - name is stored in "dtb_name" | 72 | 3. device tree blob - name is stored in "dtb_name" |
| 73 | Fallback files are the flash versions. | 73 | Fallback files are the flash versions. |
| 74 | 74 |
doc/README.mvblm7
| 1 | Matrix Vision mvBlueLYNX-M7 (mvBL-M7) | 1 | Matrix Vision mvBlueLYNX-M7 (mvBL-M7) |
| 2 | ------------------------------------- | 2 | ------------------------------------- |
| 3 | 3 | ||
| 4 | 1. Board Description | 4 | 1. Board Description |
| 5 | 5 | ||
| 6 | The mvBL-M7 is a 120x120mm single board computing platform | 6 | The mvBL-M7 is a 120x120mm single board computing platform |
| 7 | with strong focus on stereo image processing applications. | 7 | with strong focus on stereo image processing applications. |
| 8 | 8 | ||
| 9 | Power Supply is either VDC 12-48V or Pover over Ethernet (PoE) | 9 | Power Supply is either VDC 12-48V or Pover over Ethernet (PoE) |
| 10 | on any port (requires add-on board). | 10 | on any port (requires add-on board). |
| 11 | 11 | ||
| 12 | 2 System Components | 12 | 2 System Components |
| 13 | 13 | ||
| 14 | 2.1 CPU | 14 | 2.1 CPU |
| 15 | Freescale MPC8343VRAGDB CPU running at 400MHz core and 266MHz csb. | 15 | Freescale MPC8343VRAGDB CPU running at 400MHz core and 266MHz csb. |
| 16 | 512MByte DDR-II memory @ 133MHz. | 16 | 512MByte DDR-II memory @ 133MHz. |
| 17 | 8 MByte Nor Flash on local bus. | 17 | 8 MByte Nor Flash on local bus. |
| 18 | 2 Vitesse VSC8601 RGMII ethernet Phys. | 18 | 2 Vitesse VSC8601 RGMII ethernet Phys. |
| 19 | 1 USB host controller over ULPI I/F. | 19 | 1 USB host controller over ULPI I/F. |
| 20 | 2 serial ports. Console running on ttyS0 @ 115200 8N1. | 20 | 2 serial ports. Console running on ttyS0 @ 115200 8N1. |
| 21 | 1 SD-Card slot connected to SPI. | 21 | 1 SD-Card slot connected to SPI. |
| 22 | System configuration (HRCW) is taken from I2C EEPROM. | 22 | System configuration (HRCW) is taken from I2C EEPROM. |
| 23 | 23 | ||
| 24 | 2.2 PCI | 24 | 2.2 PCI |
| 25 | A miniPCI Type-III socket is present. PCI clock fixed at 66MHz. | 25 | A miniPCI Type-III socket is present. PCI clock fixed at 66MHz. |
| 26 | 26 | ||
| 27 | 2.3 FPGA | 27 | 2.3 FPGA |
| 28 | Altera Cyclone-II EP2C20/35 with PCI DMA engines. | 28 | Altera Cyclone-II EP2C20/35 with PCI DMA engines. |
| 29 | Connects to dual Matrix Vision specific CCD/CMOS sensor interfaces. | 29 | Connects to dual Matrix Vision specific CCD/CMOS sensor interfaces. |
| 30 | Utilizes another 256MB DDR-II memory and 32-128MB Nand Flash. | 30 | Utilizes another 256MB DDR-II memory and 32-128MB Nand Flash. |
| 31 | 31 | ||
| 32 | 2.3.1 I/O @ FPGA | 32 | 2.3.1 I/O @ FPGA |
| 33 | 2x8 Outputs : Infineon High-Side Switches to Main Supply. | 33 | 2x8 Outputs : Infineon High-Side Switches to Main Supply. |
| 34 | 2x8 Inputs : Programmable input threshold + trigger capabilities | 34 | 2x8 Inputs : Programmable input threshold + trigger capabilities |
| 35 | 2 dedicated flash interfaces for illuminator boards. | 35 | 2 dedicated flash interfaces for illuminator boards. |
| 36 | Cross trigger for chaining several boards. | 36 | Cross trigger for chaining several boards. |
| 37 | 37 | ||
| 38 | 2.4 I2C | 38 | 2.4 I2C |
| 39 | Bus1: | 39 | Bus1: |
| 40 | MAX5381 DAC @ 0x60 for 1st digital input threshold. | 40 | MAX5381 DAC @ 0x60 for 1st digital input threshold. |
| 41 | LM75 @ 0x90 for temperature monitoring. | 41 | LM75 @ 0x90 for temperature monitoring. |
| 42 | EEPROM @ 0xA0 for system setup (HRCW etc.) + vendor specifics. | 42 | EEPROM @ 0xA0 for system setup (HRCW etc.) + vendor specifics. |
| 43 | 1st image sensor interface (slave adresses depend on sensor) | 43 | 1st image sensor interface (slave addresses depend on sensor) |
| 44 | Bus2: | 44 | Bus2: |
| 45 | MAX5381 DAC @ 0x60 for 2nd digital input threshold. | 45 | MAX5381 DAC @ 0x60 for 2nd digital input threshold. |
| 46 | 2nd image sensor interface (slave adresses depend on sensor) | 46 | 2nd image sensor interface (slave addresses depend on sensor) |
| 47 | 47 | ||
| 48 | 3 Flash layout. | 48 | 3 Flash layout. |
| 49 | 49 | ||
| 50 | reset vector is 0xFFF00100, i.e. "HIGHBOOT". | 50 | reset vector is 0xFFF00100, i.e. "HIGHBOOT". |
| 51 | 51 | ||
| 52 | FF800000 environment | 52 | FF800000 environment |
| 53 | FF802000 redundant environment | 53 | FF802000 redundant environment |
| 54 | FF804000 u-boot script image | 54 | FF804000 u-boot script image |
| 55 | FF806000 redundant u-boot script image | 55 | FF806000 redundant u-boot script image |
| 56 | FF808000 device tree blob | 56 | FF808000 device tree blob |
| 57 | FF80A000 redundant device tree blob | 57 | FF80A000 redundant device tree blob |
| 58 | FF80C000 tbd. | 58 | FF80C000 tbd. |
| 59 | FF80E000 tbd. | 59 | FF80E000 tbd. |
| 60 | FF810000 kernel | 60 | FF810000 kernel |
| 61 | FFC00000 root FS | 61 | FFC00000 root FS |
| 62 | FFF00000 u-boot | 62 | FFF00000 u-boot |
| 63 | FFF80000 FPGA raw bit file | 63 | FFF80000 FPGA raw bit file |
| 64 | 64 | ||
| 65 | mtd partitions are propagated to linux kernel via device tree blob. | 65 | mtd partitions are propagated to linux kernel via device tree blob. |
| 66 | 66 | ||
| 67 | 4 Booting | 67 | 4 Booting |
| 68 | 68 | ||
| 69 | On startup the bootscript @ FF804000 is executed. This script can be | 69 | On startup the bootscript @ FF804000 is executed. This script can be |
| 70 | exchanged easily. Default boot mode is "boot from flash", i.e. system | 70 | exchanged easily. Default boot mode is "boot from flash", i.e. system |
| 71 | works stand-alone. | 71 | works stand-alone. |
| 72 | 72 | ||
| 73 | This behaviour depends on some environment variables : | 73 | This behaviour depends on some environment variables : |
| 74 | 74 | ||
| 75 | "netboot" : yes ->try dhcp/bootp and boot from network. | 75 | "netboot" : yes ->try dhcp/bootp and boot from network. |
| 76 | A "dhcp_client_id" and "dhcp_vendor-class-identifier" can be used for | 76 | A "dhcp_client_id" and "dhcp_vendor-class-identifier" can be used for |
| 77 | DHCP server configuration, e.g. to provide different images to | 77 | DHCP server configuration, e.g. to provide different images to |
| 78 | different devices. | 78 | different devices. |
| 79 | 79 | ||
| 80 | During netboot the system tries to get 3 image files: | 80 | During netboot the system tries to get 3 image files: |
| 81 | 1. Kernel - name + data is given during BOOTP. | 81 | 1. Kernel - name + data is given during BOOTP. |
| 82 | 2. Initrd - name is stored in "initrd_name" | 82 | 2. Initrd - name is stored in "initrd_name" |
| 83 | 3. device tree blob - name is stored in "dtb_name" | 83 | 3. device tree blob - name is stored in "dtb_name" |
| 84 | Fallback files are the flash versions. | 84 | Fallback files are the flash versions. |
| 85 | 85 |
doc/README.mvsmr
| 1 | Matrix Vision mvSMR | 1 | Matrix Vision mvSMR |
| 2 | ------------------- | 2 | ------------------- |
| 3 | 3 | ||
| 4 | 1. Board Description | 4 | 1. Board Description |
| 5 | 5 | ||
| 6 | The mvSMR is a 75x130mm single image processing board used | 6 | The mvSMR is a 75x130mm single image processing board used |
| 7 | in automation. Power Supply is 24VDC. | 7 | in automation. Power Supply is 24VDC. |
| 8 | 8 | ||
| 9 | 2 System Components | 9 | 2 System Components |
| 10 | 10 | ||
| 11 | 2.1 CPU | 11 | 2.1 CPU |
| 12 | Freescale MPC5200B CPU running at 400MHz core and 133MHz XLB/IPB. | 12 | Freescale MPC5200B CPU running at 400MHz core and 133MHz XLB/IPB. |
| 13 | 64MB DDR-I @ 133MHz. | 13 | 64MB DDR-I @ 133MHz. |
| 14 | 8 MByte Nor Flash on local bus. | 14 | 8 MByte Nor Flash on local bus. |
| 15 | 2 serial ports. Console running on ttyS0 @ 115200 8N1. | 15 | 2 serial ports. Console running on ttyS0 @ 115200 8N1. |
| 16 | 16 | ||
| 17 | 2.2 PCI | 17 | 2.2 PCI |
| 18 | PCI clock fixed at 33MHz due to old'n'slow Xilinx PCI core. | 18 | PCI clock fixed at 33MHz due to old'n'slow Xilinx PCI core. |
| 19 | 19 | ||
| 20 | 2.3 FPGA | 20 | 2.3 FPGA |
| 21 | Xilinx Spartan-3 XC3S200 with PCI DMA engine. | 21 | Xilinx Spartan-3 XC3S200 with PCI DMA engine. |
| 22 | Connects to Matrix Vision specific CCD/CMOS sensor interface. | 22 | Connects to Matrix Vision specific CCD/CMOS sensor interface. |
| 23 | 23 | ||
| 24 | 2.4 I2C | 24 | 2.4 I2C |
| 25 | EEPROM @ 0xA0 for vendor specifics. | 25 | EEPROM @ 0xA0 for vendor specifics. |
| 26 | image sensor interface (slave adresses depend on sensor) | 26 | image sensor interface (slave addresses depend on sensor) |
| 27 | 27 | ||
| 28 | 3 Flash layout. | 28 | 3 Flash layout. |
| 29 | 29 | ||
| 30 | reset vector is 0x00000100, i.e. "LOWBOOT". | 30 | reset vector is 0x00000100, i.e. "LOWBOOT". |
| 31 | 31 | ||
| 32 | FF800000 u-boot | 32 | FF800000 u-boot |
| 33 | FF806000 u-boot script image | 33 | FF806000 u-boot script image |
| 34 | FF808000 u-boot environment | 34 | FF808000 u-boot environment |
| 35 | FF840000 FPGA raw bit file | 35 | FF840000 FPGA raw bit file |
| 36 | FF880000 root FS | 36 | FF880000 root FS |
| 37 | FFF00000 kernel | 37 | FFF00000 kernel |
| 38 | 38 | ||
| 39 | 4 Booting | 39 | 4 Booting |
| 40 | 40 | ||
| 41 | On startup the bootscript @ FF806000 is executed. This script can be | 41 | On startup the bootscript @ FF806000 is executed. This script can be |
| 42 | exchanged easily. Default boot mode is "boot from flash", i.e. system | 42 | exchanged easily. Default boot mode is "boot from flash", i.e. system |
| 43 | works stand-alone. | 43 | works stand-alone. |
| 44 | 44 | ||
| 45 | This behaviour depends on some environment variables : | 45 | This behaviour depends on some environment variables : |
| 46 | 46 | ||
| 47 | "netboot" : yes ->try dhcp/bootp and boot from network. | 47 | "netboot" : yes ->try dhcp/bootp and boot from network. |
| 48 | A "dhcp_client_id" and "dhcp_vendor-class-identifier" can be used for | 48 | A "dhcp_client_id" and "dhcp_vendor-class-identifier" can be used for |
| 49 | DHCP server configuration, e.g. to provide different images to | 49 | DHCP server configuration, e.g. to provide different images to |
| 50 | different devices. | 50 | different devices. |
| 51 | 51 | ||
| 52 | During netboot the system tries to get 3 image files: | 52 | During netboot the system tries to get 3 image files: |
| 53 | 1. Kernel - name + data is given during BOOTP. | 53 | 1. Kernel - name + data is given during BOOTP. |
| 54 | 2. Initrd - name is stored in "initrd_name" | 54 | 2. Initrd - name is stored in "initrd_name" |
| 55 | Fallback files are the flash versions. | 55 | Fallback files are the flash versions. |
| 56 | 56 |
doc/README.ocotea
| 1 | AMCC Ocotea Board | 1 | AMCC Ocotea Board |
| 2 | 2 | ||
| 3 | Last Update: March 2, 2004 | 3 | Last Update: March 2, 2004 |
| 4 | ======================================================================= | 4 | ======================================================================= |
| 5 | 5 | ||
| 6 | This file contains some handy info regarding U-Boot and the AMCC | 6 | This file contains some handy info regarding U-Boot and the AMCC |
| 7 | Ocotea 440gx evalutation board. See the README.ppc440 for additional | 7 | Ocotea 440gx evaluation board. See the README.ppc440 for additional |
| 8 | information. | 8 | information. |
| 9 | 9 | ||
| 10 | 10 | ||
| 11 | SWITCH SETTINGS & JUMPERS | 11 | SWITCH SETTINGS & JUMPERS |
| 12 | ========================== | 12 | ========================== |
| 13 | 13 | ||
| 14 | Here's what I've been using successfully. If you feel inclined to | 14 | Here's what I've been using successfully. If you feel inclined to |
| 15 | change things ... please read the docs! | 15 | change things ... please read the docs! |
| 16 | 16 | ||
| 17 | DIPSW U46 U80 | 17 | DIPSW U46 U80 |
| 18 | ------------------------ | 18 | ------------------------ |
| 19 | SW 1 off off | 19 | SW 1 off off |
| 20 | SW 2 on off | 20 | SW 2 on off |
| 21 | SW 3 off off | 21 | SW 3 off off |
| 22 | SW 4 off off | 22 | SW 4 off off |
| 23 | SW 5 off off | 23 | SW 5 off off |
| 24 | SW 6 on on | 24 | SW 6 on on |
| 25 | SW 7 on off | 25 | SW 7 on off |
| 26 | SW 8 on off | 26 | SW 8 on off |
| 27 | 27 | ||
| 28 | J41: strapped | 28 | J41: strapped |
| 29 | J42: open | 29 | J42: open |
| 30 | 30 | ||
| 31 | All others are factory default. | 31 | All others are factory default. |
| 32 | 32 | ||
| 33 | 33 | ||
| 34 | I2C Information | 34 | I2C Information |
| 35 | ===================== | 35 | ===================== |
| 36 | 36 | ||
| 37 | See README.ebony for information. | 37 | See README.ebony for information. |
| 38 | 38 | ||
| 39 | PCI | 39 | PCI |
| 40 | =========================== | 40 | =========================== |
| 41 | 41 | ||
| 42 | Untested at the time of writing. | 42 | Untested at the time of writing. |
| 43 | 43 | ||
| 44 | PPC440GX Ethernet EMACs | 44 | PPC440GX Ethernet EMACs |
| 45 | =========================== | 45 | =========================== |
| 46 | 46 | ||
| 47 | All EMAC ports have been tested and are known to work | 47 | All EMAC ports have been tested and are known to work |
| 48 | with EPS Group 4. | 48 | with EPS Group 4. |
| 49 | 49 | ||
| 50 | Special note about the Cicada CIS8201: | 50 | Special note about the Cicada CIS8201: |
| 51 | The CIS8201 Gigabit PHY comes up in GMII mode by default. | 51 | The CIS8201 Gigabit PHY comes up in GMII mode by default. |
| 52 | One must hit an extended register to allow use of RGMII mode. | 52 | One must hit an extended register to allow use of RGMII mode. |
| 53 | This has been done in the 440gx_enet.c file with a #ifdef/endif | 53 | This has been done in the 440gx_enet.c file with a #ifdef/endif |
| 54 | pair. | 54 | pair. |
| 55 | 55 | ||
| 56 | AMCC does not store the EMAC ethernet addresses within their PIBS bootloader. | 56 | AMCC does not store the EMAC ethernet addresses within their PIBS bootloader. |
| 57 | The addresses contained in the config header file are from my particular | 57 | The addresses contained in the config header file are from my particular |
| 58 | board and you _*should*_ change them to reflect your board either in the | 58 | board and you _*should*_ change them to reflect your board either in the |
| 59 | config file and/or in your environment variables. I found the addresses on | 59 | config file and/or in your environment variables. I found the addresses on |
| 60 | labels on the bottom side of the board. | 60 | labels on the bottom side of the board. |
| 61 | 61 | ||
| 62 | 62 | ||
| 63 | BDI2k or JTAG Debugging | 63 | BDI2k or JTAG Debugging |
| 64 | =========================== | 64 | =========================== |
| 65 | 65 | ||
| 66 | For ease of debugging you can swap the small boot flash and external SRAM | 66 | For ease of debugging you can swap the small boot flash and external SRAM |
| 67 | by changing U46:3 to on. You can then use the sram as your boot flash by | 67 | by changing U46:3 to on. You can then use the sram as your boot flash by |
| 68 | loading the sram via the jtag debugger. | 68 | loading the sram via the jtag debugger. |
| 69 | 69 | ||
| 70 | 70 | ||
| 71 | Regards, | 71 | Regards, |
| 72 | --Travis | 72 | --Travis |
| 73 | <tsawyer@sandburst.com> | 73 | <tsawyer@sandburst.com> |
| 74 | 74 |
doc/README.p2020rdb
| 1 | Overview | 1 | Overview |
| 2 | -------- | 2 | -------- |
| 3 | P2020RDB is a Low End Dual core platform supporting the P2020 processor | 3 | P2020RDB is a Low End Dual core platform supporting the P2020 processor |
| 4 | of QorIQ series. P2020 is an e500 based dual core SOC. | 4 | of QorIQ series. P2020 is an e500 based dual core SOC. |
| 5 | 5 | ||
| 6 | Building U-boot | 6 | Building U-boot |
| 7 | ----------- | 7 | ----------- |
| 8 | To build the u-boot for P2020RDB: | 8 | To build the u-boot for P2020RDB: |
| 9 | make P2020RDB_config | 9 | make P2020RDB_config |
| 10 | make | 10 | make |
| 11 | 11 | ||
| 12 | NOR Flash Banks | 12 | NOR Flash Banks |
| 13 | ----------- | 13 | ----------- |
| 14 | RDB board for P2020 has two flash banks. They are both present on boot. | 14 | RDB board for P2020 has two flash banks. They are both present on boot. |
| 15 | 15 | ||
| 16 | Booting by default is always from the boot bank at 0xef00_0000. | 16 | Booting by default is always from the boot bank at 0xef00_0000. |
| 17 | 17 | ||
| 18 | Memory Map | 18 | Memory Map |
| 19 | ---------- | 19 | ---------- |
| 20 | 0xef00_0000 - 0xef7f_ffff Alernate bank 8MB | 20 | 0xef00_0000 - 0xef7f_ffff Alternate bank 8MB |
| 21 | 0xe800_0000 - 0xefff_ffff Boot bank 8MB | 21 | 0xe800_0000 - 0xefff_ffff Boot bank 8MB |
| 22 | 22 | ||
| 23 | 0xef78_0000 - 0xef7f_ffff Alternate u-boot address 512KB | 23 | 0xef78_0000 - 0xef7f_ffff Alternate u-boot address 512KB |
| 24 | 0xeff8_0000 - 0xefff_ffff Boot u-boot address 512KB | 24 | 0xeff8_0000 - 0xefff_ffff Boot u-boot address 512KB |
| 25 | 25 | ||
| 26 | Switch settings to boot from the NOR flash banks | 26 | Switch settings to boot from the NOR flash banks |
| 27 | ------------------------------------------------ | 27 | ------------------------------------------------ |
| 28 | SW4[8]=0 default NOR Flash bank | 28 | SW4[8]=0 default NOR Flash bank |
| 29 | SW4[8]=1 Alternate NOR Flash bank | 29 | SW4[8]=1 Alternate NOR Flash bank |
| 30 | 30 | ||
| 31 | Flashing Images | 31 | Flashing Images |
| 32 | --------------- | 32 | --------------- |
| 33 | To place a new u-boot image in the alternate flash bank and then boot | 33 | To place a new u-boot image in the alternate flash bank and then boot |
| 34 | with that new image temporarily, use this: | 34 | with that new image temporarily, use this: |
| 35 | tftp 1000000 u-boot.bin | 35 | tftp 1000000 u-boot.bin |
| 36 | erase ef780000 ef7fffff | 36 | erase ef780000 ef7fffff |
| 37 | cp.b 1000000 ef780000 80000 | 37 | cp.b 1000000 ef780000 80000 |
| 38 | 38 | ||
| 39 | Now to boot from the alternate bank change the SW4[8] from 0 to 1. | 39 | Now to boot from the alternate bank change the SW4[8] from 0 to 1. |
| 40 | 40 | ||
| 41 | To program the image in the boot flash bank: | 41 | To program the image in the boot flash bank: |
| 42 | tftp 1000000 u-boot.bin | 42 | tftp 1000000 u-boot.bin |
| 43 | protect off all | 43 | protect off all |
| 44 | erase eff80000 ffffffff | 44 | erase eff80000 ffffffff |
| 45 | cp.b 1000000 eff80000 80000 | 45 | cp.b 1000000 eff80000 80000 |
| 46 | 46 | ||
| 47 | Using the Device Tree Source File | 47 | Using the Device Tree Source File |
| 48 | --------------------------------- | 48 | --------------------------------- |
| 49 | To create the DTB (Device Tree Binary) image file, | 49 | To create the DTB (Device Tree Binary) image file, |
| 50 | use a command similar to this: | 50 | use a command similar to this: |
| 51 | 51 | ||
| 52 | dtc -b 0 -f -I dts -O dtb p2020rdb.dts > p2020rdb.dtb | 52 | dtc -b 0 -f -I dts -O dtb p2020rdb.dts > p2020rdb.dtb |
| 53 | 53 | ||
| 54 | Likely, that .dts file will come from here; | 54 | Likely, that .dts file will come from here; |
| 55 | 55 | ||
| 56 | linux-2.6/arch/powerpc/boot/dts/p2020rdb.dts | 56 | linux-2.6/arch/powerpc/boot/dts/p2020rdb.dts |
| 57 | 57 | ||
| 58 | Booting Linux | 58 | Booting Linux |
| 59 | ------------- | 59 | ------------- |
| 60 | Place a linux uImage in the TFTP disk area. | 60 | Place a linux uImage in the TFTP disk area. |
| 61 | 61 | ||
| 62 | tftp 1000000 uImage.p2020rdb | 62 | tftp 1000000 uImage.p2020rdb |
| 63 | tftp 2000000 rootfs.ext2.gz.uboot | 63 | tftp 2000000 rootfs.ext2.gz.uboot |
| 64 | tftp c00000 p2020rdb.dtb | 64 | tftp c00000 p2020rdb.dtb |
| 65 | bootm 1000000 2000000 c00000 | 65 | bootm 1000000 2000000 c00000 |
| 66 | 66 | ||
| 67 | Implementing AMP(Asymmetric MultiProcessing) | 67 | Implementing AMP(Asymmetric MultiProcessing) |
| 68 | --------------------------------------------- | 68 | --------------------------------------------- |
| 69 | 1. Build kernel image for core0: | 69 | 1. Build kernel image for core0: |
| 70 | 70 | ||
| 71 | a. $ make 85xx/p1_p2_rdb_defconfig | 71 | a. $ make 85xx/p1_p2_rdb_defconfig |
| 72 | 72 | ||
| 73 | b. $ make menuconfig | 73 | b. $ make menuconfig |
| 74 | - un-select "Processor support"-> | 74 | - un-select "Processor support"-> |
| 75 | "Symetric multi-processing support" | 75 | "Symetric multi-processing support" |
| 76 | 76 | ||
| 77 | c. $ make uImage | 77 | c. $ make uImage |
| 78 | 78 | ||
| 79 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core0 | 79 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core0 |
| 80 | 80 | ||
| 81 | 2. Build kernel image for core1: | 81 | 2. Build kernel image for core1: |
| 82 | 82 | ||
| 83 | a. $ make 85xx/p1_p2_rdb_defconfig | 83 | a. $ make 85xx/p1_p2_rdb_defconfig |
| 84 | 84 | ||
| 85 | b. $ make menuconfig | 85 | b. $ make menuconfig |
| 86 | - Un-select "Processor support"-> | 86 | - Un-select "Processor support"-> |
| 87 | "Symetric multi-processing support" | 87 | "Symetric multi-processing support" |
| 88 | - Select "Advanced setup" -> | 88 | - Select "Advanced setup" -> |
| 89 | "Prompt for advanced kernel configuration options" | 89 | "Prompt for advanced kernel configuration options" |
| 90 | - Select | 90 | - Select |
| 91 | "Set physical address where the kernel is loaded" | 91 | "Set physical address where the kernel is loaded" |
| 92 | and set it to 0x20000000, asssuming core1 will | 92 | and set it to 0x20000000, assuming core1 will |
| 93 | start from 512MB. | 93 | start from 512MB. |
| 94 | - Select "Set custom page offset address" | 94 | - Select "Set custom page offset address" |
| 95 | - Select "Set custom kernel base address" | 95 | - Select "Set custom kernel base address" |
| 96 | - Select "Set maximum low memory" | 96 | - Select "Set maximum low memory" |
| 97 | - "Exit" and save the selection. | 97 | - "Exit" and save the selection. |
| 98 | 98 | ||
| 99 | c. $ make uImage | 99 | c. $ make uImage |
| 100 | 100 | ||
| 101 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core1 | 101 | d. $ cp arch/powerpc/boot/uImage /tftpboot/uImage.core1 |
| 102 | 102 | ||
| 103 | 3. Create dtb for core0: | 103 | 3. Create dtb for core0: |
| 104 | 104 | ||
| 105 | $ dtc -I dts -O dtb -f -b 0 | 105 | $ dtc -I dts -O dtb -f -b 0 |
| 106 | arch/powerpc/boot/dts/p2020rdb_camp_core0.dts > | 106 | arch/powerpc/boot/dts/p2020rdb_camp_core0.dts > |
| 107 | /tftpboot/p2020rdb_camp_core0.dtb | 107 | /tftpboot/p2020rdb_camp_core0.dtb |
| 108 | 108 | ||
| 109 | 4. Create dtb for core1: | 109 | 4. Create dtb for core1: |
| 110 | 110 | ||
| 111 | $ dtc -I dts -O dtb -f -b 1 | 111 | $ dtc -I dts -O dtb -f -b 1 |
| 112 | arch/powerpc/boot/dts/p2020rdb_camp_core1.dts > | 112 | arch/powerpc/boot/dts/p2020rdb_camp_core1.dts > |
| 113 | /tftpboot/p2020rdb_camp_core1.dtb | 113 | /tftpboot/p2020rdb_camp_core1.dtb |
| 114 | 114 | ||
| 115 | 5. Bring up two cores separately: | 115 | 5. Bring up two cores separately: |
| 116 | 116 | ||
| 117 | a. Power on the board, under u-boot prompt: | 117 | a. Power on the board, under u-boot prompt: |
| 118 | => setenv <serverip> | 118 | => setenv <serverip> |
| 119 | => setenv <ipaddr> | 119 | => setenv <ipaddr> |
| 120 | => setenv bootargs root=/dev/ram rw console=ttyS0,115200 | 120 | => setenv bootargs root=/dev/ram rw console=ttyS0,115200 |
| 121 | b. Bring up core1's kernel first: | 121 | b. Bring up core1's kernel first: |
| 122 | => setenv bootm_low 0x20000000 | 122 | => setenv bootm_low 0x20000000 |
| 123 | => setenv bootm_size 0x10000000 | 123 | => setenv bootm_size 0x10000000 |
| 124 | => tftp 21000000 uImage.core1 | 124 | => tftp 21000000 uImage.core1 |
| 125 | => tftp 22000000 ramdiskfile | 125 | => tftp 22000000 ramdiskfile |
| 126 | => tftp 20c00000 p2020rdb_camp_core1.dtb | 126 | => tftp 20c00000 p2020rdb_camp_core1.dtb |
| 127 | => interrupts off | 127 | => interrupts off |
| 128 | => bootm start 21000000 22000000 20c00000 | 128 | => bootm start 21000000 22000000 20c00000 |
| 129 | => bootm loados | 129 | => bootm loados |
| 130 | => bootm ramdisk | 130 | => bootm ramdisk |
| 131 | => bootm fdt | 131 | => bootm fdt |
| 132 | => fdt boardsetup | 132 | => fdt boardsetup |
| 133 | => fdt chosen $initrd_start $initrd_end | 133 | => fdt chosen $initrd_start $initrd_end |
| 134 | => bootm prep | 134 | => bootm prep |
| 135 | => cpu 1 release $bootm_low - $fdtaddr - | 135 | => cpu 1 release $bootm_low - $fdtaddr - |
| 136 | c. Bring up core0's kernel(on the same u-boot console): | 136 | c. Bring up core0's kernel(on the same u-boot console): |
| 137 | => setenv bootm_low 0 | 137 | => setenv bootm_low 0 |
| 138 | => setenv bootm_size 0x20000000 | 138 | => setenv bootm_size 0x20000000 |
| 139 | => tftp 1000000 uImage.core0 | 139 | => tftp 1000000 uImage.core0 |
| 140 | => tftp 2000000 ramdiskfile | 140 | => tftp 2000000 ramdiskfile |
| 141 | => tftp c00000 p2020rdb_camp_core0.dtb | 141 | => tftp c00000 p2020rdb_camp_core0.dtb |
| 142 | => bootm 1000000 2000000 c00000 | 142 | => bootm 1000000 2000000 c00000 |
| 143 | 143 | ||
| 144 | Please note only core0 will run u-boot, core1 starts kernel directly | 144 | Please note only core0 will run u-boot, core1 starts kernel directly |
| 145 | after "cpu release" command is issued. | 145 | after "cpu release" command is issued. |
| 146 | 146 |