31 Dec, 2018

1 commit


07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     

16 Apr, 2018

5 commits

  • On VxWorks x86 its bootline address is at a pre-defined offset @
    0x1200. If 'bootaddr' is not passed via environment variable, we
    assign its value based on the kernel memory base address.

    Signed-off-by: Bin Meng

    Bin Meng
     
  • When booting from EFI BIOS, VxWorks bootloader stores the EFI GOP
    framebuffer info at a pre-defined offset @ 0x6100. When VxWorks
    kernel boots up, its EFI console driver tries to find such a block
    and if the signature matches, the framebuffer information will be
    used to initialize the driver.

    However it is not necessary to prepare an EFI environment for
    VxWorks's EFI console driver to function (eg: EFI loader in
    U-Boot). If U-Boot has already initialized the graphics card and
    set it to a VESA mode that is compatible with EFI GOP, we can
    simply prepare such a block for VxWorks.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This changes 'struct e820info' to 'struct e820_info' to conform
    with the coding style.

    Signed-off-by: Bin Meng
    Reviewed-by: Christian Gmeiner

    Bin Meng
     
  • VxWorks bootloader stores its size at a pre-defined offset @ 0x5004.
    Later when VxWorks kernel boots up and system memory information is
    retrieved from the E820 table, the bootloader size will be subtracted
    from the total system memory size to calculate the size of available
    memory for the OS.

    Explicitly clear the bootloader image size otherwise if memory
    at this offset happens to contain some garbage data, the final
    available memory size for the kernel is insane.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • At present two environment variables 'e820data'/'e820info' are required
    to boot a VxWorks x86 kernel, but this is superfluous. The offset of
    these two tables are actually at a fixed offset from the kernel memory
    base address and we can provide the kernel memory base address to U-Boot
    via only one variable 'vx_phys_mem_base'.

    Note as it name indicates, the physical address should be provided.

    Signed-off-by: Bin Meng
    Reviewed-by: Christian Gmeiner

    Bin Meng
     

21 Oct, 2015

2 commits

  • E820 is critical to the kernel as it provides system memory map
    information. Pass it to an x86 VxWorks kernel.

    Signed-off-by: Bin Meng
    Acked-by: Simon Glass
    Reviewed-by: Tom Rini
    Tested-by: Jian Luo

    Bin Meng
     
  • So far VxWorks bootline can be contructed from various environment
    variables, but when these variables do not exist we get these from
    corresponding config macros. This is not helpful as it requires
    rebuilding U-Boot, and to make sure these config macros take effect
    we should not have these environment variables. This is a little
    bit complex and confusing.

    Now we change the logic to always contruct the bootline from
    environments (the only single source), by adding two new variables
    "bootdev" and "othbootargs", and adding some comments about network
    related settings mentioning they are optional. The doc about the
    bootline handling is also updated.

    Signed-off-by: Bin Meng
    Reviewed-by: Tom Rini
    Tested-by: Hannes Schmelzer

    Bin Meng
     

16 Dec, 2013

1 commit

  • The next version VxWorks adopts device tree (for PowerPC and ARM) as its hardware
    description mechanism. For PowerPC, the boot interface conforms to
    the ePAPR standard, which is:

    void (*kernel_entry)(ulong fdt_addr,
    ulong r4 /* 0 */,
    ulong r5 /* 0 */,
    ulong r6 /* EPAPR_MAGIC */, ulong r7 /* IMA size */,
    ulong r8 /* 0 */, ulong r9 /* 0 */)

    For ARM, the boot interface is:

    void (*kernel_entry)(void *fdt_addr)

    Signed-off-by: Miao Yan
    [trini: Fix build error when !CONFIG_OF_FDT is set, typo on PowerPC,
    missing extern ft_fixup_num_cores]
    Signed-off-by: Tom Rini

    Miao Yan
     

24 Jul, 2013

1 commit


16 Oct, 2012

1 commit

  • Since the IOP480 (PPC401/3 variant from PLX) is only used on 2
    boards that are not actively maintained, lets remove support
    for it completely. This way the ppc4xx code will get a bit cleaner.

    Signed-off-by: Stefan Roese
    Acked-by: Matthias Fuchs
    Acked-by: Marek Vasut

    Stefan Roese
     

05 Jul, 2010

1 commit

  • The hush shell dynamically allocates (and re-allocates) memory for the
    argument strings in the "char *argv[]" argument vector passed to
    commands. Any code that modifies these pointers will cause serious
    corruption of the malloc data structures and crash U-Boot, so make
    sure the compiler can check that no such modifications are being done
    by changing the code into "char * const argv[]".

    This modification is the result of debugging a strange crash caused
    after adding a new command, which used the following argument
    processing code which has been working perfectly fine in all Unix
    systems since version 6 - but not so in U-Boot:

    int main (int argc, char **argv)
    {
    while (--argc > 0 && **++argv == '-') {
    /* ====> */ while (*++*argv) {
    switch (**argv) {
    case 'd':
    debug++;
    break;
    ...
    default:
    usage ();
    }
    }
    }
    ...
    }

    The line marked "====>" will corrupt the malloc data structures and
    usually cause U-Boot to crash when the next command gets executed by
    the shell. With the modification, the compiler will prevent this with
    an
    error: increment of read-only location '*argv'

    N.B.: The code above can be trivially rewritten like this:

    while (--argc > 0 && **++argv == '-') {
    char *arg = *argv;
    while (*++arg) {
    switch (*arg) {
    ...

    Signed-off-by: Wolfgang Denk
    Acked-by: Mike Frysinger

    Wolfgang Denk
     

09 Dec, 2008

1 commit


07 Dec, 2008

1 commit