[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] [ARM] Enable boot module for arm
From: |
Andrey Borzenkov |
Subject: |
Re: [PATCH] [ARM] Enable boot module for arm |
Date: |
Sun, 28 Jul 2013 20:51:41 +0400 |
В Sat, 27 Jul 2013 16:44:39 +0200
Vladimir 'φ-coder/phcoder' Serbinenko <address@hidden> пишет:
> > It would be the first step, but my problem is, I cannot make it work
> > even using concatenation. u-boot does show me correct image info for
> > embedded grub, but I cannot launch it. Using default load address
> > 0x08000000 qemu errors out because address is not in RAM (and it will
> > not let me change amount of RAM for versatilepb); I tried to change
> > load address to something else, like 0x04000000 and it just immediately
> > resets in this case after "bootm 0x04000000".
> >
> You probably have to change GRUB link address. And not that the address
> is where to find the source image not where to load to.
>
I did try to change link address (arm_uboot_ldflags and
GRUB_KERNEL_ARM_UBOOT_LINK_ADDR). As I understand, bootm is expected to
relocate image to load address and jump to start address.
What I have now is
1. U-Boot is configured for versatileqemu. It works in the sense I can
start example standalone hello_world using bootm.
2. Grub us build for arm-uboot
address@hidden:~/build/grub> ./configure --with-platform=uboot
TARGET_CC=arm-linux-gnueabi-gcc --target=arm TARGET_LD=arm-linux-gnueabi-ld
(I also tried with TARGET_CFLAGS="-marm -mno-thumb-interwork
-mabi=aapcs-linux -march=armv5te" to match U-Boot flags)
3. core.img is generated using
address@hidden:~/build/grub> ./grub-mkimage --verbose -d grub-core -O arm-uboot
-o core.img
./grub-mkimage: info: the total module size is 0x20.
./grub-mkimage: info: getting the size of grub-core/kernel.img.
./grub-mkimage: info: reading grub-core/kernel.img.
./grub-mkimage: info: getting the size of grub-core/kernel.img.
./grub-mkimage: info: locating the section .text at 0x0.
./grub-mkimage: info: locating the section .rodata at 0x14750.
./grub-mkimage: info: locating the section .data at 0x165a0.
./grub-mkimage: info: locating the section .module_license at 0x16fa8.
./grub-mkimage: info: locating the section .bss at 0x16fc8.
./grub-mkimage: info: kernel_img=0x144dda0, kernel_size=0x16fc8.
./grub-mkimage: info: the core size is 0x16fe8.
./grub-mkimage: info: writing 0x17028 bytes.
address@hidden:~/build/grub> file core.img
core.img: u-boot legacy uImage, , Linux/ARM, OS Kernel Image (Not compressed),
94184 bytes, Sun Jul 28 20:46:54 2013, Load Address: 0x08000000, Entry Point:
0x08000000, Header CRC: 0x5F6F0B3E, Data CRC: 0x474F38F8
4. "flash" is built using
address@hidden:~/src/u-boot-2013.04> cat u-boot.bin ~/build/grub/core.img >
test.bin
Offset of core.img is
address@hidden:~/src/u-boot-2013.04> printf "0x%X\n" $(expr $(stat -c%s
u-boot.bin) + 65536)
0x2B558
5. I now can start it
address@hidden:~/src/u-boot-2013.04> qemu-system-arm -M versatilepb -m 256M
-serial stdio -kernel test.bin
Warning: default mac address being used, creating potential for address conflict
audio: Unknown audio driver `pa'
audio: Run with -audio-help to list available drivers
U-Boot 2013.04 (Jul 28 2013 - 20:16:17)
DRAM: 128 MiB
WARNING: Caches not enabled
Using default environment
In: serial
Out: serial
Err: serial
Net: SMC91111-0
Warning: SMC91111-0 using MAC address from net device
VersatilePB #
And it shows correct image info
VersatilePB # iminfo 0x2B558
## Checking Image at 0002b558 ...
Legacy image found
Image Name:
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 94184 Bytes = 92 KiB
Load Address: 08000000
Entry Point: 08000000
Verifying Checksum ... OK
VersatilePB #
But it simply resets at the attempt to launch it
VersatilePB # bootm 0x2B558
## Booting kernel from Legacy Image at 0002b558 ...
Image Name:
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 94184 Bytes = 92 KiB
Load Address: 08000000
Entry Point: 08000000
Loading Kernel Image ... OK
OK
Starting kernel ...
resetting ...
- [PATCH] [ARM] Enable boot module for arm, Francesco Lavra, 2013/07/21
- Re: [PATCH] [ARM] Enable boot module for arm, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/07/25
- Re: [PATCH] [ARM] Enable boot module for arm, Francesco Lavra, 2013/07/25
- Re: [PATCH] [ARM] Enable boot module for arm, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/07/25
- Re: [PATCH] [ARM] Enable boot module for arm, Andrey Borzenkov, 2013/07/26
- Re: [PATCH] [ARM] Enable boot module for arm, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/07/27
- Re: [PATCH] [ARM] Enable boot module for arm, Andrey Borzenkov, 2013/07/27
- Re: [PATCH] [ARM] Enable boot module for arm, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/07/27
- Re: [PATCH] [ARM] Enable boot module for arm,
Andrey Borzenkov <=
- Re: [PATCH] [ARM] Enable boot module for arm, Vladimir 'φ-coder/phcoder' Serbinenko, 2013/07/28
- Re: [PATCH] [ARM] Enable boot module for arm, Andrey Borzenkov, 2013/07/28
- Re: [PATCH] [ARM] Enable boot module for arm, Andrey Borzenkov, 2013/07/28