[U-Boot] some question

nice huan_t at 163.com
Mon Feb 21 05:46:45 CET 2011


hello,everyone !
I am a beginner of linux and linux on powerpc,so I have many questions
when I am porting linux to my cunstom board with an mpc8641d processer.
First, I compiled the u-boot with the default configuration of the
SBC8641D board, and then I compiled the kernel and got a kernel image,
when I downloaded the kernel image to the target board with NFS, but
there is something wrong while uncompressing it. The output from the
serial port is as follows:
U-Boot 2010.12 (Feb 18 2011 - 14:51:13)                             
                                                                    
CPU:   8641D, Version: 2.1, (0x80900121)
Core:  E600 Core 0, Version: 2.2, (0x80040202)
Clock Configuration:
       CPU:1200 MHz, MPX:400  MHz
       DDR:200  MHz (400 MT/s data rate), LBC:25   MHz
L1:    D-cache 32 KB enabled
       I-cache 32 KB enabled
L2:    512 KB enabled
Board: Wind River SBC8641D
I2C:   ready
DRAM:      DDR: 512 MiB
Reserving MP boot page to 1ff00000
Top of RAM usable for U-Boot at: 1ff00000
Reserving 229k for U-Boot at: 1fec6000
Reserving 136k for malloc() at: 1fea4000
Reserving 80 Bytes for Board Info at: 1fea3fb0
Reserving 104 Bytes for Global Data at: 1fea3f48
Stack Pointer at: 1fea3f28
New Stack Pointer is: 1fea3f28
Now running in RAM - U-Boot at: 1fec6000
FLASH: 32 MiB
*** Warning - bad CRC, using default environment
PCIE1: disabled
PCIE2: connected as Root Complex (base addr f8009000)
PCIE2: Bus 00 - 00
In:    serial
Out:   serial
Err:   serial
U-Boot relocated to 1fec6000
Net:   eTSEC2: No support for PHY id ffffffff; assuming generic
eTSEC3: No support for PHY id ffffffff; assuming generic
eTSEC4: No support for PHY id ffffffff; assuming generic
eTSEC1, eTSEC2, eTSEC3, eTSEC4
Hit any key to stop autoboot:  0
=> run nfsboot
Speed: 100, full duplex
Using eTSEC1 device
TFTP from server 192.168.0.2; our IP address is 192.168.0.50
Filename 'uImage'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #######################
done
Bytes transferred = 2109712 (203110 hex)
Speed: 100, full duplex
Using eTSEC1 device
TFTP from server 192.168.0.2; our IP address is 192.168.0.50
Filename 'my8641d.dtb'.
Load address: 0xc00000
Loading: ##
done
Bytes transferred = 8950 (22f6 hex)
## Booting kernel from Legacy Image at 01000000 ...
   Image Name:   Linux-2.6.35
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    2109648 Bytes = 2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
   Booting using the fdt blob at 0xc00000
   Uncompressing Kernel Image ... out of func inflateInit2
Machine check in kernel mode.
Caused by (from msr): regs 1fea3818 MSS error. MSSSR0: 00001000
NIP: 1FEE74A0 XER: 00000000 LR: 1FEE72C8 REGS: 1fea3818 TRAP: 0200 DAR: 00000000
MSR: 00101030 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 11
GPR00: 00000016 1FEA3908 1FEA3F48 01000203 000001B4 00000000 0000009E 00000000
GPR08: FFFFFFFF 00003A00 000000C1 00000003 000001FF FDFFF7FF 1FEF6894 00000000
GPR16: FFFFFFFF 000001FF 0000003F FFFFFFFF 00000000 00000000 1FEA63B8 1FEA6D88
GPR24: 007FFEFE 0120310A 00000000 1FEA39E0 1FEA5E88 00000DBF 1FEFF9B8 0000000D
Call backtrace:
001A001A 1FEE922C 1FEE4904 1FEE4A30 1FECD2B4 1FECD698 1FEDA584
1FED9C98 1FED9EE4 1FEDA4C0 1FED9C98 1FED9EB8 1FEDB5C4 1FEDA584
1FED9C98 1FED9E08 1FEDBA54 1FECBD10 1FEC857C Machine check in kernel mode.
Caused by (from msr): regs 1fea3568 MSS error. MSSSR0: 00001000
NIP: 1FED549C XER: 20000000 LR: 1FEC88AC REGS: 1fea3568 TRAP: 0200 DAR: 00000000
MSR: 00101030 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 11
GPR00: 00000001 1FEA3658 1FEA3F48 1FEF3550 00000001 00000004 00000000 00000000
GPR08: 00000000 80000000 00000030 00000000 42044024 FDFFF7FF 1FEF6894 00000000
GPR16: FFFFFFFF 000001FF 0000003F FFFFFFFF 00001032 1FEA3808 00000000 1FEC82C0
GPR24: 1FEC8A20 0120310A 1FEF3550 1FEEE188 1FEA366C 00000000 1FEFE924 42968260
Call backtrace:
1FED54EC 1FEC88AC 1FEC8B10 1FEC82C0 001A001A 1FEE922C 1FEE4904
1FEE4A30 1FECD2B4 1FECD698 1FEDA584 1FED9C98 1FED9EE4 1FEDA4C0
1FED9C98 1FED9EB8 1FEDB5C4 1FEDA584 1FED9C98 1FED9E08 1FEDBA54
1FECBD10 1FEC857C
machine check
I backtraced the contents dumped and I found it died in function "inflate" which
is defined in the file of lib/zlib.c and called in the file of lib/gunzip.c.But
after that I don't know what I should to do. can any one give me some advice?
Second,my flash size is 32MB, so I think the base address of my flash is 0xFE000000,
and the number of sector is 256,but if I use the configuration of this, it also
enter the machine check, if I set the base address as 0xFF000000 and the number of
sector as 128, it can work, but if I type the flinfo ,the output is as follows:
Hit any key to stop autoboot:  0
=> flinfo
Bank # 1: CFI conformant FLASH (16 x 16)  Size: 32 MB in 256 Sectors
  AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x7E22
  Erase timeout: 4096 ms, write timeout: 1 ms
  Buffer write timeout: 3 ms, buffer size: 64 bytes
  Sector Start Addresses:
  FF000000 E      FF020000 E      FF040000 E      FF060000 E      FF080000 E   
  FF0A0000 E      FF0C0000 E      FF0E0000 E      FF100000 E      FF120000 E   
  FF140000 E      FF160000 E      FF180000 E      FF1A0000 E      FF1C0000 E   
  FF1E0000 E      FF200000 E      FF220000 E      FF240000 E      FF260000 E   
  FF280000 E      FF2A0000 E      FF2C0000 E      FF2E0000 E      FF300000 E   
  FF320000 E      FF340000 E      FF360000 E      FF380000 E      FF3A0000 E   
  FF3C0000 E      FF3E0000 E      FF400000 E      FF420000 E      FF440000 E   
  FF460000 E      FF480000 E      FF4A0000 E      FF4C0000 E      FF4E0000 E   
  FF500000 E      FF520000 E      FF540000 E      FF560000 E      FF580000 E   
  FF5A0000 E      FF5C0000 E      FF5E0000 E      FF600000 E      FF620000 E   
  FF640000 E      FF660000 E      FF680000 E      FF6A0000 E      FF6C0000 E   
  FF6E0000 E      FF700000 E      FF720000 E      FF740000 E      FF760000 E   
  FF780000 E      FF7A0000 E      FF7C0000 E      FF7E0000 E      FF800000 E   
  FF820000 E      FF840000 E      FF860000 E      FF880000 E      FF8A0000 E   
  FF8C0000 E      FF8E0000 E      FF900000 E      FF920000 E      FF940000 E   
  FF960000 E      FF980000 E      FF9A0000 E      FF9C0000 E      FF9E0000 E   
  FFA00000 E      FFA20000 E      FFA40000 E      FFA60000 E      FFA80000 E   
  FFAA0000 E      FFAC0000 E      FFAE0000 E      FFB00000 E      FFB20000 E   
  FFB40000 E      FFB60000 E      FFB80000 E      FFBA0000 E      FFBC0000 E   
  FFBE0000 E      FFC00000 E      FFC20000 E      FFC40000 E      FFC60000 E   
  FFC80000 E      FFCA0000 E      FFCC0000 E      FFCE0000 E      FFD00000 E   
  FFD20000 E      FFD40000 E      FFD60000 E      FFD80000 E      FFDA0000 E   
  FFDC0000 E      FFDE0000 E      FFE00000 E      FFE20000 E      FFE40000 E   
  FFE60000 E      FFE80000 E      FFEA0000 E      FFEC0000 E      FFEE0000 E   
  FFF00000        FFF20000        FFF40000 E      FFF60000 E      FFF80000 E   
  FFFA0000 E      FFFC0000 E      FFFE0000 E      00000000        00020000     
  00040000        00060000        00080000        000A0000        000C0000     
  000E0000        00100000        00120000        00140000        00160000     
  00180000        001A0000        001C0000        001E0000        00200000     
  00220000        00240000        00260000        00280000        002A0000     
  002C0000        002E0000        00300000        00320000        00340000     
  00360000        00380000        003A0000        003C0000        003E0000     
  00400000        00420000        00440000        00460000        00480000     
  004A0000        004C0000        004E0000        00500000        00520000     
  00540000        00560000        00580000        005A0000        005C0000     
  005E0000        00600000        00620000        00640000        00660000     
  00680000        006A0000        006C0000        006E0000        00700000     
  00720000        00740000        00760000        00780000        007A0000     
  007C0000        007E0000        00800000        00820000        00840000     
  00860000        00880000        008A0000        008C0000        008E0000     
  00900000        00920000        00940000        00960000        00980000     
  009A0000        009C0000        009E0000        00A00000        00A20000     
  00A40000        00A60000        00A80000        00AA0000        00AC0000     
  00AE0000        00B00000        00B20000        00B40000        00B60000     
  00B80000        00BA0000        00BC0000        00BE0000        00C00000     
  00C20000        00C40000        00C60000        00C80000        00CA0000     
  00CC0000        00CE0000        00D00000        00D20000        00D40000     
  00D60000        00D80000        00DA0000        00DC0000        00DE0000     
  00E00000        00E20000        00E40000        00E60000        00E80000     
  00EA0000        00EC0000        00EE0000        00F00000        00F20000     
  00F40000        00F60000        00F80000        00FA0000        00FC0000     
  00FE0000     
=>
there must be something wrong with it, because I see the address 0x0xxxxxxx
is for SDRAM. I don't know how to configure it .
Third,the default values of macro TSECx_PHY_ADDR are as follows:
#define TSEC1_PHY_ADDR  0x1f
#define TSEC2_PHY_ADDR  0x00
#define TSEC3_PHY_ADDR  0x01
#define TSEC4_PHY_ADDR  0x02
but if I use this value, my ethernet doesn't work, one of my friends told me
to change the value of macro TSEC1_PHY_ADDR to 0x8,after that, I can use the
ethernet and download my kernel image with NFS.I looked for literature but I
didn't find any useful information to explain it. Can anyone tell me why? Althrough
my ethernet can work, the output from the serial port notices me that:
Net:   eTSEC2: No support for PHY id ffffffff; assuming generic
eTSEC3: No support for PHY id ffffffff; assuming generic
eTSEC4: No support for PHY id ffffffff; assuming generic
in this case, how should I change this configuration to make the other PHY work?

I am looking forward to your replies !
Thanks!
        woodyiy


More information about the U-Boot mailing list