PR 349/bsps
* mpc6xx/exceptions/raw_exception.c, mpc6xx/mmu/bat.c,
mpc6xx/mmu/pte121.c, shared/include/cpuIdent.c,
shared/include/cpuIdent.h, shared/src/Makefile.am, shared/src/stack.c,
shared/src/stackTrace.h, powerpc/registers.h:
- undo improper 'fix' who broke mpc604r identification
- fix: 7400 identification PVR value was wrong
- enhance 'setdbat()' to switch OFF a given BAT if called with 0 size
- fix: page table support bugfix
- enhancement: provide routines to take and print stack trace
snapshots
- add definitions for HID1 and DABR SPRs
* mpc505/ictrl/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc505/timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc505/vectors/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc6xx/clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc6xx/exceptions/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc6xx/mmu/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc6xx/timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8260/clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8260/console-generic/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8260/cpm/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8260/exceptions/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8260/mmu/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8260/timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8xx/clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8xx/console-generic/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8xx/cpm/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8xx/exceptions/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8xx/mmu/Makefile.am: Use .$(OBJEXT) instead of .o.
* mpc8xx/timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* ppc403/clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* ppc403/console/Makefile.am: Use .$(OBJEXT) instead of .o.
* ppc403/ictrl/Makefile.am: Use .$(OBJEXT) instead of .o.
* ppc403/timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* ppc403/tty_drv/Makefile.am: Use .$(OBJEXT) instead of .o.
* ppc403/vectors/Makefile.am: Use .$(OBJEXT) instead of .o.
* shared/include/Makefile.am: Use .$(OBJEXT) instead of .o.
* shared/src/Makefile.am: Use .$(OBJEXT) instead of .o.
* shared/include/io.h: Per PR215 address the following issues:
- _IO_BASE, _ISA_MEM_BASE and PCI_DRAM_OFFSET
are no longer defined by libcpu (powerpc/shared/include/io.h)
but by the BSP (who is the only one to know the values)
- the affected BSP (shared/motorola) headers have been fixed
in a separate "libbsp/powerpc/shared" patch.
- the DEC 21140 driver (libchip/network/dec21140.c) has been
fixed to use PCI_DRAM_OFFSET instead of PREP_PCI_DRAM_OFFSET.
and PCI_MEM_BASE instead of PREP_ISA_MEM_BASE. PCI_MEM_BASE
is to be defined by the BSP who is using this driver.
- the DEC driver also has been fixed to use the newer
rtems_bsp_delay_in_bus_cycles() instead of the obsolete
delay_in_bus_cycles().
* rtems/powerpc/registers.h, rtems/score/ppc.h: Per PR213, add
the following:
- support for the MPC74000 (AKA G4); there is no
AltiVec support yet, however.
- the cache flushing assembly code uses hardware-flush on the G4.
Also, a couple of hardcoded numerical values were replaced
by more readable symbolic constants.
- extended interrupt-disabled code section so enclose the entire
cache flush/invalidate procedure (as recommended by the book).
This is not (latency) critical as it is only used by
init code but prevents possible corruption.
- Trivial page table support as been added.
(1:1 effective-virtual-physical address mapping which is only
useful only on CPUs which feature hardware TLB replacement,
e.g. >604. This allows for write-protecting memory regions,
e.g. text/ro-data which makes catching corruptors a lot easier.
It also frees one DBAT/IBAT and gives more flexibility
for setting up address maps :-)
- setdbat() allows changing BAT0 also (since the BSP may use
a page table, BAT0 could be available...).
- asm_setdbatX() violated the SVR ABI by using
r20 as a scratch register; changed for r0
- according to the book, a context synchronizing instruction is
necessary prior to and after changing a DBAT -> isync added
* mpc6xx/clock/c_clock.c: Include rtems/bspIo.h instead of bspIo.h.
* mpc6xx/mmu/bat.h: Include rtems/bspIo.h instead of bspIo.h.
* mpc8260/console-generic/console-generic.c: Include rtems/bspIo.h instead of bspIo.h.
* mpc8260/cpm/brg.c: Include rtems/bspIo.h instead of bspIo.h.
* mpc8xx/console-generic/console-generic.c: Include rtems/bspIo.h instead of bspIo.h.
* shared/include/cpuIdent.c: Include rtems/bspIo.h instead of bspIo.h.
* old_exception_processing/cpu.h: Renamed delay() to rtems_bsp_delay().
Renamed delay_in_bus_cycles() to rtems_bsp_delay_in_bus_cycles().
* shared/include/cpu.h: Renamed delay() to rtems_bsp_delay().
Renamed delay_in_bus_cycles() to rtems_bsp_delay_in_bus_cycles().
* new_exception_processing/Makefile.am: Use 'PREINSTALL_FILES ='.
* old_exception_processing/Makefile.am: Use 'PREINSTALL_FILES ='.
* mpc6xx/mmu/Makefile.am: Use 'PREINSTALL_FILES ='.
* mpc6xx/clock/Makefile.am: Use 'PREINSTALL_FILES ='.
* mpc6xx/exceptions/Makefile.am: Use 'PREINSTALL_FILES ='.
* mpc8xx/include/Makefile.am: Use 'PREINSTALL_FILES ='.
* mpc8xx/exceptions/Makefile.am: Use 'PREINSTALL_FILES ='.
* shared/include/Makefile.am: Use 'PREINSTALL_FILES ='.
* shared/src/Makefile.am: Use 'PREINSTALL_FILES ='.
* shared/src/Makefile.am: Use 'CLEANFILES ='.
* mpc8xx/exceptions/.cvsignore, mpc8xx/exceptions/Makefile.am,
mpc8xx/exceptions/asm_utils.S, mpc8xx/exceptions/raw_exception.c,
mpc8xx/exceptions/raw_exception.h: New files.
* configure.in, mpc6xx/mmu/bat.h, mpc8xx/Makefile.am,
mpc8xx/clock/clock.c,
mpc8xx/console-generic/console-generic.c,
mpc8xx/include/mpc8xx.h, mpc8xx/mmu/mmu.c,
new_exception_processing/cpu.h, shared/include/byteorder.h,
wrapup/Makefile.am: This is conversion of the
mpc8xx CPU to the "new exception processing model."