Subversion Repositories HelenOS

Rev

Rev 4341 | Rev 4344 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4341 Rev 4343
Line 159... Line 159...
159
 
159
 
160
/** SGCN character device */
160
/** SGCN character device */
161
chardev_t sgcn_io;
161
chardev_t sgcn_io;
162
 
162
 
163
/**
163
/**
164
 * Registers the physical area of the SRAM so that the userspace SGCN
164
 * Set some sysinfo values (SRAM address and SRAM size).
165
 * driver can map it. Moreover, it sets some sysinfo values (SRAM address
-
 
166
 * and SRAM size).
-
 
167
 */
165
 */
168
static void register_sram_parea(uintptr_t sram_begin_physical)
166
static void register_sram(uintptr_t sram_begin_physical)
169
{
167
{
170
    static parea_t sram_parea;
-
 
171
    sram_parea.pbase = sram_begin_physical;
-
 
172
    sram_parea.vbase = (uintptr_t) sram_begin;
-
 
173
    sram_parea.frames = MAPPED_AREA_SIZE / FRAME_SIZE;
-
 
174
    sram_parea.cacheable = false;
-
 
175
    ddi_parea_register(&sram_parea);
-
 
176
   
-
 
177
    sysinfo_set_item_val("sram.area.size", NULL, MAPPED_AREA_SIZE);
168
    sysinfo_set_item_val("sram.area.size", NULL, MAPPED_AREA_SIZE);
178
    sysinfo_set_item_val("sram.address.physical", NULL,
169
    sysinfo_set_item_val("sram.address.physical", NULL,
179
        sram_begin_physical);
170
        sram_begin_physical);
180
}
171
}
181
 
172
 
Line 209... Line 200...
209
 
200
 
210
    sram_begin_physical = SBBC_START + SBBC_SRAM_OFFSET
201
    sram_begin_physical = SBBC_START + SBBC_SRAM_OFFSET
211
        + *((uint32_t *) iosram_toc->value);
202
        + *((uint32_t *) iosram_toc->value);
212
    sram_begin = hw_map(sram_begin_physical, MAPPED_AREA_SIZE);
203
    sram_begin = hw_map(sram_begin_physical, MAPPED_AREA_SIZE);
213
   
204
   
214
    register_sram_parea(sram_begin_physical);
205
    register_sram(sram_begin_physical);
215
}
206
}
216
 
207
 
217
/**
208
/**
218
 * Initializes the starting address of the SGCN buffer.
209
 * Initializes the starting address of the SGCN buffer.
219
 *
210
 *
Line 317... Line 308...
317
}
308
}
318
 
309
 
319
/**
310
/**
320
 * The driver works in polled mode, so no interrupt should be handled by it.
311
 * The driver works in polled mode, so no interrupt should be handled by it.
321
 */
312
 */
322
static irq_ownership_t sgcn_claim(void)
313
static irq_ownership_t sgcn_claim(void *instance)
323
{
314
{
324
    return IRQ_DECLINE;
315
    return IRQ_DECLINE;
325
}
316
}
326
 
317
 
327
/**
318
/**
328
 * The driver works in polled mode, so no interrupt should be handled by it.
319
 * The driver works in polled mode, so no interrupt should be handled by it.
329
 */
320
 */
330
static void sgcn_irq_handler(irq_t *irq, void *arg, ...)
321
static void sgcn_irq_handler(irq_t *irq)
331
{
322
{
332
    panic("Not yet implemented, SGCN works in polled mode.");
323
    panic("Not yet implemented, SGCN works in polled mode.");
333
}
324
}
334
 
325
 
335
/**
326
/**