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....
____________________________________________________
___________________________________________
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