On 07.04.2013, at 12:41, G. Heim wrote:
Hi Alex,
Thanks again for your replies.
I downloaded the 3.9-rc5 kernel from kernel.org and it seems to have armada 370 support (which is my mirabox) so I started with the .config from the 3.6.35.9 debian mirabox kernel and did "make olddefconfig", then make, etc. "make uImage" complained about a missing LOADADDR so I did "make LOADADDR=0x0008000 uImage". Everything compiled nicely and then I booted with it, and the bootlog is as follows:
reading uImage
3460464 bytes read ## Booting kernel from Legacy Image at 06400000 ... Image Name: Linux-3.9.0-rc5 Created: 2013-04-07 10:10:29 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3460400 Bytes = 3.3 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
... and then nothing more. I tried to ping but to no avail.
It's probably trying to tell you that it can't find support for your machine id :).
In my .config are (amongst others): # # CPU Core family selection # # CONFIG_ARCH_MULTI_V6 is not set CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_MULTI_V6_V7=y # CONFIG_ARCH_MULTI_CPU_AUTO is not set CONFIG_ARCH_MVEBU=y
# # Marvell SOC with device tree # CONFIG_MACH_ARMADA_370_XP=y CONFIG_MACH_ARMADA_370=y # CONFIG_MACH_ARMADA_XP is not set # CONFIG_ARCH_BCM is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_MXC is not set # CONFIG_ARCH_OMAP2PLUS is not set # CONFIG_ARCH_SOCFPGA is not set # CONFIG_ARCH_SUNXI is not set CONFIG_ARCH_VEXPRESS=y
You also gave as an option:
Subject: Re: [opensuse-arm] OpenSUSE 12.3 for armv7 on Mirabox fails Date: Sat, 6 Apr 2013 23:21:30 +0200
Oh, I just realized that you're running on 2.6.35. There's a good chance your kernel is simply too old, which probably is why udev is failing.
Are there any more recent kernels available for your machine?
no, not that I know of.
Compile the kernel as zImage, then the device tree that comes with Linux (arch/arm/boot/dts/armada-370-mirabox.dts) to a dtb and then load both from u-boot? You just pass the dtb as 3rd parameter to the bootz command. If you run without an initrd, just pass "-" to bootz to tell it you don't want one.
I'd assume that should just work, and should also get you something properly working with openSUSE 12.3. No guarantees that all your hardware components will be supported by the upstream code however :). Traditionally, we've had quite a bit of trouble getting graphics rolling.
I think I understand what you write (except for the dts/dtb) but my uboot loader doesn't have a bootz, so I don't know how to continue with this suggestion.
Then use bootm, that works just as well if you create a uImage. Enabling bootz support in u-boot also isn't overly hard, but let's go one step at a time. In the old days of ARM (read: last year), there used to be machine IDs that u-boot pass on to the kernel to identify which board a particular machine identifies as. Linux then contains a C file describing what hardware looks like in that board. This means that every new board needed a new kernel, even if only very little changed to another, already implemented board. This scheme was deprecated by device trees. For most modern boards, you can now just pass in a device tree (dtb) into the kernel which describes what the C file used to describe, but in as data rather than code. That allows for a lot more flexibility. For your Mirabox, it looks as if support for the machine ID based approach simply never made it upstream, so you have to pass in a device tree to get Linux to actually run anything sensible on your board. You can compile dts files into dtb files using the dtc command line tool. Pass the dtb into your bootm command as 3rd parameter. Also make sure you have your console= setting correct. Then your board should boot with 3.9 :). Alex -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org