Finally all the restructuring pays off: we can cleanly separate the
uImage loader from all the rest, which will make it easy to add
loaders for other kernel image formats.
Signed-off-by: Werner Almesberger <werner@openmoko.org>
This makes things a little easier to read, particularly when we return
this pointer from a function, which we'll do in the next patch.
Signed-off-by: Werner Almesberger <werner@openmoko.org>
Is it really correct to set last_block_init to the next entry ?
It would seem that the current (i.e., bogus) values are then just
used without further ado. Untested.
Not-Yet-Signed-off-by: Werner Almesberger <werner@openmoko.org>
Putting a space between a function name and the parenthesis following
it ain't the One True K&R Way.
Signed-off-by: Werner Almesberger <werner@openmoko.org>
This puts the loop body in a new function called try_this_kernel.
As an added benefit, we can drop one level of indentation.
This change is hard to read as a patch. It gets better if one just
applies it and then looks at it with "git diff -w" or similar.
Signed-off-by: Werner Almesberger <werner@openmoko.org>
Allow a board to "indicate" events if it likes on whatever it has
On GTA02 we light AUX during boot and run the vibrator briefly when we
skip a partition or device.
Signed-off-by: Andy Green <andy@openmoko.com>
Recent addition of append and noboot file checks broke NAND
Reported-by: Micael Henriksson <micael.h@gmail.com>
Signed-off-by: Andy Green <andy@openmoko.com>
This adds two features that can be set in the rootfs that Qi is checking.
- if it finds /boot/noboot-<device>, eg /boot/noboot-GTA02 then it will
skip the rootfs for booting and try the next one if any
- if it finds /boot/append-<device>, eg, /boot/append-GTA02 then it will
append the contents of this file to the kernel commandline.
Signed-off-by: Andy Green <andy@openmoko.com>
This makes a new behaviour for Qi, when there are no valid kernels then it
performs the memory test. It means you can either move kernels out of the way
to get the memory test, or make an SD Card just with normal Qi on it and no
kernels to get a memory test.
Signed-off-by: Andy Green <andy@openmoko.com>
This heavily adapts the Samsung U-Boot hs_mmc code and combines it with the
SD / SDHC startup code written for glamo-mci stuff that is known to work OK
with common SD and SDHC.
tla01 is changed to use the implementation.
Signed-off-by: Andy Green <andy@openmoko.com>
This patch makes qi source structure cpu-centric, and allows multiple CPUs
to be handled with the board definitions inside the CPU dirs.
You have to make a particular CPU version of Qi now, which you can do by
a shell command like this:
make clean ; make CPU=s3c2442 && make CPU=s3c6410
which gets you
$ ls -l image/
total 744
-rwxrwxr-x 1 agreen agreen 25372 2008-10-17 18:25 qi-s3c2442-andy_77c1fcdddc3e2cbf
-rw-rw-r-- 1 agreen agreen 237100 2008-10-17 18:25 qi-s3c2442-andy_77c1fcdddc3e2cbf.dis
-rw-rw-r-- 1 agreen agreen 25388 2008-10-17 18:25 qi-s3c2442-andy_77c1fcdddc3e2cbf.udfu
-rwxrwxr-x 1 agreen agreen 22736 2008-10-17 18:25 qi-s3c6410-andy_77c1fcdddc3e2cbf
-rw-rw-r-- 1 agreen agreen 216294 2008-10-17 18:25 qi-s3c6410-andy_77c1fcdddc3e2cbf.dis
-rw-rw-r-- 1 agreen agreen 22752 2008-10-17 18:25 qi-s3c6410-andy_77c1fcdddc3e2cbf.udfu
The 6410 support in there is enough to send a character "U" on the 6410 SMDK
Because the product naming is not defined, currently the device targeted for 6410
is called "TLA01"
Signed-off-by: Andy Green <andy@openmoko.com>
This patch performs the equivalent init actions to the SDHC slow
unitl first bulk patch in kernel, it allows us to work with large
SDHC cards which exceed Glamo timeout capability at 16MHz for first
access.
Signed-off-by: Andy Green <andy@openmoko.com>
This adds ext2 support from U-Boot and stitches it into the
partition stuff. It also upgrades the board definitions so they
can define the path to look for in the ext2 filesystem being
mounted. I used /boot/uImage.bin because this is already in use
by the packaged kernel.
We now mount, open and pull the kernel from ext2 in phase2.c if
the kernel source defines it.
Signed-off-by: Andy Green <andy@openmoko.com>
We have to minimally support DOS partition scheme.
Partitions are counted from 1+ now, and 0 means no
partition table instead of -1.
Signed-off-by: Andy Green <andy@openmoko.com>
Giant patch:
- renames everything from kboot to qi
- changes filenames accordingly in several places
- fixes the linker script so stuff that does not execute
from steppingstone context has real linked addresses
in the relocated region, it means all code and pointers
work now outside first 4KBytes
- adds src/gta02/gta02.c to contain board-specific init and
other functions
- adds sophisticated structs to define most features in the
board-specific files, including board type detection,
board revision detection, and multiple kernel source
definition (NAND, SD FAT, SD ext2, etc), including auto
sequencing of trying the kernel sources in order (filesystems
and partition support not done yet)
- GTA02 detects itself by NOR presence and reports A5 / A6
- commandlines for kernel also come from board-specific
kernel source definitions so correct kernel commandlines
are provided depending on boot device -- on GTA02 now
boots NAND kernel into NAND jffs2 filesystem
- CRC32 is checked on loaded kernel image to make sure we
know about corruption in bootloader
Signed-off-by: Andy Green <andy@openmoko.com>
NAND stuff wasn't going to do anything until the controller in
the CPU was reset. NAND code was cleaned and other minor meddlings
Signed-off-by: Andy Green <andy@openmoko.com>