wdenk [Sun, 21 Oct 2001 10:54:46 +0000 (10:54 +0000)]
Several patches by Erik Theisen, 14 Oct 2001:
---------------------------------------------
- Fix udelay() for longer delays
- Fix wait_ticks() - don't treat timebase registers as signed
- Fix command name conflicts due to abbreviated length
- Add support for Apple's OS X host environment
- Add support for IBM 4xx DCR registers (commands "getdcr" and
"setdcr" to read and read/modify/write the 4xx DCR)
- Sort command table alphabetically and in descending string length
order to prevent conflicts; added doc/README.commands
- add "reset" option to help info for "date" command
- add support for the ST Electronics M48T35Ax Timekeeper RTC
- add support for "flash_real_protect()" for flash chips that provide
software sector protection routines, e.g. Intel StrataFlash (board
specific code)
- add support for LMC and LMG boards; some of the features might be
interesting to others:
o The flash on these boards is disjointed, e.g. mixed types for
different purposes. Therefore it is kept in different memory
regions.
o The Main Flash is interleaved betweed 2 StrataFlash parts,
necessitating some tricks to fit in with PPCBoot.
o Real software sector protection is used on the main StrataFlash
via flash_real_protect(). The Boot Flash doesn't support software
based sector protection.
o Specialized code is provided to download 1-6 Xilinx FPGAs.
o There is fairly extensive POST testing of some board subsystems.
Some of this code could be reused on other targets. The SDRAM bus
and RTC battery checks come to mind.
wdenk [Sat, 20 Oct 2001 09:41:35 +0000 (09:41 +0000)]
Fix some HUSH problems.
In the current implementation, the local variables space and global
environment variables space are separated. Local variables are those
you define by simply typing like `name=value'. To access a local
variable later on, you have write `$name' or `${name}'; variable
directly by typing say `$name' at the command prompt.
Global environment variables are those you use setenv/printenv to
work with. To run a command stored in such a variable, you need to
use the run command, and you must not use the '$' sign to access
them.
To store commands and special characters in a variable, please use
double quotation marks surrounding the whole text of the variable,
instead of the backslashes before semicolons and special symbols.
NOTE: still serious quoting problems! cannot access env vars in commands!
wdenk [Wed, 17 Oct 2001 20:21:46 +0000 (20:21 +0000)]
* Extend LWMON keyboard driver to allow for more than one key-coded
pre-boot command (we now support an unlimited number of keys)
* Added "hush" shell (from Busybox) as alternative command line
interpreter, thus enabling powerful command line syntax like
if...then...else...fi conditionals or `&&' and '||' constructs
("shell scripts").
* Modified all commands to provide return codes that can be used for
conditional command execution
wdenk [Wed, 17 Oct 2001 20:06:49 +0000 (20:06 +0000)]
Cleanup of 40x code, adding support to read DIMM SPD EEPROMs to
automatically adjust memory timing.
Patch by Stefan Roese / Kenneth Johansson, 17 Oct 2001
wdenk [Mon, 15 Oct 2001 14:47:04 +0000 (14:47 +0000)]
Added CFG_DEFAULT_IMMR:
Default address of the IMMR after system reset. Needed on
some 8260 systems (MPC8260ADS and RPXsuper) to be able to
adjust the position of the IMMR register after a reset.
wdenk [Wed, 10 Oct 2001 09:28:28 +0000 (09:28 +0000)]
* On MPC8240, enable dcache and allocate space for the initial data
structure and initial stack in it; the MMU had to be enabled
because burst-mode accesses to Flash wouldn't work otherwise.
Tested on CU824, but should work for other 8240-based systems as
well.
* Added Configuration for MPC8260ADS board
(Patch by Stuart Hughes, 07 Oct 2001)
* Add automatic RAM size detection to CU824 board configuration
* Make eth_halt() do nothing when ethernet has never been initialized
(board/{esd/common,cu824}/dc2114x.c)
wdenk [Mon, 8 Oct 2001 19:18:17 +0000 (19:18 +0000)]
* Patch by Jerry Van Baren, 19 Sep 2001:
- tweaks to SBC8260 configuration
- added "mii" command to read and write MII PHY registers; it will
also do a simple "info" where it finds all MII PHYs and prints some
info from their registers.
wdenk [Sun, 7 Oct 2001 12:15:54 +0000 (12:15 +0000)]
* Patch by Stefan Roese, 19 Sep 2001:
- Watchdog support for ppc4xx added.
- CONFIG_PCI_SCAN_SHOW added to print pci devices upon startup
(ppc405gp).
- Added OCRTC Board Support
- SDRAM size autodetect added on some esd boards (ppc405)
- Rework of some esd config files
- Changed cpu defines for ppc4xx for Linux compatibility
CONFIG_PPC405 -> CONFIG_4xx
CONFIG_PPC405GP -> CONFIG_405GP
CONFIG_PPC405CR -> CONFIG_405CR
* Fixed register name (PSMR)
Fixed FD mode for 8xx SCC ethernet
Fixed RCCR init problem with I2C and SPI microcode relocation patch
Fixed make problem under tcsh which causes conflicts with VENDOR
variable
* (PPC405GP only) Added interrupt driven serial port input mode with
hardware handshake
Patch by Morten Brørup, 27 Aug 2001
PPCBoot stores all clock information in Hz internally.
####################################################################
# WARNING: #
# This will cause binary incompatibility with older Linux kernels! #
####################################################################
For binary compatibility with older Linux kernels (which expect the
clocks passed in the bd_info data to be in MHz) the environment
variable "clock_in_mhz" can be defined so that PPCBoot converts
clock data to MHZ before passing it to the Linux kernel. When
CONFIG_CLOCKS_IN_MHZ is defined in the board config file, a
definition of "clock_in_mhz=1" is automatically included in the
default environment.
NOTE: for all boards that did not use the (now obsolete)
CFG_CLKS_IN_HZ option such a #define has been added to the config
file.
wdenk [Wed, 29 Aug 2001 07:55:37 +0000 (07:55 +0000)]
* Re-arrange boot message formatting
(includes patch by Jon Diekema, Fri, 10 Aug 2001)
* Add check for and prevent buffer overflow for BOOTP / DHCP string
parameters
* Fix PUMA download on CCM board
* allow 0x... prefix on input
(based on idea by Mads Dydensborg, Tue, 7 Aug 2001)
* allow to put "preboot" command in default configuration
* extended flash chip support for TQM8260 board (AM29LV800T/B,
AM29LV160T/B, AM29DL322T/B, AM29DL323T/B)
* BCR tweakage for the 8260 bus mode on TQM8260
* SIUMCR tweakage enabling the MI interrupt (IRQ7) on TQM8260
* To simplify switching between bus modes, a new configuration option
(CONFIG_BUSMODE_60x) has been added to the "config_TQM8260.h" file.
If defined, BCR will be configured for the 60x mode, otherwise for
8260 mode.
wdenk [Wed, 8 Aug 2001 00:17:55 +0000 (00:17 +0000)]
* allow 0x... prefix on input
(based on idea by Mads Dydensborg, Tue, 7 Aug 2001)
* allow to put "preboot" command in default configuration
* extended flash chip support for TQM8260 board (AM29LV800T/B,
AM29LV160T/B, AM29DL322T/B, AM29DL323T/B)
* BCR tweakage for the 8260 bus mode on TQM8260
* SIUMCR tweakage enabling the MI interrupt (IRQ7) on TQM8260
* To simplify switching between bus modes, a new configuration option
(CONFIG_BUSMODE_60x) has been added to the "config_TQM8260.h" file.
If defined, BCR will be configured for the 60x mode, otherwise for
8260 mode.
wdenk [Sun, 5 Aug 2001 15:35:04 +0000 (15:35 +0000)]
======================================================================
Modifications for 1.0.4:
======================================================================
* "Hymod-Patch": restructuring of files, major changes to support the
i2c serial eeprom, support for the larger flashes, support for a
"global environment", clean-up in common/environment.S not getting
a correct CRC, added hymod support for rtc and i2c serial
eepromrework of information passed to linux kernel based on the
eeprom support
* "I2C-Patch": fixes to i2c stuff so the new i2c driver can be used
with standard eeprom_*() interface functionsstandard eeprom_*()
interface functions, added error handling via a callback function,
cleaned up the generic eeprom functions, added support for a
configurable write delay after a page write
* "Comp-Patch": fix a few compiler warnings with GCC-3.1
* "BDDB-Patch": added board database tools (so far for hymod boards only)
Mega-Patch from Murray Jensen, 26 Jul 2001
* Added configuration for NX823 boards
* Added Autoscript extension
Patch by Kyle Harris, 23 Jul 2001
* New Board DASA_SIM added
* Added network support for ADCIOP
* Moved environment variables from FLASH to NVRAM on ADCIOP
Patch by Stefan Roese, 30 Jul 2001
* Added configuration for Siemens CCM boards
* Moved PCU_E config to new Siemens vendor directory
* Add support for external MAX706T Watchdog (used on LWMON board)
* remove duplicate wait_ticks() in cpu/mpc8260/start.S and ppc/ticks.S
* Updates for EST SBC8260 port (easier selecttion between SCC1 and
FCC2 for ethernet, enable more features)
Patch by Jon Diekema, 4 Aug 2001
* Switching to new directory layout for better support of vendors
with several boards that share some parts of the code, while being
different in other areas
* Make DHCP request exactly the configured parameters
* Added "preboot" command and corresponding CONFIG_PREBOOT
configuration option
* Allow automatic re-configuration of preboot command upon certain
key combinations (for instance, insert boot delay when certain keys
are pressed)
* Fix watchdog handling for slow systems (add more trigger points)
* Added support for PIP405 board, see "doc/README.PIP405".
Supplied by Denis Peter, 4 Jul 2001
This includes:
- SCSI Support (so far only for Symbios SYM53C810A chip)
- Floppy Disk Support
- CD-ROM Support
- ISO Parttion Support (boot from El-Torito bootable ISO CD-ROM)
- MC146818 RTC support
- Chips & Technologies 69000 Video Chip Support
- Standard (PC-Style) Keyboard Support
- Added IH_OS_PPCBOOT and IH_TYPE_FIRMWARE to the image definitions
to allow PPCBoot updates with CRC check.
wdenk [Sun, 3 Jun 2001 21:57:31 +0000 (21:57 +0000)]
* Fixed problems with initrd_high when handling multifile images
* Patch for SBC8260 configuration
by Jon Diekema: 02 Jun 2001
- Removing CFG_SBC_S2 that isn't used
- Improving the MODCK_H & MODCLK[1-3] table.
wdenk [Mon, 28 May 2001 23:44:53 +0000 (23:44 +0000)]
Patch by Stefan Roese: Fri, 11 May 2001
* PPC405GP ethernet driver: MAL error handling added
* CPCI405: new fpga image (problem with some CompactFlash cards solved)
* PPC405GP Rev E and PPC405CR Rev C PVR added
* Added generic interface for board dependend spacial command
extensions.
* Moved EEPROM code to common directory (cmd_eeprom.c); eliminnated
board specific EEPROM code from a couple of board configurations.
* Moved code for software-I2C from board specific to CPU specific
directory as general alternative for hardware supported code.
Sorry, we have several different interfaces to I2C code right now;
ideally, the hardware supported code should be simplified /
rewritten so that the software and hardware versions become drop-in
replacements for each other.
* Cleanup of 8xx specific #includes, Makefiles, ...
* Fix console on SCC3 for MPC850 systems
(Patch by Dr. Bruno Achauer, 31 Mar 2001)
* Work in progress on LWMON board
wdenk [Wed, 21 Mar 2001 21:27:46 +0000 (21:27 +0000)]
* Added support for LWMON board
(Wolfgang Denk, March 2001)
* Added support for GTH board
(Thomas Lange, 19 Mar 2001)
* Misc patches:
- Latest Hymod code
- minor patch for the "immap" command
- minor patch to the "ctrlc" stuff to support interrupting during
interpreting a command line with multiple sections separated by
semi-colons. i.e. if any command is interrupted with control-C,
this fact is recorded and the command line parser will not
continue running further commands.
- backport to the 8xx platform of the new i2c driver that was
introduced for the 8260 platform
(Patch by Murray Jensen, 05 Mar 2001)
* Fixes for PCMCIA code
(Patch by Thomas Lange, 19 Mar 2001)
* Misc ADCIOP modifications
(Patch by Stefan Roese, 16 Mar 2001)
* Fix sector erase bug on Walnut board
(Patch by Raymond Lo, 14 Mar 2001)
* Added BeOS and *BSD #defines to several files
(Patch by Erik Theisen, 14 Mar 2001)
* MBX8xx Board fixes:
- problem with basic clocking due to bad calculation of the PLPRCR
register's multiplication factor
- couldn't access the board's NVRAM due to incorrect initialization
order of chip selects; the Boot ROM's CS0 was overiding the setup
of the NVRAM.
- initialization of BR and OR memory controller registers was not
compliant with the MBX860 Users Manual
- board level configuration and status register # 2's mapping was
defined in the wrong bit order. This was resulting in a incorrect
error message about NVRAM battery failure.
- Re-enabled CFG_CMD_ENV to allow access to the NVRAM
(Patch by Erik Theisen, 14 Mar 2001)
* Network driver fixes
(Patch by Anne-Sophie Harnois, 13 Mar 2001)
* board_pre_init() patch for CANBT/CPCI405/AR405/CANBT/WALNUT405/CPCIISER4
(Patch from Stefan Roese, 12 Mar 2001)
* Fix problems booting PPCBoot on MBX860
(Patch from Paul Ruhland, 10 Mar 2001)
* Fixed bug in command parsing code
(Patch from Dave Ellis, 05 Mar 2001)
wdenk [Sat, 3 Mar 2001 22:11:50 +0000 (22:11 +0000)]
Fix nasty bug: run_command failed in some cases when the executed
command modifiec the environment (like "bootp" does when it creates
or modifies environment variables). The reason was that we used a
pointer directly into the environment area, which may change while we
are running the command. Grrrgh...
wdenk [Tue, 27 Feb 2001 23:50:37 +0000 (23:50 +0000)]
* Fix watchdog support when used with IDE / PCMCIA
* Add KGDB support for IBM 4xx (Anne-Sophie Harnois): configure one
of the two serial ports for KGDB according to CONFIG_KGDB_SER_INDEX
variable defined in "include/config_WALNUT405.h"
* 'bootd' recursion checking was broken (did nothing).
* 'run' recursion checking was broken.
* There were some problems with 'run' caused by run_command() not
being reentrant. This is fixed.
* New configuration options are to make autobooting more dependable
for production systems. They allow the PPCBoot prompt to time out
and retry the autoboot, and can make it harder to accidentally stop
the autoboot. The options and the reasons to use them are explained
in doc/README.autoboot. (Dave Ellis)