Hi Greg, >-----Original Message----- >From: Greg Ungerer [mailto:gregunge...@westnet.com.au] >Sent: Wednesday, January 23, 2013 1:17 PM >To: uClinux development list >Cc: Christian Gieseler >Subject: Re: [uClinux-dev] ROMFS: bad initial checksum > >Hi Christian, > >On 01/23/2013 06:45 PM, Christian Gieseler wrote: >> I am migrating our coldfire 5329 board to linux 3.6. >> I am stuck now with mounting of romfs having a bad initial checksum of >> the first 512 bytes. The system hangs after this message. >> Even if the functions in fs/romfs/inode.c have moved a bit from 2.6.25 >> to super.c and friends from what I can see the routines to calculate >> the checksum are basically the same. Genromfs (0.5.1) on the host has >> not changed. Has the new Kernel any configuration option that has to >> be changed to generate a proper romfs.img? > >No, nothing has changed in this area. I have run 3.6 kernels on ColdFire boards using romfs setups the same as every kernel before. >
Are there critical configuration options that I should check another time? > >> Or is the checksum >> tested on a wrong value because I misconfigured an address. >> Does someone have a hint how to solve this or where to look for a solution? >> The bootmessages are attached for reference. > >Can you send the entire boot sequence? >I want to see all the load segment addresses that are earlier in the boot output. Linux version 3.6.0-uc0 (christian@cglinux) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-23) ) #154 PREEMPT Wed Jan 23 14:04:49 CET 2013 uClinux/COLDFIRE(m532x) COLDFIRE port done by Greg Ungerer, g...@snapgear.com Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne Built 1 zonelists in Zone order, mobility grouping off. Total pages: 2024 Kernel command line: rootfstype=romfs console=tty1 console=ttyS0,115200 PID hash table entries: 2048 (order: 0, 8192 bytes) Dentry cache hash table entries: 2048 (order: 0, 8192 bytes) Inode-cache hash table entries: 2048 (order: 0, 8192 bytes) Memory available: 11992k/16256k RAM, (1831k kernel code, 508k data) NR_IRQS:256 Calibrating delay loop... 154.62 BogoMIPS (lpj=77312) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 NET: Registered protocol family 16 bio: create slab <bio-0> at 0 Switching to clocksource tmr NET: Registered protocol family 2 TCP established hash table entries: 1024 (order: 0, 8192 bytes) TCP bind hash table entries: 2048 (order: 0, 8192 bytes) TCP: Hash tables configured (established 1024 bind 2048) TCP: reno registered UDP hash table entries: 512 (order: 0, 8192 bytes) UDP-Lite hash table entries: 512 (order: 0, 8192 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. ROMFS MTD (C) 2007 Red Hat, Inc. msgmni has been set to 23 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) ColdFire internal UART serial driver ttyS0 at MMIO 0xfc060000 (irq = 90) is a ColdFire UART console [ttyS0] enabled ttyS1 at MMIO 0xfc064000 (irq = 91) is a ColdFire UART ttyS2 at MMIO 0xfc068000 (irq = 92) is a ColdFire UART uclinux[mtd]: RAM probe address=0x4026924c size=0x19c000 uclinux[mtd]: set ROMfs to be root filesystem Creating 1 MTD partitions on "RAM": 0x000000000000-0x00000019c000 : "ROMfs" el5329 flash device: 1000000 at 0 el5329 flash: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002101 Amd/Fujitsu Extended Query Table at 0x0040 Amd/Fujitsu Extended Query version 1.3. number of CFI chips: 1 Creating 5 MTD partitions on " el5329 flash": 0x000000000000-0x000000020000 : "vectors" 0x000000020000-0x000000060000 : "parameters" 0x000000060000-0x000000100000 : "bootloader" 0x000000100000-0x000000700000 : "image" 0x000000700000-0x000001000000 : "user_data" libphy: fec_enet_mii_bus: probed TCP: cubic registered NET: Registered protocol family 17 ROMFS: bad initial checksum on dev romfs. >How do you load the kernel and romfs into RAM? I use dbug as bootloader and copy image.bin via tftp and then execute from ram: Power-on Reset ColdFire MCF532x Firmware v4a.1a.1b.0100_1616 (Built on Nov 5 2009 15:47:58) Copyright 2005 Freescale Semiconductor, Inc. Enter 'help' for help. dBUG> dn Downloading Image 'image.bin' from 192.168.10.254 TFTP transfer completed Read 3228676 bytes (6307 blocks) dBUG> go 0x40020000 >Are you positive that the romfs is entirely loaded at the address you think it should be? Yes I think the romfs is entirely loaded, but I am not sure about the address. I thought this is calculated in the vendor Makefile Is that right? genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR) $(CROSS)objcopy -O binary $(ROOTDIR)/$(LINUXDIR)/linux \ $(IMAGEDIR)/linux.bin cat $(IMAGEDIR)/linux.bin $(ROMFSIMG) > $(IMAGE) $(ROOTDIR)/tools/cksum -b -o 2 $(IMAGE) >> $(IMAGE) [ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGE) /var/lib/tftpboot [ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(ROMFSIMG) /var/lib/tftpboot BSS=`$(CROSS)objdump --headers $(ROOTDIR)/$(LINUXDIR)/linux | \ grep .bss` ; \ ADDR=`set -- $${BSS} ; echo 0x$${4}` ; \ $(CROSS)objcopy --add-section=.romfs=$(ROMFSIMG) \ --adjust-section-vma=.romfs=$${ADDR} --no-adjust-warnings \ --set-section-flags=.romfs=alloc,load,data \ $(ROOTDIR)/$(LINUXDIR)/linux $(ELFIMAGE) 2> /dev/null > >Regards >Greg Thanks for your help. Regards Christian _______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev