diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-12-22 14:13:03 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-12-22 14:13:03 +0000 |
commit | b5919529dbe6e16124022f5e71616d2c64ce6a8b (patch) | |
tree | 23c2c480af88d964164790698b0313fbc874eb92 /c/src/lib/libcpu/powerpc | |
parent | 2010-12-17 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-b5919529dbe6e16124022f5e71616d2c64ce6a8b.tar.bz2 |
2010-12-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
* new-exceptions/bspsupport/ppc_exc.S: Comment.
* new-exceptions/bspsupport/ppc_exc_address.c: Fixed address
calculation for e200z1 core.
Diffstat (limited to 'c/src/lib/libcpu/powerpc')
-rw-r--r-- | c/src/lib/libcpu/powerpc/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc.S | 6 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_address.c | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog index 05e71247e9..8e327d4022 100644 --- a/c/src/lib/libcpu/powerpc/ChangeLog +++ b/c/src/lib/libcpu/powerpc/ChangeLog @@ -1,3 +1,9 @@ +2010-12-22 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * new-exceptions/bspsupport/ppc_exc.S: Comment. + * new-exceptions/bspsupport/ppc_exc_address.c: Fixed address + calculation for e200z1 core. + 2010-11-30 Joel Sherrill <joel.sherrilL@OARcorp.com> * mpc55xx/edma/edma.c: Use rtems_chain_first() and do not directly diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc.S b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc.S index d265c48723..dfc416d424 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc.S +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc.S @@ -74,6 +74,12 @@ ppc_exc_tgpr_clr_prolog_size = . - ppc_exc_tgpr_clr_prolog /** * @brief Use vector offsets with 16 byte boundaries. * + * This prologue is intended for cores with IVPR/IVOR registers. The e200z1 + * core has hard wired values for the IVOR, thus all values are calculated to + * match its constraints. The link register will point to the next prologue. + * This is all right for the vector number calculation due the IVOR offset + * values. + * * @see ppc_exc_min_prolog_auto(); */ .global ppc_exc_min_prolog_auto_packed diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_address.c b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_address.c index 8707a96c4a..001bd3fed0 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_address.c +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_address.c @@ -70,7 +70,7 @@ void *ppc_exc_vector_address(unsigned vector) * XXX: this directly matches the vector offsets in a e200z1, * which has hardwired IVORs (IVOR0=0,IVOR1=0x10,IVOR2=0x20...) */ - vector_offset >>= 4; + vector_offset = (vector - 1) << 4; } if (bsp_exceptions_in_RAM) { |