scsi: Add ata_swap_buf_le16() to support big-endian platforms
Otherwise the output will look like this on MIPS Octeon NIC23: Device 0: (0:0) Vendor: ATA Prod.: aSDnsi klUrt aII Rev: 4X11 Type: Hard Disk Capacity: 457862.8 MB = 447.1 GB (937703088 x 512) instead of this version: Device 0: (0:0) Vendor: TA Prod.: SanDisk Ultra II Rev: X411 Type: Hard Disk Capacity: 457862.8 MB = 447.1 GB (937703088 x 512) Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Aaron Williams <awilliams@marvell.com> Cc: Chandrakala Chavva <cchavva@marvell.com> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
parent
d960a70efb
commit
9201200c6f
@ -9,6 +9,7 @@
|
||||
#include <bootstage.h>
|
||||
#include <dm.h>
|
||||
#include <env.h>
|
||||
#include <libata.h>
|
||||
#include <log.h>
|
||||
#include <part.h>
|
||||
#include <pci.h>
|
||||
@ -594,6 +595,11 @@ static int do_scsi_scan_one(struct udevice *dev, int id, int lun, bool verbose)
|
||||
memcpy(&bdesc->vendor, &bd.vendor, sizeof(bd.vendor));
|
||||
memcpy(&bdesc->product, &bd.product, sizeof(bd.product));
|
||||
memcpy(&bdesc->revision, &bd.revision, sizeof(bd.revision));
|
||||
if (IS_ENABLED(CONFIG_SYS_BIG_ENDIAN)) {
|
||||
ata_swap_buf_le16((u16 *)&bdesc->vendor, sizeof(bd.vendor) / 2);
|
||||
ata_swap_buf_le16((u16 *)&bdesc->product, sizeof(bd.product) / 2);
|
||||
ata_swap_buf_le16((u16 *)&bdesc->revision, sizeof(bd.revision) / 2);
|
||||
}
|
||||
|
||||
if (verbose) {
|
||||
printf(" Device %d: ", bdesc->devnum);
|
||||
|
Loading…
Reference in New Issue
Block a user