mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
arm: mvebu: spl: Do not hardcode SATA block size to 512
Find SATA block device by blk_get_devnum_by_uclass_id() function and read from it the real block size of the SATA disk. Signed-off-by: Pali Rohár <pali@kernel.org>
This commit is contained in:
parent
9e804638bf
commit
fa06a6df65
1 changed files with 8 additions and 3 deletions
|
@ -208,10 +208,15 @@ int spl_parse_board_header(struct spl_image_info *spl_image,
|
|||
|
||||
/*
|
||||
* For SATA srcaddr is specified in number of sectors.
|
||||
* This expects that sector size is 512 bytes.
|
||||
* Retrieve block size of the first SCSI device (same
|
||||
* code used by the spl_sata_load_image_raw() function)
|
||||
* or fallback to default sector size of 512 bytes.
|
||||
*/
|
||||
if (IS_ENABLED(CONFIG_SPL_SATA) && mhdr->blockid == IBR_HDR_SATA_ID)
|
||||
spl_image->offset *= 512;
|
||||
if (IS_ENABLED(CONFIG_SPL_SATA) && mhdr->blockid == IBR_HDR_SATA_ID) {
|
||||
struct blk_desc *blk_dev = blk_get_devnum_by_uclass_id(UCLASS_SCSI, 0);
|
||||
unsigned long blksz = blk_dev ? blk_dev->blksz : 512;
|
||||
spl_image->offset *= blksz;
|
||||
}
|
||||
|
||||
if (spl_image->offset % 4 != 0) {
|
||||
printf("ERROR: Wrong srcaddr (0x%08x) in kwbimage\n",
|
||||
|
|
Loading…
Reference in a new issue