Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/platform/msim/msim.c

    r1569a9b r676e833  
    3838
    3939#include <assert.h>
     40#include <stdio.h>
     41#include <errno.h>
     42#include <stdbool.h>
     43#include <stdlib.h>
     44#include <ctype.h>
     45#include <macros.h>
     46
     47#include <ddi.h>
    4048#include <ddf/driver.h>
    4149#include <ddf/log.h>
    42 #include <errno.h>
    4350#include <ipc/dev_iface.h>
    4451#include <ops/hw_res.h>
    4552#include <ops/pio_window.h>
    46 #include <stdbool.h>
    47 #include <stdio.h>
    4853
    4954#define NAME "msim"
    5055
    51 #define MSIM_DDISK_BASE UINT32_C(0x10000200)
    52 #define MSIM_DDISK_SIZE UINT32_C(0x00000010)
    53 #define MSIM_DDISK_IRQ 6
    54 
    55 #define MSIM_KBD_ADDRESS UINT32_C(0x10000000)
    56 #define MSIM_KBD_SIZE 1
    57 #define MSIM_KBD_IRQ 2
     56#define MSIM_DISK_BASE  UINT32_C(0x10000200)
     57#define MSIM_DISK_SIZE  UINT32_C(0x00000010)
    5858
    5959typedef struct msim_fun {
     
    6565static void msim_init(void);
    6666
    67 /** Standard driver operations. */
     67/** The root device driver's standard operations. */
    6868static driver_ops_t msim_ops = {
    6969        .dev_add = &msim_dev_add
    7070};
    7171
    72 /** Driver structure. */
     72/** The root device driver structure. */
    7373static driver_t msim_driver = {
    7474        .name = NAME,
     
    8989                .type = INTERRUPT,
    9090                .res.interrupt = {
    91                         .irq = MSIM_DDISK_IRQ
     91                        .irq = 6
    9292                }
    9393        }
     
    101101        .pio_window = {
    102102                .mem = {
    103                         .base = MSIM_DDISK_BASE,
    104                         .size = MSIM_DDISK_SIZE
     103                        .base = MSIM_DISK_BASE,
     104                        .size = MSIM_DISK_SIZE
    105105                }
    106106        }
    107107};
    108108
    109 static hw_resource_t console_regs[] = {
    110         {
    111                 .type = MEM_RANGE,
    112                 .res.mem_range = {
    113                         .address = 0,
    114                         .size = 1,
    115                         .relative = true,
    116                         .endianness = LITTLE_ENDIAN
    117                 }
    118         },
    119         {
    120                 .type = INTERRUPT,
    121                 .res.interrupt = {
    122                         .irq = MSIM_KBD_IRQ
    123                 }
    124         }
    125 };
    126 
    127 static msim_fun_t console_data = {
    128         .hw_resources = {
    129                 sizeof(console_regs) / sizeof(console_regs[0]),
    130                 console_regs
    131         },
    132         .pio_window = {
    133                 .mem = {
    134                         .base = MSIM_KBD_ADDRESS,
    135                         .size = MSIM_KBD_SIZE
    136                 }
    137         }
    138 };
    139 
    140109/** Obtain function soft-state from DDF function node */
    141110static msim_fun_t *msim_fun(ddf_fun_t *fnode)
     
    156125        /* Nothing to do. */
    157126
    158         return EOK;
     127        return true;
    159128}
    160129
     
    194163       
    195164        msim_fun_t *fun = ddf_fun_data_alloc(fnode, sizeof(msim_fun_t));
    196         if (fun == NULL)
    197                 goto failure;
    198        
    199165        *fun = *fun_proto;
    200166       
     
    228194        if (!msim_add_fun(dev, "disk0", "msim/ddisk", &disk_data))
    229195                return false;
    230         if (!msim_add_fun(dev, "console", "msim/console", &console_data))
     196        if (!msim_add_fun(dev, "console", "msim/console", &disk_data))
    231197                return false;
    232198        return true;
    233199}
    234200
    235 /** Add MSIM platform device.
    236  *
    237  * @param dev DDF device
    238  * @return Zero on success or non-zero error code.
     201/** Get the root device.
     202 *
     203 * @param dev           The device which is root of the whole device tree (both
     204 *                      of HW and pseudo devices).
     205 * @return              Zero on success, negative error number otherwise.
    239206 */
    240207static int msim_dev_add(ddf_dev_t *dev)
Note: See TracChangeset for help on using the changeset viewer.