Changeset daea4bf in mainline for arch/mips32/src/drivers/arc.c


Ignore:
Timestamp:
2006-02-18T15:33:05Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8b80b72
Parents:
052da81
Message:

Some arc bios tweaks. Wanted to print configuration data, but
the ARC seems to return strange values.
Newport graphics card does not seem to be easy to port, give up now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/mips32/src/drivers/arc.c

    r052da81 rdaea4bf  
    3939#include <console/kconsole.h>
    4040#include <console/cmd.h>
     41#include <mm/slab.h>
    4142
    4243/* This is a good joke, SGI HAS different types than NT bioses... */
     
    112113}
    113114
     115
     116/** Print configuration data that ARC reports about component */
     117static void arc_print_confdata(arc_component *c)
     118{
     119        cm_resource_list *configdata;
     120        int i;
     121
     122        if (!c->configdatasize)
     123                return; /* No configuration data */
     124
     125        configdata = malloc(c->configdatasize, 0);
     126
     127        if (arc_entry->getconfigurationdata(configdata, c)) {
     128                free(configdata);
     129                return;
     130        }
     131        /* Does not seem to return meaningful data, don't use now */
     132        free(configdata);
     133        return;
     134       
     135        for (i=0; i < configdata->count; i++) {
     136                switch (configdata->descr[i].type) {
     137                case CmResourceTypePort:
     138                        printf("Port: %P-size:%d ",
     139                               (__address)configdata->descr[i].u.port.start,
     140                               configdata->descr[i].u.port.length);
     141                        break;
     142                case CmResourceTypeInterrupt:
     143                        printf("Irq: level(%d) vector(%d) ",
     144                               configdata->descr[i].u.interrupt.level,
     145                               configdata->descr[i].u.interrupt.vector);
     146                        break;
     147                case CmResourceTypeMemory:
     148                        printf("Memory: %P-size:%d ",
     149                               (__address)configdata->descr[i].u.port.start,
     150                               configdata->descr[i].u.port.length);
     151                        break;
     152                default:
     153                        break;
     154                }
     155        }
     156
     157        free(configdata);
     158}
     159
     160/** Print information about component */
    114161static void arc_print_component(arc_component *c)
    115162{
     
    118165        printf("%s: ",ctypes[c->type]);
    119166        for (i=0;i < c->identifier_len;i++)
    120                 arc_putchar(c->identifier[i]);
    121         arc_putchar('\n');
    122 }
    123 
    124 void arc_print_devices(void)
     167                printf("%c",c->identifier[i]);
     168
     169        printf(" ");
     170        arc_print_confdata(c);
     171        printf("\n");
     172}
     173
     174/**
     175 * Read from ARC bios configuration data and print it
     176 */
     177static int cmd_arc_print_devices(cmd_arg_t *argv)
    125178{
    126179        arc_component *c,*next;
    127 
    128         if (!arc_enabled())
    129                 return;
    130180
    131181        c = arc_entry->getchild(NULL);
     
    138188                                c = arc_entry->getparent(c);
    139189                        if (!c)
    140                                 return;
     190                                return 0;
    141191                }
    142192                c = next;
    143193        }
    144 }
    145 
    146 void arc_print_memory_map(void)
     194        return 1;
     195}
     196static cmd_info_t devlist_info = {
     197        .name = "arcdevlist",
     198        .description = "Print arc device list",
     199        .func = cmd_arc_print_devices,
     200        .argc = 0
     201};
     202
     203
     204/** Read from arc bios memory map and print it
     205 *
     206 */
     207static int cmd_arc_print_memmap(cmd_arg_t *argv)
    147208{
    148209        arc_memdescriptor_t *desc;
    149 
    150         if (!arc_enabled())
    151                 return;
    152210
    153211        printf("Memory map:\n");
     
    161219                desc = arc_entry->getmemorydescriptor(desc);
    162220        }
    163 }
     221        return 1;
     222}
     223static cmd_info_t memmap_info = {
     224        .name = "arcmemmap",
     225        .description = "Print arc memory map",
     226        .func = cmd_arc_print_memmap,
     227        .argc = 0
     228};
    164229
    165230/** Print charactor to console */
     
    208273        cmd_initialize(&reboot_info);
    209274        cmd_register(&reboot_info);
     275        cmd_initialize(&memmap_info);
     276        cmd_register(&memmap_info);
     277        cmd_initialize(&devlist_info);
     278        cmd_register(&devlist_info);
    210279
    211280        return 0;
Note: See TracChangeset for help on using the changeset viewer.