[U-Boot] Implementing spl_start_uboot() for directly booting linux

Stefano Babic sbabic at denx.de
Wed Jul 30 10:26:59 CEST 2014


Hi Abdul,

On 30/07/2014 10:21, Heshsham Abdul Basit wrote:
> Hello,
> 
> I am trying to directly boot the kernel i.e without u-boot, on my
> Xilinx Zynq based microzed board.
> 
> 
> I understand that for that I must implement the function
> spl_start_uboot() in spl.c
> 
> 
> 
> Right now the definition is:
> 
> 
> 
> #ifdef CONFIG_SPL_OS_BOOT
> int spl_start_uboot(void)
> {
> /* boot linux */
> return 0;
> }
> #endif
> 
> 
> Given here:
> https://github.com/Xilinx/u-boot-xlnx/blob/2a0536fa48db1fc5332e3cd33b846d0da0c8bc1e/arch/arm/cpu/armv7/zynq/spl.c

Anyway, you are not using mainline. Please stick with the sources on
u-boot mainline to get help here.

> Can someone explain how to implement this function for directly
> booting the kernel?  Actually till now all the boards I have searched
> have not implemented this function,

This means you have not deeply searched. Check for example
board/technexion/twister/twister.c:


int spl_start_uboot(void)
{
        int val = 0;
        if (!gpio_request(SPL_OS_BOOT_KEY, "U-Boot key")) {
                gpio_direction_input(SPL_OS_BOOT_KEY);
                val = gpio_get_value(SPL_OS_BOOT_KEY);
                gpio_free(SPL_OS_BOOT_KEY);
        }
        return val;
}

On this board, the decision which image to boot is taken by looking at a
GPIO (switch on the board). Of course, you can implement the way you
need based on your hardware.

Best regards,
Stefano Babic



-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list