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

Re: [microblaze-uclinux] Kernel boot problem ( Michael Simek Wiki )




Mohammad Sadegh Sadri wrote:
> Dear Michal, and any one else interested :)
> 
> I performed all of the steps carefully,
> 
> - downloaded latest kernel source code (without futex) from git
> repository of petalogix: git://developer.petalogix.com
> - created system.dts using device_tree , copied system.dts into kernel
> source code, /arch/microblaze/boot/dts/ and
> /arch/microblaze/platform/generic and also renamed system.dts to
> platform.dts and copied it again into /arch/microblaze/boot/dts/
> - In base system: Barrel shifter, hardware multiplier, integer devider,
> MSR, Pattern comperator, Full PVR , 8 kbytes cache
> - in base system: all exceptions are enabled, MMU is set to VIRTUAL mode
> - make mmu_defconfige
> - make menuconfig
> - touch rootfs.cpio  ( in the root folder of kernel source code )
> - make simpleImage.platform
> all done successfully.
> - simpleImage.platform & simpleImage.platform.ub created.
> Now:
> 1- using XMD i load simpleImage.platform on the board, here are the results:
> after this command: dow simpleImage.platform , we get this:
> XMD% dow simpleImage.platform
> System Reset .... DONE
> Downloading Program -- simpleImage.platform
>         section, .text: 0xc0000000-0xc022b1f7
>         section, .ref.text: 0xc022b1f8-0xc022be87
>         section, .cpuinit.text: 0xc022be88-0xc022cd13
>         section, .meminit.text: 0xc022cd14-0xc022cfb3
>         section, .devexit.text: 0xc022cfb4-0xc022d0cf
>         section, .devinit.text: 0xc022d0d0-0xc022dc33
>         section, .init.text: 0xc02d8000-0xc02eddb7
>         section, .init.ivt: 0xc02eec34-0xc02eec9b
>  ERROR: Failed to download ELF file
> 
> I-Side Memory Access Check Failed
>         Section, 0xc0000000-0xc022b1f7 Not Accessible from Processor
> I-Side Interface
> 
> what is the reason? I can guess, the reason is MMU. but should i set any
> additional address values for MMU while configuring the kernel?
> obviously i dont have such an address 0xc0000000 in my system. but i see
> this value in .config file inside kernel. nor mmu_defig neither any
> other process seems to change this value.
>  
> 2- using U-boot, we have still the same problem is before:
> Filename 'image.ub'.
> Load address: 0x44800000
> Loading: #################################################################
>          #################################################################
>          #################################################################
>          ###############
> done
> Bytes transferred = 3080280 (2f0058 hex)
> U-Boot-mONStR> bootm 0x44800000 - 0x44780000
> ## Booting kernel from Legacy Image at 44800000 ...
>    Image Name:   Linux-2.6.30
>    Image Type:   MicroBlaze Linux Kernel Image (uncompressed)
>    Data Size:    3080216 Bytes =  2.9 MB
>    Load Address: 90000000
>    Entry Point:  90000000
>    Verifying Checksum ... OK
>    Loading Kernel Image ... OK
> OK
> every thing freezes here!!!

I expect your main memory is something like 44000000 - 45ff ffff but you compiled kernel
for 9000 0000. You should change it in menuconfig.

If I am wrong please send me your .config and mhs file.

Regards,
Michal


> 
> What is the problem this time?
> do you have any idea?
> Thanks
> 
> 
>  
>> Date: Wed, 21 Oct 2009 08:55:37 +0200
>> From: michal.simek@xxxxxxxxxxxxx
>> To: microblaze-uclinux@xxxxxxxxxxxxxx
>> CC: microblaze-linux-dev@xxxxxxxxxxxxxx
>> Subject: Re: [microblaze-uclinux] Kernel boot problem ( Michael Simek
> Wiki )
>>
>> Hi Sadri,
>>
>> first of all just Michal - no worries about and please do not apology.
>>
>> some my comments below.
>>
>> Mohammad Sadegh Sadri wrote:
>> > Hi all,
>> >
>> > according to this reference from Michael : "Mainline linux kernel for
>> > Microblaze" available at http://www.monstr.eu/wiki/doku.php?id=fdt:fdt i
>> > have built the linux kernel.
>>
>> I'll have to update my page.
>>
>> >
>> > I have downloaded the latest version of code for all of the packages
>> > from Michael's web based git repository.
>>
>> I think you are not able to use latest our master branch because you
> have older toolchain
>> If you want to use our master branch at
>>
> http://developer.petalogix.com/git/gitweb.cgi?p=linux-2.6-microblaze.git;a=summary
>>
>> please do not use microblaze: futex support patch - you can revert it
> or use older version.
>>
>>
>> >
>> > I have done all of the specified steps in the Wiki carefully.
>> > Unfortunately the kernel stops working completely at initial step.
>> >
>> > Base system is built using EDK 11.2, SP2
>> > Microblaze version is 7.20.b :
>> > - barrel shifter : active
>> > - floating point unit : disabled
>> > - Integer multiplier : 32 bits
>> > - integer devider : active
>> > - machine status register instructions : acitve
>> > - Pattern comperator : active
>> > - cache : 8kbytes data and instruction , cache line length : 4
>> > - MMU : active , mode 3 (VIRTUAL)
>> > - processor version registers (PVR) : FULL
>> >
>> > microblaze is running at 50MHz and DRAM controller at 100MHz, and
>> > hardware is working properly.
>> >
>> > Boot process : fsboot ----> U-BOOT ----> Linux kernel
>> > Linux version : latest available version from Michael Simek's gir
>> > repository.
>> > u-boot required config files and device tree generated with latest
>> > available BSPs by Michael. using DTC I make system.dtb according to
>> > Michaels documents.
>> >
>> > Linux kernel configuration: ( note : when i download the kernel source
>> > code from gir repository i see that there is no default config )
>>
>> There are two defconfigs in arch/microblaze/configs/
>>
>>
>> > I do the steps specified in the Wiki exactly : just i mention the
>> > differences with what Michael says
>> >
>> > - CONFIG_KERNEL_BASE_ADDR = 0x44800000 ( because my DDR SDRAM
>> > Controller base address is 0x44000000 )
>> > - CONFIG_XILINX_MICROBLAZE_FAMILY = "spartan3" ( instead of "virtex5"
>> > which is the default )
>> > - CONFIG_XILINX_MICROBLAZE_USE_HW_MUL=1 ( instead of 2 because i use a
>> > 32bits multiplier )
>> > - CONFIG_XILINX_MICROBLAZE_USE_FPU = 0 ( because i dont have any FPU )
>> > - CONFIG_XILINX_MICROBLAZE_HW_VER = "7.20.b" ( my microblaze version )
>> > - I also enable MMU in kernel configuration
>> > - i do not enter any commands to be passed to kernel
>> > - I enable the xilinx uart lite driver to be added to the kernel
>> > - I say that the console should come up on uart lite ( ttyUL0 )
>>
>> run
>> make mmu_defconfig
>> make menuconfig -> Platform option -> setup your parameters
>> (It should work any kernel base addr but I am using/testing ddr base addr)
>> copy your platform.dts file to arch/microblaze/boot/dts/
>> touch rootfs.cpio -> just fake cpio image
>> and run make simpleImage.platform
>>
>> then you find in arch/microblaze/boot folder some files
>> 1. simpleImage.platform
>> 2. simpleImage.platform.ub
>>
>>
>> ad 1. load bitstream to your board , run this xmd.ini
>> connect mb mdm
>> dow simpleImage.platform
>> run
>> exit
>>
>> You should be able to see output on console -> then you can fight with
> rootfs.
>>
>> ad 2. load that ub image via u-boot and run
>> just
>> tftp XXXXXXXXX simpleImage.platform.ub
>> bootm XXXXXXXX
>>
>> then you should be able to see the same output as for previous image
>>
>> If not- read log buffer to see what wrong is.
>>
>> >
>> > Making the u-boot image for kernel:
>> > I use exactly the same command as what michael has specified in his
> Wiki.
>> >
>> > RESULT:
>> > fs-boot brings up u-boot at memory location 0x47fc0000
>> > using u-boot i do the following:
>> > - tftp 0x44780000 system.dtb
>> > - tftp 0x44800000 image.ub
>> > - bootm 0x44800000 - 0x44780000
>> >
>> > what happens is as follows:
>> > U-Boot-mONStR> bootm 0x44800000 - 0x447800000
>> > ## Booting kernel from Legacy Image at 44800000 ...
>> > Image Name: ICTI LInux kernel
>> > Image Type: MicroBlaze Linux Kernel Image (uncompressed)
>> > Data Size: 1593860 Bytes = 1.5 MB
>> > Load Address: 44800000
>> > Entry Point: 44800000
>> > Verifying Checksum ... OK
>> > XIP Kernel Image ... OK
>> > OK
>> >
>>
>> From log I see that you don't have support for booting multiple images.
>> That's why your kernel not work.
>>
>>
>> Regards,
>> Michal
>>
>>
>> > and the system stops working completely!!!
>> > would you please provide me with some guesses through your previous
>> > experiments that what can be the cause of this phenomenan?
>> > Thanks
>> > Mohammad
>> >
>> >
>> > ------------------------------------------------------------------------
>> > Less clicking: Hotmail access on the new MSN homepage.
>> > <http://go.microsoft.com/?linkid=9677398>
>>
>> --
>> Michal Simek, Ing. (M.Eng)
>> PetaLogix - Linux Solutions for a Reconfigurable World
>> w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663
>> ___________________________
>> microblaze-uclinux mailing list
>> microblaze-uclinux@xxxxxxxxxxxxxx
>> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
>> Mailing List Archive :
> http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>>
> 
> ------------------------------------------------------------------------
> Lots of fantastic offers on Windows 7, in one convenient place. Get a
> deal on Windows 7 now <http://go.microsoft.com/?linkid=9691628>

-- 
Michal Simek, Ing. (M.Eng)
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/