All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Quadros <rogerq@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [uBoot 1/2] common: spl: Add spl sata boot support
Date: Wed, 29 Jan 2014 16:25:26 +0200	[thread overview]
Message-ID: <52E90F56.50909@ti.com> (raw)
In-Reply-To: <52E8FD15.9090703@ti.com>

On 01/29/2014 03:07 PM, Dan Murphy wrote:
> Roger
> 
> On 01/29/2014 03:16 AM, Roger Quadros wrote:
>> Hi Dan,
>>
>> On 01/28/2014 10:01 PM, Dan Murphy wrote:
>>> Add spl_sata to read a fat partition from a bootable SATA
>>> drive.
>>>
>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>>> ---
>>>  common/Makefile       |    3 +++
>>>  common/cmd_scsi.c     |    2 ++
>>>  common/spl/Makefile   |    1 +
>>>  common/spl/spl.c      |    5 +++++
>>>  common/spl/spl_sata.c |   51 +++++++++++++++++++++++++++++++++++++++++++++++++
>>>  include/spl.h         |    3 +++
>>>  spl/Makefile          |    1 +
>>>  7 files changed, 66 insertions(+)
>>>  create mode 100644 common/spl/spl_sata.c
>>>
>>> diff --git a/common/Makefile b/common/Makefile
>>> index 4d99ecd..b0f5b62 100644
>>> --- a/common/Makefile
>>> +++ b/common/Makefile
>>> @@ -201,6 +201,9 @@ ifdef CONFIG_SPL_USB_HOST_SUPPORT
>>>  obj-$(CONFIG_SPL_USB_SUPPORT) += usb.o usb_hub.o
>>>  obj-$(CONFIG_USB_STORAGE) += usb_storage.o
>>>  endif
>>> +ifdef CONFIG_SPL_SATA_SUPPORT
>>> +obj-$(CONFIG_CMD_SCSI) += cmd_scsi.o
>>> +endif
>>>  ifneq ($(CONFIG_SPL_NET_SUPPORT),y)
>>>  obj-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o
>>>  obj-$(CONFIG_ENV_IS_IN_MMC) += env_mmc.o
>>> diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
>>> index 7b97dc9..b3f7687 100644
>>> --- a/common/cmd_scsi.c
>>> +++ b/common/cmd_scsi.c
>>> @@ -168,7 +168,9 @@ removable:
>>>  		scsi_curr_dev = -1;
>>>  
>>>  	printf("Found %d device(s).\n", scsi_max_devs);
>>> +#ifndef CONFIG_SPL_BUILD
>>>  	setenv_ulong("scsidevs", scsi_max_devs);
>>> +#endif
>>>  }
>>>  
>>>  int scsi_get_disk_count(void)
>>> diff --git a/common/spl/Makefile b/common/spl/Makefile
>>> index 65a1484f..64569c2 100644
>>> --- a/common/spl/Makefile
>>> +++ b/common/spl/Makefile
>>> @@ -18,4 +18,5 @@ obj-$(CONFIG_SPL_NET_SUPPORT) += spl_net.o
>>>  obj-$(CONFIG_SPL_MMC_SUPPORT) += spl_mmc.o
>>>  obj-$(CONFIG_SPL_USB_SUPPORT) += spl_usb.o
>>>  obj-$(CONFIG_SPL_FAT_SUPPORT) += spl_fat.o
>>> +obj-$(CONFIG_SPL_SATA_SUPPORT) += spl_sata.o
>>>  endif
>>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>>> index 0645cee..774fdad 100644
>>> --- a/common/spl/spl.c
>>> +++ b/common/spl/spl.c
>>> @@ -210,6 +210,11 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>>>  		spl_usb_load_image();
>>>  		break;
>>>  #endif
>>> +#ifdef CONFIG_SPL_SATA_SUPPORT
>>> +	case BOOT_DEVICE_SATA:
>>> +		spl_sata_load_image();
>>> +		break;
>>> +#endif
>>>  	default:
>>>  		debug("SPL: Un-supported Boot Device\n");
>>>  		hang();
>>> diff --git a/common/spl/spl_sata.c b/common/spl/spl_sata.c
>>> new file mode 100644
>>> index 0000000..88d6b06
>>> --- /dev/null
>>> +++ b/common/spl/spl_sata.c
>>> @@ -0,0 +1,51 @@
>>> +/*
>>> + * (C) Copyright 2013
>>> + * Texas Instruments, <www.ti.com>
>>> + *
>>> + * Dan Murphy <dmurphy@ti.com>
>>> + *
>>> + * SPDX-License-Identifier:	GPL-2.0+
>>> + *
>>> + * Derived work from spl_usb.c
>>> + */
>>> +
>>> +#include <common.h>
>>> +#include <spl.h>
>>> +#include <asm/u-boot.h>
>>> +#include <sata.h>
>>> +#include <fat.h>
>>> +#include <version.h>
>>> +#include <image.h>
>>> +
>>> +DECLARE_GLOBAL_DATA_PTR;
>>> +
>>> +void spl_sata_load_image(void)
>>> +{
>>> +	int err;
>>> +	block_dev_desc_t *stor_dev;
>>> +
>>> +	err = init_sata(CONFIG_SPL_SATA_BOOT_DEVICE);
>>> +	if (err) {
>>> +#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
>>> +		printf("spl: sata init failed: err - %d\n", err);
>> Why the conditional print only if CONFIG_SPL_LIBCOMMON_SUPPORT.
> 
> As the file header indicates this is a copy/paste of the other SPL files.
> 
>>> +#endif
>>> +		hang();
>>> +	} else {
>>> +		/* try to recognize storage devices immediately */
>>> +		stor_dev = scsi_get_dev(0);
>>> +	}
>>> +
>>> +	debug("boot mode - FAT\n");
>> Do you really need this debug message? If yes could it be more descriptive like printing function name
>> to point out where it comes from?
> 
> We really don't need this since only FAT is supported here.  I can remove it in v2
> 
>>> +
>>> +#ifdef CONFIG_SPL_OS_BOOT
>>> +	if (spl_start_uboot() || spl_load_image_fat_os(stor_dev,
>>> +									CONFIG_SYS_SATA_FAT_BOOT_PARTITION))
>>> +#endif
>>> +	err = spl_load_image_fat(stor_dev,
>> Do you need to tab space this to align with the above if statement?
> 
> Well that depends on if the ifdef is honored.  If the SPL_OS_BOOT is not defined then this statement is lined
> up properly.  if it is defined then it is not.  Again this is the precedence for the other spl file (mmc and usb)
> 
>>
>>> +				CONFIG_SYS_SATA_FAT_BOOT_PARTITION,
>>> +				CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME);
>> Just cross checking. If CONFIG_SPL_OS_BOOT is defined then you need to call
>> both spl_load_image_fat_os() as well as spl_load_image_fat ?
> 
> spl_load_image_fat is called within spl_load_image_fat_os.
> 
> spl_load_image_fat is only needed to be called if the other functions return a failure
> 

OK. Thanks for the clarification.

cheers,
-roger

      reply	other threads:[~2014-01-29 14:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-28 20:01 [U-Boot] [uBoot 1/2] common: spl: Add spl sata boot support Dan Murphy
2014-01-28 20:01 ` [U-Boot] [uBoot 2/2] ARM: O5/dra7xx: Add SATA " Dan Murphy
2014-01-29  9:03   ` Roger Quadros
2014-01-29 13:04     ` Dan Murphy
2014-01-29  9:16 ` [U-Boot] [uBoot 1/2] common: spl: Add spl sata " Roger Quadros
2014-01-29 13:07   ` Dan Murphy
2014-01-29 14:25     ` Roger Quadros [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52E90F56.50909@ti.com \
    --to=rogerq@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.