CHANGELOG 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161
  1. ======================================================================
  2. Changes for U-Boot 1.0.0:
  3. ======================================================================
  4. * Patch by llandre, 11 Sep 2003:
  5. update configuration for PPChameleonEVB board
  6. * Patch by David Müller, 13 Sep 2003:
  7. various changes to VCMA9 board specific files
  8. * Add I2C support for MGT5100 / MPC5200
  9. * Patch by Rune Torgersen, 11 Sep 2003:
  10. Changed default memory option on MPC8266ADS to NOT be Page Based
  11. Interleave, since this doesn't work very well with the standard
  12. 16MB DIMM
  13. * Patch by George G. Davis, 12 Sep 2003:
  14. fix Makefile settings for sk98 driver
  15. * Patch by Stefan Roese, 12 Sep 2003:
  16. - new boards added: DP405, HUB405, PLU405, VOH405
  17. - some esd boards updated
  18. - cpu/ppc4xx/sdram.c: disable memory controller before setting
  19. first values
  20. - cpu/ppc4xx/405_pci.c: set vendor id on PPC405EP systems
  21. * Patch by Martin Krause, 11 Sep 2003:
  22. add burn-in tests for TRAB board
  23. * Enable instruction cache on MPC5200 board
  24. * Patch by Denis Peter, 11 Sep 2003:
  25. - fix USB data pointer assignment for bulk only transfer.
  26. - prevent to display erased directories in FAT filesystem.
  27. * Change output format for NAND flash - make it look like for other
  28. memory, too
  29. ======================================================================
  30. Changes for U-Boot 0.4.8:
  31. ======================================================================
  32. * Patches by Denis Peter, 9 Sep 2003:
  33. add FAT support for IDE, SCSI and USB
  34. * Patches by Gleb Natapov, 2 Sep 2003:
  35. - cleanup of POST code for unsupported architectures
  36. - MPC824x locks way0 of data cache for use as initial RAM;
  37. this patch unlocks it after relocation to RAM and invalidates
  38. the locked entries.
  39. * Patch by Gleb Natapov, 30 Aug 2003:
  40. new I2C driver for mpc107 bridge. Now works from flash.
  41. * Patch by Dave Ellis, 11 Aug 2003:
  42. - JFFS2: fix typo in common/cmd_jffs2.c
  43. - JFFS2: fix CFG_JFFS2_SORT_FRAGMENTS option
  44. - JFFS2: remove node version 0 warning
  45. - JFFS2: accept JFFS2 PADDING nodes
  46. - SXNI855T: add AM29LV800 support
  47. - SXNI855T: move environment from EEPROM to flash
  48. - SXNI855T: boot from JFFS2 in NOR or NAND flash
  49. * Patch by Bill Hargen, 11 Aug 2003:
  50. fixes for I2C on MPC8240
  51. - fix i2c_write routine
  52. - fix iprobe command
  53. - eliminates use of global variables, plus dead code, cleanup.
  54. * Add support for USB Mass Storage Devices (BBB)
  55. (tested with USB memory sticks only)
  56. * Avoid flicker on TRAB's VFD
  57. * Add support for SK98xx driver
  58. * Add PCI support for SL8245 board
  59. * Support IceCube board configurations with 1 x AMD AM29LV065 (8 MB)
  60. or 1 x AM29LV652 (two LV065 in one chip = 16 MB);
  61. Run IPB at 133 Mhz; adjust the MII clock frequency accordingly
  62. * Set BRG_CLK on PM825/826 to 64MHz (VCO_OUT / 4, instead of 16 MHz)
  63. to allow for more accurate baudrate settings
  64. (error now 0.7% at 115 kbps, instead of 3.5% before)
  65. * Patch by Andreas Mohr, 4 Sep 2003:
  66. Fix a lot of spelling errors
  67. * Add support for PPChameleon Eval Board
  68. * Add support for P3G4 board
  69. * Fix problem with MGT5100 FEC driver: add "early" MAC address
  70. initialization
  71. * Patch by Yuli Barcohen, 7 Aug 2003:
  72. check BCSR to detect if the board is configured in PCI mode
  73. ======================================================================
  74. Changes for U-Boot 0.4.7:
  75. ======================================================================
  76. * Patch by Raghu Krishnaprasad, 7 Aug 2003:
  77. add support for Adder II MPC852T module
  78. * Patch by George G. Davis, 19 Aug 2003:
  79. fix TI Innovator/OMAP1510 pin configs
  80. * Patches by Kshitij, 18 Aug 2003
  81. - add support for arm926ejs cpu core
  82. - add support for TI OMAP 1610 Innovator Board
  83. * Patch by Yuli Barcohen, 14 Aug 2003:
  84. add support for bzip2 uncompression
  85. * Add GCC library to examples/Makefile so GCC utility functions will
  86. be resolved, too
  87. * Add I2C and RTC support for RMU board using software I2C driver
  88. (because of better response to iprobe command); fix problem with
  89. "reset" command
  90. * Patch by Matthias Fuchs, 28 Aug 2003:
  91. Added CONFIG_BOOTP_DNS2 and CONFIG_BOOTP_SEND_HOSTNAME to
  92. CONFIG_BOOTP_MAKS (see README).
  93. * Fix ICU862 environment problem
  94. * Fix RAM size detection for RMU board
  95. * Implement "reset" for MGT5100/MPC5200 systems
  96. ======================================================================
  97. Changes for U-Boot 0.4.6:
  98. ======================================================================
  99. * Make Ethernet autonegotiation on INCA-IP work for all clock rates;
  100. allow selection of clock frequency as "make" target
  101. * Implement memory autosizing code for IceCube boards
  102. * Configure network port on INCA-IP for autonegotiation
  103. * Fix overflow problem in network timeout code
  104. * Patch by Richard Woodruff, 8 Aug 2003:
  105. Allow crc32 to be used at address 0x000 (crc32_no_comp, too).
  106. ======================================================================
  107. Changes for U-Boot 0.4.5:
  108. ======================================================================
  109. * Update for TQM board defaults:
  110. disable clocks_in_mhz, enable boot count limit
  111. * Removed tools/gdb from "make all" target. Added make target "gdbtools"
  112. in toplevel directory instead. Removed astest.c from tools/gdb because
  113. it is no longer relevant.
  114. * Fix PCI support for MPC5200 / IceCube Board
  115. * Map ISP1362 USB OTG controller for NSCU board
  116. * Patch by Brad Parker, 02 Aug 2003:
  117. fix sc520_cdp problems
  118. * Implement Boot Cycle Detection (Req. 2.3 of OSDL CGL Reqirements)
  119. * Allow erase command to cross flash bank boundaries
  120. * Patch by Scott McNutt, 21 Jul 2003:
  121. Add support for LynuxWorks Kernel Downloadable Images (KDIs).
  122. Both LynxOS and BlueCat linux KDIs are supported.
  123. * Patch by Richard Woodruff, 25 Jul 2003:
  124. use more reliable reset for OMAP/925T
  125. * Patch by Nye Liu, 25 Jul 2003:
  126. fix typo in mpc8xx.h
  127. * Patch by Richard Woodruff, 24 Jul 2003:
  128. Fixes for cmd_nand.c:
  129. - Fixed null dereferece which could result in incorrect ECC values.
  130. - Added support for devices with no Ready/Busy signal hooked up.
  131. - Added OMAP1510 read/write protect handling.
  132. - Fixed nand.h's ECCPOS. A conflict existed with POS5 and badblock
  133. for non-JFFS2.
  134. - Switched default ECC to be JFFS2.
  135. * Allow crc32 to be used at address 0x000
  136. * Provide consistent interface to standalone applications to access
  137. the 'global_data' structure
  138. Provide a doc/README.standalone more useful to users/developers.
  139. * Make IceCube MGT5100 FEC driver work
  140. * Implement new mechanism to export U-Boot's functions to standalone
  141. applications: instead of using (PPC-specific) system calls we now
  142. use a jump table; please see doc/README.standalone for details
  143. * Patch by Dave Westwood, 24 Jul 2003:
  144. added support for Unity OS (a proprietary OS)
  145. * Patch by Detlev Zundel, 23 Jul 2003:
  146. add "imls" command to print flash table of contents
  147. * Fix cold boot detection for log buffer reset
  148. * Return error for invalid length specifiers with "cp.X" etc.
  149. * Fix startup problem on MIPS
  150. * Allow for CONFIG_SPLASH_SCREEN even when no explicit
  151. bitmap support is configured
  152. * Patch by Bill Hargen, 18 Jul 2003:
  153. - fix endinaness problem in cpu/mpc824x/drivers/i2c/i2c1.c
  154. * Patch by Denis Peter, 18 Jul 2003:
  155. - fix memory configuration for MIP405T
  156. - fix printout of baudrate for "loadb <loadaddr> <baudrate>"
  157. * Cleanup of TQM82xx configurations; use "official" board types
  158. to make selection easier.
  159. * Patch by Martin Krause, 17 Jul 2003:
  160. add delay to get I2C working with "imm" command and s3c24x0_i2c.c
  161. * Patch by Richard Woodruff, 17 July 03:
  162. - Fixed bug in OMAP1510 baud rate divisor settings.
  163. * Patch by Nye Liu, 16 July 2003:
  164. MPC860FADS fixes:
  165. - add MPC86xADS support (uses MPC86xADS.h)
  166. - add 866P/T core support (also MPC859T/MPC859DSL/MPC852T)
  167. o PLPRCR changes
  168. o BRG changes (EXTAL/XTAL restricted to 10MHz)
  169. o don't trust gclk() software measurement by default, depend on
  170. CONFIG_8xx_GCLK_FREQ
  171. - add DRAM SIMM not installed detection
  172. - use more "correct" SDRAM initialization sequence
  173. - allow different SDRAM sizes (8xxADS has 8M)
  174. - default DER is 0
  175. - remove unused MAMR defines from FADS860T.h (all done in fads.c)
  176. - rename MAMR/MBMR defines to be more consistent. Should eventually
  177. be merged into MxMR to better reflect the PowerQUICC datasheet.
  178. * Patch by Yuli Barcohen, 16 Jul 2003:
  179. support new Motorola PQ2FADS-ZU evaluation board which replaced
  180. MPC8260ADS and MPC8266ADS
  181. ======================================================================
  182. Changes for U-Boot 0.4.4:
  183. ======================================================================
  184. * Add support for IceCube board (with MGT5100 and MPC5200 CPUs)
  185. * Add support for MGT5100 and MPC5200 processors
  186. * Patch by Lutz Dennig, 15 Jul 2003:
  187. update for R360MPI board
  188. ======================================================================
  189. Changes for U-Boot 0.4.3:
  190. ======================================================================
  191. * Patches by Kshitij, 04 Jul 2003
  192. - added support for arm925t cpu core
  193. - added support for TI OMAP 1510 Innovator Board
  194. * Patches by Martin Krause, 14 Jul 2003:
  195. - add I2C support for s3c2400 systems (trab board)
  196. - (re-) add "ping" to command table
  197. * Fix handling of "slow" POST routines
  198. * Patches by Yuli Barcohen, 13 Jul 2003:
  199. - Correct flash and JFFS2 support for MPC8260ADS
  200. - fix PVR values and clock generation for PowerQUICC II family
  201. (8270/8275/8280)
  202. * Patch by Bernhard Kuhn, 08 Jul 2003:
  203. - add support for M68K targets
  204. * Patch by Ken Chou, 3 Jul:
  205. - Fix PCI config table for A3000
  206. - Fix iobase for natsemi.c
  207. (PCI_BASE_ADDRESS_0 is the IO base register for DP83815)
  208. * Allow to enable "slow" POST routines by key press on power-on
  209. * Fix temperature dependend switching of LCD backlight on LWMON
  210. * Tweak output format for LWMON
  211. * Patch by Stefan Roese, 11 Jul 2003:
  212. - Fix bug in CONFIG_VERSION_VARIABLE.
  213. - AR405 config updated.
  214. - OCRTC/ORSG: bsp command added.
  215. - ASH405 bsp update.
  216. ======================================================================
  217. Changes for U-Boot 0.4.2:
  218. ======================================================================
  219. * Add support for NSCU board
  220. * Add support for TQM823M, TQM850M, TQM855M and TQM860M modules
  221. * Add support for Am29LV160ML, Am29LV320ML, and Am29LV640ML
  222. mirror bit flash on TQM8xxM modules
  223. * Patch by Kenneth Johansson, 30 Jun 2003:
  224. get rid of MK_CMD_ENTRY macro; update doc/README.command
  225. * Patch by Seb James, 30 Jun 2003:
  226. Improve documentation of I2C configuration in README
  227. * Fix problems with previous log buffer "fixes"
  228. * Fix minor help text issues
  229. * "log append" did not append a newline
  230. ======================================================================
  231. Changes for U-Boot 0.4.1:
  232. ======================================================================
  233. * Fix some missing commands, cleanup header files
  234. (autoscript, bmp, bsp, fat, mmc, nand, portio, ...)
  235. * Rewrite command lookup and help command (fix problems with bubble
  236. sort when sorting command name list). Minor cleanup here and there.
  237. * Merge from "stable branch", tag LABEL_2003_06_28_1800-stable:
  238. - Allow to call sysmon function interactively
  239. - PIC on LWMON board needs delay after power-on
  240. - Add missing RSR definitions for MPC8xx
  241. - Improve log buffer handling: guarantee clean reset after power-on
  242. - Add support for EXBITGEN board (aka "genie")
  243. - Add support for SL8245 board
  244. * Code cleanup:
  245. - remove trailing white space, trailing empty lines, C++ comments, etc.
  246. - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c)
  247. * Patches by Kenneth Johansson, 25 Jun 2003:
  248. - major rework of command structure
  249. (work done mostly by Michal Cendrowski and Joakim Kristiansen)
  250. ======================================================================
  251. Changes for U-Boot 0.4.0:
  252. ======================================================================
  253. * Patches by Robert Schwebel, 26 Jun 2003:
  254. - csb226 configuration updated
  255. - credits for logodl port updated
  256. - innokom configuration updated
  257. - logodl tree update, still with coding style inconsistencies
  258. - added OCM for ppc405 warning to README
  259. * Patch by Pantelis Antoniou, 25 Jun 2003:
  260. update NetVia with V2 board support
  261. * Header file cleanup for ARM
  262. * Patch by Murray Jensen, 24 Jun 2003:
  263. - make sure to use only U-boot provided header files
  264. - fix problems with ".rodata.str1.4" section as used by GCC-3.x
  265. * Patch by Stefan Roese, 24 Jun 2003:
  266. - Update esd ASH405 board files.
  267. - Update esd DASA_SIM config file.
  268. - Add ping command to some esd boards.
  269. * Patch by Yuli Barcohen, 23 Jun 2003:
  270. Update for MPC8260ADS board
  271. * Patch by Murray Jensen, 23 Jun 2003:
  272. - cleanup of GCC 3.x compiler warnings
  273. * Patch by Rune Torgersen, 4 Jun 2003:
  274. add large memory support for MPC8266ADS board
  275. * Patch by Richard Woodruff, 19 June 03:
  276. - Enabled standard u-boot device abstraction for ARM
  277. - Enabled console device for ARM
  278. - Initilized bi_baudrate for ARM
  279. * Patch by Bill Hargen, 23 Apr 2003:
  280. fix byte order for 824x I2C addresses (write op)
  281. * Patch by Murray Jensen, 20 Jun 2003:
  282. - hymod update
  283. - cleanup (especially for gcc-3.x compilers)
  284. * Patch by Tom Guilliams, 20 Jun 2003:
  285. added CONFIG_750FX support for IBM 750FX processors
  286. * Patch by Devin Crumb, 02 Apr 2003:
  287. Fix clock divider rounding problem in drivers/serial.c
  288. * Patch by Richard Woodruff, 19 June 03:
  289. - Fixed smc91c111 driver to sync with the u-boot environment
  290. (driver/smc91c111.c).
  291. - Added eth_init error return check in NetLoop (net/net.c).
  292. * Patch by Ken Chou, 19 June 2003:
  293. Added support for A3000 SBC board (Artis Microsystems Inc.)
  294. * Patches by Murray Jensen, 17 Jun 2003:
  295. - Hymod board database mods: add "who" field and new xilinx chip types
  296. - provide new "init_cmd_timeout()" function so code external to
  297. "common/main.c" can use the "reset_cmd_timeout()" function before
  298. entering the main loop
  299. - add DTT support for adm1021 (new file dtt/adm1021.c; config
  300. slightly different. see include/configs/hymod.h for an example
  301. (requires CONFIG_DTT_ADM1021, CONFIG_DTT_SENSORS, and
  302. CFG_DTT_ADM1021 defined)
  303. - add new "eeprom_probe()" function which has similar args and
  304. behaves in a similar way to "eeprom_read()" etc.
  305. - add 8260 FCC ethernet loopback code (new "eth_loopback_test()"
  306. function which is enabled by defining CONFIG_ETHER_LOOPBACK_TEST)
  307. - gdbtools copyright update
  308. - ensure that set_msr() executes the "sync" and "isync" instructions
  309. after the "mtmsr" instruction in cpu/mpc8260/interrupts.c
  310. - 8260 I/O ports fix: Open Drain should be set last when configuring
  311. - add SIU IRQ defines for 8260
  312. - allow LDSCRIPT override and OBJCFLAGS initialization: change to
  313. config.mk to allow board configurations to override the GNU
  314. linker script, selected via the LDSCRIPT, make variable, and to
  315. give an initial value to the OBJCFLAGS make variable
  316. - 8260 i2c enhancement:
  317. o correctly extends the timeout depending on the size of all
  318. queued messages for both transmit and receive
  319. o will not continue with receive if transmit times out
  320. o ensures that the error callback is done for all queued tx
  321. and rx messages
  322. o correctly detects both tx and rx timeouts, only delivers one to
  323. the callback, and does not overwrite an earlier error
  324. o logic in i2c_probe now correct
  325. - add "vprintf()" function so that "panic()" function can be
  326. technically correct
  327. - many Hymod board changes
  328. * Patches by Robert Schwebel, 14 Jun 2003:
  329. - add support for Logotronic DL datalogger board
  330. - cleanup serial line after kermit binary download
  331. - add debugX macro (debug level support)
  332. - update mach-types.h to latest arm.linux.org.uk master list.
  333. * Patches by David Müller, 12 Jun 2003:
  334. - rewrite of the S3C24X0 register definitions stuff
  335. - "driver" for the built-in S3C24X0 RTC
  336. * Patches by Yuli Barcohen, 12 Jun 2003:
  337. - Add MII support and Ethernet PHY initialization for MPC8260ADS board
  338. - Fix incorrect SIUMCR initialisation caused by wrong Hard Reset
  339. configuration word supplied by FPGA on some MPC8260ADS boards
  340. * Patch by Pantelis Antoniou, 10 Jun 2003:
  341. Unify status LED interface
  342. * Add support for DS12887 RTC; add RTC support for ATC board
  343. * Patch by Nicolas Lacressonniere, 11 Jun 2003:
  344. Modifications for Atmel AT91RM9200DK ARM920T based development kit
  345. - Add Atmel DataFlash support for reading and writing.
  346. - Add possibility to boot a Linux from DataFlash with BOOTM command.
  347. - Add Flash detection on Atmel AT91RM9200DK
  348. (between Atmel AT49BV1614 and AT49BV1614A flashes)
  349. - Replace old Ethernet PHY layer functions
  350. - Change link address
  351. * Patch by Frank Smith, 9 Jun 2003:
  352. use CRIT_EXCEPTION for machine check on 4xx
  353. * Patch by Detlev Zundel, 13 Jun 2003:
  354. added implementation of the "carinfo" command in cmd_immap.c
  355. * Fix CONFIG_NET_MULTI support in include/net.h
  356. * Patches by Kyle Harris, 13 Mar 2003:
  357. - Add FAT partition support
  358. - Add command support for FAT
  359. - Add command support for MMC
  360. ----
  361. - Add Intel PXA support for video
  362. - Add Intel PXA support for MMC
  363. ----
  364. - Enable MMC and FAT for lubbock board
  365. - Other misc changes for lubbock board
  366. * Patch by Robert Schwebel, April 02, 2003:
  367. fix for SMSC91111 driver
  368. * Patch by Vladimir Gurevich, 04 Jun 2003:
  369. make ppc405 ethernet driver compatible with CONFIG_NET_MULTI option
  370. * Patch by Stefan Roese, 05 Jun 2003:
  371. - PPC4xx: Fix bug for initial stack in data cache as pointed out by
  372. Thomas Schaefer (tschaefer@giga-stream.de). Now inital stack in
  373. data cache can be used even if the chip select is in use.
  374. - CFG_RX_ETH_BUFFER added to set the ethernet receive buffer count
  375. (see README for further description).
  376. - Changed config files of CONFIG_EEPRO100 boards to use the
  377. CFG_RX_ETH_BUFFER define.
  378. * Add support for RMU board
  379. * Add support for TQM862L at 100/50 MHz
  380. * Patch by Pantelis Antoniou, 02 Jun 2003:
  381. major reconstruction of networking code;
  382. add "ping" support (outgoing only!)
  383. * Patch by Denis Peter, 04 June 2003:
  384. add support for the MIP405T board
  385. * Patches by Udi Finkelstein, 2 June 2003:
  386. - Added support for custom keyboards, initialized by defining a
  387. board-specific drv_keyboard_init as well as defining CONFIG_KEYBOARD .
  388. - Added support for the RBC823 board.
  389. - cpu/mpc8xx/lcd.c now automatically calculates the
  390. Horizontal Pixel Count field.
  391. * Fix alignment problem in BOOTP (dhcp_leasetime option)
  392. [pointed out by Nicolas Lacressonnière, 2 Jun 2003]
  393. * Patch by Mark Rakes, 14 May 2003:
  394. add support for Intel e1000 gig cards.
  395. * Patch by Nye Liu, 3 Jun 2003:
  396. fix critical typo in MAMR definition (include/mpc8xx.h)
  397. * Fix requirement to align U-Boot image on 16 kB boundaries on PPC.
  398. * Patch by Klaus Heydeck, 2 Jun 2003
  399. Minor changes for KUP4K configuration
  400. * Patch by Marc Singer, 29 May 2003:
  401. Fixed rarp boot method for IA32 and other little-endian CPUs.
  402. * Patch by Marc Singer, 28 May 2003:
  403. Added port I/O commands.
  404. * Patch by Matthew McClintock, 28 May 2003
  405. - cpu/mpc824x/start.S: fix relocation code when booting from RAM
  406. - minor patches for utx8245
  407. * Patch by Daniel Engström, 28 May 2003:
  408. x86 update
  409. * Patch by Dave Ellis, 9 May 2003 + 27 May 2003:
  410. add nand flash support to SXNI855T configuration
  411. fix/extend nand flash support:
  412. - fix 'nand erase' command so does not erase bad blocks
  413. - fix 'nand write' command so does not write to bad blocks
  414. - fix nand_probe() so handles no flash detected properly
  415. - add doc/README.nand
  416. - add .jffs2 and .oob options to nand read/write
  417. - add 'nand bad' command to list bad blocks
  418. - add 'clean' option to 'nand erase' to write JFFS2 clean markers
  419. - make NAND read/write faster
  420. * Patch by Rune Torgersen, 23 May 2003:
  421. Update for MPC8266ADS board
  422. * Get (mostly) rid of CFG_MONITOR_LEN definition; compute real length
  423. instead CFG_MONITOR_LEN is now only used to determine _at_compile_
  424. _time_ (!) if the environment is embedded within the U-Boot image,
  425. or in a separate flash sector.
  426. * Cleanup CFG_DER #defines in config files (wd maintained only)
  427. * Fix data abort exception handling for arm920t CPU
  428. * Fix alignment problems with flash driver for TRAB board
  429. * Patch by Donald White, 21 May 2003:
  430. fix calculation of base address in pci_hose_config_device()
  431. * Fix bug in command line parsing: "cmd1;cmd2" is supposed to always
  432. execute "cmd2", even if "cmd1" fails. Note that this is different
  433. to "run var1 var2" where the contents of "var2" will NOT be
  434. executed when a command in "var1" fails.
  435. * Add zero-copy ramdisk support (requires corresponding kernel support!)
  436. * Patch by Kyle Harris, 20 May 2003:
  437. In preparation for an ixp port, rename cpu/xscale and arch-xscale
  438. into cpu/pxa and arch-pxa.
  439. * Patch by Stefan Roese, 23 May 2003:
  440. - IBM PPC405EP port added.
  441. - CONFIG_UART1_CONSOLE added. If defined internal UART1 (and not
  442. UART0) is used as default U-Boot console. PPC4xx only!
  443. - esd ASH405 board added (PPC405EP based).
  444. - BUBINGA405EP board added (PPC405EP based - IBM Eval Board).
  445. - esd CPCI405AB board added.
  446. - esd PMC405 board added.
  447. - Update of some esd boards.
  448. * Patch by Denis Peter, 19 Mai 2003:
  449. add support for the MIP405-3 board
  450. * Patch by Dave Ellis, 22 May 2003:
  451. Fix problem with only partially cleared .bss segment
  452. * Patch by Rune Torgersen, 12 May 2003:
  453. get PCI to work on a MPC8266ADS board; incorporate change to
  454. cpu/mpc8260/pci.c to enable overrides of PCI memory parameters
  455. * Patch by Nye Liu, 1 May 2003:
  456. minor patches for the FADS8xx
  457. * Patch by Thomas Schäfer, 28 Apr 2003:
  458. Fix SPD handling for 256 ECC DIMM on Walnut
  459. * Add support for arbitrary bitmaps for TRAB's VFD command;
  460. allow to pass boot bitmap addresses in environment variables;
  461. allow for zero boot delay
  462. * Patch by Christian Geißinger, 19 May 2002:
  463. On TRAB: wait until the dummy byte has been completely sent
  464. * Patch by David Updegraff, 22 Apr 2003:
  465. update for CrayL1 board
  466. * Patch by Pantelis Antoniou, 21 Apr 2003:
  467. add boot support for ARTOS (a proprietary OS)
  468. * Patch by Steven Scholz, 11 Apr 2003:
  469. Add support for RTC DS1338
  470. * Patch by Rod Boyce, 24 Jan 2003:
  471. Fix counting of extended partitions in diskboot command
  472. * Patch by Christophe Lindheimer, 20 May 2003:
  473. allow the use of CFG_LOADS when CFG_NO_FLASH is set
  474. * Fix SDRAM timing on Purple board
  475. * Add support for CompactFlash on ATC board
  476. (includes support for Intel 82365 and compatible PC Card controllers,
  477. and Yenta-compatible PCI-to-CardBus controllers)
  478. * Patch by Mathijs Haarman, 08 May 2003:
  479. Add lan91c96 driver (tested on Lubbock and custom PXA250 board only)
  480. * Fix problem with usage of "true" (undefined in current versions of bfd.h)
  481. * Add support for Promess ATC board
  482. * Patch by Keith Outwater, 28 Apr 2003:
  483. - Miscellaneous corrections and additions to GEN860T board specific code.
  484. - Added GEN860_SC variant to GEN860T.
  485. - Miscellaneous corrections to GEN860T documentation.
  486. - Correct duplicate entry in U-Boot CREDITS file.
  487. - Add GEN860T_SC entry in MAINTAINERS file.
  488. - Update CREDITS file with GEN860T_SC info.
  489. * Update Smiths Aerospace addresses in MAINTAINERS file
  490. * Fix error handling in hush's version of "run" command
  491. * LWMON extensions:
  492. - Splashscreen support
  493. - modem support
  494. - sysmon support
  495. - temperature dependend enabling of LCD
  496. * Allow booting from old "PPCBoot" disk partitions
  497. * Add support for TQM8255 Board / MPC8255 CPU
  498. ======================================================================
  499. Changes for U-Boot 0.3.1:
  500. ======================================================================
  501. * Make sure Block Lock Bits get cleared in R360MPI flash driver
  502. * MPC823 LCD driver: Fill color map backwards, to allow for steady
  503. display when Linux takes over
  504. * Patch by Erwin Rol, 27 Feb 2003:
  505. Add support for RTEMS (this time for real).
  506. * Add support for "bmp info" and "bmp display" commands to load
  507. bitmap images; this can be used (for example in a "preboot"
  508. command) to display a splash screen very quickly after poweron.
  509. * Add support for 133 MHz clock on INCA-IP board
  510. * Patch by Lutz Dennig, 10 Apr 2003:
  511. Update for R360MPI board
  512. * Add new meaning to "autostart" environment variable:
  513. If set to "no", a standalone image passed to the
  514. "bootm" command will be copied to the load address
  515. (and eventually uncompressed), but NOT be started.
  516. This can be used to load and uncompress arbitrary
  517. data.
  518. * Patch by Stefan Roese, 10 Apr 2003:
  519. Changed DHCP client to use IP address from server option field #54
  520. from the OFFER packet in the server option field #54 in the REQUEST
  521. packet. This fixes a problem using a Windows 2000 DHCP server,
  522. where the DHCP-server is not the TFTP-server.
  523. * Set max brightness for MN11236 displays on TRAB board
  524. * Add support for TQM862L modules
  525. ======================================================================
  526. Changes for U-Boot 0.3.0:
  527. ======================================================================
  528. * Patch by Arun Dharankar, 4 Apr 2003:
  529. Add IDMA example code (tested on 8260 only)
  530. * Add support for Purple Board (MIPS64 5Kc)
  531. * Add support for MIPS64 5Kc CPUs
  532. * Fix missing setting of "loadaddr" and "bootfile" on ARM and MIPS
  533. * Patch by Denis Peter, 04 Apr 2003:
  534. - update MIP405-4 board
  535. * Patch by Stefan Roese, 4 Apr 2003:
  536. - U-Boot version environment variable "ver" added
  537. (CONFIG_VERSION_VARIABLE).
  538. - Changed PPC405GPr version from A to B.
  539. - Changed CPCI405 to use CTS instead of DSR on PPC405 UART1.
  540. * Patches by Denis Peter, 03 April 2003:
  541. - fix PCI IRQs on MPL boards
  542. - fix two more un-relocated pointer problems
  543. * Fix behaviour of "run" command:
  544. - print error message iv variable does not exist
  545. - terminate processing of arguments in case of error
  546. * Patches by Peter Figuli, 10 Mar 2003
  547. - Add support for BTUART on PXA platform
  548. - Add support for WEP EP250 (PXA) board
  549. * Fix flash problems on INCA-IP; add tool to allow bruning images to
  550. flash using a BDI2000
  551. * Implement fix for I2C Edge Conditions problem for all boards that
  552. use the bit-banging driver (common/soft_i2c.c)
  553. * Patch by Martin Winistoerfer, 23 Mar 2003
  554. - Add port to MPC555/556 microcontrollers
  555. - Add support for cmi customer board with
  556. Intel 28F128J3A, 28F320J3A or 28F640J3A flash.
  557. * Patch by Rick Bronson, 28 Mar 2003:
  558. - fix common/cmd_nand.c
  559. * Patch by Arun Dharankar, 24 Mar 2003:
  560. - add threads / scheduler example code
  561. * Add patches by Robert Schwebel, 31 Mar 2003:
  562. - add ctrl-c support for kermit download
  563. - align bdinfo output on ARM
  564. - csb226 board: bring in sync with innokom/memsetup.S
  565. - csb226 board: fix MDREFR handling
  566. - misc doc fixes / extensions
  567. - innokom board: cleanup, MDREFR fix in memsetup.S, config update
  568. - add BOOT_PROGRESS to armlinux.c
  569. * Add CPU ID, version, and clock speed for INCA-IP
  570. * Patches by Dave Ellis, 18 Mar 2003 for SXNI855T board:
  571. - fix SRAM and SDRAM memory sizing
  572. - add status LED support
  573. - add MAC address for second (SCC1) ethernet port
  574. * Update default environment for TQM8260 board
  575. * Patch by Rick Bronson, 16 Mar 2003:
  576. - Add NAND flash support for reading, writing, and erasing NAND
  577. flash (certain forms of which are called SmartMedia).
  578. - Add support for Atmel AT91RM9200DK ARM920T based development kit.
  579. * Patches by Robert Schwebel, 19 Mar 2003:
  580. - use arm-linux-gcc as default compiler for ARM
  581. - fix i2c fixup code
  582. - fix missing baudrate setting
  583. - added $loadaddr / CFG_LOAD_ADDR support to loadb
  584. - moved "ignoring trailing characters" _before_ u-boot wants to
  585. print out diagnostics messages; removes bogus characters at the
  586. end of transmission
  587. * Patch by John Zhan, 18 Mar 2003:
  588. Add support for SinoVee Microsystems SC8xx boards
  589. * Patch by Rolf Offermanns, 21 Mar 2003:
  590. ported the dnp1110 related changes from the current armboot cvs to
  591. current u-boot cvs. smc91111 does not work. problem marked in
  592. smc91111.c, grep for "FIXME".
  593. * Patch by Brian Auld, 25 Mar 2003:
  594. Add support for STM flash chips on ebony board
  595. * Add PCI support for MPC8250 Boards (PM825 module)
  596. * Patch by Stefan Roese, 25 Mar 2003:
  597. - PCI405 update.
  598. * Patch by Stefan Roese, 20 Mar 2003:
  599. - CPCI4052 update (support for revision 3).
  600. - Set edge conditioning circuitry on PPC405GPr for compatibility
  601. to existing PPC405GP designs.
  602. - Clip udiv to 5 bits on PPC405 (serial.c).
  603. * Extend INCAIP board support:
  604. - add automatic RAM size detection
  605. - add "bdinfo" command
  606. - pass flash address and size to Linux kernel
  607. - switch to 150 MHz clock
  608. * Avoid flicker on the TRAB's VFD by synchronizing the enable with
  609. the HSYNC/VSYNC. Requires new CPLD code (Version 101 for Rev. 100
  610. boards, version 153 for Rev. 200 boards).
  611. * Patch by Vladimir Gurevich, 12 Mar 2003:
  612. Fix relocation problem of statically initialized string pointers
  613. in common/cmd_pci.c
  614. * Patch by Kai-Uwe Blöm, 12 Mar 2003:
  615. Cleanup & bug fixes for JFFS2 code:
  616. - the memory mangement was broken. It caused havoc on malloc by
  617. writing beyond the block boundaries.
  618. - the length calculation for files was wrong, sometimes resulting
  619. in short file reads.
  620. - data copying now optionally takes fragment version numbers into
  621. account, to avoid copying from older data.
  622. See doc/README.JFFS2 for details.
  623. * Patch by Josef Wagner, 12 Mar 2003:
  624. - 16/32 MB and 50/80 MHz support with auto-detection for IP860
  625. - ETH05 and BEDBUG support for CU824
  626. - added support for MicroSys CPC45
  627. - new BOOTROM/FLASH0 and DOC base for PM826
  628. * Patch by Robert Schwebel, 12 Mar 2003:
  629. Fix the chpart command on innokom board
  630. * Name cleanup:
  631. mv include/asm-i386/ppcboot-i386.h include/asm-i386/u-boot-i386.h
  632. s/PPCBoot/U-Boot/ in some files
  633. s/pImage/uImage/ in some files
  634. * Patch by Detlev Zundel, 15 Jan 2003:
  635. Fix '' command line quoting
  636. * Patch by The LEOX team, 19 Jan 2003:
  637. - add support for the ELPT860 board
  638. - add support for Dallas ds164x RTC
  639. * Patches by David Müller, 31 Jan 2003:
  640. - minimal setup for CardBus bridges
  641. - add EEPROM read/write support in the CS8900 driver
  642. - add support for the builtin I2C controller in the Samsung s3c24x0 chips
  643. - add support for MPL's VCMA9 (Samsung s3c2410 based) board
  644. * Patch by Steven Scholz, 04 Feb 2003:
  645. add support for RTC DS1307
  646. * Patch by Reinhard Meyer, 5 Feb 2003:
  647. fix PLPRCR/SCCR init sequence on 8xx to allow for
  648. changes of EBDF by software
  649. * Patch by Vladimir Gurevich, 07 Feb 2003:
  650. "API-compatibility patch" for 4xx I2C driver
  651. * TRAB fixes / extensions:
  652. - Restore VFD brightness as saved in environment
  653. - add support for Fujitsu flashes
  654. - make sure both buzzers are turned off (drive low level)
  655. * Patches by Robert Schwebel, 06 Mar 2003:
  656. - fix bug in BOOTP code (must use NetCopyIP)
  657. - update of CSB226 port
  658. - clear BSS segment on XScale
  659. - added support for i2c_init_board() function
  660. - update to the Innokom plattform
  661. * Extend support for redundand environments for configurations where
  662. environment size < sector size
  663. * Patch by Rune Torgersen, 13 Feb 2003:
  664. Add support for Motorola MPC8266ADS board
  665. * Patch by Kyle Harris, 19 Feb 2003:
  666. patches for the Intel lubbock board:
  667. memsetup.S - general cleanup (based on Robert's csb226 code)
  668. flash.c - overhaul, actually works now
  669. lubbock.c - fix init funcs to return proper value
  670. * Patch by Kenneth Johansson, 26 Feb 2003:
  671. - Fixed off by one in RFTA calculation.
  672. - No need to abort when LDF is lower than we can program it's only
  673. minimum timing so clamp it to what we can do.
  674. - Takes function pointer to function for reading the spd_nvram. Usefull
  675. for faking data or hardcode a module without the nvram.
  676. - fix other user for above change
  677. - fix some comments.
  678. * Patches by Brian Waite, 26 Feb 2003:
  679. - fix port for evb64260 board
  680. - fix PCI for evb64260 board
  681. - fix PCI scan
  682. * Patch by Reinhard Meyer, 1 Mar 2003:
  683. Add support for EMK TOP860 Module
  684. * Patch by Yuli Barcohen, 02 Mar 2003:
  685. Add SPD EEPROM support for MPC8260ADS board
  686. * Patch by Robert Schwebel, 21 Jan 2003:
  687. - Add support for Innokom board
  688. - Don't complain if "install" fails
  689. - README cleanup (remove duplicated lines)
  690. - Update PXA header files
  691. * Add documentation for existing POST code (doc/README.POST)
  692. * Patch by Laudney Ren, 15 Jan 2003:
  693. Fix handling of redundand environment in "tools/envcrc.c"
  694. * Patch by Detlev Zundel, 28 Feb 2003:
  695. Add bedbug support for 824x systems
  696. * Add support for 16 MB flash configuration of TRAB board
  697. * Patch by Erwin Rol, 27 Feb 2003:
  698. Add support for RTEMS
  699. * Add image information to README
  700. * Patch by Stefan Roese, 18 Feb 2003:
  701. CPCIISER4 configuration updated.
  702. * Patch by Stefan Roese, 17 Feb 2003:
  703. Fixed bug in ext. serial clock setup on PPC405 (since PPC440 port).
  704. * Patch by Stefan Roese, 13 Feb 2003:
  705. Add "pcidelay" environment variable (in ms, enabled via
  706. CONFIG_PCI_BOOTDELAY).
  707. PCI spec 2.2 defines, that a pci target has 2^25 pci clocks after
  708. RST# to respond to configuration cycles (33MHz -> 1s).
  709. * Fix dual PCMCIA slot support (when running with just one
  710. slot populated)
  711. * Add VFD type detection to trab board
  712. * extend drivers/cs8900.c driver to synchronize ethaddr environment
  713. variable with value in the EEPROM
  714. * Patch by Stefan Roese, 10 Feb 2003:
  715. Add support for 4MB and 128MB onboard SDRAM (cpu/ppc4xx/sdram.c)
  716. * Add support for MIPS32 4Kc CPUs
  717. * Add support for INCA-IP Board
  718. ======================================================================
  719. Changes for U-Boot 0.2.2:
  720. ======================================================================
  721. * Add dual ethernet support on PM826
  722. * Add support for LXT971 PHY on PM826
  723. * Patch by Tord Andersson, 16 Jan 2003:
  724. Fix flash sector count for TQM8xxL
  725. * Fix I2C EEPROM problem on ICU862 board (would only write the first
  726. 16 bytes out of each 32 byte block)
  727. ======================================================================
  728. Changes for U-Boot 0.2.1:
  729. ======================================================================
  730. * Add support for V37 board
  731. (patch by Jón Benediktsson, 11 Dec 2002)
  732. * Update baudrate in bd_info when it gets changed
  733. * Add watchdog trigger points while waiting for serial port
  734. (so far only 8xx -- needed on LWMON with 100ms watchdog)
  735. * Improve command line tool to access the U-Boot's environment
  736. (figuration of the utility, using a config file)
  737. * Add single quote support for (old) command line parser
  738. * Switch LWMON board default config from FRAM to EEPROM;
  739. in POST, EEPROM shows up on 8 addresses
  740. ======================================================================
  741. Changes for U-Boot 0.2.0:
  742. ======================================================================
  743. * Use 1-byte-read instead of -write for iprobe() function
  744. Add i2c commands to PM826 config
  745. * extend I2C POST code: check for list on known addresses
  746. * Improve log buffer code; use "loglevel" to decide which messages
  747. to log on the console, too (like in Linux); get rid of "logstart"
  748. * Add command line tool to access the U-Boot's environment
  749. (board-specific for TRAB now, to be fixed later)
  750. * Patch by Hans-Joerg Frieden, 06 Dec 2002
  751. Fix misc problems with AmigaOne support
  752. * Patch by Chris Hallinan, 3 Dec 2002:
  753. minor cleanup to the MPC8245 EPIC driver
  754. * Patch by Pierre Aubert , 28 Nov 2002
  755. Add support for external (SIU) interrupts on MPC8xx
  756. * Patch by Pierre Aubert , 28 Nov 2002
  757. Fix nested syscalls bug in standalone applications
  758. * Patch by David Müller, 27 Nov 2002:
  759. fix output of "pciinfo" command for CardBus bridge devices.
  760. * Fix bug in TQM8260 board detection - boards got stuck when board ID
  761. was not readable
  762. * Add LED indication for IDE activity on KUP4K board
  763. * Fix startup problems with VFD display on TRAB
  764. * Patch by Pierre Aubert, 20 Nov 2002
  765. Add driver for Epson SED13806 graphic controller.
  766. Add support for BMP logos in cfb_console driver.
  767. * Added support for both PCMCIA slots (at the same time!) on MPC8xx
  768. * Patch by Rod Boyce, 21 Nov 2002:
  769. fix PCMCIA on MBX8xx board
  770. * Patch by Pierre Aubert , 21 Nov 2002
  771. Add CFG_CPM_POST_WORD_ADDR to make the offset of the
  772. bootmode word in DPRAM configurable
  773. * Patch by Daniel Engström, 18 Nov 2002:
  774. Fixes for x86 port (mostly strings issues)
  775. * Patch by Ken Chou, 18 Nov 2002:
  776. Fix for natsemi NIC cards (DP83815)
  777. * Patch by Pierre Aubert, 19 Nov 2002:
  778. fix a bug for the MII configuration, and some warnings
  779. * Patch by Thomas Frieden, 13 Nov 2002:
  780. Add code for AmigaOne board
  781. (preliminary merge to U-Boot, still WIP)
  782. * Patch by Jon Diekema, 12 Nov 2002:
  783. - Adding URL for IEEE OUI lookup
  784. - Making the autoboot #defines dependent on CONFIG_AUTOBOOT_KEYED
  785. being defined.
  786. - In the CONFIG_EXTRA_ENV_SETTINGS #define, the root-on-initrd and
  787. root-on-nfs macros are designed to switch how the default boot
  788. method gets defined.
  789. * Patch by Daniel Engström, 13 Nov 2002:
  790. Add support for i386 architecture and AMD SC520 board
  791. * Patch by Pierre Aubert, 12 Nov 2002:
  792. Add support for DOS filesystem and booting from DOS floppy disk
  793. * Patch by Jim Sandoz, 07 Nov 2002:
  794. Increase number of network RX buffers (PKTBUFSRX in
  795. "include/net.h") for EEPRO100 based boards (especially SP8240)
  796. which showed "Receiver is not ready" errors when U-Boot was
  797. processing the receive buffers slower than the network controller
  798. was filling them.
  799. * Patch by Andreas Oberritter, 09 Nov 2002:
  800. Change behaviour of NetLoop(): return -1 for errors, filesize
  801. otherwise; return code 0 is valid an means no file loaded - in this
  802. case the environment still gets updated!
  803. * Patches by Jon Diekema, 9 Nov 2002:
  804. - improve ADC/DAC clocking on the SACSng board to align
  805. the failing edges of LRCLK and SCLK
  806. - sbc8260 configuration tweaks
  807. - add status LED support for 82xx systems
  808. - wire sspi/sspo commands into command handler; improved error
  809. handlering
  810. - add timestamp support and alternate memory test to the
  811. SACSng configuration
  812. * Patch by Vince Husovsky, 7 Nov 2002:
  813. Add "-n" to linker options to get rid of "Not enough room for
  814. program headers" problem
  815. * Patch by David Müller, 05 Nov 2002
  816. Rename CONFIG_PLL_INPUT_FREQ to CONFIG_SYS_CLK_FREQ
  817. so we can use an already existing name
  818. * Patch by Pierre Aubert, 05 Nov 2002
  819. Hardware relatied improvments in FDC boot code
  820. * Patch by Holger Schurig, 5 Nov 2002:
  821. Make the PXA really change it's frequency
  822. * Patch by Pierre Aubert, 05 Nov 2002
  823. Add support for slave serial Spartan 2 FPGAs
  824. * Fix uninitialized memory (MAC address) in 8xx SCC/FEC ethernet
  825. drivers
  826. * Add support for log buffer which can be passed to Linux kernel's
  827. syslog mechanism; used especially for POST results.
  828. * Patch by Klaus Heydeck, 31 Oct 2002:
  829. Add initial support for kup4k board
  830. * Patch by Robert Schwebel, 04 Nov 2002:
  831. - use watchdog to reset PXA250 systems
  832. - added progress callbacks to (some of the) ARM code
  833. - update for Cogent CSB226 board
  834. * Add support for FPS860 board
  835. * Patch by Guillaume Alexandre,, 04 Nov 2002:
  836. Improve PCI access on 32-bits Compact PCI bus
  837. * Fix mdelay() on TRAB - this was still the debugging version with
  838. seconds instead of ms.
  839. * Patch by Robert Schwebel, 1 Nov 2002:
  840. XScale related cleanup (affects all ARM boards)
  841. * Cleanup of names and README.
  842. ======================================================================
  843. Notes for U-Boot 0.1.0:
  844. ======================================================================
  845. This is the initial version of "Das U-Boot", the Universal Boot Loader.
  846. It is based on version 2.0.0 (the "Halloween Release") of PPCBoot.
  847. For information about the history of the project please see the
  848. PPCBoot project page at http://sourceforge.net/projects/ppcboot
  849. ======================================================================