This patch allocates a set of show_boot_progress() IDs for new uImage format
and adds show_boot_progress() calls in new uImage format handling code.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
autoscript() routine is updated to accept second argument, which
is only used for FIT images and provides a FIT subimage unit name.
autoscript() routine callers must now pass two arguments. For
non-interactive use (like in cmd_load.c, cmd_net.c), new environment
variable 'autoscript_uname' is introduced and used as a FIT
subimage unit name source.
autoscript command accepts extended syntax of the addr argument:
addr:<subimg_uname>
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
This patch adds new node offset fields to struct bootm_headers
and updates bootm_headers processing code to make use of them.
Saved node offsets allow to avoid repeating fit_image_get_node() calls.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Re-enable interrupts if we return from do_bootm_<os> and 'autostart'
environment variable is not set to 'yes'.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
boot_get_ramdisk() and image_get_ramdisk() do not need all
cmdtp, flag, argc and argv arguments. Simplify routines definition.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
This patch updates boot_get_ramdisk() routine adding format
verification and handling for new (FIT) uImages.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
New format uImages are recognized by the bootm command,
validity of specified kernel component image is checked and
its data section located and used for further processing
(uncompress, load, etc.)
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Add FDT-based functions for handling new format component images,
configurations, node operations, property get/set, etc.
fit_ - routines handling global new format uImage operations
like get/set top level property, process all nodes, etc.
fit_image_ - routines handling component images subnodes
fit_conf_ - routines handling configurations node
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
If I try to "cp.b <ram> <dataflash>", u-boot selects normal flash
routines instead of dataflash. This is because it checks "if source
address is not dataflash" instead of target address.
Signed-off-by: Kim B. Heino <Kim.Heino@bluegiga.com>
Use uint32_t when accessing size table in image_multi_count() and
image_multi_getimg() for multi component images.
Add missing uimage_to_cpu() endianness conversion.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
This patch adds the following common routines:
1) Dedicated mkimage print_header() is replaced with common
image_print_contents()
image_print_contents_noindent()
2) Common os/arch/type/comp fields name <--> id translation routines
genimg_get_os_name()
genimg_get_arch_name()
genimg_get_type_name()
genimg_get_comp_name()
genimg_get_os_id()
genimg_get_arch_id()
genimg_get_type_id()
genimg_get_comp_id()
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
This patch introduces the following prefix convention for the
image format handling and bootm related code:
genimg_ - dual format shared code
image_ - legacy uImage format specific code
fit_ - new uImage format specific code
boot_ - booting process related code
Related routines are renamed and a few pieces of code are moved around and
re-grouped.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Allow the user to set 'bootm_low' and 'bootm_size' env vars as a way
to restrict what memory range is used for bootm.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
Convert generic ramdisk_high(), get_boot_cmdline(), get_boot_kbd()
functions over to using lmb for allocation of the ramdisk, command line
and kernel bd info.
Convert PPC specific fdt_relocate() to use lmb for allocation of the device
tree.
Provided a weak function that board code can call to do additional
lmb reserves if needed.
Also introduce the concept of bootmap_base to specify the offset in
physical memory that the bootmap is located at. This is used for
allocations of the cmdline, kernel bd, and device tree as they should
be contained within bootmap_base and bootmap_base + CFG_BOOTMAPSZ.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
The autostart env variable was dropped as part of the initial new uImage
cleanup. Add it back here so the arch specific code can decide if it
wants to really boot or not.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
Introduce the LMB lib used on PPC in the kernel as a clean way to manage
the memory spaces used by various boot images and structures. This code
will allow us to simplify the code in bootm and its support functions.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Changed image_get_ramdisk() to just return NULL on error and have
get_ramdisk() propogate that error to the caller. It's left to the
caller to call do_reset() if it wants to.
Also moved calling do_reset() in get_fdt() and fdt_relocate() on ppc
to a common location. In the future we will change get_fdt() and
fdt_relocate() to return success/failure and not call do_reset() at all.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
We don't actually need the kdb param as we are just using it to get
bd->bi_memsize which we can get from gd->bd->bi_memsize. Also, if we
boot via OF we might not actually fill out a kdb.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
Dual format image code must properly handle all three FDT passing methods:
- raw FDT blob passed
- FDT blob embedded in the legacy uImage
- FDT blob embedded in the new uImage
This patch enables proper raw FDT handling when no FIT imaeg support
is compiled in. This is a bit tricky as we must dected FIT format even
when FIT uImage handling is not enabled as both FIT uImages and raw FDT
blobs use tha same low level format (libfdt).
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Legacy image specific verification is factored out to a separate helper
routine to keep get_kernel() generic and simple.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Do not pass image verification flag directly to related routines.
Simplify argument passing and move it to the bootm_header structure which
contains curently processed image specific data and is already being passed
on the argument list.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
When CONFIG_HAS_DATAFLASH is not defined gen_get_image() routine has nothing
to do, update its control flow to better reflect that simple case.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
This patch adds framework for dual format images. Format detection is added
and the bootm controll flow is updated to include cases for new FIT format
uImages.
When the legacy (image_header based) format is detected appropriate
legacy specific handling is invoked. For the new (FIT based) format uImages
dual boot framework has a minial support, that will only print out a
corresponding debug messages. Implementation of the FIT specific handling will
be added in following patches.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Introducing routines for parsing new uImage format bootm arguments:
[<addr>]#<conf> - configuration specification
[<addr>]:<subimg> - subimage specification
New format images can contain multiple subimages of the same type. For example
a single new format image file can contain three kernels, two ramdisks and a
couple of FDT blobs. Subimage and configuration specifications are extensions
to bootm (and other image-related commands) arguments' syntax that allow to
specify which particular subimage should be operated on.
Subimage specification is used to denote a particular subimage. Configurations
are a bit more complex -- they are used to define a particualr booting setup,
for example a (kernel, fdt blob) pair, or a (kernel, ramdisk, fdt blob) tuple,
etc.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
This routine assures that image (whether legacy or FIT) is not
in a special dataflash storage.
If image address is a dataflash address image is moved to system RAM.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
If the length of the memory address range passed to the "mtest" command is
not of the form 2^x - 1, not all address lines are tested. This bug is
inherited from the original software at
http://www.netrino.com/Embedded-Systems/How-To/Memory-Test-Suite-C. Fix
this.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Current MII_DEBUG is confusing in two ways. One is useless define-then-
undef at the top of the file. The other is there is only one debug() in
this file, and that doesn't seem worthwhile to bother having MII_DEBUG.
While there are many useful printf()/puts() debug codes, but they are for
DEBUG, not for MII_DEBUG.
This patch tries to put them all together into MII_DEBUG and debug().
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
---------------------------------
read_dataflash() takes a signed char pointer as a parameter. Silence a
few warnings dues to incorrect parameter types in env_dataflash.c.
Signed-off-by: Stelian Pop <stelian@popies.net>
Move the flat device tree setup for QE related devices into
a common file shared between 83xx & 85xx platforms that have QE's.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Verification of the kernel image (in old format) and finding kernel
data is moved to a dedicated routine. The routine will also hold
support for, to be added, new image format.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
This patch moves common pre-boot allocation steps shared between PPC
and M68K to a helper routines:
common:
- get_boot_sp_limit()
- get_boot_cmline()
- get_boot_kbd()
platform:
- set_clocks_in_mhz()
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Ramdisk loading code, including initrd_high variable handling,
was duplicated for PPC and M68K platforms. This patch creates
common helper routine that is being called from both platform
do_bootm_linux() routines.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Architecture specific do_bootm_linux() routines share common
ramdisk image processing code. Move this code to a common
helper routine.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Move numeric-id to name translation for image os/arch/type/comp header
fields to a helper routines: image_get_os_name(), image_get_arch_name(),
image_get_type_name(), image_get_comp_name().
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Standalone applications are supposed to be run using the "go" command.
This patch removes standalone images handling from the do_bootm().
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Support for OF_FLAT_TREE is to be obsoleted in the near future,
remove related code from the bootm routines.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Check for overwrites during image move/uncompress, return with error
when the original image gets corrupted. Report clear message to the user
and prevent further troubles when pointer to the corrupted images is passed
to do_bootm_linux routine.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
- use single image header pointer instead of a set of auxilliary variables.
- add multi component image helper routines: get component size/data address
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
- sort and cleanup headers, declarations, etc.
- group related routines
- cleanup indentation, white spaces
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
I386 targets are not using a uImage format, instead fake header
is added to ram image before it is further processed by bootm.
Remove this fixup and force proper uImage use for I386.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
CHUNKSZ defined for PPC and M68K is set to the same value of 64K,
move this definition to a common header.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Move gunzip(), zalloc() and zfree() to a separate file.
Share zalloc() and zfree() with cramfs uncompress routine.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Make CONFIG_OF_LIBFDT and CONFIG_OF_FLAT_TREE use more
readable in PPC variant of do_bootm_linux() routine.
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
- Add inline helper macros for basic header processing
- Move common non inline code common/image.c
- Replace direct header access with the API routines
- Rename IH_CPU_* to IH_ARCH_*
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
allow to use a different server as set in serverip
add CONFIG_TFTP_FILE_NAME_MAX_LEN to configure the file name length
if not defined the max length will be at 128
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Add ifdef to bdinfo command to display ethernet information
only if CONFIG_CMD_NET is defined for arm modules.
Signed-off-by: K R Gururaja Hebbar <gururajakr@sanyo.co.in>
- Fix EEPROM_data structure definition according to System EEPROM Data Format.
- Read MAC addresses from EEPROM to ethXaddr before saving ethXaddr to
bd->bi_ethaddr.
Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
Currently, when CONFIG_CMDLINE_EDITING is set, bootretry doesn't work.
This patch fixes the problem.
Signed-off-by: Andreas Engel <andreas.engel@ericsson.com>
Many of the SPD bytes for DDR2 SDRAM are not interpreted correctly by the
"i2c sdram" command. This patch provides correct alternative
interpretations when DDR2 memory is detected.
Signed-off-by: Larry Johnson <lrj@acm.org>
Define the layout of a binary blob that contains a QE firmware and instructions
on how to upload it. Add function qe_upload_firmware() to parse the blob and
perform the actual upload. Add command-line command "qe fw" to take a firmware
blob in memory and upload it. Update ft_cpu_setup() on 85xx to create the
'firmware' device tree node if U-Boot has uploaded a firmware. Fully define
'struct rsp' in immap_qe.h to include the actual RISC Special Registers.
Signed-off-by: Timur Tabi <timur@freescale.com>
Add new function readline_into_buffer() that allows the
output of readline to be put into a pointer to char buffer.
This refactoring allows other functions besides the
main command loop to also use the same input mechanism.
Signed-off-by: James Yang <James.Yang@freescale.com>
Acked-by: Jon Loeliger <jdl@freescale.com>
Ctrl combo key support is added, which is very useful to input Ctrl-C
for interrupt current job.
Also add usb_event_poll() calling to usb_kbd_testc(), which can get
key input when tstc() is called.
Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
We now have more useful version of do_mii() and everybody use it.
Gerald Van Baren says:
> When I originally wrote the mii command 6(!) years ago, I wrote a
> verbose version that printed human readable decomposition of the flags,
> etc., and a terse one that didn't print as much stuff and thus had a
> smaller memory footprint.
>
> It sounds like the terse version has withered and died, apparently
> people are only using the verbose version (which is very understandable,
> I do myself).
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
If type mii command without arguments, we suffer from uninitialized argv[]
entries; for example we MIPS get stuck by TLB error.
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
The existing code can show information about a gzip compressed BMP
image, but can't actually display it.
Therefore, move the decompression code out of bmp_info() and use it in
bmp_display() as well in order to display a compressed BMP image.
Also, clean things up a bit and fix a memory leak while we're at it.
[hskinnemoen@atmel.com: a bit of refactoring]
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
This patch removes the unnecessary bit swapping when
booting .bit files with the 'fpga loadb' command.
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
This patch adds a post configuration callback for Spartan2/3 FPGAs.
pre and post configuration callback are now optional and
not called when the function pointer is set to NULL.
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
This patch removes the FPGA subsystem configuration through
the CONFIG_FPGA bitmask configuration option.
See README for the new options:
CONFIG_FPGA,
CONFIG_FPGA_<vendor>,
CONFIG_FPGA_<family>
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
With this patch it is possible to reimplement default_serial_console()
in board specific code. This will be done in the upcomming PMC440
U-Boot port. This also allows the lwmon board maintainer to
remove the '#if !defined(CONFIG_LWMON) ...' from common/serial.c.
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
This patch adds a 'cu' like serial terminal command to u-boot
using which you can access other serial ports from the system console.
OpenMoko uses this in their Neo1973 phones to get access to the GSM
Modem and GPS chip from the bootloader.
Signed-off-by: Harald Welte <laforge@openmoko.org>
Implement a suggestion by Scott Wood to make the /chosen handling fine
grained. Don't overwrite pre-existing properties on a per-property basis,
so if /chosen exists but a necessary /chosen/property doesn't, it gets
created. If a /chosen property exists, it is NOT overwritten unless the
"force" flag is true.
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
Add a note that "fdt copy" makes the new address active.
Remove most of the extra hints at the end of the fdt help.
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
Fix a bug found and documented by Bartlomiej Sieka where the optional
value on "fdt set <path> <prop> [<val>]" wasn't optional.
=> fdt mknode / testnode
=> fdt print /testnode
testnode {
};
=> fdt set /testnode testprop
=> fdt print /testnode
testnode {
testprop;
};
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
We use a combination of the serialN alias and CONFIG_CONS_INDEX to
determine which serial alias we should set linux,stdout-path to.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Added the following fdt fixup helpers:
* do_fixup_by_prop{_u32} - Find matching nodes by property name/value
* do_fixup_by_compat{_u32} - Find matching nodes by compat
The _u32 variants work the same only the property they are setting
is know to be a 32-bit integer instead of a byte buffer.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
cmd_fdt.c: In function fdt_print:
cmd_fdt.c:586: warning: assignment discards qualifiers from pointer target type
cmd_fdt.c:613: warning: assignment discards qualifiers from pointer target type
cmd_fdt.c:635: warning: assignment discards qualifiers from pointer target type
cmd_fdt.c:636: warning: assignment discards qualifiers from pointer target type
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Update libfdt to commit 8eaf5e358366017aa2e846c5038d1aa19958314e from
the device tree compiler (dtc) project.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Moved the generic fixup handling code out of cpu/mpc5xxx and cpu/mpc8260
into common/fdt_support.c and renamed:
do_fixup() -> do_fixup_by_path()
do_fixup_u32() -> do_fixup_by_path_u32()
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Removed:
fdt_node_is_compatible
fdt_find_node_by_type
fdt_find_compatible_node
To ease merge of newer libfdt as we aren't using them anywhere at this time.
Also moved fdt_find_and_setprop out of libfdt into fdt_support.c for the same
reason.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This patch has been sent on:
- 29 Sep 2007
Although mips_io_port_base is currently a part of IDE command, it is quite
fundamental for MIPS I/O port access such as in[bwl] and out[bwl]. So move
it to MIPS general part, and introduce `set_io_port_base()' from Linux.
This patch is triggered by multiple definition of `mips_io_port_base' build
error on gth2 (and tb0229 also needs this fix.)
board/gth2/libgth2.a(gth2.o): In function `log_serial_char':
/home/skuribay/devel/u-boot.git/board/gth2/gth2.c:47: multiple definition of `mips_io_port_base'
common/libcommon.a(cmd_ide.o):/home/skuribay/devel/u-boot.git/common/cmd_ide.c:712: first defined here
make: *** [u-boot] Error 1
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Spartan2/3 FPGAs. The old code used "< 0" on a "char" type to test if
the most significant bit was set, which did not work on any
architecture where "char" defaulted to be an unsigned type.
Based on a patch by Angelos Manousaridis <amanous@inaccessnetworks.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
This change is in preparation for condtitionial compile support in the
build system. By spliting them all into seperate lines now, subsequent
patches that change 'COBJS-y += ' into 'COBJS-$(CONFIG_<blah>) += ' will
be less invasive and easier to review
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
This patch adds support for 1000BASE-X to functions "miiphy_speed ()" and
"miiphy_duplex()". It also adds function "miiphy_is_1000base_x ()", which
returns non-zero iff the PHY registers are configured for 1000BASE-X. The
"mii info" command is modified to distinguish between 1000BASE-T and -X.
Signed-off-by: Larry Johnson <lrj@acm.org>
Signed-off-by: Ben Warren <bwarren@qstreams.com>
The scan code of the key 'z' is 0x1d, which should be handled.
The change has be tested on NOVATEK USB keyboard and ULI PCI OHCI
controller.
Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
These files were introduced with the IBM 405GP but are currently used on all
4xx PPC platforms. So the name doesn't match the content anymore. This patch
renames the files to 4xx_pci.c/h.
Signed-off-by: Stefan Roese <sr@denx.de>
CFG_FPGA_XILINX is a bit value used to test against the value in
CONFIG_FPGA. Testing for a value will always return TRUE. I don't
think that is the intention in this code.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>