* [ECOS] Can I change 'RedBoot Config' using MTD driver. ? [not found] <8ffb26ff0609010812k22171462i2f86daa153bdf5ba@mail.gmail.com> @ 2006-09-04 6:07 ` Amitesh Singh 2006-09-04 12:24 ` Gary Thomas 0 siblings, 1 reply; 3+ messages in thread From: Amitesh Singh @ 2006-09-04 6:07 UTC (permalink / raw) To: ecos-discuss Hi all My Task is to set "Boot script" (RedBoot config) value via a linux command. As on RedBoot prompt,we set configurations using 'fconfig',is there any Linux tool which does the same ? i tried to do it in my way. # cat /proc/mtd dev: size erasesize name mtd0: 00040000 00020000 "RedBoot" mtd1: 00f80000 00020000 "unallocated" mtd2: 00001000 00020000 "RedBoot config" mtd3: 00020000 00020000 "FIS directory" First i copied 'mtd2' using 'dd' and then changed the binary using 'hexedit' (just changed Boot script). Before booting,I unlocked RedBoot partitions. +++++++++++++++++++++++++++++++++++++++++++++++++++++++ RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 RedBoot> fis unlock RedBoot ... Unlock from 0x50000000-0x50040000: .. RedBoot> fis unlock "RedBoot config" ... Unlock from 0x50fc0000-0x50fc1000: . RedBoot> fis unlock "FIS directory" ... Unlock from 0x50fe0000-0x51000000: . +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ I am able to read/write other partitions (including FIS directory (have n't checked for RedBoot :P) ) except "RedBoot config". Any suggestions ??? Best Regards Amitesh Singh http://www.amitesh.info RedBoot> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System Warning: device contents not erased, some blocks may not be usable ... Unlock from 0x50fe0000-0x51000000: . ... Erase from 0x50fe0000-0x51000000: . ... Program from 0x01fdf000-0x01fff000 at 0x50fe0000: . ... Lock from 0x50fe0000-0x51000000: . RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 RedBoot> fis unlock RedBoot ... Unlock from 0x50000000-0x50040000: .. RedBoot> fis unlock "RedBoot config" ... Unlock from 0x50fc0000-0x50fc1000: . RedBoot> fis unlock "FIS directory" ... Unlock from 0x50fe0000-0x51000000: . RedBoot> load -r -v -b 0x01600000 zImage Using default protocol (TFTP) - Raw file loaded 0x01600000-0x016ea9b7, assumed entry at 0x01600000 RedBoot> load -r -v -b 0x00800000 ramdisk.gz Using default protocol (TFTP) - Raw file loaded 0x00800000-0x00b400ef, assumed entry at 0x00800000 RedBoot> go -n 0x01600000 Uncompressing Linux..................................................................... done, booting the kernel. Linux version 2.6.12-uc0 (root@buildsys.***********.com) (gcc version 3.3.2) #103 Fri Sep 1 20:02:51 IST 2006 CPU: XScale-IXP4xx [690541f1] revision 1 (ARMv5TE) CPU0: D VIVT undefined 5 cache CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets Machine: ADI Engineering Coyote converttags Warning: bad configuration page, trying to continue default tags Memory policy: ECC disabled, Data cache writeback Built 1 zonelists Kernel command line: console=ttyS0,115200 root=/dev/ram0 initrd=0x00800000,8M mem=64M@0x00000000 apic=off PID hash table entries: 512 (order: 9, 8192 bytes) Console: colour dummy device 80x30 Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 64MB = 64MB total Memory: 54400KB available (1735K code, 375K data, 108K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok checking if image is initramfs...it isn't (no cpio magic); looks like an initrd Freeing initrd memory: 8192K NET: Registered protocol family 16 PCI: IXP4xx is host PCI: IXP4xx Using direct access for memory space PCI: bus0: Fast back to back transfers disabled dmabounce: registered device 0000:00:02.0 on pci bus NetWinder Floating Point Emulator V0.97 (double precision) Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled ttyS0 at MMIO 0xc8001000 (irq = 13) is a XScale io scheduler noop registered io scheduler cfq registered RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: loaded (max 8 devices) Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx physmap flash device: 1000000 at 50000000 phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank Intel/Sharp Extended Query Table at 0x0031 Using buffer write method cfi_cmdset_0001: Erase suspend on write enabled cmdlinepart partition parsing not available Searching for RedBoot partition table in phys_mapped_flash at offset 0xfe0000 4 RedBoot partitions found on MTD device phys_mapped_flash Creating 4 MTD partitions on "phys_mapped_flash": 0x00000000-0x00040000 : "RedBoot" 0x00040000-0x00fc0000 : "unallocated" 0x00fc0000-0x00fc1000 : "RedBoot config" mtd: partition "RedBoot config" doesn't end on an erase block -- force read-only 0x00fe0000-0x01000000 : "FIS directory" No recognised DiskOnChip devices found blkmtd: version $Revision: 1.24 $ blkmtd: error: missing `device' name block2mtd: version $Revision: 1.23 $ mice: PS/2 mouse device common for all mice NET: Registered protocol family 2 IP: routing cache hash table of 512 buckets, 4Kbytes TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) NET: Registered protocol family 1 NET: Registered protocol family 17 RAMDISK: Compressed image found at block 0 VFS: Mounted root (ext2 filesystem) readonly. Freeing init memory: 108K mount: /etc/mtab: Read-only file system ixp400: module license 'unspecified' taints kernel. ixp400_eth: Initializing IXP400 NPE Ethernet driver software v. 1.4A Warning : log_level == 2 and TRACE is disabled ixp400_eth: CPU clock speed (approx) = 266 MHz ixp400_eth: Initialising Queue Manager... [warning] Warning: the NPE A component you specified does not exist [error] ixEthMiiPhyScan : unexpected Mii PHY ID 0022561b [error] ixEthMiiPhyScan : unexpected Mii PHY ID 0022561b ixp400_eth: Found PHY 0 at address 2 ixp400_eth: Found PHY 1 at address 4 ixp400_eth: Configuring PHY 0 ixp400_eth: Speed 100 Duplex FULL Autonegotiation ON ixp400_eth: Configuring PHY 1 ixp400_eth: Speed 100 Duplex FULL Autonegotiation ON ixp400_eth: ixp0 is using NPEB and the PHY at address 2 ixp400_eth: ixp1 is using NPEC and the PHY at address 4 ixp400_eth: Use default MAC address 00:02:b3:01:01:01 for port 0 ixp400_eth: Use default MAC address 00:02:b3:02:02:02 for port 1 ixp400_eth: port_enable() port_enable(eth1) Welcome to S N A P G E A R L I N U X For further information check: http://www.snapgear.org/ /etc/rc: groupadd: command not found /etc/rc: groupadd: command not found /etc/rc: groupadd: command not found /etc/rc: useradd: command not found init: Booting to single user mode # cat /proc/mtd dev: size erasesize name mtd0: 00040000 00020000 "RedBoot" mtd1: 00f80000 00020000 "unallocated" mtd2: 00001000 00020000 "RedBoot config" mtd3: 00020000 00020000 "FIS directory" # ls -l /dev/mtd* crw-r--r-- 1 0 0 90, 0 /dev/mtd0 crw-r--r-- 1 0 0 90, 2 /dev/mtd1 crw-r--r-- 1 0 0 90, 4 /dev/mtd2 crw-r--r-- 1 0 0 90, 6 /dev/mtd3 brw-r--r-- 1 0 0 31, 0 /dev/mtdblock0 brw-r--r-- 1 0 0 31, 1 /dev/mtdblock1 brw-r--r-- 1 0 0 31, 2 /dev/mtdblock2 brw-r--r-- 1 0 0 31, 3 /dev/mtdblock3 crw-r--r-- 1 0 0 90, 1 /dev/mtdr0 crw-r--r-- 1 0 0 90, 3 /dev/mtdr1 crw-r--r-- 1 0 0 90, 5 /dev/mtdr2 crw-r--r-- 1 0 0 90, 7 /dev/mtdr3 # eraseall /dev/mtd2 //Not able to write on "RedBoot config" :P eraseall: /dev/mtd2: Permission denied # eraseall /dev/mtd3 //can write on "FIS dir" Erased 128 Kibyte @ 0 -- 100% complete. # reboot The system is going down NOW !! Sending SIGTERM to all processes. Sending SIGKILL to all processes. # # # Restarting system. Testing 32MByte SDRAM... OK + Panther Rev 1.2 Redboot Release 1.1 Ethernet eth0: MAC address 00:01:01:01:02:02 IP: 2.2.2.2/255.255.255.0, Gateway: 2.2.2.2 Default server: 2.2.2.1, DNS server IP: 2.2.2.2 RedBoot(tm) bootstrap and debug environment [ROM] Red Hat certified release, version 1.92 - built 12:28:20, Jul 31 2006 Platform: Intel Generic Residential Gateway (XScale) Copyright (C) 2000, 2001, 2002, Red Hat, Inc. RAM: 0x00000000-0x02000000, 0x0001c1d0-0x01fd1000 available FLASH: 0x50000000 - 0x51000000, 128 blocks of 0x00020000 bytes each. == Executing boot script in 2.000 seconds - enter ^C to abort ^C RedBoot> ^C RedBoot> ^C RedBoot> ^C RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System Warning: device contents not erased, some blocks may not be usable ... Unlock from 0x50fe0000-0x51000000: . ... Erase from 0x50fe0000-0x51000000: . ... Program from 0x01fdf000-0x01fff000 at 0x50fe0000: . ... Lock from 0x50fe0000-0x51000000: . RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 ================================================================================ -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [ECOS] Can I change 'RedBoot Config' using MTD driver. ? 2006-09-04 6:07 ` [ECOS] Can I change 'RedBoot Config' using MTD driver. ? Amitesh Singh @ 2006-09-04 12:24 ` Gary Thomas 2006-09-04 13:36 ` [ECOS] " Amitesh Singh 0 siblings, 1 reply; 3+ messages in thread From: Gary Thomas @ 2006-09-04 12:24 UTC (permalink / raw) To: Amitesh Singh; +Cc: ecos-discuss Amitesh Singh wrote: > Hi all > My Task is to set "Boot script" (RedBoot config) value via a linux > command. > > As on RedBoot prompt,we set configurations using 'fconfig',is there any > Linux tool which does the same ? > > i tried to do it in my way. > > # cat /proc/mtd > dev: size erasesize name > mtd0: 00040000 00020000 "RedBoot" > mtd1: 00f80000 00020000 "unallocated" > mtd2: 00001000 00020000 "RedBoot config" > mtd3: 00020000 00020000 "FIS directory" > > > First i copied 'mtd2' using 'dd' and then changed the binary using > 'hexedit' > (just changed Boot script). > Before booting,I unlocked RedBoot partitions. > +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > RedBoot> fis list > Name FLASH addr Mem addr Length Entry point > RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 > RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 > FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 > RedBoot> fis unlock RedBoot > ... Unlock from 0x50000000-0x50040000: .. > RedBoot> fis unlock "RedBoot config" > ... Unlock from 0x50fc0000-0x50fc1000: . > RedBoot> fis unlock "FIS directory" > ... Unlock from 0x50fe0000-0x51000000: . > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > I am able to read/write other partitions (including FIS directory > (have n't > checked for RedBoot :P) ) except "RedBoot config". > Any suggestions ??? > > Best Regards > > Amitesh Singh > http://www.amitesh.info > > > > > RedBoot> fis init > About to initialize [format] FLASH image system - continue (y/n)? y > *** Initialize FLASH Image System > Warning: device contents not erased, some blocks may not be usable > ... Unlock from 0x50fe0000-0x51000000: . > ... Erase from 0x50fe0000-0x51000000: . > ... Program from 0x01fdf000-0x01fff000 at 0x50fe0000: . > ... Lock from 0x50fe0000-0x51000000: . > RedBoot> fis list > Name FLASH addr Mem addr Length Entry point > RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 > RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 > FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 > RedBoot> fis unlock RedBoot > ... Unlock from 0x50000000-0x50040000: .. > RedBoot> fis unlock "RedBoot config" > ... Unlock from 0x50fc0000-0x50fc1000: . > RedBoot> fis unlock "FIS directory" > ... Unlock from 0x50fe0000-0x51000000: . > RedBoot> load -r -v -b 0x01600000 zImage > Using default protocol (TFTP) > - > Raw file loaded 0x01600000-0x016ea9b7, assumed entry at 0x01600000 > RedBoot> load -r -v -b 0x00800000 ramdisk.gz > Using default protocol (TFTP) > - > Raw file loaded 0x00800000-0x00b400ef, assumed entry at 0x00800000 > RedBoot> go -n 0x01600000 > Uncompressing > Linux..................................................................... > > done, booting the kernel. > Linux version 2.6.12-uc0 (root@buildsys.***********.com) (gcc version > 3.3.2) > #103 Fri Sep 1 20:02:51 IST 2006 > CPU: XScale-IXP4xx [690541f1] revision 1 (ARMv5TE) > CPU0: D VIVT undefined 5 cache > CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets > CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets > Machine: ADI Engineering Coyote > converttags > Warning: bad configuration page, trying to continue > default tags > Memory policy: ECC disabled, Data cache writeback > Built 1 zonelists > Kernel command line: console=ttyS0,115200 root=/dev/ram0 > initrd=0x00800000,8M mem=64M@0x00000000 apic=off > PID hash table entries: 512 (order: 9, 8192 bytes) > Console: colour dummy device 80x30 > Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) > Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) > Memory: 64MB = 64MB total > Memory: 54400KB available (1735K code, 375K data, 108K init) > Mount-cache hash table entries: 512 > CPU: Testing write buffer coherency: ok > checking if image is initramfs...it isn't (no cpio magic); looks like an > initrd > Freeing initrd memory: 8192K > NET: Registered protocol family 16 > PCI: IXP4xx is host > PCI: IXP4xx Using direct access for memory space > PCI: bus0: Fast back to back transfers disabled > dmabounce: registered device 0000:00:02.0 on pci bus > NetWinder Floating Point Emulator V0.97 (double precision) > Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled > ttyS0 at MMIO 0xc8001000 (irq = 13) is a XScale > io scheduler noop registered > io scheduler cfq registered > RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize > loop: loaded (max 8 devices) > Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 > ide: Assuming 33MHz system bus speed for PIO modes; override with > idebus=xx > physmap flash device: 1000000 at 50000000 > phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank > Intel/Sharp Extended Query Table at 0x0031 > Using buffer write method > cfi_cmdset_0001: Erase suspend on write enabled > cmdlinepart partition parsing not available > Searching for RedBoot partition table in phys_mapped_flash at offset > 0xfe0000 > 4 RedBoot partitions found on MTD device phys_mapped_flash > Creating 4 MTD partitions on "phys_mapped_flash": > 0x00000000-0x00040000 : "RedBoot" > 0x00040000-0x00fc0000 : "unallocated" > 0x00fc0000-0x00fc1000 : "RedBoot config" > mtd: partition "RedBoot config" doesn't end on an erase block -- force > read-only > 0x00fe0000-0x01000000 : "FIS directory" > No recognised DiskOnChip devices found > blkmtd: version $Revision: 1.24 $ > blkmtd: error: missing `device' name > > block2mtd: version $Revision: 1.23 $ > mice: PS/2 mouse device common for all mice > NET: Registered protocol family 2 > IP: routing cache hash table of 512 buckets, 4Kbytes > TCP established hash table entries: 4096 (order: 3, 32768 bytes) > TCP bind hash table entries: 4096 (order: 2, 16384 bytes) > TCP: Hash tables configured (established 4096 bind 4096) > NET: Registered protocol family 1 > NET: Registered protocol family 17 > RAMDISK: Compressed image found at block 0 > VFS: Mounted root (ext2 filesystem) readonly. > Freeing init memory: 108K > mount: /etc/mtab: Read-only file system > ixp400: module license 'unspecified' taints kernel. > ixp400_eth: Initializing IXP400 NPE Ethernet driver software v. 1.4A > Warning : log_level == 2 and TRACE is disabled > ixp400_eth: CPU clock speed (approx) = 266 MHz > ixp400_eth: Initialising Queue Manager... > [warning] Warning: the NPE A component you specified does not exist > [error] ixEthMiiPhyScan : unexpected Mii PHY ID 0022561b > [error] ixEthMiiPhyScan : unexpected Mii PHY ID 0022561b > ixp400_eth: Found PHY 0 at address 2 > ixp400_eth: Found PHY 1 at address 4 > ixp400_eth: Configuring PHY 0 > ixp400_eth: Speed 100 Duplex FULL Autonegotiation ON > ixp400_eth: Configuring PHY 1 > ixp400_eth: Speed 100 Duplex FULL Autonegotiation ON > ixp400_eth: ixp0 is using NPEB and the PHY at address 2 > ixp400_eth: ixp1 is using NPEC and the PHY at address 4 > ixp400_eth: Use default MAC address 00:02:b3:01:01:01 for port 0 > ixp400_eth: Use default MAC address 00:02:b3:02:02:02 for port 1 > ixp400_eth: port_enable() > port_enable(eth1) > Welcome to > > S N A P G E A R L I N U X > > For further information check: > http://www.snapgear.org/ > > /etc/rc: groupadd: command not found > /etc/rc: groupadd: command not found > /etc/rc: groupadd: command not found > /etc/rc: useradd: command not found > init: Booting to single user mode > # cat /proc/mtd > dev: size erasesize name > mtd0: 00040000 00020000 "RedBoot" > mtd1: 00f80000 00020000 "unallocated" > mtd2: 00001000 00020000 "RedBoot config" > mtd3: 00020000 00020000 "FIS directory" > # ls -l /dev/mtd* > crw-r--r-- 1 0 0 90, 0 /dev/mtd0 > crw-r--r-- 1 0 0 90, 2 /dev/mtd1 > crw-r--r-- 1 0 0 90, 4 /dev/mtd2 > crw-r--r-- 1 0 0 90, 6 /dev/mtd3 > brw-r--r-- 1 0 0 31, 0 /dev/mtdblock0 > brw-r--r-- 1 0 0 31, 1 /dev/mtdblock1 > brw-r--r-- 1 0 0 31, 2 /dev/mtdblock2 > brw-r--r-- 1 0 0 31, 3 /dev/mtdblock3 > crw-r--r-- 1 0 0 90, 1 /dev/mtdr0 > crw-r--r-- 1 0 0 90, 3 /dev/mtdr1 > crw-r--r-- 1 0 0 90, 5 /dev/mtdr2 > crw-r--r-- 1 0 0 90, 7 /dev/mtdr3 > # eraseall /dev/mtd2 //Not able to write on > "RedBoot > config" :P > eraseall: /dev/mtd2: Permission denied > # eraseall /dev/mtd3 //can write on "FIS dir" > Erased 128 Kibyte @ 0 -- 100% complete. > # reboot > > The system is going down NOW !! > Sending SIGTERM to all processes. > Sending SIGKILL to all processes. > # > # > # Restarting system. > > Testing 32MByte SDRAM... OK + > Panther Rev 1.2 > Redboot Release 1.1 > Ethernet eth0: MAC address 00:01:01:01:02:02 > IP: 2.2.2.2/255.255.255.0, Gateway: 2.2.2.2 > Default server: 2.2.2.1, DNS server IP: 2.2.2.2 > > RedBoot(tm) bootstrap and debug environment [ROM] > Red Hat certified release, version 1.92 - built 12:28:20, Jul 31 2006 > > Platform: Intel Generic Residential Gateway (XScale) > Copyright (C) 2000, 2001, 2002, Red Hat, Inc. > > RAM: 0x00000000-0x02000000, 0x0001c1d0-0x01fd1000 available > FLASH: 0x50000000 - 0x51000000, 128 blocks of 0x00020000 bytes each. > == Executing boot script in 2.000 seconds - enter ^C to abort > ^C > RedBoot> ^C > RedBoot> ^C > RedBoot> ^C > RedBoot> fis list > Name FLASH addr Mem addr Length Entry point > RedBoot> fis init > About to initialize [format] FLASH image system - continue (y/n)? y > *** Initialize FLASH Image System > Warning: device contents not erased, some blocks may not be usable > ... Unlock from 0x50fe0000-0x51000000: . > ... Erase from 0x50fe0000-0x51000000: . > ... Program from 0x01fdf000-0x01fff000 at 0x50fe0000: . > ... Lock from 0x50fe0000-0x51000000: . > RedBoot> fis list > Name FLASH addr Mem addr Length Entry point > RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 > RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 > FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 > > ================================================================================ > > The easiest way to fix this is to separate the FIS directory from the FCONFIG database - basically into two separate FLASH sectors. Then Linux will let you write to them. Rebuild RedBoot with CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG false -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 3+ messages in thread
* [ECOS] Re: Can I change 'RedBoot Config' using MTD driver. ? 2006-09-04 12:24 ` Gary Thomas @ 2006-09-04 13:36 ` Amitesh Singh 0 siblings, 0 replies; 3+ messages in thread From: Amitesh Singh @ 2006-09-04 13:36 UTC (permalink / raw) To: Gary Thomas; +Cc: ecos-discuss Hi Gary Thanks, Well,instead of changing RedBoot,I have modified the code 'mtdpart.c".(linux-2.6.x/drivers/mtd) if ((slave->mtd.flags & MTD_WRITEABLE) && (slave->mtd.size % slave->mtd.erasesize)) { // slave->mtd.flags &= ~MTD_WRITEABLE; slave->mtd.flags &=MTD_WRITEABLE; printk ("mtd: partition \"%s\" doesn't end on an erase block -- force read-only---Hacked ;-)\n", parts[i].name); } Now,I am able to read/write "RedBoot config" partition. ;-) Thanks for the help -- Amitesh http://www.amitesh.info On 9/4/06, Gary Thomas <gary@mlbassoc.com> wrote: > Amitesh Singh wrote: > > Hi all > > My Task is to set "Boot script" (RedBoot config) value via a linux > > command. > > > > As on RedBoot prompt,we set configurations using 'fconfig',is there any > > Linux tool which does the same ? > > > > i tried to do it in my way. > > > > # cat /proc/mtd > > dev: size erasesize name > > mtd0: 00040000 00020000 "RedBoot" > > mtd1: 00f80000 00020000 "unallocated" > > mtd2: 00001000 00020000 "RedBoot config" > > mtd3: 00020000 00020000 "FIS directory" > > > > > > First i copied 'mtd2' using 'dd' and then changed the binary using > > 'hexedit' > > (just changed Boot script). > > Before booting,I unlocked RedBoot partitions. > > +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > RedBoot> fis list > > Name FLASH addr Mem addr Length Entry point > > RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 > > RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 > > FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 > > RedBoot> fis unlock RedBoot > > ... Unlock from 0x50000000-0x50040000: .. > > RedBoot> fis unlock "RedBoot config" > > ... Unlock from 0x50fc0000-0x50fc1000: . > > RedBoot> fis unlock "FIS directory" > > ... Unlock from 0x50fe0000-0x51000000: . > > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > > > I am able to read/write other partitions (including FIS directory > > (have n't > > checked for RedBoot :P) ) except "RedBoot config". > > Any suggestions ??? > > > > Best Regards > > > > Amitesh Singh > > http://www.amitesh.info > > > > > > > > > > RedBoot> fis init > > About to initialize [format] FLASH image system - continue (y/n)? y > > *** Initialize FLASH Image System > > Warning: device contents not erased, some blocks may not be usable > > ... Unlock from 0x50fe0000-0x51000000: . > > ... Erase from 0x50fe0000-0x51000000: . > > ... Program from 0x01fdf000-0x01fff000 at 0x50fe0000: . > > ... Lock from 0x50fe0000-0x51000000: . > > RedBoot> fis list > > Name FLASH addr Mem addr Length Entry point > > RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 > > RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 > > FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 > > RedBoot> fis unlock RedBoot > > ... Unlock from 0x50000000-0x50040000: .. > > RedBoot> fis unlock "RedBoot config" > > ... Unlock from 0x50fc0000-0x50fc1000: . > > RedBoot> fis unlock "FIS directory" > > ... Unlock from 0x50fe0000-0x51000000: . > > RedBoot> load -r -v -b 0x01600000 zImage > > Using default protocol (TFTP) > > - > > Raw file loaded 0x01600000-0x016ea9b7, assumed entry at 0x01600000 > > RedBoot> load -r -v -b 0x00800000 ramdisk.gz > > Using default protocol (TFTP) > > - > > Raw file loaded 0x00800000-0x00b400ef, assumed entry at 0x00800000 > > RedBoot> go -n 0x01600000 > > Uncompressing > > Linux..................................................................... > > > > done, booting the kernel. > > Linux version 2.6.12-uc0 (root@buildsys.***********.com) (gcc version > > 3.3.2) > > #103 Fri Sep 1 20:02:51 IST 2006 > > CPU: XScale-IXP4xx [690541f1] revision 1 (ARMv5TE) > > CPU0: D VIVT undefined 5 cache > > CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets > > CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets > > Machine: ADI Engineering Coyote > > converttags > > Warning: bad configuration page, trying to continue > > default tags > > Memory policy: ECC disabled, Data cache writeback > > Built 1 zonelists > > Kernel command line: console=ttyS0,115200 root=/dev/ram0 > > initrd=0x00800000,8M mem=64M@0x00000000 apic=off > > PID hash table entries: 512 (order: 9, 8192 bytes) > > Console: colour dummy device 80x30 > > Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) > > Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) > > Memory: 64MB = 64MB total > > Memory: 54400KB available (1735K code, 375K data, 108K init) > > Mount-cache hash table entries: 512 > > CPU: Testing write buffer coherency: ok > > checking if image is initramfs...it isn't (no cpio magic); looks like an > > initrd > > Freeing initrd memory: 8192K > > NET: Registered protocol family 16 > > PCI: IXP4xx is host > > PCI: IXP4xx Using direct access for memory space > > PCI: bus0: Fast back to back transfers disabled > > dmabounce: registered device 0000:00:02.0 on pci bus > > NetWinder Floating Point Emulator V0.97 (double precision) > > Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled > > ttyS0 at MMIO 0xc8001000 (irq = 13) is a XScale > > io scheduler noop registered > > io scheduler cfq registered > > RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize > > loop: loaded (max 8 devices) > > Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 > > ide: Assuming 33MHz system bus speed for PIO modes; override with > > idebus=xx > > physmap flash device: 1000000 at 50000000 > > phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank > > Intel/Sharp Extended Query Table at 0x0031 > > Using buffer write method > > cfi_cmdset_0001: Erase suspend on write enabled > > cmdlinepart partition parsing not available > > Searching for RedBoot partition table in phys_mapped_flash at offset > > 0xfe0000 > > 4 RedBoot partitions found on MTD device phys_mapped_flash > > Creating 4 MTD partitions on "phys_mapped_flash": > > 0x00000000-0x00040000 : "RedBoot" > > 0x00040000-0x00fc0000 : "unallocated" > > 0x00fc0000-0x00fc1000 : "RedBoot config" > > mtd: partition "RedBoot config" doesn't end on an erase block -- force > > read-only > > 0x00fe0000-0x01000000 : "FIS directory" > > No recognised DiskOnChip devices found > > blkmtd: version $Revision: 1.24 $ > > blkmtd: error: missing `device' name > > > > block2mtd: version $Revision: 1.23 $ > > mice: PS/2 mouse device common for all mice > > NET: Registered protocol family 2 > > IP: routing cache hash table of 512 buckets, 4Kbytes > > TCP established hash table entries: 4096 (order: 3, 32768 bytes) > > TCP bind hash table entries: 4096 (order: 2, 16384 bytes) > > TCP: Hash tables configured (established 4096 bind 4096) > > NET: Registered protocol family 1 > > NET: Registered protocol family 17 > > RAMDISK: Compressed image found at block 0 > > VFS: Mounted root (ext2 filesystem) readonly. > > Freeing init memory: 108K > > mount: /etc/mtab: Read-only file system > > ixp400: module license 'unspecified' taints kernel. > > ixp400_eth: Initializing IXP400 NPE Ethernet driver software v. 1.4A > > Warning : log_level == 2 and TRACE is disabled > > ixp400_eth: CPU clock speed (approx) = 266 MHz > > ixp400_eth: Initialising Queue Manager... > > [warning] Warning: the NPE A component you specified does not exist > > [error] ixEthMiiPhyScan : unexpected Mii PHY ID 0022561b > > [error] ixEthMiiPhyScan : unexpected Mii PHY ID 0022561b > > ixp400_eth: Found PHY 0 at address 2 > > ixp400_eth: Found PHY 1 at address 4 > > ixp400_eth: Configuring PHY 0 > > ixp400_eth: Speed 100 Duplex FULL Autonegotiation ON > > ixp400_eth: Configuring PHY 1 > > ixp400_eth: Speed 100 Duplex FULL Autonegotiation ON > > ixp400_eth: ixp0 is using NPEB and the PHY at address 2 > > ixp400_eth: ixp1 is using NPEC and the PHY at address 4 > > ixp400_eth: Use default MAC address 00:02:b3:01:01:01 for port 0 > > ixp400_eth: Use default MAC address 00:02:b3:02:02:02 for port 1 > > ixp400_eth: port_enable() > > port_enable(eth1) > > Welcome to > > > > S N A P G E A R L I N U X > > > > For further information check: > > http://www.snapgear.org/ > > > > /etc/rc: groupadd: command not found > > /etc/rc: groupadd: command not found > > /etc/rc: groupadd: command not found > > /etc/rc: useradd: command not found > > init: Booting to single user mode > > # cat /proc/mtd > > dev: size erasesize name > > mtd0: 00040000 00020000 "RedBoot" > > mtd1: 00f80000 00020000 "unallocated" > > mtd2: 00001000 00020000 "RedBoot config" > > mtd3: 00020000 00020000 "FIS directory" > > # ls -l /dev/mtd* > > crw-r--r-- 1 0 0 90, 0 /dev/mtd0 > > crw-r--r-- 1 0 0 90, 2 /dev/mtd1 > > crw-r--r-- 1 0 0 90, 4 /dev/mtd2 > > crw-r--r-- 1 0 0 90, 6 /dev/mtd3 > > brw-r--r-- 1 0 0 31, 0 /dev/mtdblock0 > > brw-r--r-- 1 0 0 31, 1 /dev/mtdblock1 > > brw-r--r-- 1 0 0 31, 2 /dev/mtdblock2 > > brw-r--r-- 1 0 0 31, 3 /dev/mtdblock3 > > crw-r--r-- 1 0 0 90, 1 /dev/mtdr0 > > crw-r--r-- 1 0 0 90, 3 /dev/mtdr1 > > crw-r--r-- 1 0 0 90, 5 /dev/mtdr2 > > crw-r--r-- 1 0 0 90, 7 /dev/mtdr3 > > # eraseall /dev/mtd2 //Not able to write on > > "RedBoot > > config" :P > > eraseall: /dev/mtd2: Permission denied > > # eraseall /dev/mtd3 //can write on "FIS dir" > > Erased 128 Kibyte @ 0 -- 100% complete. > > # reboot > > > > The system is going down NOW !! > > Sending SIGTERM to all processes. > > Sending SIGKILL to all processes. > > # > > # > > # Restarting system. > > > > Testing 32MByte SDRAM... OK + > > Panther Rev 1.2 > > Redboot Release 1.1 > > Ethernet eth0: MAC address 00:01:01:01:02:02 > > IP: 2.2.2.2/255.255.255.0, Gateway: 2.2.2.2 > > Default server: 2.2.2.1, DNS server IP: 2.2.2.2 > > > > RedBoot(tm) bootstrap and debug environment [ROM] > > Red Hat certified release, version 1.92 - built 12:28:20, Jul 31 2006 > > > > Platform: Intel Generic Residential Gateway (XScale) > > Copyright (C) 2000, 2001, 2002, Red Hat, Inc. > > > > RAM: 0x00000000-0x02000000, 0x0001c1d0-0x01fd1000 available > > FLASH: 0x50000000 - 0x51000000, 128 blocks of 0x00020000 bytes each. > > == Executing boot script in 2.000 seconds - enter ^C to abort > > ^C > > RedBoot> ^C > > RedBoot> ^C > > RedBoot> ^C > > RedBoot> fis list > > Name FLASH addr Mem addr Length Entry point > > RedBoot> fis init > > About to initialize [format] FLASH image system - continue (y/n)? y > > *** Initialize FLASH Image System > > Warning: device contents not erased, some blocks may not be usable > > ... Unlock from 0x50fe0000-0x51000000: . > > ... Erase from 0x50fe0000-0x51000000: . > > ... Program from 0x01fdf000-0x01fff000 at 0x50fe0000: . > > ... Lock from 0x50fe0000-0x51000000: . > > RedBoot> fis list > > Name FLASH addr Mem addr Length Entry point > > RedBoot 0x50000000 0x50000000 0x00040000 0x00000000 > > RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 > > FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 > > > > > ================================================================================ > > > > > > The easiest way to fix this is to separate the FIS directory from the > FCONFIG database - basically > into two separate FLASH sectors. Then Linux will let you write to them. > > Rebuild RedBoot with CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG false > > > -- > ------------------------------------------------------------ > Gary Thomas | Consulting for the > MLB Associates | Embedded world > ------------------------------------------------------------ > > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-09-04 13:36 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <8ffb26ff0609010812k22171462i2f86daa153bdf5ba@mail.gmail.com> 2006-09-04 6:07 ` [ECOS] Can I change 'RedBoot Config' using MTD driver. ? Amitesh Singh 2006-09-04 12:24 ` Gary Thomas 2006-09-04 13:36 ` [ECOS] " Amitesh Singh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).