README.PIP405 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. U-Boot Changes due to PIP405 Port:
  2. ===================================
  3. Changed files:
  4. ==============
  5. - MAKEALL added PIP405
  6. - makefile added PIP405
  7. - common/Makefile added Floppy disk and SCSI support
  8. - common/board.c added PIP405, SCSI support, get_PCI_freq()
  9. - common/bootm.c added IH_OS_U_BOOT, IH_TYPE_FIRMWARE
  10. - common/cmd_i2c.c added "defined(CONFIG_PIP405)"
  11. - common/cmd_ide.c changed div. functions to work with block device
  12. description
  13. added ATAPI support
  14. - common/command.c added SCSI and Floppy support
  15. - common/console.c replaced // with /* comments
  16. added console settings from environment
  17. - common/devices.c added ISA keyboard init
  18. - common/main.c corrected the read of bootdelay
  19. - cpu/ppc4xx/405gp_pci.c excluded file from PIP405
  20. - cpu/ppc4xx/i2c.c added 16bit read write I2C support
  21. added page write
  22. - cpu/ppc4xx/speed.c added get_PCI_freq
  23. - cpu/ppc4xx/start.S added CONFIG_IDENT_STRING
  24. - disk/Makefile added part_iso for CD support
  25. - disk/part.c changed to work with block device description
  26. added ISO CD support
  27. added dev_print (was ide_print in cmd_ide.c)
  28. - disk/part_dos.c changed to work with block device description
  29. - disk/part_mac.c changed to work with block device description
  30. - include/ata.h added ATAPI commands
  31. - include/cmd_bsp.h added PIP405 commands definitions
  32. - include/cmd_condefs.h added Floppy and SCSI support
  33. - include/cmd_disk.h changed to work with block device description
  34. - include/config_LANTEC.h excluded CFG_CMD_FDC and CFG_CMD_SCSI from
  35. CONFIG_CMD_FULL
  36. - include/config_hymod.h excluded CFG_CMD_FDC and CFG_CMD_SCSI from
  37. CONFIG_CMD_FULL
  38. - include/flash.h added INTEL_ID_28F320C3T 0x88C488C4
  39. - include/i2c.h added "defined(CONFIG_PIP405)"
  40. - include/image.h added IH_OS_U_BOOT, IH_TYPE_FIRMWARE
  41. - include/u-boot.h moved partitions functions definitions to part.h
  42. added "defined(CONFIG_PIP405)"
  43. added get_PCI_freq() definition
  44. - rtc/Makefile added MC146818 RTC support
  45. - tools/mkimage.c added IH_OS_U_BOOT, IH_TYPE_FIRMWARE
  46. Added files:
  47. ============
  48. - board/pip405 directory for PIP405
  49. - board/pip405/cmd_pip405.c board specific commands
  50. - board/pip405/config.mk config make
  51. - board/pip405/flash.c flash support
  52. - board/pip405/init.s start-up
  53. - board/pip405/kbd.c keyboard support
  54. - board/pip405/kbd.h keyboard support
  55. - board/pip405/Makefile Makefile
  56. - board/pip405/pci_piix4.h southbridge definitions
  57. - board/pip405/pci_pip405.c PCI support for PIP405
  58. - board/pip405/pci_pip405.h PCI support for PIP405
  59. - board/pip405/pip405.c PIP405 board init
  60. - board/pip405/pip405.h PIP405 board init
  61. - board/pip405/pip405_isa.c ISA support
  62. - board/pip405/pip405_isa.h ISA support
  63. - board/pip405/u-boot.lds Linker description
  64. - board/pip405/u-boot.lds.debugLinker description debug
  65. - board/pip405/sym53c8xx.c SYM53C810A support
  66. - board/pip405/sym53c8xx_defs.h SYM53C810A definitions
  67. - board/pip405/vga_table.h definitions of tables for VGA
  68. - board/pip405/video.c CT69000 support
  69. - board/pip405/video.h CT69000 support
  70. - common/cmd_fdc.c Floppy disk support
  71. - common/cmd_scsi.c SCSI support
  72. - disk/part_iso.c ISO CD ROM support
  73. - disk/part_iso.h ISO CD ROM support
  74. - include/cmd_fdc.h command forFloppy disk support
  75. - include/cmd_scsi.h command for SCSI support
  76. - include/part.h partitions functions definitions
  77. (was part of u-boot.h)
  78. - include/scsi.h SCSI support
  79. - rtc/mc146818.c MC146818 RTC support
  80. New Config Switches:
  81. ====================
  82. For detailed description, refer to the corresponding paragraph in the
  83. section "Changes".
  84. New Commands:
  85. -------------
  86. CFG_CMD_SCSI SCSI Support
  87. CFG_CMF_FDC Floppy disk support
  88. IDE additions:
  89. --------------
  90. CONFIG_IDE_RESET_ROUTINE defines that instead of a reset Pin,
  91. the routine ide_set_reset(int idereset) is used.
  92. ATAPI support (experimental)
  93. ----------------------------
  94. CONFIG_ATAPI enables ATAPI Support
  95. SCSI support (experimental) only SYM53C8xx supported
  96. ----------------------------------------------------
  97. CONFIG_SCSI_SYM53C8XX type of SCSI controller
  98. CFG_SCSI_MAX_LUN 8 number of supported LUNs
  99. CFG_SCSI_MAX_SCSI_ID 7 maximum SCSI ID (0..6)
  100. CFG_SCSI_MAX_DEVICE CFG_SCSI_MAX_SCSI_ID * CFG_SCSI_MAX_LUN
  101. maximum of Target devices (multiple LUN support
  102. for boot)
  103. ISO (CD-Boot) partition support (Experimental)
  104. ----------------------------------------------
  105. CONFIG_ISO_PARTITION CD-boot support
  106. RTC
  107. ----
  108. CONFIG_RTC_MC146818 MC146818 RTC support
  109. Keyboard:
  110. ---------
  111. CONFIG_ISA_KEYBOARD Standard (PC-Style) Keyboard support
  112. Video:
  113. ------
  114. CONFIG_VIDEO_CT69000 Enable Chips & Technologies 69000 Video chip
  115. CONFIG_VIDEO must be defined also
  116. External peripheral base address:
  117. ---------------------------------
  118. CFG_ISA_IO_BASE_ADDRESS address of all ISA-bus related parts
  119. _must_ be defined for ISA-bus parts
  120. Identify:
  121. ---------
  122. CONFIG_IDENT_STRING added to the U_BOOT_VERSION String
  123. I2C stuff:
  124. ----------
  125. CFG_EEPROM_PAGE_WRITE_ENABLE enables page write of the I2C EEPROM
  126. CFG_EEPROM_PAGE_WRITE_BITS _must_ be
  127. defined.
  128. Environment / Console:
  129. ----------------------
  130. CFG_CONSOLE_IS_IN_ENV if defined, stdin, stdout and stderr used from
  131. the values stored in the evironment.
  132. CFG_CONSOLE_OVERWRITE_ROUTINE if defined, console_overwrite() decides if the
  133. values stored in the environment or the standard
  134. serial in/out put should be assigned to the console.
  135. CFG_CONSOLE_ENV_OVERWRITE if defined, the start-up console switching
  136. are stored in the environment.
  137. PIP405 specific:
  138. ----------------
  139. CONFIG_PORT_ADDR address used to read boot configuration
  140. MULTI_PURPOSE_SOCKET_ADDR address of the multi purpose socked
  141. SDRAM_EEPROM_WRITE_ADDRESS addresses of the serial presence detect
  142. SDRAM_EEPROM_READ_ADDRESS EEPROM on the SDRAM module.
  143. Changes:
  144. ========
  145. Added Devices:
  146. ==============
  147. Floppy support:
  148. ---------------
  149. Support of a standard floppy disk controller at address CFG_ISA_IO_BASE_ADDRESS
  150. + 0x3F0. Enabled with define CFG_CMD_FDC. Reads a unformated floppy disk with a
  151. image header (see: mkimage). No interrupts and no DMA are used for this.
  152. Added files:
  153. - common/cmd_fdc.c
  154. - include/cmd_fdc.h
  155. SCSI support:
  156. -------------
  157. Support for Symbios SYM53C810A chip. Implemented as follows:
  158. - without disconnect
  159. - only asynchrounous
  160. - multiple LUN support (caution, needs a lot of RAM. define CFG_SCSI_MAX_LUN 1 to
  161. save RAM)
  162. - multiple SCSI ID support
  163. - no write support
  164. - analyses the MAC, DOS and ISO pratition similar to the IDE support
  165. - allows booting from SCSI devices similar to the IDE support.
  166. The device numbers are not assigned like they are within the IDE support. The first
  167. device found will get the number 0, the next 1 etc. If all SCSI IDs (0..6) and all
  168. LUNs (8) are enabled, 56 boot devices are possible. This uses a lot of RAM since the
  169. device descriptors are not yet dynamically allocated. 56 boot devices are overkill
  170. anyway. Please refer to the section "Todo" chapter "block device support enhancement".
  171. The SYM53C810A uses 1 Interrupt and must be able of mastering the PCI bus.
  172. Added files:
  173. - common/cmd_scsi.c
  174. - common/board.c
  175. - include/cmd_scsi.h
  176. - include/scsi.h
  177. - board/pip405/sym53c8xx.c
  178. - board/pip405/sym53c8xx_defs.h
  179. ATAPI support (IDE changes):
  180. ----------------------------
  181. Added ATAPI support (with CONFIG_ATAPI) in the file cmd_ide.c.
  182. To support a hardreset, when the IDE reset pin is not connected to the
  183. CFG_PC_IDE_RESET pin, the switch CONFIG_IDE_RESET_ROUTINE has been added. When
  184. this switch is enabled the routine void ide_set_reset(int idereset) must be
  185. within the board specific files.
  186. Only read from ATAPI devices are supported.
  187. Found out that the function trim_trail cuts off the last character if the whole
  188. string is filled. Added function cpy_ident instead, which trims also leading
  189. spaces and copies the string in the buffer.
  190. Changed files:
  191. - common/cmd_ide.c
  192. - include/ata.h
  193. ISO partition support:
  194. ----------------------
  195. Added CD boot support for El-Torito bootable ISO CDs. The bootfile image must contain
  196. the U-Boot image header. Since CDs do not have "partitions", the boot partition is 0.
  197. The bootcatalog feature has not been tested so far. CD Boot is supported for ATAPI
  198. ("diskboot") and SCSI ("scsiboot") devices.
  199. Added files:
  200. - disk/iso_part.c
  201. - disk/iso_part.h
  202. Block device changes:
  203. ---------------------
  204. To allow the use of dos_part.c, mac_part.c and iso_part.c, the parameter
  205. block_dev_desc will be used when accessing the functions in these files. The block
  206. device descriptor (block_dev_desc) contains a pointer to the read routine of the
  207. device, which will be used to read blocks from the device.
  208. Renamed function ide_print to dev_print and moved it to the file disk/part.c to use
  209. it for IDE ATAPI and SCSI devices.
  210. Please refer to the section "Todo" chapter "block device support enhancement".
  211. Added files:
  212. - include/part.h
  213. changed files:
  214. - disk/dos_part.c
  215. - disk/dos_part.h
  216. - disk/mac_part.c
  217. - disk/mac_part.h
  218. - disk/part.c
  219. - common/cmd_ide.c
  220. - include/u-boot.h
  221. MC146818 RTC support:
  222. ---------------------
  223. Added support for MC146818 RTC with defining CONFIG_RTC_MC146818. The ISA bus IO
  224. base address must be defined with CFG_ISA_IO_BASE_ADDRESS.
  225. Added files:
  226. - rtc/mc146818.c
  227. Standard ISA bus Keyboard support:
  228. ----------------------------------
  229. Added support for the standard PC kyeboard controller. For the PIP405 the superIO
  230. controller must be set up previously. The keyboard uses the standard ISA IRQ, so
  231. the ISA PIC must also be set up.
  232. Added files:
  233. - board/pip405/kbd.c
  234. - board/pip405/kbd.h
  235. - board/pip405/pip405_isa.c
  236. - board/pip405/pip405_isa.h
  237. Chips and Technologie 69000 VGA controller support:
  238. ---------------------------------------------------
  239. Added support for the CT69000 VGA controller.
  240. Added files:
  241. - board/pip405/video.c
  242. - board/pip405/video.h
  243. - board/pip405/vga_table.h
  244. Changed Items:
  245. ==============
  246. Identify:
  247. ---------
  248. Added the config variable CONFIG_IDENT_STRING which will be added to the
  249. "U_BOOT_VERSION __TIME__ DATE___ " String, to allows to identify intermidiate
  250. and custom versions.
  251. Changed files:
  252. - cpu/ppc4xx/start.s
  253. Firmware Image:
  254. ---------------
  255. Added IH_OS_U_BOOT and IH_TYPE_FIRMWARE to the image definitions to allows the
  256. U-Boot update with prior CRC check.
  257. Changed files:
  258. - include/image.h
  259. - tools/mkimage.c
  260. - common/cmd_bootm.c
  261. Correct PCI Frequency for PPC405:
  262. ---------------------------------
  263. Added function (in cpu/ppc4xx/speed.c) to get the PCI frequency for PPC405 CPU.
  264. The PCI Frequency will now be set correct in the board description in common/board.c.
  265. (was set to the busfreq before).
  266. Changed files:
  267. - cpu/ppc4xx/speed.c
  268. - common/board.c
  269. I2C Stuff:
  270. ----------
  271. Added defined(CONFIG_PIP405) at several points in common/cmd_i2c.c.
  272. Added 16bit read/write support for I2C (PPC405), and page write to
  273. I2C EEPROM if defined CFG_EEPROM_PAGE_WRITE_ENABLE.
  274. Changed files:
  275. - cpu/ppc4xx/i2c.c
  276. - common/cmd_i2c.c
  277. Environment / Console:
  278. ----------------------
  279. Although in README.console described, the U-Boot has not assinged the values
  280. found in the environment to the console. Corrected this behavior, but only if
  281. CFG_CONSOLE_IS_IN_ENV is defined.
  282. If CFG_CONSOLE_OVERWRITE_ROUTINE is defined, console_overwrite() decides if the
  283. values stored in the environment or the standard serial in/output should be
  284. assigned to the console. This is useful if the environment values are not correct.
  285. If CFG_CONSOLE_ENV_OVERWRITE is defined the devices assigned to the console at
  286. start-up time will be written to the environment. This means that if the
  287. environment values are overwritten by the overwrite_console() routine, they will be
  288. stored in the environment.
  289. Changed files:
  290. - common/console.c
  291. Correct bootdelay intepretation:
  292. --------------------------------
  293. Changed bootdelay read from the environment from simple_strtoul (unsigned) to
  294. simple_strtol (signed), to be able to get a bootdelay of -1.
  295. Changed files:
  296. - common/main.c
  297. Todo:
  298. =====
  299. Block device support enhancement:
  300. ---------------------------------
  301. Consider to unify the block device handling. Instead of using diskboot for IDE,
  302. scsiboot for SCSI and fdcboot for floppy disks, it would make sense to use only
  303. one command ("devboot" ???) with a parameter of the desired device ("hda1", "sda1",
  304. "fd0" ???) to boot from. The other ide commands can be handled in the same way
  305. ("dev hda read.." instead of "ide read.." or "dev sda read.." instead of
  306. "scsi read..."). Todo this, a common way of assign a block device to its name
  307. (first found ide device = hda, second found hdb etc., or hda is device 0 on bus 0,
  308. hdb is device 1 on bus 0 etc.) as well as the names (hdx for ide, sdx for scsi, fx for
  309. floppy ???) must be defined.
  310. Maybe there are better ideas to do this.
  311. Console assingment:
  312. -------------------
  313. Consider to initialize and assign the console stdin, stdout and stderr as soon as
  314. possible to see the boot messages also on an other console than serial.
  315. Todo for PIP405:
  316. ================
  317. LCD support for VGA:
  318. --------------------
  319. Add LCD support for the CT69000
  320. Default environment:
  321. --------------------
  322. Consider to write a default environment to the OTP part of the EEPROM and use it
  323. if the normal environment is not valid. Useful for serial# and ethaddr values.
  324. Watchdog:
  325. ---------
  326. Implement Watchdog.
  327. Files clean-up:
  328. ---------------
  329. Following files needs to be cleaned up:
  330. - cmd_pip405.c
  331. - flash.c
  332. - pci_pip405.c
  333. - pip405.c
  334. - pip405_isa.c
  335. Consider to split up the files in their functions.