[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] Problem in PetaLinux booting



Hello petaLinux Team,

I have a problem during the petaLinux booting in a Virtex 4.
I don’t program the flash memory, I send the files ‘u-boot.srec ‘and ‘image.ub’ directly in the DDR, but I don’t think my problem comes from that.

After sending ‘image.ub’ I get the following lines in the hyper terminal:

___________________________________________

## Total Size      = 0x0027c060 = 2605152 Bytes

## Start Addr      = 0x8C000100

U-Boot> bootm 0x8c000100

## Booting image at 8c000100 ...

Image Name:   PetaLinux Kernel 2.6

Image Type:   Microblaze Linux Kernel Image (uncompressed)

Data Size:    2605088 Bytes =  2.5 MB

Load Address: 8c000000

Entry Point:  8c000000

Verifying Checksum ... OK

OK

___________________________________________

 

After that, I doesn’t get new others lines in hyper terminal. I think that U-boot can not find ‘romfs’. I tried to send the ‘image.ub’ has an address higher but the problem persists.

 

I tried the ‘MicroBlaze-UClinux-objdump’ command for ‘image.elf’ and I get that :

____________________________________________________________

Sections:

Idx Name          Size      VMA       LMA       File off  Algn

  0 .text         00150608  8c000000  8c000000  00000114  2**4

                  CONTENTS, ALLOC, LOAD, READONLY, CODE

  1 .rodata       00011ee5  8c151000  8c151000  0015071c  2**4

                  CONTENTS, ALLOC, LOAD, DATA

  2 .pci_fixup    00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

  3 .rio_route    00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

  4 __ksymtab     00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

  5 __ksymtab_gpl 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

  6 __ksymtab_unused 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

  7 __ksymtab_unused_gpl 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

  8 __ksymtab_gpl_future 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

  9 __kcrctab     00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

 10 __kcrctab_gpl 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

 11 __kcrctab_unused 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

 12 __kcrctab_unused_gpl 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

 13 __kcrctab_gpl_future 00000000  8c162ee5  8c162ee5  00183d69  2**0

                  CONTENTS

 14 __param       000000f0  8c162ee8  8c162ee8  00162601  2**2

                  CONTENTS, ALLOC, LOAD, DATA

 15 .sdata2       00000000  8c163000  8c163000  00183d69  2**0

                  CONTENTS

 16 .data         0000a4b4  8c163000  8c163000  001626f1  2**2

                  CONTENTS, ALLOC, LOAD, DATA

 17 .data.cacheline_aligned 00000100  8c16d4c0  8c16d4c0  0016cba5  2**2

                  CONTENTS, ALLOC, LOAD, DATA

 18 .data.init_task 00002000  8c16e000  8c16e000  0016cca5  2**2

                  CONTENTS, ALLOC, LOAD, DATA

 19 .sdata        00000000  8c170000  8c170000  00183d69  2**0

                  CONTENTS

 20 .sbss         00000000  8c170000  8c170000  00183d69  2**0

                  CONTENTS

 21 .init.text    000135b8  8c170000  8c170000  0016eca5  2**2

                  CONTENTS, ALLOC, LOAD, CODE

 22 .init.data    00000784  8c1835b8  8c1835b8  0018225d  2**2

                  CONTENTS, ALLOC, LOAD, DATA

 23 .init.ivt     00000068  8c183d3c  8c183d3c  001829e1  2**0

                  CONTENTS, ALLOC, LOAD, CODE

 24 .init.setup   00000210  8c183da4  8c183da4  00182a49  2**2

                  CONTENTS, ALLOC, LOAD, DATA

 25 .initcall.init 00000110  8c183fb4  8c183fb4  00182c59  2**2

                  CONTENTS, ALLOC, LOAD, DATA

 26 .con_initcall.init 00000000  8c1840c4  8c1840c4  00183d69  2**0

                  CONTENTS

 27 .init.ramfs   00001000  8c185000  8c185000  00182d69  2**0

                  CONTENTS, ALLOC, LOAD, DATA

 28 .bss          00012d08  8c186000  8c186000  00183d69  2**4

                  ALLOC

 29 .stab         00001074  00000000  00000000  00183d6c  2**2

                  CONTENTS, READONLY, DEBUGGING

 30 .stabstr      000009f9  00000000  00000000  00184de0  2**0

                  CONTENTS, READONLY, DEBUGGING

 31 .romfs        000f6000  8c186000  8c186000  001857d9  2**0

                  CONTENTS, ALLOC, LOAD, DATA

________________________________________________

 

 

I tried the ‘MicroBlaze-UClinux-objdump’ command for ‘image.srec’ and I get that :

________________________________________________

Sections:

Idx Name          Size      VMA       LMA       File off  Algn

  0 .sec1         00150608  8c000000  8c000000  0000005c  2**0

                  CONTENTS, ALLOC, LOAD

  1 .sec2         00011ee5  8c151000  8c151000  003f127c  2**0

                  CONTENTS, ALLOC, LOAD

  2 .sec3         000000f0  8c162ee8  8c162ee8  00426f36  2**0

                  CONTENTS, ALLOC, LOAD

  3 .sec4         0000a4b4  8c163000  8c163000  00427206  2**0

                  CONTENTS, ALLOC, LOAD

  4 .sec5         00000100  8c16d4c0  8c16d4c0  0044602e  2**0

                  CONTENTS, ALLOC, LOAD

  5 .sec6         000160c4  8c16e000  8c16e000  0044632e  2**0

                  CONTENTS, ALLOC, LOAD

  6 .sec7         000f7000  8c185000  8c185

____________________________________________________

 

  

Here are the steps I followed to build my petaLinux OS:

 

1] I created an EDK project in ‘PLinux1’ directory which includes the following components:

-microblaze with 2ko of cash  memory

            -UART (115200 Baud, Use interrupt, parity NONE)

            -EMC

            -ETHERNET LIGHT (use interrupt)

            -Memory DDR

            -Timer

 

The DDR address tab is [8C000000 – 8FFFFFFF]

 

2] I created a new platform with the next command:

‘petalinux-new-platform –v Avnet –p DS_KIT 4VFX12LC – 2.6’

 

3] I choose the platform that I just created with ‘make menuconfig’ => Vendor Product Selection

 

4] I copy the ‘PLinux1’ directory which contains the EDK project in “PETALINUX/hardware/user_platform” directory.

 

5] I create a soft project (fs-boot) in EDK and I add ‘.c’ and ‘.h’ files are in “PETALINUX / hardware / fs-boot”.

 

6] Creation of a link between the project and the EDK BSP of petaLinux:

            -Modification of OS part in ‘.mss’ file with graphic EDK tool

_________________________________________________

BEGIN OS

 PARAMETER OS_NAME = petalinux

 PARAMETER OS_VER = 1.00.b

 PARAMETER PROC_INSTANCE = microblaze_0

 PARAMETER stdout = RS232

 PARAMETER stdin = RS232

 PARAMETER main_memory = DDR_SDRAM_32Mx16

 PARAMETER main_memory_bank = 0

 PARAMETER main_memory_size = 0x4000000

 PARAMETER flash_memory_bank = 1

 PARAMETER flash_memory = Generic_External_Memory

 PARAMETER lmb_memory = dlmb_cntrl

END

_________________________________________________

            -Creation of symbolic link 'edk_user_repository' in “PETALIUX/hardware”

            - Adding the ‘ModuleSHearchPath : edk_user_repository’ line in ‘.xmp’ file

 

7] Compilation of EDK project and initialisation of BRAM with the FS-boot executable.

  

8] I do a petaLinux auto-configuration with the next command: ‘petalinux-copy-autoconfig’

 

9] ] Kernel and Platform customization with ‘make menuconfig’.
Initialization of the partitions sizes: boot = 40000, bootenv = 40000, config = 40000, image = 180000.

Note: in ‘System Settings’ I select ‘Copy final image to boot ftp’ and ‘Build U-Boot’.

 

10] Installation of ‘ncurses’ Library (yum install ncurses-devel) and ‘zlib’ Library (yum install zlib-devel ').

 

11] I copy ‘built-in.o’ file of “PETALINUX/software/linux-2.6.x-petalogix/user” directory in “PETALINUX/software/linux2.6.X-petaligix/arch/microblaze/platform/common” directory.

 

12] Kernel compilation and creation of images for FPGA downloading with the next command: ‘Yes "" | make oldconfig dep all’. The following files are generate in “/ tftpboot” directory : image.bin, image.elf, image.srec, image.ub, linux.bin, romfs.img, u-boot.bin, u-boot.srec, u-boot-s.bin, u-boot-s.elf, u-boot-s.srec, ub.config.img.

 

13] I download the EDK design in FPGA and I get this message in hyper terminal:

 

=================================================

FS-BOOT First Stage Bootloader (c) 2006 PetaLogix

=================================================

FS-BOOT: System initialisation completed.

FS-BOOT: No existing image in FLASH.  Starting image download.

FS-BOOT: Waiting for SREC image....

____________________________________________________

 
14] I send ‘u-boot.srec’ file in FPGA with RS232 and I get that:

___________________________________________

FS-BOOT: Image download successful

FS-BOOT: warning image location differ from default boot location. Image will not boot automatically after POR

FS-BOOT: Press ‘n’ to boot old image

FS-BOOT: Use new image

FS-BOOT: Booting image…

SDRAM :

        Enabling caches :

                Icache:OK

                Dcache:OK

        U-Boot Start:0x8ffc0000

        Malloc Start:0x8ff60000

        Board Info Start:0x8ff5ffd0

        Boot Parameters Start:0x8ff4ffd0

FLASH:  4 MB

ETHERNET: MAC:00:0a:35:00:22:01

 

Hit any key to stop autoboot:  0

## Booting image at 88cc0000 ...

Bad Magic Number

U-Boot>

__________________________________________

 

15] Registration of variables environment for the U-boot:

‘U-boot > loadb 0x8C000000’ and sending of ‘ub.config.img’ with Kermit and RS232.

Hyper terminal print that:

__________________________________________

## Total Size      = 0x000005c2 = 1474 Bytes

## Start Addr      = 0x8C000000

U-Boot>

__________________________________________

 

16] I use ‘loadb 0x8c000100’ command and I send ‘image.ub’ with Kermit protocol.

 

17] petaLinux booting with ‘bootm 0x8C000100’ command:

___________________________________________

 

U-Boot> loadb 0x8C000100

## Ready for binary (kermit) download to 0x8C000100 at 115200 bps...

## Total Size      = 0x0027c060 = 2605152 Bytes

## Start Addr      = 0x8C000100

U-Boot> bootm 0x8C000100

## Booting image at 8c000100 ...

   Image Name:   PetaLinux Kernel 2.6

   Image Type:   Microblaze Linux Kernel Image (uncompressed)

   Data Size:    2605088 Bytes =  2.5 MB

   Load Address: 8c000000

   Entry Point:  8c000000

   Verifying Checksum ... OK

OK

__________________________________________

 

After that, nada… ;(

 

You think I forgot an important step in connection with the File System?

 

Thank you for your help

 

Thierry