On 10/04/2013 04:30 PM, Antonio Terceiro wrote:
On Thu, Oct 03, 2013 at 01:23:14PM +0300, Fathi Boudra wrote:
Our aarch64 support doesn't use QEMU. We use OE and extract archives
of cross-built binaries.
According to previous comments, the problem is that we try to run
Ubuntu specific commands.
Most likely because LAVA code path detects the rootfs and seems to
think it's Ubuntu.
In BE case, LAVA behavior should be similar to aarch64:
- LAVA detects OE
- we don't run native OS commands but only extract archives (QEMU
isn't involved, or flash-kernel...)
Actually those commands are run regardless of which OS is in the image, but on
little endian images it is harmless. The fix for this is to make the second
commmand (the one that failed aborting the job) condition on the first one,
which is allowed to fail:
https://git.linaro.org/gitweb?p=lava/lava-dispatcher.git;a=commitdiff;h=3cb7985bab6593e14c30f3312f6dbe83c6e4488d
With this change in, I was able to reproduce that job up to the point of
booting the big endian kernel - but the kernel does not boot:
https://staging.validation.linaro.org/scheduler/job/3369/log_file
(note that is the staging LAVA server, I will be looking into deploying this
change to the production server later today)
I failed on xhci.
Needed fix like that:
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 77600ce..6d40a4d 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1572,12 +1572,12 @@ static inline struct usb_hcd *xhci_to_hcd(struct
xhci_hcd *xhci)
static inline unsigned int xhci_readl(const struct xhci_hcd *xhci,
__le32 __iomem *regs)
{
- return readl(regs);
+ return readl_relaxed(regs);
}
static inline void xhci_writel(struct xhci_hcd *xhci,
const unsigned int val, __le32 __iomem *regs)
{
- writel(val, regs);
+ writel_relaxed(val, regs);
}
/*
@@ -1593,8 +1593,8 @@ static inline u64 xhci_read_64(const struct
xhci_hcd *xhci,
__le64 __iomem *regs)
{
__u32 __iomem *ptr = (__u32 __iomem *) regs;
- u64 val_lo = readl(ptr);
- u64 val_hi = readl(ptr + 1);
+ u64 val_lo = readl_relaxed(ptr);
+ u64 val_hi = readl_relaxed(ptr + 1);
return val_lo + (val_hi << 32);
}
static inline void xhci_write_64(struct xhci_hcd *xhci,
@@ -1604,8 +1604,8 @@ static inline void xhci_write_64(struct xhci_hcd
*xhci,
u32 val_lo = lower_32_bits(val);
u32 val_hi = upper_32_bits(val);
- writel(val_lo, ptr);
- writel(val_hi, ptr + 1);
+ writel_relaxed(val_lo, ptr);
+ writel_relaxed(val_hi, ptr + 1);
}
Please let me know when it will be possible to run be kernels in lava. I
can test patch.
Thank you,
Maxim.
_______________________________________________
linaro-validation mailing list
linaro-validation@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-validation