Changeset 8070


Ignore:
Timestamp:
2007-07-20T10:47:02+02:00 (11 years ago)
Author:
juhosg
Message:

[adm5120] update trxsplit

  • use generic rootfs_split feature
  • resync kernel config
Location:
trunk/target/linux
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/adm5120-2.6/config/default

    r8047 r8070  
    185185# CONFIG_MTD_ROM is not set 
    186186# CONFIG_MTD_SLRAM is not set 
    187 # CONFIG_MTD_ROOTFS_ROOT_DEV is not set 
    188 # CONFIG_MTD_ROOTFS_SPLIT is not set 
    189187# CONFIG_NETDEV_1000 is not set 
    190188CONFIG_NET_KEY=y 
     
    266264CONFIG_USB_OHCI_HCD=m 
    267265# CONFIG_USB_PEGASUS is not set 
    268 # CONFIG_USB_RTL8150 is not set 
    269266# CONFIG_USB_SERIAL is not set 
    270267# CONFIG_USB_UHCI_HCD is not set 
    271 # CONFIG_USB_ZD1201 is not set 
    272268# CONFIG_VGASTATE is not set 
    273269CONFIG_VIDEO_V4L1=y 
  • trunk/target/linux/adm5120-2.6/files/arch/mips/adm5120/trxsplit.c

    r7916 r8070  
    5454#define BLOCK_LEN_MIN           0x10000 
    5555 
    56 static struct mtd_info *trx_mtd_master = NULL; 
    57 static struct mtd_info *trx_mtds[TRX_MAX_OFFSET]; 
     56static struct mtd_info *trx_mtd = NULL; 
     57static unsigned long trx_offset = 0; 
     58static int trx_nr_parts = 0; 
    5859static struct mtd_partition trx_parts[TRX_MAX_OFFSET]; 
    5960static struct trx_header trx_hdr; 
    60 static int trx_nr_parts = 0; 
    61 static int trx_rootfs_part = -1; 
    6261 
    6362static int __init trxsplit_checktrx(struct mtd_info *mtd, unsigned long offset) 
     
    6766 
    6867        err = mtd->read(mtd, offset, sizeof(trx_hdr), &retlen, (void *)&trx_hdr); 
    69         if (err) 
    70                 goto err_out; 
    71  
    72         if (retlen != sizeof(trx_hdr)) 
    73                 goto err_out; 
     68        if (err) { 
     69                printk(KERN_ALERT PFX "unable to read from '%s'\n", mtd->name); 
     70                goto err_out; 
     71        } 
     72 
     73        if (retlen != sizeof(trx_hdr)) { 
     74                printk(KERN_ALERT PFX "reading failed on '%s'\n", mtd->name); 
     75                goto err_out; 
     76        } 
    7477 
    7578        trx_hdr.magic = le32_to_cpu(trx_hdr.magic); 
     
    9093        /* TODO: add crc32 checking too? */ 
    9194 
    92         return 1; 
     95        return 0; 
    9396 
    9497err_out: 
    95         return 0; 
    96 } 
    97  
    98 static void __init trxsplit_create_partitions(struct mtd_info *mtd, 
    99         unsigned long offset) 
     98        return -1; 
     99} 
     100 
     101static int __init trxsplit_create_partitions(void) 
    100102{ 
    101103        struct mtd_partition *part = trx_parts; 
     104        int ret = 0; 
    102105        int i; 
    103106 
    104         for (i=0;i<TRX_MAX_OFFSET;i++) { 
     107        if (trx_mtd == NULL) 
     108                goto out; 
     109 
     110        printk(KERN_INFO PFX "creating TRX partitions in '%s' (%d,%d)\n", 
     111                trx_mtd->name, MTD_BLOCK_MAJOR, trx_mtd->index); 
     112 
     113        for (i=0; i<TRX_MAX_OFFSET;i++) { 
    105114                part = &trx_parts[i]; 
    106115                if (trx_hdr.offsets[i] == 0) 
    107116                        continue; 
    108                 part->offset = offset + trx_hdr.offsets[i]; 
    109                 part->mtdp = &trx_mtds[trx_nr_parts]; 
     117                part->offset = trx_offset + trx_hdr.offsets[i]; 
    110118                trx_nr_parts++; 
    111119        } 
     
    114122                trx_parts[i].size = trx_parts[i+1].offset - trx_parts[i].offset; 
    115123        } 
    116         trx_parts[i].size = mtd->size - trx_parts[i].offset; 
     124        trx_parts[i].size = trx_mtd->size - trx_parts[i].offset; 
    117125 
    118126        i=0; 
    119127        part = &trx_parts[i]; 
    120128        if (part->size < TRX_MIN_KERNEL_SIZE) { 
    121                 part->name = "trx_loader"; 
     129                part->name = "loader"; 
    122130                i++; 
    123131        } 
    124132 
    125133        part = &trx_parts[i]; 
    126         part->name = "trx_kernel"; 
     134        part->name = "kernel"; 
    127135        i++; 
    128136 
    129137        part = &trx_parts[i]; 
    130         part->name = "trx_rootfs"; 
    131         trx_rootfs_part = i; 
     138        part->name = "rootfs"; 
     139 
     140        ret = add_mtd_partitions(trx_mtd, trx_parts, trx_nr_parts); 
     141        if (ret) { 
     142                printk(KERN_ALERT PFX "creating TRX partitions failed\n"); 
     143        } 
     144 
     145out: 
     146        return ret; 
    132147} 
    133148 
     
    136151        unsigned long offset; 
    137152        unsigned long blocklen; 
    138         int found; 
    139  
    140         if (trx_mtd_master) 
     153        int err; 
     154 
     155        if (trx_mtd) 
    141156                return; 
    142157 
     
    147162        printk(KERN_INFO PFX "searching TRX header in '%s'\n", mtd->name); 
    148163 
    149         found = 0; 
     164        err = 0; 
    150165        for (offset=0; offset < mtd->size; offset+=blocklen) { 
    151                 found = trxsplit_checktrx(mtd, offset); 
    152                 if (found) 
     166                err = trxsplit_checktrx(mtd, offset); 
     167                if (err == 0) 
    153168                        break; 
    154169        } 
    155170 
    156         if (found == 0) { 
     171        if (err) { 
    157172                printk(KERN_ALERT PFX "no TRX header found\n"); 
    158173                return; 
     
    161176        printk(KERN_INFO PFX "TRX header found at 0x%lX\n", offset); 
    162177 
    163         trxsplit_create_partitions(mtd, offset); 
    164  
    165         trx_mtd_master = mtd; 
    166 } 
    167  
    168 static void trxsplit_remove_mtd(struct mtd_info *mtd) 
    169 { 
     178        trx_mtd = mtd; 
     179        trx_offset = offset; 
     180} 
     181 
     182static void __init trxsplit_remove_mtd(struct mtd_info *mtd) 
     183{ 
     184        /* nothing to do */ 
    170185} 
    171186 
     
    183198static int __init trxsplit_init(void) 
    184199{ 
    185         int err; 
    186         int i; 
     200        int ret; 
    187201 
    188202        trxsplit_find_trx(); 
    189203 
    190         if (trx_mtd_master == NULL) 
    191                 goto err; 
    192  
    193         printk(KERN_INFO PFX "creating TRX partitions in '%s'\n", 
    194                 trx_mtd_master->name); 
    195  
    196         err = add_mtd_partitions(trx_mtd_master, trx_parts, trx_nr_parts); 
    197         if (err) { 
    198                 printk(KERN_ALERT PFX "creating TRX partitions failed\n"); 
    199                 goto err; 
    200         } 
    201  
    202         for (i=0; i<trx_nr_parts; i++) { 
    203                 /* TODO: add error checking */ 
    204                 add_mtd_device(trx_mtds[i]); 
    205         } 
    206  
    207         if (ROOT_DEV == 0 && trx_rootfs_part >= 0) { 
    208                 printk(KERN_INFO PFX "set '%s' to be root filesystem\n", 
    209                         trx_mtds[trx_rootfs_part]->name); 
    210                 ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, trx_mtds[trx_rootfs_part]->index); 
    211         } 
    212  
    213         return 0; 
    214  
    215 err: 
    216         return -1; 
     204        ret = trxsplit_create_partitions(); 
     205        return ret; 
    217206} 
    218207 
  • trunk/target/linux/adm5120eb-2.6/config/default

    r7924 r8070  
    247247# CONFIG_USB_PEGASUS is not set 
    248248# CONFIG_USB_PRINTER is not set 
    249 # CONFIG_USB_RTL8150 is not set 
    250249# CONFIG_USB_SERIAL is not set 
    251250# CONFIG_USB_STORAGE is not set 
     
    253252# CONFIG_USB_USBNET is not set 
    254253# CONFIG_USB_USBNET_MII is not set 
    255 # CONFIG_USB_ZD1201 is not set 
    256254# CONFIG_VGASTATE is not set 
    257255CONFIG_VM_EVENT_COUNTERS=y 
Note: See TracChangeset for help on using the changeset viewer.