diff options
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/system-target.h')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/system-target.h | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/system-target.h b/firmware/target/mips/ingenic_jz47xx/system-target.h index 1f8c388ec6..caf1733158 100644 --- a/firmware/target/mips/ingenic_jz47xx/system-target.h +++ b/firmware/target/mips/ingenic_jz47xx/system-target.h | |||
@@ -32,6 +32,9 @@ | |||
32 | #define CACHE_LINE_SIZE 32 | 32 | #define CACHE_LINE_SIZE 32 |
33 | #include "mmu-mips.h" | 33 | #include "mmu-mips.h" |
34 | 34 | ||
35 | /* no optimized byteswap functions implemented for mips, yet */ | ||
36 | #define NEED_GENERIC_BYTESWAPS | ||
37 | |||
35 | /* This one returns the old status */ | 38 | /* This one returns the old status */ |
36 | static inline int set_interrupt_status(int status, int mask) | 39 | static inline int set_interrupt_status(int status, int mask) |
37 | { | 40 | { |
@@ -73,29 +76,6 @@ static inline void restore_interrupt(int status) | |||
73 | #define set_irq_level(status) set_interrupt_status((status), ST0_IE) | 76 | #define set_irq_level(status) set_interrupt_status((status), ST0_IE) |
74 | #define disable_irq_save() disable_interrupt_save(ST0_IE) | 77 | #define disable_irq_save() disable_interrupt_save(ST0_IE) |
75 | #define restore_irq(c0_status) restore_interrupt(c0_status) | 78 | #define restore_irq(c0_status) restore_interrupt(c0_status) |
76 | |||
77 | static inline uint16_t swap16(uint16_t value) | ||
78 | /* | ||
79 | result[15..8] = value[ 7..0]; | ||
80 | result[ 7..0] = value[15..8]; | ||
81 | */ | ||
82 | { | ||
83 | return (value >> 8) | (value << 8); | ||
84 | } | ||
85 | |||
86 | static inline uint32_t swap32(uint32_t value) | ||
87 | /* | ||
88 | result[31..24] = value[ 7.. 0]; | ||
89 | result[23..16] = value[15.. 8]; | ||
90 | result[15.. 8] = value[23..16]; | ||
91 | result[ 7.. 0] = value[31..24]; | ||
92 | */ | ||
93 | { | ||
94 | uint32_t hi = swap16(value >> 16); | ||
95 | uint32_t lo = swap16(value & 0xffff); | ||
96 | return (lo << 16) | hi; | ||
97 | } | ||
98 | |||
99 | #define UNCACHED_ADDRESS(addr) ((unsigned int)(addr) | 0xA0000000) | 79 | #define UNCACHED_ADDRESS(addr) ((unsigned int)(addr) | 0xA0000000) |
100 | #define UNCACHED_ADDR(x) UNCACHED_ADDRESS((x)) | 80 | #define UNCACHED_ADDR(x) UNCACHED_ADDRESS((x)) |
101 | #define PHYSADDR(x) ((x) & 0x1fffffff) | 81 | #define PHYSADDR(x) ((x) & 0x1fffffff) |