[U-Boot-Users] [PATCH: u-boot-fdt] Improve error print messages.

Michal Simek Monstr at seznam.cz
Wed Aug 8 09:15:35 CEST 2007


Hi,

I am trying to work with fdt (MPC8349EMDS board) but I have some problems.

I download the latest version from u-boot-fdt.git fdt branch

I made minor changes in setting file.

diff --git a/include/configs/MPC8349EMDS.h b/include/configs/MPC8349EMDS.h
index 1567fcf..33198d6 100644
--- a/include/configs/MPC8349EMDS.h
+++ b/include/configs/MPC8349EMDS.h
@@ -339,6 +339,7 @@
 #endif

 /* pass open firmware flat tree */
+#define CONFIG_OF_LIBFDT       1
 #define CONFIG_OF_FLAT_TREE    1
 #define CONFIG_OF_BOARD_SETUP  1

@@ -739,7 +740,7 @@
                "bootm ${kernel_addr} ${ramdisk_addr}\0"                \
        "net_nfs=tftp 200000 ${bootfile};run nfsargs addip addtty;"     \
                "bootm\0"                                               \
-       "load=tftp 100000 /tftpboot/mpc8349emds/u-boot.bin\0"           \
+       "load=tftp 100000 mpc8349emds/u-boot.bin\0"             \
        "update=protect off fe000000 fe03ffff; "                        \
                "era fe000000 fe03ffff; cp.b 100000 fe000000 ${filesize}\0"     \
        "upd=run load;run update\0"                                     \
[monstr at simekmichal1 u-boot-fdt.git]$

I got error message in compiling process

ppc_82xx-gcc -g  -Os   -fPIC -ffixed-r14 -meabi -mrelocatable -D__KERNEL__ -DTEXT_BASE=0xFE000000  -I/tmp/1/u-boot-fdt.git/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/eldk/usr/bin/../lib/gcc/powerpc-linux/4.0.0/include -pipe  -DCONFIG_PPC -D__powerpc__ -DCONFIG_MPC83XX -DCONFIG_E300 -ffixed-r2 -ffixed-r29 -msoft-float -Wall -Wstrict-prototypes -c -o cpu.o cpu.c
cpu.c: In function 'fdt_set_eth0':
cpu.c:336: warning: implicit declaration of function 'fdt_get_property'
cpu.c:337: warning: implicit declaration of function 'fdt_setprop'
cpu.c: In function 'ft_cpu_setup':
cpu.c:502: warning: implicit declaration of function 'fdt_find_node_by_path'
cpu.c:502: error: 'fdt' undeclared (first use in this function)
cpu.c:502: error: (Each undeclared identifier is reported only once
cpu.c:502: error: for each function it appears in.)
make[1]: *** [cpu.o] Error 1
make[1]: Leaving directory `/tmp/1/u-boot-fdt.git/cpu/mpc83xx'
make: *** [cpu/mpc83xx/libmpc83xx.a] Error 2
[monstr at simekmichal1 u-boot-fdt.git]$

I made simple changes. I suppose that function needs pointer to fdt structure.

diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c
index 1a6cba7..37cbaa8 100644
--- a/cpu/mpc83xx/cpu.c
+++ b/cpu/mpc83xx/cpu.c
@@ -497,6 +497,7 @@ ft_cpu_setup(void *blob, bd_t *bd)
        int  nodeoffset;
        int  err;
        int  j;
+       void *fdt=getenv("fdtaddr");

        for (j = 0; j < (sizeof(fixup_props) / sizeof(fixup_props[0])); j++) {
                nodeoffset = fdt_find_node_by_path(fdt, fixup_props[j].node);

Now building process ends with success. 

I update U-BOOT in flash.
U-Boot 1.2.0-g96aa0fa0-dirty (Aug  8 2007 - 09:01:50) MPC83XX


I download dts compiler from Joe Loeliger site (http://www.jdl.com/git_repos/)

I found dts file which desribe board (file ../arch/powerpc/boot/dts/mpc834x_mds.dts ). Linux kernel 2.6.22 (kernel.org)

I convert it to dtb format with command
dtc -b 1 -R 4 -S 0x3000 -I dts -O dtb mpc834x_mds.dts > mpc8349emds.dtb

And load it to board

=> tftp 40000 mpc8349emds.dtb
Speed: 1000, full duplex
Using TSEC0 device
TFTP from server 10.0.0.1; our IP address is 10.0.0.5
Filename 'mpc8349emds.dtb'.
Load address: 0x40000
Loading: ###
done
Bytes transferred = 12288 (3000 hex)
=> fdt addr 40000
=> fdt print /
 {
        model="MPC8349EMDS";
        compatible="MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS";
        #address-cells=<00000001>;
        #size-cells=<00000001>;
        cpus {

... lot of code

                pic at 700 {
                        interrupt-controller;
                        #address-cells=<00000000>;
                        #interrupt-cells=<00000002>;
                        reg=<00000700 00000100>;
                        built-in;
                        device_type="ipic";
                        linux,phandle=<00000001>;
                };
        };
};
=>

Linux is built with setting from arch/powerpc/configs/mpc834x_mds_defconfig without any changes.

And then I tried to run sequence of commands

=> setenv bootargs root=/dev/ram rw console=ttyS0,9600
=> tftp 2000000 uRamdisk4
Speed: 1000, full duplex
Using TSEC0 device
TFTP from server 10.0.0.1; our IP address is 10.0.0.5
Filename 'uRamdisk4'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #
done
Bytes transferred = 5327936 (514c40 hex)
=> tftp 1000000 uImage
Speed: 1000, full duplex
Using TSEC0 device
TFTP from server 10.0.0.1; our IP address is 10.0.0.5
Filename 'uImage'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #######################################
done
Bytes transferred = 1197628 (12463c hex)
=> bootm 1000000 2000000 40000
## Booting image at 01000000 ...
   Image Name:   Linux-2.6.22
   Created:      2007-08-07  10:08:38 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1197564 Bytes =  1.1 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
## Loading RAMDisk Image at 02000000 ...
   Image Name:   ramdisk
   Created:      2007-07-13   8:36:51 UTC
   Image Type:   PowerPC Linux RAMDisk Image (uncompressed)
   Data Size:    5327872 Bytes =  5.1 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Booting using the fdt at 0x40000
   Loading Ramdisk to 0fa90000, end 0ffa4c00 ... OK
fdt_chosen: FDT_ERR_BADMAGIC
ERROR: /chosen node create failed - must RESET the board to recover.
Resetting the board.�

And I got an error. Do you know where is the problem?

Thanks for your responds,
Best regards,

Michal Simek




More information about the U-Boot mailing list