source: trunk/target/linux/sibyte/patches-3.3/101-rhone_physmap.patch @ 31680

Last change on this file since 31680 was 31680, checked in by juhosg, 5 years ago

sibyte: add 3.3 support

File size: 1.8 KB
  • arch/mips/sibyte/swarm/platform.c

    a b  
    55#include <linux/platform_device.h> 
    66#include <linux/ata_platform.h> 
    77 
     8#include <asm/addrspace.h> 
    89#include <asm/sibyte/board.h> 
    910#include <asm/sibyte/sb1250_genbus.h> 
    1011#include <asm/sibyte/sb1250_regs.h> 
    static int __init sb1250_device_init(voi 
    137138        return ret; 
    138139} 
    139140device_initcall(sb1250_device_init); 
     141 
     142#ifdef CONFIG_SIBYTE_RHONE 
     143 
     144#include <linux/mtd/partitions.h> 
     145#include <linux/mtd/physmap.h> 
     146 
     147/* The board has 16MB flash but CFE sets up only 2MB */ 
     148#define PHYS_TO_K1(a) CKSEG1ADDR(a) 
     149#define BOOTROM_SIZE 0x100 
     150 
     151static void fixup_cs0_size(void) 
     152{ 
     153        SBWRITECSR(((A_IO_EXT_CS_BASE(0)) + R_IO_EXT_MULT_SIZE), BOOTROM_SIZE); 
     154} 
     155 
     156static struct mtd_partition flash_parts[] = { 
     157        { 
     158                .name           = "cfe", 
     159                .offset         = 0x00000000, 
     160                .size           = 0x00200000, 
     161                .mask_flags     = MTD_WRITEABLE, 
     162        }, 
     163        { 
     164                .name           = "os", 
     165                .offset         = 0x00200000, 
     166                .size           = 0x00d00000, 
     167        }, 
     168        { 
     169                .name           = "environment", 
     170                .offset         = 0x00f00000, 
     171                .size           = 0x00100000, 
     172                .mask_flags     = MTD_WRITEABLE, 
     173        }, 
     174}; 
     175 
     176static struct physmap_flash_data flash_data = { 
     177        .width          = 1, 
     178        .nr_parts       = ARRAY_SIZE(flash_parts), 
     179        .parts          = flash_parts, 
     180}; 
     181 
     182static struct resource flash_resource = { 
     183        .start          = 0x1fc00000, 
     184        .end            = 0x20bfffff, 
     185        .flags          = IORESOURCE_MEM, 
     186}; 
     187 
     188static struct platform_device flash_device = { 
     189        .name           = "physmap-flash", 
     190        .id             = 0, 
     191        .resource       = &flash_resource, 
     192        .num_resources  = 1, 
     193        .dev            = { 
     194                .platform_data = &flash_data, 
     195        }, 
     196}; 
     197 
     198static int __init flash_setup(void) 
     199{ 
     200        fixup_cs0_size(); 
     201        platform_device_register(&flash_device); 
     202 
     203        return 0; 
     204}; 
     205 
     206device_initcall(flash_setup); 
     207 
     208#endif /* CONFIG_SIBYTE_RHONE */ 
Note: See TracBrowser for help on using the repository browser.