On Tue, Mar 03, 2015 at 08:15:56AM -0600, Rob Herring wrote: > On Tue, Mar 3, 2015 at 5:10 AM, Dileep Katta <dileep.ka...@linaro.org> wrote: > > Signed-off-by: Angela Stegmaier <angelaba...@ti.com> > > Signed-off-by: Dileep Katta <dileep.ka...@linaro.org>
You need a full commit message as I don't really understand what this is supposed to be doing or why it's needed. > > --- > > board/ti/dra7xx/Makefile | 1 + > > board/ti/dra7xx/fastboot.c | 45 > > ++++++++++++++++++++++++++++++++++++ > > common/cmd_bootm.c | 5 ++++ > > drivers/usb/gadget/f_fastboot.c | 5 ++++ > > include/configs/dra7xx_evm_android.h | 14 +++++++++++ > > 5 files changed, 70 insertions(+) > > create mode 100644 board/ti/dra7xx/fastboot.c > > > > diff --git a/board/ti/dra7xx/Makefile b/board/ti/dra7xx/Makefile > > index 434e8d1..ae730ae 100644 > > --- a/board/ti/dra7xx/Makefile > > +++ b/board/ti/dra7xx/Makefile > > @@ -6,3 +6,4 @@ > > # > > > > obj-y := evm.o > > +obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o > > diff --git a/board/ti/dra7xx/fastboot.c b/board/ti/dra7xx/fastboot.c > > new file mode 100644 > > index 0000000..e05010d > > --- /dev/null > > +++ b/board/ti/dra7xx/fastboot.c > > @@ -0,0 +1,45 @@ > > +/* > > + * (C) Copyright 2013 > > + * Texas Instruments Incorporated, <www.ti.com> > > + * > > + * Lokesh Vutla <lokeshvu...@ti.com> > > + * > > + * Based on previous work by: > > + * Aneesh V <ane...@ti.com> > > + * Steve Sakoman <st...@sakoman.com> > > + * > > + * SPDX-License-Identifier: GPL-2.0+ > > + */ > > +#include <common.h> > > +#include <asm/io.h> > > +#include <asm-generic/gpio.h> > > +#include <config.h> > > + > > + > > +int fb_set_reboot_flag(void) > > +{ > > + /* clear all reset events */ > > + __raw_writel(DRA7XX_PRM_RSTST_CLR, PRM_RSTST); > > + strncpy((char *)DRA7XX_PUBLIC_SAR_RAM_1_FREE, "bootloader", > > + DRA7XX_REBOOT_REASON_SIZE - 1); > > + *(((char *)DRA7XX_PUBLIC_SAR_RAM_1_FREE) + > > + DRA7XX_REBOOT_REASON_SIZE - 1) = '\0'; > > + /* trigger warm reset */ > > + __raw_writel(DRA7XX_PRM_RSTCTRL_RESET_WARM_BIT, DRA7XX_PRM_RSTCTRL); > > Does this reset immediately? If so, then you will fail to send a > response to the client. > > > + > > + return 0; > > +} > > + > > +int fb_check_reboot_flag(void) > > +{ > > + /* Check if we are coming from a warm reset */ > > + if (__raw_readl(DRA7XX_PRM_RSTST) & DRA7XX_PRM_RSTST_RESET_WARM_BIT) > > + if (!strncmp((const char *)DRA7XX_PUBLIC_SAR_RAM_1_FREE, > > + "bootloader", DRA7XX_REBOOT_REASON_SIZE)) { > > + strncpy((char *)DRA7XX_PUBLIC_SAR_RAM_1_FREE, "", > > + DRA7XX_REBOOT_REASON_SIZE); > > + return 0; > > + } > > + > > + return 1; > > +} > > diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c > > index 48199bf..00791be 100644 > > --- a/common/cmd_bootm.c > > +++ b/common/cmd_bootm.c > > @@ -729,6 +729,11 @@ int do_booti(cmd_tbl_t *cmdtp, int flag, int argc, > > char * const argv[]) > > { > > int ret; > > > > +#if defined(CONFIG_CMD_FASTBOOT) > > + if (!fb_check_reboot_flag()) > > + do_fastboot(cmdtp, flag, argc, argv); > > +#endif > > Part of the booti command? First, booti is for arm64 Image files. How > does this work for you? > > More importantly, this should not be tied into any bootX command. It > should probably be done in a boot script. If the flag is set, the > board code can set some environment variable. Then the boot script can > run the fastboot command if the env var is set. > > > + > > /* Consume 'booti' */ > > argc--; argv++; > > > > diff --git a/drivers/usb/gadget/f_fastboot.c > > b/drivers/usb/gadget/f_fastboot.c > > index 206b6d1..a450357 100644 > > --- a/drivers/usb/gadget/f_fastboot.c > > +++ b/drivers/usb/gadget/f_fastboot.c > > @@ -332,6 +332,11 @@ int __weak fb_set_reboot_flag(void) > > return -ENOSYS; > > } > > > > +int __weak fb_check_reboot_flag(void) > > +{ > > + return -ENOSYS; > > +} > > + > > static void cb_reboot(struct usb_ep *ep, struct usb_request *req) > > { > > char *cmd = req->buf; > > diff --git a/include/configs/dra7xx_evm_android.h > > b/include/configs/dra7xx_evm_android.h > > index 68e7eec..2038e00 100644 > > --- a/include/configs/dra7xx_evm_android.h > > +++ b/include/configs/dra7xx_evm_android.h > > @@ -310,4 +310,18 @@ > > #endif > > #endif /* NOR support */ > > > > +#define DRA7XX_PUBLIC_SAR_RAM_1_FREE (0x4AE26000 + 0xFE0) > > +#define DRA7XX_PRM_RSTCTRL_RESET_WARM_BIT (1<<0) > > +#define DRA7XX_PRM_RSTST_RESET_WARM_BIT (1<<1) > > +#define DRA7XX_PRM_RSTST 0x4AE07D04 > > +#define DRA7XX_PRM_RSTCTRL 0x4AE07D00 > > +#define DRA7XX_PRM_RSTST_CLR 0xfff > > +#define DRA7XX_REBOOT_REASON_SIZE 0xf These defines, if really needed, need to end up somewhere under arch/arm/include/asm/arch-omap5/ and the code using them somewhere under arch/arm/cpu/armv7/omap-common/ > > +#define CONFIG_BOARD_MACH_TYPE 4070 > > You shouldn't need this anymore, right? > > > +#define MEMORY_BASE 0x80000000 > > +#define CONFIG_ADDR_ATAGS (MEMORY_BASE + 0x100) > > Or this? > > > +#define CONFIG_ADDR_DOWNLOAD (MEMORY_BASE + 0x02000000) > > +#define DEVICE_TREE 0x82f80000 > > Use fdt_addr_r env var instead? Yeah, this doesn't look right, nor genericially done for something I imagine "everyone" doing fastboot would want to get at. > > Rob > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot