Boot-Code broken !?


mcr42

Still Fresh
Joined
Jan 19, 2006
Messages
81
Ich hab mir endlich n serielles Kabel gebastelt, und hab mir mal die Boot-Meldungen genauer angesehen.

Der U-Boot ist ja eigentlich ein cleveres Programm, dem man (ähnlich wie GRUB) per Kommandozeile sagen kann, was er von wo booten soll.
Damit lassen sich Updates testen, ohne das bestehende System zu verändern.
Wenn, ja, wenn der Default-Prompt nicht auf 0 gesetzt wäre.

Außerdem scheint die Systemumgebung für das Uboot gar nicht initialisiert zu sein !
Code:
Get Environment from NAND offset 0x70000 ...
*** Warning - bad CRC, using default environment
Aber Moment ! Wieso 70000 ? Laut Partitionstabelle liegen die Parameter doch bei 80000 ?
Code:
Creating 5 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00080000 : "Bootloader"
0x00080000-0x000a0000 : "Param"
0x000a0000-0x001a0000 : "Kernel"
0x001a0000-0x019a0000 : "Filesystem"
0x019a0000-0x04000000 : "Extend"
Und noch besser:
Code:
### main_loop: bootcmd="nand read 0x1000000 0x80000 0x180000; bootm"
Das bedeutet, daß er den Kernel tatsächlich von Adresse 80000 lädt.

Wenn man sich also auf die Partitionstabelle des Kernels verläßt, zerschießt man sich unter Umständen das System.
 
Der Fehler scheint auch noch im 1.4er Kernel drin zu sein.

Genau genommen steht die Partitionstabelle in der Datei

fw1.4-kernel-source\drivers\mtd\nand\mp2520f.c

Dort steht:
Code:
<i>
</i>static struct mtd_partition partition_info[] = {
	{
		name:		"Bootloader",
		size:		0x80000,
		offset:		0,
		mask_flags:	MTD_WRITEABLE,  /* force read-only */
	}, {
		name:		"Param",
		size:		0x20000,
		offset:		MTDPART_OFS_APPEND,
	}, {
		name:		"Kernel",
		size:		0x100000,
		offset:		MTDPART_OFS_APPEND,
	}, {
		name:		"Filesystem",
		size:		0x1800000,
		offset:		MTDPART_OFS_APPEND,
	}, {
		name:		"Extend",
		size:		MTDPART_SIZ_FULL,
		offset:		MTDPART_OFS_APPEND,
	}
};

Die richtigen Werte müssten sein:
0x70000, 0x10000, 0x120000, 0x1800000

Kann jemand mit Ahnung nochmal gegenrechnen ?
Ich mach das grade zum ersten Mal.
 
Back
Top