OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [stable_0_2_0_rc2/] [or1ksim/] [peripheral/] [fb.c] - Diff between revs 1446 and 1461

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 1446 Rev 1461
Line 34... Line 34...
#include "sched.h"
#include "sched.h"
 
 
#define FB_WRAP (512*1024)
#define FB_WRAP (512*1024)
 
 
struct fb_state {
struct fb_state {
 
  int enabled;
  unsigned long pal[256];
  unsigned long pal[256];
  int ctrl;
  int ctrl;
  int pic;
  int pic;
  int in_refresh;
  int in_refresh;
  int refresh_count;
  int refresh_count;
Line 331... Line 332...
    fprintf(stderr, "Peripheral FB: Run out of memory\n");
    fprintf(stderr, "Peripheral FB: Run out of memory\n");
    exit(-1);
    exit(-1);
  }
  }
}
}
 
 
 
void fb_enabled(union param_val val, void *dat)
 
{
 
  struct fb_state *fb = dat;
 
  fb->enabled = val.int_val;
 
}
 
 
void *fb_sec_start(void)
void *fb_sec_start(void)
{
{
  struct fb_state *new = malloc(sizeof(struct fb_state));
  struct fb_state *new = malloc(sizeof(struct fb_state));
 
 
  if(!new) {
  if(!new) {
Line 350... Line 357...
  new->addr = 0;
  new->addr = 0;
  new->cam_addr = 0;
  new->cam_addr = 0;
  new->camerax = 0;
  new->camerax = 0;
  new->cameray = 0;
  new->cameray = 0;
  new->camera_pos = 0;
  new->camera_pos = 0;
 
  new->enabled = 1;
 
 
  return new;
  return new;
}
}
 
 
void fb_sec_end(void *dat)
void fb_sec_end(void *dat)
{
{
  struct fb_state *fb = dat;
  struct fb_state *fb = dat;
 
 
 
  if(!fb->enabled) {
 
    free(dat);
 
    return;
 
  }
 
 
  if (fb->baseaddr)
  if (fb->baseaddr)
    register_memoryarea(fb->baseaddr, FB_PAL + 256*4, 4, 0, fb_read32, fb_write32, dat);
    register_memoryarea(fb->baseaddr, FB_PAL + 256*4, 4, 0, fb_read32, fb_write32, dat);
 
 
  reg_sim_reset(fb_reset, dat);
  reg_sim_reset(fb_reset, dat);
}
}
Line 369... Line 382...
void reg_fb_sec(void)
void reg_fb_sec(void)
{
{
  struct config_section *sec = reg_config_sec("fb", fb_sec_start, fb_sec_end);
  struct config_section *sec = reg_config_sec("fb", fb_sec_start, fb_sec_end);
 
 
  reg_config_param(sec, "baseaddr", paramt_addr, fb_baseaddr);
  reg_config_param(sec, "baseaddr", paramt_addr, fb_baseaddr);
 
  reg_config_param(sec, "enabled", paramt_int, fb_enabled);
  reg_config_param(sec, "refresh_rate", paramt_int, fb_refresh_rate);
  reg_config_param(sec, "refresh_rate", paramt_int, fb_refresh_rate);
  reg_config_param(sec, "filename", paramt_str, fb_filename);
  reg_config_param(sec, "filename", paramt_str, fb_filename);
}
}
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.