Line 732... |
Line 732... |
{
|
{
|
struct dev_16450 *uart = dat;
|
struct dev_16450 *uart = dat;
|
uart->vapi_id = val.int_val;
|
uart->vapi_id = val.int_val;
|
}
|
}
|
|
|
|
void uart_enabled(union param_val val, void *dat)
|
|
{
|
|
struct dev_16450 *uart = dat;
|
|
uart->enabled = val.int_val;
|
|
}
|
|
|
void *uart_sec_start(void)
|
void *uart_sec_start(void)
|
{
|
{
|
struct dev_16450 *new = malloc(sizeof(struct dev_16450));
|
struct dev_16450 *new = malloc(sizeof(struct dev_16450));
|
|
|
if(!new) {
|
if(!new) {
|
fprintf(stderr, "Peripheral 16450: Run out of memory\n");
|
fprintf(stderr, "Peripheral 16450: Run out of memory\n");
|
exit(-1);
|
exit(-1);
|
}
|
}
|
|
|
|
new->enabled = 1;
|
new->channel_str = NULL;
|
new->channel_str = NULL;
|
new->channel = NULL;
|
new->channel = NULL;
|
new->vapi_id = 0;
|
new->vapi_id = 0;
|
|
|
return new;
|
return new;
|
Line 752... |
Line 759... |
|
|
void uart_sec_end(void *dat)
|
void uart_sec_end(void *dat)
|
{
|
{
|
struct dev_16450 *uart = dat;
|
struct dev_16450 *uart = dat;
|
|
|
|
if(!uart->enabled) {
|
|
free(dat);
|
|
return;
|
|
}
|
register_memoryarea(uart->baseaddr, UART_ADDR_SPACE, 1, 0, uart_read_byte,
|
register_memoryarea(uart->baseaddr, UART_ADDR_SPACE, 1, 0, uart_read_byte,
|
uart_write_byte, dat);
|
uart_write_byte, dat);
|
reg_sim_reset(uart_reset, dat);
|
reg_sim_reset(uart_reset, dat);
|
reg_sim_stat(uart_status, dat);
|
reg_sim_stat(uart_status, dat);
|
}
|
}
|
Line 764... |
Line 775... |
{
|
{
|
struct config_section *sec = reg_config_sec("uart", uart_sec_start,
|
struct config_section *sec = reg_config_sec("uart", uart_sec_start,
|
uart_sec_end);
|
uart_sec_end);
|
|
|
reg_config_param(sec, "baseaddr", paramt_addr, uart_baseaddr);
|
reg_config_param(sec, "baseaddr", paramt_addr, uart_baseaddr);
|
|
reg_config_param(sec, "enabled", paramt_int, uart_enabled);
|
reg_config_param(sec, "irq", paramt_int, uart_irq);
|
reg_config_param(sec, "irq", paramt_int, uart_irq);
|
reg_config_param(sec, "16550", paramt_int, uart_16550);
|
reg_config_param(sec, "16550", paramt_int, uart_16550);
|
reg_config_param(sec, "jitter", paramt_int, uart_jitter);
|
reg_config_param(sec, "jitter", paramt_int, uart_jitter);
|
reg_config_param(sec, "channel", paramt_str, uart_channel);
|
reg_config_param(sec, "channel", paramt_str, uart_channel);
|
reg_config_param(sec, "txfile", paramt_str, uart_newway);
|
reg_config_param(sec, "txfile", paramt_str, uart_newway);
|