summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
index 8065926e28..6d8108be49 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
@@ -118,34 +118,35 @@ static void set_page_tables(void)
118 map_section((int)FRAME, (int)FRAME, 1, BUFFERED); /* enable buffered writing for the framebuffer */ 118 map_section((int)FRAME, (int)FRAME, 1, BUFFERED); /* enable buffered writing for the framebuffer */
119} 119}
120 120
121void memory_init(void) { 121void memory_init(void)
122{
122 ttb_init(); 123 ttb_init();
123 set_page_tables(); 124 set_page_tables();
124 enable_mmu(); 125 enable_mmu();
125} 126}
126 127
127void s3c_regmod(volatile int *reg, unsigned int set, unsigned int clr) 128void s3c_regmod32(volatile unsigned long *reg, unsigned long bits,
129 unsigned long mask)
128{ 130{
129 int oldstatus = disable_interrupt_save(IRQ_FIQ_STATUS); 131 int oldstatus = disable_interrupt_save(IRQ_FIQ_STATUS);
130 unsigned int val = *reg; 132 *reg = (*reg & ~mask) | (bits & mask);
131 *reg = (val | set) & ~clr;
132 restore_interrupt(oldstatus); 133 restore_interrupt(oldstatus);
133} 134}
134 135
135void s3c_regset(volatile int *reg, unsigned int mask) 136void s3c_regset32(volatile unsigned long *reg, unsigned long bits)
136{ 137{
137 s3c_regmod(reg, mask, 0); 138 s3c_regmod32(reg, bits, bits);
138} 139}
139 140
140void s3c_regclr(volatile int *reg, unsigned int mask) 141void s3c_regclr32(volatile unsigned long *reg, unsigned long bits)
141{ 142{
142 s3c_regmod(reg, 0, mask); 143 s3c_regmod32(reg, 0, bits);
143} 144}
144 145
145void system_init(void) 146void system_init(void)
146{ 147{
147 INTMSK = 0xFFFFFFFF; 148 INTMSK = 0xFFFFFFFF;
148 INTMOD = 0; 149 INTMOD = 0;
149 SRCPND = 0xFFFFFFFF; 150 SRCPND = 0xFFFFFFFF;
150 INTPND = 0xFFFFFFFF; 151 INTPND = 0xFFFFFFFF;
151 INTSUBMSK = 0xFFFFFFFF; 152 INTSUBMSK = 0xFFFFFFFF;