diff options
| author | Stephen Boyd <sboyd@codeaurora.org> | 2014-06-30 17:49:39 -0400 |
|---|---|---|
| committer | Kumar Gala <galak@codeaurora.org> | 2015-01-19 12:42:03 -0500 |
| commit | 9edb4b132f1879a24ac2b4495239175fa13b27fe (patch) | |
| tree | e71d76c6ee0aaf4fb40b8620aaaf1e167490f329 /arch/arm/include/debug | |
| parent | 30cd65523eeef8c8ce9fff9b900b349341ae5f74 (diff) | |
ARM: debug: msm: Support big-endian CPUs
If the CPU is in big-endian mode these macros will access the
hardware incorrectly. Reverse thins as necessary to fix this.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Kumar Gala <galak@codeaurora.org>
Diffstat (limited to 'arch/arm/include/debug')
| -rw-r--r-- | arch/arm/include/debug/msm.S | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/include/debug/msm.S b/arch/arm/include/debug/msm.S index 9ef57612811d..e55a9426b496 100644 --- a/arch/arm/include/debug/msm.S +++ b/arch/arm/include/debug/msm.S | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | .endm | 23 | .endm |
| 24 | 24 | ||
| 25 | .macro senduart, rd, rx | 25 | .macro senduart, rd, rx |
| 26 | ARM_BE8(rev \rd, \rd ) | ||
| 26 | #ifdef CONFIG_DEBUG_QCOM_UARTDM | 27 | #ifdef CONFIG_DEBUG_QCOM_UARTDM |
| 27 | @ Write the 1 character to UARTDM_TF | 28 | @ Write the 1 character to UARTDM_TF |
| 28 | str \rd, [\rx, #0x70] | 29 | str \rd, [\rx, #0x70] |
| @@ -35,24 +36,29 @@ | |||
| 35 | #ifdef CONFIG_DEBUG_QCOM_UARTDM | 36 | #ifdef CONFIG_DEBUG_QCOM_UARTDM |
| 36 | @ check for TX_EMT in UARTDM_SR | 37 | @ check for TX_EMT in UARTDM_SR |
| 37 | ldr \rd, [\rx, #0x08] | 38 | ldr \rd, [\rx, #0x08] |
| 39 | ARM_BE8(rev \rd, \rd ) | ||
| 38 | tst \rd, #0x08 | 40 | tst \rd, #0x08 |
| 39 | bne 1002f | 41 | bne 1002f |
| 40 | @ wait for TXREADY in UARTDM_ISR | 42 | @ wait for TXREADY in UARTDM_ISR |
| 41 | 1001: ldr \rd, [\rx, #0x14] | 43 | 1001: ldr \rd, [\rx, #0x14] |
| 44 | ARM_BE8(rev \rd, \rd ) | ||
| 42 | tst \rd, #0x80 | 45 | tst \rd, #0x80 |
| 43 | beq 1001b | 46 | beq 1001b |
| 44 | 1002: | 47 | 1002: |
| 45 | @ Clear TX_READY by writing to the UARTDM_CR register | 48 | @ Clear TX_READY by writing to the UARTDM_CR register |
| 46 | mov \rd, #0x300 | 49 | mov \rd, #0x300 |
| 50 | ARM_BE8(rev \rd, \rd ) | ||
| 47 | str \rd, [\rx, #0x10] | 51 | str \rd, [\rx, #0x10] |
| 48 | @ Write 0x1 to NCF register | 52 | @ Write 0x1 to NCF register |
| 49 | mov \rd, #0x1 | 53 | mov \rd, #0x1 |
| 54 | ARM_BE8(rev \rd, \rd ) | ||
| 50 | str \rd, [\rx, #0x40] | 55 | str \rd, [\rx, #0x40] |
| 51 | @ UARTDM reg. Read to induce delay | 56 | @ UARTDM reg. Read to induce delay |
| 52 | ldr \rd, [\rx, #0x08] | 57 | ldr \rd, [\rx, #0x08] |
| 53 | #else | 58 | #else |
| 54 | @ wait for TX_READY | 59 | @ wait for TX_READY |
| 55 | 1001: ldr \rd, [\rx, #0x08] | 60 | 1001: ldr \rd, [\rx, #0x08] |
| 61 | ARM_BE8(rev \rd, \rd ) | ||
| 56 | tst \rd, #0x04 | 62 | tst \rd, #0x04 |
| 57 | beq 1001b | 63 | beq 1001b |
| 58 | #endif | 64 | #endif |
