Hello all,
in the last week I wrote my own little bootloader, to make it easier to
load and setup the kernel.
Now I'm able flash(/copy) the kernel to the right position, setting up
the bootparameters, initialize
the hardware and jump to the kernel. This works fine, even with other
elf-files.
The first thing I got was an errormessage:
Error: unrecognized/unsupported machine ID (r1 = 0x00000827).
Available machine support:
ID (hex) NAME
00002710 '
Please check your kernel config and/or bootloader.
So I set the register r1 to 0x2710. The 0x827 comes from a employee of
ARM Ltd, who send me
I setup script for setting up the right bootparameter.
It's Cortex M4 in a MPS using the ARM example system. I'm using the
following config-options:
CONFIG_SET_MEM_PARAM=y
CONFIG_DRAM_BASE=0x10000000
CONFIG_DRAM_SIZE=0x00400000
CONFIG_FLASH_MEM_BASE=0x00400000
CONFIG_FLASH_SIZE=0x01000000
And the Makefile.boot contains the following:
zreladdr-y := 0x10008000
params_phys-y := 0x10000100
initrd_phys-y := 0x10800000
Before I jump to the kernel, I do this:
C:
memset((unsigned char *)0x10000000, 0, 0x1000);
*((unsigned long *) 0x10000100) = 2;
*((unsigned long *) 0x10000104) = 0x54410001;
*((unsigned long *) 0x10000108) = 258;
*((unsigned long *) 0x1000010c) = 0x54410009;
sprintf((char *) 0x10000110, "init=/bin/sh console=ttyAMA3 mem=4M
earlyprintk");
jump_kernel(entrypoint);
AS:
jump_linux
MOV R4, R0 // Moves entrypoint to r4
LDR R0, = 0 // Unknown option
LDR R1, = 0x2710 // Machine ID
LDR R2, = 0 // Unknown option
LDR R3, = 0 // Unknown option
BX R4 // Jump to the
entrypoint of the kernel
I know, that the string, which is set to 0x10000110, is ignored by the
kernel. This is because, even when
I use another tty like ttyAMA1, the output still comes from ttyAMA3,
which is defined in the .config of the kernel.
I searched for the documentation for the registercontent and also
parametersection at 0x10000100, but I find only
the description of parameter-string. What does the other things mean? Is
there somewhere a good documentation?
Could someone say that 0x2710 is also right btw. it's wrong? Is there
something else, that should be initialized before
the kernel will started?
The last thing I can say is, that the start ends with a hard fault. When
someone needs any further information,
I'll give them as fast as possible.
Thanks
Frank
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev