Changeset 11558


Ignore:
Timestamp:
2008-06-22T21:01:14+02:00 (8 years ago)
Author:
blogic
Message:

fixes several compile errors, reserves memory for second core, adds u-boot env parsing for ifxmips

Location:
trunk/target/linux/ifxmips/files
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ifxmips/files/arch/mips/ifxmips/prom.c

    r11396 r11558  
    3030#include <asm/ifxmips/ifxmips.h> 
    3131 
     32 
    3233static char buf[1024]; 
     34u32 *prom_cp1_base = NULL; 
     35u32 prom_cp1_size = 0; 
    3336 
    3437void 
    35 prom_free_prom_memory (void) 
     38prom_free_prom_memory(void) 
    3639{ 
    3740} 
    3841 
    3942void 
    40 prom_putchar (char c) 
     43prom_putchar(char c) 
    4144{ 
    42         while ((ifxmips_r32(IFXMIPS_ASC1_FSTAT) & ASCFSTAT_TXFFLMASK) >> ASCFSTAT_TXFFLOFF); 
     45        while((ifxmips_r32(IFXMIPS_ASC1_FSTAT) & ASCFSTAT_TXFFLMASK) >> ASCFSTAT_TXFFLOFF); 
    4346 
    44         if (c == '\n') 
     47        if(c == '\n') 
    4548                ifxmips_w32('\r', IFXMIPS_ASC1_TBUF); 
    4649        ifxmips_w32(c, IFXMIPS_ASC1_TBUF); 
     
    4851 
    4952void 
    50 prom_printf (const char * fmt, ...) 
     53prom_printf(const char * fmt, ...) 
    5154{ 
    5255        va_list args; 
     
    5962        buf_end = buf + l; 
    6063 
    61         for (p = buf; p < buf_end; p++) 
     64        for(p = buf; p < buf_end; p++) 
    6265        { 
    6366                prom_putchar(*p); 
     
    6568} 
    6669 
     70u32 *prom_get_cp1_base(void) 
     71{ 
     72        return prom_cp1_base; 
     73} 
     74 
     75u32 prom_get_cp1_size(void) 
     76{ 
     77        return prom_cp1_size; 
     78} 
     79 
    6780void __init 
    6881prom_init(void) 
    6982{ 
     83        int argc = fw_arg0; 
     84        char **argv = (char **) fw_arg1; 
     85        char **envp = (char **) fw_arg2; 
     86 
     87        int memsize = 16; 
     88        int i; 
     89 
    7090        mips_machtype = MACH_INFINEON_IFXMIPS; 
    7191 
    72         strcpy(&(arcs_cmdline[0]), "console=ttyS0,115200 rootfstype=squashfs,jffs2 init=/etc/preinit"); 
    73         add_memory_region (0x00000000, 0x2000000, BOOT_MEM_RAM); 
     92        argv = (char**)KSEG1ADDR((unsigned long)argv); 
     93        arcs_cmdline[0] = '\0'; 
     94        for(i = 1; i < argc; i++) 
     95        { 
     96                char *a = (char*)KSEG1ADDR(argv[i]); 
     97                if(!a) 
     98                        continue; 
     99                if(strlen(arcs_cmdline) + strlen(a + 1) >= sizeof(arcs_cmdline)) 
     100                        break; 
     101                strcat(arcs_cmdline, a); 
     102                strcat(arcs_cmdline, " "); 
     103        } 
     104 
     105        envp = (char**)KSEG1ADDR((unsigned long)envp); 
     106        while(*envp) 
     107        { 
     108                char *e = (char*)KSEG1ADDR(*envp); 
     109 
     110                if(!strncmp(e, "memsize=", 8)) 
     111                { 
     112                        e += 8; 
     113                        memsize = simple_strtoul(e, NULL, 10); 
     114                } 
     115                envp++; 
     116        } 
     117 
     118        prom_cp1_size = 2; 
     119        memsize -= prom_cp1_size; 
     120        prom_cp1_base = (u32*)(0xA0000000 + (memsize * 1024 * 1024)); 
     121 
     122        prom_printf(KERN_INFO "Using %dMB Ram and reserving %dMB for cp1\n", memsize, prom_cp1_size); 
     123        memsize *= 1024 * 1024; 
     124 
     125        if(!*arcs_cmdline) 
     126                strcpy(&(arcs_cmdline[0]), "console=ttyS0,115200 rootfstype=squashfs,jffs2 init=/etc/preinit"); 
     127 
     128        add_memory_region(0x00000000, memsize, BOOT_MEM_RAM); 
    74129} 
  • trunk/target/linux/ifxmips/files/drivers/mtd/maps/ifxmips.c

    r11396 r11558  
    130130 
    131131static int 
    132 ifxmips_mtd_probe (void) 
     132ifxmips_mtd_probe (struct platform_device *dev) 
    133133{ 
    134134        struct mtd_info *ifxmips_mtd = NULL; 
     
    180180} 
    181181 
    182 static struct  
    183 platform_driver ifxmips_mtd_driver = {  
    184         .probe = ifxmips_mtd_probe,  
    185         .driver = {  
    186                 .name = DRVNAME,  
    187                 .owner = THIS_MODULE,  
    188         },  
    189 };  
     182static struct 
     183platform_driver ifxmips_mtd_driver = { 
     184        .probe = ifxmips_mtd_probe, 
     185        .driver = { 
     186                .name = DRVNAME, 
     187                .owner = THIS_MODULE, 
     188        }, 
     189}; 
    190190 
    191191int __init 
    192192init_ifxmips_mtd (void) 
    193193{ 
    194         int ret = platform_driver_register(&ifxmips_mtd_driver);  
    195         if (ret)  
    196                 printk(KERN_INFO DRVNAME ": error registering platfom driver!");  
    197  
    198         return ret;  
     194        int ret = platform_driver_register(&ifxmips_mtd_driver); 
     195        if (ret) 
     196                printk(KERN_INFO DRVNAME ": error registering platfom driver!"); 
     197 
     198        return ret; 
    199199} 
    200200 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips.h

    r11530 r11558  
    8989 
    9090/* control */ 
    91 #define IFXMIPS_ASC1_CON                        ((u32*)(IFXMIPS_ASC1_BASE_ADDR + 0x0010)) 
     91#define IFXMIPS_ASC1_CON                ((u32*)(IFXMIPS_ASC1_BASE_ADDR + 0x0010)) 
    9292 
    9393/* timer reload */ 
     
    104104 
    105105/*------------ RCU */ 
    106  
    107106#define IFXMIPS_RCU_BASE_ADDR   0xBF203000 
    108107 
    109108/* reset request */ 
    110 #define IFXMIPS_RCU_REQ                 ((u32*)(IFXMIPS_RCU_BASE_ADDR + 0x0010)) 
    111 #define IFXMIPS_RST_ALL                 0x40000000 
     109#define IFXMIPS_RCU_RST                 ((u32*)(IFXMIPS_RCU_BASE_ADDR + 0x0010)) 
     110#define IFXMIPS_RCU_RST_CPU1    (1 << 3) 
     111#define IFXMIPS_RCU_RST_ALL             0x40000000 
    112112 
    113113#define IFXMIPS_RCU_RST_REQ_DFE (1 << 7) 
     
    441441 
    442442 
     443/*------------ DEU */ 
     444 
     445#define IFXMIPS_DEU_BASE     (KSEG1 + 0x1E103100) 
     446#define IFXMIPS_DEU_CLK                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0000)) 
     447#define IFXMIPS_DEU_ID                  ((u32 *)(IFXMIPS_DEU_BASE + 0x0008)) 
     448 
     449#define IFXMIPS_DES_CON                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0010)) 
     450#define IFXMIPS_DES_IHR                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0014)) 
     451#define IFXMIPS_DES_ILR                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0018)) 
     452#define IFXMIPS_DES_K1HR                ((u32 *)(IFXMIPS_DEU_BASE + 0x001C)) 
     453#define IFXMIPS_DES_K1LR                ((u32 *)(IFXMIPS_DEU_BASE + 0x0020)) 
     454#define IFXMIPS_DES_K3HR                ((u32 *)(IFXMIPS_DEU_BASE + 0x0024)) 
     455#define IFXMIPS_DES_K3LR                ((u32 *)(IFXMIPS_DEU_BASE + 0x0028)) 
     456#define IFXMIPS_DES_IVHR                ((u32 *)(IFXMIPS_DEU_BASE + 0x002C)) 
     457#define IFXMIPS_DES_IVLR                ((u32 *)(IFXMIPS_DEU_BASE + 0x0030)) 
     458#define IFXMIPS_DES_OHR                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0040)) 
     459#define IFXMIPS_DES_OLR                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0050)) 
     460#define IFXMIPS_AES_CON                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0050)) 
     461#define IFXMIPS_AES_ID3R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0054)) 
     462#define IFXMIPS_AES_ID2R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0058)) 
     463#define IFXMIPS_AES_ID1R                ((u32 *)(IFXMIPS_DEU_BASE + 0x005C)) 
     464#define IFXMIPS_AES_ID0R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0060)) 
     465#define IFXMIPS_AES_K7R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0064)) 
     466#define IFXMIPS_AES_K6R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0068)) 
     467#define IFXMIPS_AES_K5R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x006C)) 
     468#define IFXMIPS_AES_K4R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0070)) 
     469#define IFXMIPS_AES_K3R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0074)) 
     470#define IFXMIPS_AES_K2R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0078)) 
     471#define IFXMIPS_AES_K1R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x007C)) 
     472#define IFXMIPS_AES_K0R                 ((u32 *)(IFXMIPS_DEU_BASE + 0x0080)) 
     473#define IFXMIPS_AES_IV3R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0084)) 
     474#define IFXMIPS_AES_IV2R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0088)) 
     475#define IFXMIPS_AES_IV1R                ((u32 *)(IFXMIPS_DEU_BASE + 0x008C)) 
     476#define IFXMIPS_AES_IV0R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0090)) 
     477#define IFXMIPS_AES_0D3R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0094)) 
     478#define IFXMIPS_AES_0D2R                ((u32 *)(IFXMIPS_DEU_BASE + 0x0098)) 
     479#define IFXMIPS_AES_OD1R                ((u32 *)(IFXMIPS_DEU_BASE + 0x009C)) 
     480#define IFXMIPS_AES_OD0R                ((u32 *)(IFXMIPS_DEU_BASE + 0x00A0)) 
     481 
    443482/*------------ FUSE */ 
    444483 
     
    449488 
    450489#define IFXMIPS_MPS_BASE_ADDR   (KSEG1 + 0x1F107000) 
     490#define IFXMIPS_MPS_SRAM                ((u32*)(KSEG1 + 0x1F200000)) 
    451491 
    452492#define IFXMIPS_MPS_CHIPID              ((u32*)(IFXMIPS_MPS_BASE_ADDR + 0x0344)) 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips_gptu.h

    r11530 r11558  
    140140 * #################################### 
    141141 */ 
    142 #if defined(__KERNEL__) 
    143     typedef void (*timer_callback)(unsigned long arg); 
    144 #endif  //  defined(__KERNEL__) 
     142typedef void (*timer_callback)(unsigned long arg); 
    145143 
    146144 
    147 /* 
    148  * #################################### 
    149  *             Declaration 
    150  * #################################### 
    151  */ 
    152  
    153145#if defined(__KERNEL__) 
    154     extern int request_timer(unsigned int, unsigned int, unsigned long, unsigned long, unsigned long); 
    155     extern int free_timer(unsigned int); 
    156     extern int start_timer(unsigned int, int); 
    157     extern int stop_timer(unsigned int); 
    158     extern int reset_counter_flags(u32 timer, u32 flags); 
    159     extern int get_count_value(unsigned int, unsigned long *); 
     146    extern int ifxmips_request_timer(unsigned int, unsigned int, unsigned long, unsigned long, unsigned long); 
     147    extern int ifxmips_free_timer(unsigned int); 
     148    extern int ifxmips_start_timer(unsigned int, int); 
     149    extern int ifxmips_stop_timer(unsigned int); 
     150    extern int ifxmips_reset_counter_flags(u32 timer, u32 flags); 
     151    extern int ifxmips_get_count_value(unsigned int, unsigned long *); 
    160152 
    161153    extern u32 cal_divider(unsigned long); 
  • trunk/target/linux/ifxmips/files/include/asm-mips/mach-ifxmips/gpio.h

    r11405 r11558  
    2929static inline int gpio_direction_input(unsigned gpio) { 
    3030        ifxmips_port_set_dir_in(0, gpio); 
     31        return 0; 
    3132} 
    3233 
    3334static inline int gpio_direction_output(unsigned gpio, int value) { 
    3435        ifxmips_port_set_dir_out(0, gpio); 
     36        return 0; 
    3537} 
    3638 
    3739static inline int gpio_get_value(unsigned gpio) { 
    3840        ifxmips_port_get_input(0, gpio); 
     41        return 0; 
    3942} 
    4043 
Note: See TracChangeset for help on using the changeset viewer.