OpenWrt Forum Archive

Topic: MTD Partition Layout Help

The content of this topic has been archived on 27 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Can anyone help me suggest a  partition layout for this router?
printenv

bootcmd=run flash_flash
bootdelay=3
baudrate=115200
preboot=echo;echo Type "run flash_nfs" to mount root filesystem over NFS;echo
bootfile=uImage
mem=31M
phym=32M
netdev=eth0
console=ttyS1
baudrate=115200
tftppath=
loadaddr=0x80800000
rootpath=/mnt/full_fs
rootfsmtd=/dev/mtdblock1
nfsargs= setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath)
ramargs=setenv bootargs root=/dev/ram rw
addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):on
addmisc=setenv bootargs $(bootargs) console=$(console),$(baudrate) ethaddr=$(ethaddr) phym=$(phym) mem=$(mem) panic=1 mtdparts=$(mtdparts) init=/etc/preinit quiet vpe1_load_addr=0x81f00000 vpe1_mem=1M ethwan=$(ethwan)
flash_nfs=run nfsargs addip addmisc;bootm $(kernel_addr)
net_nfs=tftp $(loadaddr) $(tftppath)$(bootfile);run nfsargs addip addmisc;bootm
net_flash=tftp $(loadaddr) $(tftppath)$(bootfile); run flashargs addip addmisc; bootm
net_ram=tftp $(loadaddr) $(tftppath)$(bootfile); run ramargs addip addmisc; bootm
u-boot=u-boot.ifx
rootfs=rootfs.img
firmware=firmware.img
fullimage=fullimage.img
totalimage=totalimage.img
load=tftp $(loadaddr) $(u-boot)
update=protect off 1:0-2;era 1:0-2;cp.b $(loadaddr) B0000000 $(filesize)
flashargs=setenv bootargs root=$(rootfsmtd) ro rootfstype=squashfs
flash_flash=run flashargs addip addmisc; bootm $(kernel_addr)
update_uboot=tftpboot $(loadaddr) $(tftppath)$(u-boot);erase all; cp.b $(loadaddr) b0000000 $(filesize); reset
update_kernel=tftpboot $(loadaddr) $(tftppath)$(bootfile);upgrade $(loadaddr) $(filesize)
update_rootfs=tftpboot $(loadaddr) $(tftppath)$(rootfs); upgrade $(loadaddr) $(filesize)
update_firmware=tftpboot $(loadaddr) $(tftppath)$(firmware);upgrade $(loadaddr) $(filesize)
update_fullimage=tftpboot $(loadaddr) $(tftppath)$(fullimage);upgrade $(loadaddr) $(filesize)
update_totalimage=tftpboot $(loadaddr) $(tftppath)/$(totalimage);upgrade $(loadaddr) $(filesize)
reset_ddr_config=prot off 0xB000FFE8   0xb000ffff;  erase 0xB000FFE8 0xb000ffff 1
mtdparts=ifx_nor0:64k(uboot),-(rootfs)
reset_uboot_config=prot off 0xB07FE000   0xB07FEFFF;  erase 0xB07FE000 0xB07FEFFF 1
part0_begin=0xB0000000
part1_begin=0xB0010000
total_part=2
flash_end=0xB07FFFFF
data_block0=uboot
data_block1=rootfs
data_block2=kernel
data_block3=sysconfig
data_block4=ubootconfig
data_block5=fwdiag
total_db=6
f_uboot_addr=0xB0000000
f_uboot_size=0
f_ubootconfig_addr=0xB07FE000
f_ubootconfig_size=0x1000
f_ubootconfig_end=0xB07FEFFF
f_kernel_end=IFX_CFG_FLASH_KERNEL_IMAGE_END_ADDR
f_firmware_addr=IFX_CFG_FLASH_FIRMWARE_IMAGE_START_ADDR
f_firmware_size=IFX_CFG_FLASH_FIRMWARE_IMAGE_SIZE
f_fwdiag_addr=0xB07FF000
f_fwdiag_size=0x400
f_ddrconfig_addr=0xB000FFE8
f_ddrconfig_size=24
ethact=amazon_s Switch
bootargs=root=/dev/mtdblock1 ro rootfstype=squashfs ip=192.168.1.1:192.168.1.2::::eth0:on console=ttyS1,115200 ethaddr=00:E0:92:00:01:40 phym=32M mem=31M panic=1 mtdparts=ifx_nor0:64k(uboot),-(rootfs) init=/etc/preinit quiet vpe1_load_addr=0x81f00000 vpe1_mem=1M ethwan=
f_sysconfig_size=0x00001987
f_sysconfig_addr=0xb07ee000
filesize=4bfce8
fileaddr=80800000
ipaddr=192.168.1.1
serverip=192.168.1.2
ethaddr=00:26:75:36:9E:71
serialnum=0671104000254
f_rootfs_size=0x003d96d0
f_rootfs_addr=0xb0010000
f_rootfs_end=0xb03e96d0
f_rootfs_crc=A8864D7
f_kernel_size=0x00116710
f_kernel_addr=0xb06d78f0
kernel_addr=0xb06d78f0
f_kernel_crc=C059FEC6
ethwan=2
stdin=serial
stdout=serial
stderr=serial

Environment size: 3447/4092 bytes

dmesg

shed hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 1024 bind 512)
TCP reno registered
gptu: totally 6 16-bit timers/counters
gptu: misc_register on minor 63
gptu: succeeded to request irq 118
gptu: succeeded to request irq 119
gptu: succeeded to request irq 120
gptu: succeeded to request irq 121
gptu: succeeded to request irq 122
gptu: succeeded to request irq 123
IFX DMA driver, version ifxmips_dma_core.c:v1.0.8
,(c)2009 Infineon Technologies AG
Lantiq CGU driver, version 1.0.9, (c) 2001-2010 Lantiq Deutschland GmbH
Wired TLB entries for Linux read_c0_wired() = 0
squashfs: version 3.2-r2 (2007/01/15) Phillip Lougher
squashfs: LZMA suppport for slax.org by jro
Infineon Technologies DEU driver version 1.0.1
IFX DEU DES initialized (multiblock).
IFX DEU AES initialized (multiblock).
IFX DEU ARC4 initialized (multiblock).
IFX DEU SHA1 initialized.
IFX DEU MD5 initialized.
IFX DEU SHA1_HMAC initialized.
IFX DEU MD5_HMAC initialized.
io scheduler noop registered (default)
PMCU initiates!
ifx_pmu_init: Major 253
Lantiq PMU driver, version 1.0.6, (c) 2001-2010 Lantiq Deutschland GmbH
Lantiq GPIO driver, version 1.2.12, (c) 2001-2010 Lantiq Deutschland GmbH
drivers/char/ifxmips_rcu.c:668:ifx_rcu_init: Can not register RCU device - -16
Lantiq LED Controller driver, version 1.0.4, (c) 2001-2010 Lantiq Deutschland GmbH
IFX MEI Version 5.00.04<6>Aztech Button driver has been initialized
ttyS0 at MMIO 0xbe100400 (irq = 98) is a IFX_ASC
ttyS1 at MMIO 0xbe100c00 (irq = 105) is a IFX_ASC
Lantiq ASC (UART) driver, version 1.0.5, (c) 2001-2010 Lantiq Deutschland GmbH
RAMDISK driver initialized: 1 RAM disks of 12288K size 1024 blocksize
loop: loaded (max 8 devices)
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
IFX SWITCH API, Version 0.8.7.6.3
SWAPI: Registered character device [switch_api] with major no [81]
Loading D5 (MII0/1) driver ...... Succeeded!
PPE datapath driver info:
  Version ID: 192.3.3.1.0.0.3
  Family    : GR9
  DR Type   : Normal Data Path | Indirect-Fast Path
  Interface : MII0 | MII1
  Mode      : Routing
  Release   : 0.0.3
PPE firmware info:
  Version ID: 6.2.1.6.1.1
  Family    : GR9
  FW Type   : Acceleration
  Interface : MII0 + MII1
  Mode      : Bridging + IPv4 Routing
  Release   : 1.1
PPA API --- init successfully
ifx_nor0: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
2 cmdlinepart partitions found on MTD device ifx_nor0
ifx_mtd_init flash0: Using dynamic image partition
Creating 2 MTD partitions on "ifx_nor0":
0x00000000-0x00010000 : "uboot"
0x00010000-0x00800000 : "rootfs"
Lantiq MTD NOR driver, version 1.0.4, (c) 2001-2010 Lantiq Deutschland GmbH
Lantiq SSC driver, version 2.1.5, (c) 2001-2010 Lantiq Deutschland GmbH
Unknown SPI device: 0xFF 0xFF 0xFF
ifx_spi_flash_init: Found no serial flash device
usbmon: debugfs is not available
usbcore: registered new interface driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
usbcore: registered new interface driver pegasus
Registered led device: ledc_0
Registered led device: broadband_led
Registered led device: internet_led
Registered led device: internet_red_led
Registered led device: power_led
Registered led device: ledc_5
Registered led device: ledc_6
Registered led device: usbdev_led
Registered led device: ledc_8
Registered led device: ledc_9
Registered led device: ledc_10
Registered led device: pstn_led
Registered led device: voip2_led
Registered led device: voip_led
Registered led device: ledc_14
Registered led device: wps_led
Lantiq LED driver, version 1.0.14, (c) 2001-2010 Lantiq Deutschland GmbH
nf_conntrack version 0.5.0 (248 buckets, 1984 max)
nf_ct_ftp: registering helper for pf: 2 port: 21
nf_ct_ftp: registering helper for pf: 10 port: 21
ip_conntrack_rtsp v0.6.21 loading
GRE over IPv4 tunneling driver
ip_nat_rtsp v0.6.21 loading
ip_tables: (C) 2000-2006 Netfilter Core Team
ipt_time loading
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
ieee80211_crypt: registered algorithm 'NULL'
ieee80211_crypt: registered algorithm 'WEP'
ieee80211_crypt: registered algorithm 'CCMP'
ieee80211_crypt: registered algorithm 'TKIP'
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 180k freed
Time: MIPS clocksource has been installed.
Warning: unable to open an initial console.
Algorithmics/MIPS FPU Emulator v1.5
echo <enable/disable> [sw/mii0/mii1] > /proc/eth/flowcontrol
echo <enable/disable> [sw/mii0/mii1] > /proc/eth/flowcontrol
echo <enable/disable> [sw/mii0/mii1] > /proc/eth/flowcontrol
IFXOS, Version 1.5.11
<6>(c) Copyright 2007, Infineon Technologies AG
<6>### IFXOS - IFXOS - IFXOS - IFXOS ###
ifx_ppa_init - init succeeded
ifx_nfext_core: module license 'NON-GPL' taints kernel.
PCI: Setting latency timer of device 0000:00:0e.0 to 64


=== pAd = c0010000, size = 514400 ===

<-- RTMPAllocAdapterBlock, Status=0
pAd->CSRBaseAddress =0xb8000000, csr_addr=0xb8000000!
RtmpOSNetDevDetach(): RtmpOSNetDeviceDetach(), dev->name=ra0!


=== pAd = c0010000, size = 514400 ===

<-- RTMPAllocAdapterBlock, Status=0
pAd->CSRBaseAddress =0xb8000000, csr_addr=0xb8000000!
device eth0 entered promiscuous mode
RX DESC a1724000  size = 2048
<-- RTMPAllocTxRxRingMemory, Status=0
1. Phy Mode = 9
2. Phy Mode = 9
NVM is Efuse and its size =3c[3c0-3fb]
3. Phy Mode = 9
MCS Set = ff ff 00 00 01
Main bssid = 00:26:75:36:9e:74
<==== rt28xx_init, Status=0
0x1300 = 000a4380
device ra0 entered promiscuous mode
br0: port 2(ra0) entering learning state
br0: port 1(eth0) entering learning state
br0: topology change detected, propagating
br0: port 2(ra0) entering forwarding state
br0: topology change detected, propagating
br0: port 1(eth0) entering forwarding state
eth1: change MAC from XX:XX:XX:XX:XX:XX to XX:XX:XX:XX:XX:XX
IFXUSB: ifxusb_hcd: version 3.0alpha B100330ME
IFXUSB: USB core #0 soft-reset
IFXUSB: USB core #0 soft-reset
ifxusb_hcd ifxusb_hcd: IFX USB Controller
ifxusb_hcd ifxusb_hcd: new USB bus registered, assigned bus number 1
ifxusb_hcd ifxusb_hcd: irq 54, io mem 0xbe101000
IFXUSB: Init: Power Port (0)
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
usb usb1: USB connect, address 1, bus:usb1
USB Device Path: 0
usb_info: 0X0000
IFXUSB: USB core #1 soft-reset
IFXUSB: USB core #1 soft-reset
ifxusb_hcd ifxusb_hcd: IFX USB Controller
ifxusb_hcd ifxusb_hcd: new USB bus registered, assigned bus number 2
ifxusb_hcd ifxusb_hcd: irq 83, io mem 0xbe106000
IFXUSB: Init: Power Port (0)
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usb usb2: USB connect, address 1, bus:usb2
USB Device Path: 0
usb_info: 0X0000
eth1: change MAC from XX:XX:XX:XX:XX:XX to XX:XX:XX:XX:XX:XX
fuse init (API version 7.8)
fuse distribution version: 2.7.3

# cat /proc/mtd

dev:    size   erasesize  name
mtd0: 00010000 00002000 "uboot"
mtd1: 007f0000 00010000 "rootfs"

# df -k

Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtdblock1            3968      3968         0 100% /

static struct mtd_partition gr7000_partitions[] =
{
    {
        .name    = "uboot",
        .offset    = 0x????,
        .size    = 0x????,
    },
    {
        .name    = "uboot-env",
        .offset    = 0x????,
        .size    = 0x????,
    },
    {
        .name    = "linux",
        .offset    = 0x????,
        .size    = 0x????,
    },
};

(Last edited by alphasparc on 8 Mar 2013, 15:16)

It doesn't seem right to me.
Output of df and du?
What is the router (it might be in the above, but it is harder to read it than ask you!)

The Router is Aztech GR7000

Information from uboot printenv:
Flash base address: 0xB0000000
uboot:
address 0xB0000000 (= offset 0x0)
size 10000

rootfs:
address 0xB0010000 (=offset 0x10000)
size ???

kernel:
address ???
size ???

sysconfig:
address 0xB07EE000
size 0x10000

ubootconfig (uboot-env?):
address 0xB07FE000 (=offset 0x7FE000)
size 0x1000

fwdiag:
address 0xB07FF000 (=offset 0x7FF000)
size 0x1000

Kernel and Rootfs are of dynamic size, so there is just the static offset of 0x10000. On other devices I know, those two partitions are referenced as the Firmware partition. If you need static sizes, choose around 1 MB for the kernel and the rest for rootfs.

Somehow adapted from the old 1043 config, that could look like this:

static struct mtd_partition gr7000_partitions[] = {
    {
        .name        = "uboot",
        .offset        = 0,
        .size            = 0x010000,
        .mask_flags    = MTD_WRITEABLE,
    }, {
        .name        = "kernel",
        .offset        = 0x010000,
        .size            = 0x140000,
    }, {
        .name        = "rootfs",
        .offset        = 0x150000,
        .size            = 0x69e000,
    }, {
        .name        = "sysconfig",
        .offset        = 0x7ee000,
        .size            = 0x010000,
        .mask_flags    = MTD_WRITEABLE,
    }, {
        .name        = "uboot-env",
        .offset        = 0x7fe000,
        .size            = 0x01000,
        .mask_flags    = MTD_WRITEABLE,
    }, {
        .name        = "fwdiag",
        .offset        = 0x7ff000,
        .size            = 0x01000,
        .mask_flags    = MTD_WRITEABLE,
    }, {
        .name        = "firmware",
        .offset        = 0x010000,
        .size            = 0x7de000,
    }
};

(Last edited by MBS on 8 Mar 2013, 21:34)

Thanks

The discussion might have continued from here.