[U-Boot-Users] [PPC4xx][AMCC][kilauea] Support kilauea under Linux ARCH "powerpc"?

Grant Erickson gerickson at nuovations.com
Thu May 22 23:56:51 CEST 2008


On 5/22/08 2:09 PM, H L wrote:
> Hope all will forgive the Linux incursion, but was hoping someone here might
> have some insight to any effort under way for supporting the kilauea board
> under the "powerpc" ARCH in Linux 2.6.  The initial support of this board
> appears supported under "ppc" in 2.6.23.  My read of various forums indicates
> that "official" support of ARCH "ppc" is going away and platforms therein are
> (or have been) migrated to "powerpc", I did find kilauea board code under
> "powerpc" in 2.6.25.xx at kernel.org, however while it builds, it won't boot.
> I would very much appreciate hearing from anyone who may know of any work or
> plans (even rumors related to same, lol) to get it working.

Your best approach, at present, is to build from the DENX 2.6 GIT repository
at:

    git://www.denx.de/git/linux-2.6-denx.git

Kernel.org top-of-tree should* also boot; however, I suspect you ran into
the same problem I ran into with "it doesn't boot" in arch/powerpc. The
'arch/powerpc' directory requires booting with BOTH a kernel image (uImage)
and a flattened device tree (FDT) device tree blob (DTB). The device tree
source (DTS) files are in linux/arch/powerpc/boot/dts/.

The 'net_nfs' script in the default u-boot-1.3.3 "Kilauea" environment
details how this is done:

    net_nfs=tftp ${kernel_addr_r} ${bootfile}; tftp ${fdt_addr_r}
        ${fdt_file}; run nfsargs addip addtty;
        "bootm ${kernel_addr_r} - ${fdt_addr_r}

So, basically, you need to put the uImage at some RAM address (e.g.
kernel_addr_r) and the DTB at some RAM address (e.g. fdt_addr_r).

A more "advanced technique" involves enabling FIT image support in u-boot
and booting a FIT multi-image (see u-boot-1.3.3/doc/uImage.FIT/...)
consisting of a compressed kernel image (i.e. vmlinux.bin.gz) and a DTB.
Such an image is generated with the u-boot 'mkimage' command and the
following input file:

/ {
    description = "Linux Kernel with Device Tree";

    #address-cells = <1>;

    images {
        kernel at 1 {
            description = "Kernel";
            data = /incbin/("@KERNEL@");
            type = "kernel";
            arch = "@ARCH@";
            os = "@OS@";
            compression = "gzip";
            load = <00000000>;
            entry = <00000000>;
            hash at 1 {
                algo = "crc32";
            };
        };
        fdt at 1 {
            description = "Device Tree";
            data = /incbin/("@FDT@");
            type = "flat_dt";
            arch = "@ARCH@";
            compression = "none";
            hash at 1 {
                algo = "crc32";
            };
        };
    };

    configurations {
        default = "config at 1";

        config at 1 {
            description = "Kernel with Device Tree";
            kernel = "kernel at 1";
            fdt = "fdt at 1";
        };
    };
};

Replace @FOO@ above with values appropriate for your environment.

Regards,

Grant Erickson






More information about the U-Boot mailing list