diff options
| author | Koen Kooi <koen@openembedded.org> | 2005-09-22 20:08:44 +0000 |
|---|---|---|
| committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-09-22 20:08:44 +0000 |
| commit | a2e5511b5d1eb3faffb47e92fa11136df715aaff (patch) | |
| tree | 83af1de1bc097949bff7e565897f3158c11fe54c /packages/linux/nslu2-kernel | |
| parent | 621435e9d05ed716c1261bc3851fc85d60586b0f (diff) | |
| parent | 153ada05e0051228c641736634c255bc18962e81 (diff) | |
merge of 3918e04d271278074bcf12fe4c07ea259cbc92b0
and ba30bfad08ba6c051b42fb8b245a2323db4719d9
Diffstat (limited to 'packages/linux/nslu2-kernel')
| -rw-r--r-- | packages/linux/nslu2-kernel/2.6/thumb-swi.patch | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/linux/nslu2-kernel/2.6/thumb-swi.patch b/packages/linux/nslu2-kernel/2.6/thumb-swi.patch new file mode 100644 index 0000000000..2e73bb103f --- /dev/null +++ b/packages/linux/nslu2-kernel/2.6/thumb-swi.patch @@ -0,0 +1,19 @@ +# This patch changes the thumb swi handling for any thumb swi with +# an immediate value != 0, those swis are mapped into the arm +# specific swis. This implements a thumb breakpoint swi. +--- linux-2.6.12.2/arch/arm/kernel/entry-common.S.orig 2005-09-19 12:48:42.323365573 -0700 ++++ linux-2.6.12.2/arch/arm/kernel/entry-common.S 2005-09-19 13:31:19.004247358 -0700 +@@ -137,8 +137,11 @@ + */ + #ifdef CONFIG_ARM_THUMB + tst r8, #PSR_T_BIT @ this is SPSR from save_user_regs +- addne scno, r7, #__NR_SYSCALL_BASE @ put OS number in +- ldreq scno, [lr, #-4] ++ ldrneh ip, [lr, #-2] @ thumb swi instruction ++ ldreq scno, [lr, #-4] @ arm swi instruction ++ addne scno, r7, #__NR_SYSCALL_BASE @ put OS number in to thumb r7 value ++ bicnes ip, ip, #0xff00 @ clear thumb swi bits ++ addne scno, ip, #__ARM_NR_BASE @ thumb swi0->r7, swi!0->arm swi + #else + ldr scno, [lr, #-4] @ get SWI instruction + #endif |
