[U-Boot] [PATCH v3 0/4] uboot sata support for sunxi platform

This is the third version of my series to add support for AHCI to the sunxi platform. This uses the existing ahci platform support already present in u-boot. Most of the sunxi specific code comes from the Linux platform patches.
Since last time I've cut out all the unused register #defines and made the Calxeda midway platform use the scsi_init hook (new patch).
I've tested this only on cubietruck, but it is enabled for Olinino Micro, cubieboard and cubieboard2 based on inspection of the Linux DTS files. I have also now tested on Calxeda midway.
Once again as requested I am also cross posting to the main uboot mailing list since the first two patches are generic and don't rely on sunxi stuff and so could go into mainline now.
Ian.

This allow the platform to register the platform ahci device.
Signed-off-by: Ian Campbell ijc@hellion.org.uk --- In theory this could perhaps be used by highbank. I have access to a Midway system (close enough for testing purposes, I think) but since Calxeda has folded I'm not sure it is worth it, and I am not entirely keen on reflashing firmware on the system I have access too (no safety net)... --- arch/arm/lib/board.c | 6 ++++++ drivers/block/ahci.c | 5 +++++ 2 files changed, 11 insertions(+)
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c index 34f50b0..fe381a3 100644 --- a/arch/arm/lib/board.c +++ b/arch/arm/lib/board.c @@ -33,6 +33,7 @@ #include <nand.h> #include <onenand_uboot.h> #include <mmc.h> +#include <scsi.h> #include <libfdt.h> #include <fdtdec.h> #include <post.h> @@ -593,6 +594,11 @@ void board_init_r(gd_t *id, ulong dest_addr) mmc_initialize(gd->bd); #endif
+#ifdef CONFIG_CMD_SCSI + puts("SCSI: "); + scsi_init(); +#endif + #ifdef CONFIG_HAS_DATAFLASH AT91F_DataflashInit(); dataflash_print_info(); diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c index 0daad36..d5370fa 100644 --- a/drivers/block/ahci.c +++ b/drivers/block/ahci.c @@ -924,6 +924,11 @@ int ahci_init(u32 base) err_out: return rc; } + +void __weak scsi_init(void) +{ +} + #endif
/*

On Fri, Mar 07, 2014 at 01:20:56AM +0000, Ian Campbell wrote:
This allow the platform to register the platform ahci device.
Signed-off-by: Ian Campbell ijc@hellion.org.uk
Applied to u-boot/master, thanks!

Signed-off-by: Ian Campbell ijc@hellion.org.uk --- board/highbank/highbank.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/board/highbank/highbank.c b/board/highbank/highbank.c index 4b272c7..d42447d 100644 --- a/board/highbank/highbank.c +++ b/board/highbank/highbank.c @@ -51,17 +51,23 @@ int board_eth_init(bd_t *bis) return rc; }
-#ifdef CONFIG_MISC_INIT_R -int misc_init_r(void) +#ifdef CONFIG_SCSI_AHCI_PLAT +void scsi_init(void) { - char envbuffer[16]; - u32 boot_choice; u32 reg = readl(HB_SREG_A9_PWRDOM_STAT);
if (reg & PWRDOM_STAT_SATA) { ahci_init(HB_AHCI_BASE); scsi_scan(1); } +} +#endif + +#ifdef CONFIG_MISC_INIT_R +int misc_init_r(void) +{ + char envbuffer[16]; + u32 boot_choice;
boot_choice = readl(HB_SREG_A9_BOOT_SRC_STAT) & 0xff; sprintf(envbuffer, "bootcmd%d", boot_choice);

On Thu, Mar 6, 2014 at 7:20 PM, Ian Campbell ijc@hellion.org.uk wrote:
Signed-off-by: Ian Campbell ijc@hellion.org.uk
Acked-by: Rob Herring robh@kernel.org
board/highbank/highbank.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/board/highbank/highbank.c b/board/highbank/highbank.c index 4b272c7..d42447d 100644 --- a/board/highbank/highbank.c +++ b/board/highbank/highbank.c @@ -51,17 +51,23 @@ int board_eth_init(bd_t *bis) return rc; }
-#ifdef CONFIG_MISC_INIT_R -int misc_init_r(void) +#ifdef CONFIG_SCSI_AHCI_PLAT +void scsi_init(void) {
char envbuffer[16];
u32 boot_choice; u32 reg = readl(HB_SREG_A9_PWRDOM_STAT); if (reg & PWRDOM_STAT_SATA) { ahci_init(HB_AHCI_BASE); scsi_scan(1); }
+} +#endif
+#ifdef CONFIG_MISC_INIT_R +int misc_init_r(void) +{
char envbuffer[16];
u32 boot_choice; boot_choice = readl(HB_SREG_A9_BOOT_SRC_STAT) & 0xff; sprintf(envbuffer, "bootcmd%d", boot_choice);
-- 1.8.5.3
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On Fri, Mar 07, 2014 at 01:20:57AM +0000, Ian Campbell wrote:
Signed-off-by: Ian Campbell ijc@hellion.org.uk Acked-by: Rob Herring robh@kernel.org
Applied to u-boot/master, thanks!

I have observed timeouts on a cubietruck.
The increase to 40ms is completely arbitrary and Works For Me(tm). I couldn't find a good reference for how long you are supposed to wait, although googling around it seems like tens of ms rather than single digits is more common. I don't think there is any harm in waiting a bit longer.
Signed-off-by: Ian Campbell ijc@hellion.org.uk --- drivers/block/ahci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c index d5370fa..90a0719 100644 --- a/drivers/block/ahci.c +++ b/drivers/block/ahci.c @@ -41,7 +41,7 @@ u16 *ataid[AHCI_MAX_PORTS]; #define WAIT_MS_SPINUP 20000 #define WAIT_MS_DATAIO 5000 #define WAIT_MS_FLUSH 5000 -#define WAIT_MS_LINKUP 4 +#define WAIT_MS_LINKUP 40
static inline u32 ahci_port_base(u32 base, u32 port) {

On Fri, Mar 07, 2014 at 01:20:58AM +0000, Ian Campbell wrote:
I have observed timeouts on a cubietruck.
The increase to 40ms is completely arbitrary and Works For Me(tm). I couldn't find a good reference for how long you are supposed to wait, although googling around it seems like tens of ms rather than single digits is more common. I don't think there is any harm in waiting a bit longer.
Signed-off-by: Ian Campbell ijc@hellion.org.uk
Applied to u-boot/master, thanks!

This enables the necessary clocks, in AHB0 and in PLL6_CFG. This is done for sun7i only since I don't have access to any other sunxi platforms with sata included.
The bulk of the code is taken from the Linux ahci sunxi platform driver patches, adjusted for u-boot.
This adds the "PORT_DMA" tweaks to the core driver, under a suitable ifdef.
This option is enabled for Cubieboard, Cubieboard2, Cubietruck and Olinuxino Micro based on contents of Linux DTS files, including SATA power pin config taken from the DTS. All build tested, but runtime tested on cubietruck (FEL) only.
Signed-off-by: Ian Campbell ijc@hellion.org.uk --- v3:
Drop unused register definitions
v2:
make AHCI configurable per board, enabled for cubieboard, cubieboard2, cubietruck and Olinuxino Micro. --- arch/arm/cpu/armv7/sunxi/clock.c | 4 +++ boards.cfg | 18 +++++----- drivers/block/Makefile | 1 + drivers/block/ahci.c | 15 +++++++- drivers/block/ahci_sunxi.c | 77 ++++++++++++++++++++++++++++++++++++++++ include/ahci.h | 9 +++++ include/configs/sunxi-common.h | 12 +++++++ 7 files changed, 126 insertions(+), 10 deletions(-) create mode 100644 drivers/block/ahci_sunxi.c
diff --git a/arch/arm/cpu/armv7/sunxi/clock.c b/arch/arm/cpu/armv7/sunxi/clock.c index 06bc283..2cc274b 100644 --- a/arch/arm/cpu/armv7/sunxi/clock.c +++ b/arch/arm/cpu/armv7/sunxi/clock.c @@ -51,6 +51,10 @@ static void clock_init_safe(void) #ifdef CONFIG_SUN7I writel(0x1 << 6 | readl(&ccm->ahb_gate0), &ccm->ahb_gate0); writel(0x1 << 31 | readl(&ccm->pll6_cfg), &ccm->pll6_cfg); +#ifdef CONFIG_SCSI_AHCI_SUNXI + writel(0x1 << 25 |readl(&ccm->ahb_gate0), &ccm->ahb_gate0); + writel(0x1 << 14 | readl(&ccm->pll6_cfg), &ccm->pll6_cfg); +#endif #endif } #endif diff --git a/boards.cfg b/boards.cfg index 100acc8..987bc54 100644 --- a/boards.cfg +++ b/boards.cfg @@ -354,8 +354,8 @@ Active arm armv7 sunxi - sunxi Active arm armv7 sunxi - sunxi A13-OLinuXinoM sun5i:A13_OLINUXINOM,SPL,NO_AXP,STATUSLED=201,CONS_INDEX=2 - Active arm armv7 sunxi - sunxi A13-OLinuXinoM_FEL sun5i:A13_OLINUXINOM,SPL_FEL,NO_AXP,STATUSLED=201,CONS_INDEX=2 - Active arm armv7 sunxi - sunxi A13_MID sun5i:A13_MID,SPL,CONS_INDEX=2 - -Active arm armv7 sunxi - sunxi A20-OLinuXino_MICRO sun7i:A20_OLINUXINO_M,CONS_INDEX=1,STATUSLED=226,SPL,SUNXI_EMAC - -Active arm armv7 sunxi - sunxi A20-OLinuXino_MICRO_FEL sun7i:A20_OLINUXINO_M,CONS_INDEX=1,STATUSLED=226,SPL_FEL,SUNXI_EMAC - +Active arm armv7 sunxi - sunxi A20-OLinuXino_MICRO sun7i:A20_OLINUXINO_M,CONS_INDEX=1,STATUSLED=226,SPL,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPB(8) - +Active arm armv7 sunxi - sunxi A20-OLinuXino_MICRO_FEL sun7i:A20_OLINUXINO_M,CONS_INDEX=1,STATUSLED=226,SPL_FEL,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPB(8) - Active arm armv7 sunxi - sunxi Auxtek-T003 sun5i:AUXTEK_T003,SPL,AXP152_POWER,STATUSLED=34 - Active arm armv7 sunxi - sunxi Auxtek-T004 sun5i:AUXTEK_T004,SPL,AXP152_POWER,STATUSLED=34 - Active arm armv7 sunxi - sunxi ba10_tv_box sun4i:BA10_TV_BOX,SPL,SUNXI_EMAC - @@ -363,13 +363,13 @@ Active arm armv7 sunxi - sunxi Active arm armv7 sunxi - sunxi Coby_MID8042 sun4i:COBY_MID8042,SPL - Active arm armv7 sunxi - sunxi Coby_MID9742 sun4i:COBY_MID9742,SPL - Active arm armv7 sunxi - sunxi Colombus sun6i:COLOMBUS - -Active arm armv7 sunxi - sunxi Cubieboard sun4i:CUBIEBOARD,SPL,SUNXI_EMAC,STATUSLED=244,STATUSLED1=245 - -Active arm armv7 sunxi - sunxi Cubieboard2 sun7i:CUBIEBOARD2,SPL,SUNXI_GMAC,STATUSLED=244,STATUSLED1=245,FAST_MBUS - -Active arm armv7 sunxi - sunxi Cubieboard2_FEL sun7i:CUBIEBOARD2,SPL_FEL,SUNXI_GMAC,STATUSLED=244,STATUSLED1=245,FAST_MBUS - -Active arm armv7 sunxi - sunxi Cubietruck sun7i:CUBIETRUCK,SPL,SUNXI_GMAC,RGMII,STATUSLED=245,STATUSLED1=244,STATUSLED2=235,STATUSLED3=231,FAST_MBUS - -Active arm armv7 sunxi - sunxi Cubietruck_FEL sun7i:CUBIETRUCK,SPL_FEL,SUNXI_GMAC,RGMII,STATUSLED=245,STATUSLED1=244,STATUSLED2=235,STATUSLED3=231,FAST_MBUS - -Active arm armv7 sunxi - sunxi Cubieboard_512 sun4i:CUBIEBOARD_512,SPL,SUNXI_EMAC,STATUSLED=244,STATUSLED1=245 - -Active arm armv7 sunxi - sunxi Cubieboard_FEL sun4i:CUBIEBOARD,SPL_FEL,SUNXI_EMAC,STATUSLED=244,STATUSLED1=245 - +Active arm armv7 sunxi - sunxi Cubieboard sun4i:CUBIEBOARD,SPL,SUNXI_EMAC,STATUSLED=244,STATUSLED1=245,AHCI,SATAPWR=SUNXI_GPB(8) - +Active arm armv7 sunxi - sunxi Cubieboard2 sun7i:CUBIEBOARD2,SPL,SUNXI_GMAC,STATUSLED=244,STATUSLED1=245,FAST_MBUS,AHCI,SATAPWR=SUNXI_GPB(8) - +Active arm armv7 sunxi - sunxi Cubieboard2_FEL sun7i:CUBIEBOARD2,SPL_FEL,SUNXI_GMAC,STATUSLED=244,STATUSLED1=245,FAST_MBUS,AHCI,SATAPWR=SUNXI_GPB(8) - +Active arm armv7 sunxi - sunxi Cubietruck sun7i:CUBIETRUCK,SPL,SUNXI_GMAC,RGMII,STATUSLED=245,STATUSLED1=244,STATUSLED2=235,STATUSLED3=231,FAST_MBUS,AHCI,SATAPWR=SUNXI_GPH(12) - +Active arm armv7 sunxi - sunxi Cubietruck_FEL sun7i:CUBIETRUCK,SPL_FEL,SUNXI_GMAC,RGMII,STATUSLED=245,STATUSLED1=244,STATUSLED2=235,STATUSLED3=231,FAST_MBUS,AHCI,SATAPWR=SUNXI_GPH(12) - +Active arm armv7 sunxi - sunxi Cubieboard_512 sun4i:CUBIEBOARD_512,SPL,SUNXI_EMAC,STATUSLED=244,STATUSLED1=245,AHCI,SATAPWR=SUNXI_GPB(8) - +Active arm armv7 sunxi - sunxi Cubieboard_FEL sun4i:CUBIEBOARD,SPL_FEL,SUNXI_EMAC,STATUSLED=244,STATUSLED1=245,AHCI,SATAPWR=SUNXI_GPB(8) - Active arm armv7 sunxi - sunxi DNS_M82 sun4i:DNS_M82,SPL - Active arm armv7 sunxi - sunxi EOMA68_A10 sun4i:EOMA68_A10,SPL,MMC_SUNXI_SLOT=3,SUNXI_EMAC - Active arm armv7 sunxi - sunxi EOMA68_A10_FEL sun4i:EOMA68_A10,SPL_FEL,MMC_SUNXI_SLOT=3,SUNXI_EMAC - diff --git a/drivers/block/Makefile b/drivers/block/Makefile index 4e94378..e77188b 100644 --- a/drivers/block/Makefile +++ b/drivers/block/Makefile @@ -6,6 +6,7 @@ #
obj-$(CONFIG_SCSI_AHCI) += ahci.o +obj-$(CONFIG_SCSI_AHCI_SUNXI) += ahci_sunxi.o obj-$(CONFIG_ATA_PIIX) += ata_piix.o obj-$(CONFIG_DWC_AHSATA) += dwc_ahsata.o obj-$(CONFIG_FSL_SATA) += fsl_sata.o diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c index 90a0719..32be726 100644 --- a/drivers/block/ahci.c +++ b/drivers/block/ahci.c @@ -213,6 +213,13 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent) msleep(500); }
+#ifdef CONFIG_SCSI_AHCI_SUNXI + tmp = readl(port_mmio + PORT_DMA); + tmp &= ~PORT_DMA_SETUP_MASK; + tmp |= PORT_DMA_SETUP_INIT; + writel_with_flush(tmp, port_mmio + PORT_DMA); +#endif + /* Add the spinup command to whatever mode bits may * already be on in the command register. */ @@ -490,7 +497,7 @@ static int ahci_port_start(u8 port) struct ahci_ioports *pp = &(probe_ent->port[port]); volatile u8 *port_mmio = (volatile u8 *)pp->port_mmio; u32 port_status; - u32 mem; + u32 mem, tmp;
debug("Enter start port: %d\n", port); port_status = readl(port_mmio + PORT_SCR_STAT); @@ -540,6 +547,12 @@ static int ahci_port_start(u8 port)
writel_with_flush(pp->rx_fis, port_mmio + PORT_FIS_ADDR);
+#ifdef CONFIG_SCSI_AHCI_SUNXI + tmp = readl(port_mmio + PORT_DMA); + tmp &= ~PORT_DMA_SETUP_MASK; + tmp |= PORT_DMA_SETUP_INIT; + writel_with_flush(tmp, port_mmio + PORT_DMA); +#endif writel_with_flush(PORT_CMD_ICC_ACTIVE | PORT_CMD_FIS_RX | PORT_CMD_POWER_ON | PORT_CMD_SPIN_UP | PORT_CMD_START, port_mmio + PORT_CMD); diff --git a/drivers/block/ahci_sunxi.c b/drivers/block/ahci_sunxi.c new file mode 100644 index 0000000..6bffc76 --- /dev/null +++ b/drivers/block/ahci_sunxi.c @@ -0,0 +1,77 @@ +#include <common.h> +#include <ahci.h> +#include <scsi.h> +#include <asm/io.h> +#include <asm/gpio.h> + +#define AHCI_PHYCS0R 0x00c0 +#define AHCI_PHYCS1R 0x00c4 +#define AHCI_PHYCS2R 0x00c8 +#define AHCI_RWCR 0x00fc + +#define BIT(x) (1<<x) +static u32 sunxi_getbits(u8 *reg, u8 mask, u8 shift) +{ + return (readl(reg) >> shift) & mask; +} + +static int sunxi_ahci_phy_init(u32 base) +{ + u8 *reg_base = (u8 *)base; + u32 reg_val; + int timeout; + + /* This magic is from the original code */ + writel(0, reg_base + AHCI_RWCR); + mdelay(5); + + setbits_le32(reg_base + AHCI_PHYCS1R, BIT(19)); + clrsetbits_le32(reg_base + AHCI_PHYCS0R, + (0x7 << 24), + (0x5 << 24) | BIT(23) | BIT(18)); + clrsetbits_le32(reg_base + AHCI_PHYCS1R, + (0x3 << 16) | (0x1f << 8) | (0x3 << 6), + (0x2 << 16) | (0x6 << 8) | (0x2 << 6)); + setbits_le32(reg_base + AHCI_PHYCS1R, BIT(28) | BIT(15)); + clrbits_le32(reg_base + AHCI_PHYCS1R, BIT(19)); + clrsetbits_le32(reg_base + AHCI_PHYCS0R, + (0x7 << 20), (0x3 << 20)); + clrsetbits_le32(reg_base + AHCI_PHYCS2R, + (0x1f << 5), (0x19 << 5)); + mdelay(5); + + setbits_le32(reg_base + AHCI_PHYCS0R, (0x1 << 19)); + + timeout = 0x100000; + do { + reg_val = sunxi_getbits(reg_base + AHCI_PHYCS0R, 0x7, 28); + } while (--timeout && (reg_val != 0x2)); + if (!timeout) + printf("PHY power up failed.\n"); + + setbits_le32(reg_base + AHCI_PHYCS2R, (0x1 << 24)); + + timeout = 0x100000; + do { + reg_val = sunxi_getbits(reg_base + AHCI_PHYCS2R, 0x1, 24); + } while (--timeout && reg_val); + if (!timeout) + printf("PHY calibration failed.\n"); + mdelay(15); + + writel(0x7, reg_base + AHCI_RWCR); + + return 0; +} + +void scsi_init(void) +{ + printf("SUNXI SCSI INIT\n"); +#ifdef CONFIG_SATAPWR + gpio_direction_output(CONFIG_SATAPWR, 1); +#endif + + sunxi_ahci_phy_init(SUNXI_SATA_BASE); + + ahci_init(SUNXI_SATA_BASE); +} diff --git a/include/ahci.h b/include/ahci.h index 90e8509..c94689c 100644 --- a/include/ahci.h +++ b/include/ahci.h @@ -58,6 +58,15 @@ #define PORT_SCR_ERR 0x30 /* SATA phy register: SError */ #define PORT_SCR_ACT 0x34 /* SATA phy register: SActive */
+#ifdef CONFIG_SCSI_AHCI_SUNXI +#define PORT_DMA 0x70 /* SUNXI specific "DMA register" */ + +#define PORT_DMA_SETUP_OFFSET 8 /* dma setup offset */ +#define PORT_DMA_SETUP_MASK (0xff << PORT_DMA_SETUP_OFFSET) /* dma mask */ +#define PORT_DMA_SETUP_INIT (0x44 << PORT_DMA_SETUP_OFFSET) +#endif + + /* PORT_IRQ_{STAT,MASK} bits */ #define PORT_IRQ_COLD_PRES (1 << 31) /* cold presence detect */ #define PORT_IRQ_TF_ERR (1 << 30) /* task file error */ diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index d46a43f..be4c6b5 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -88,6 +88,18 @@ #define CONFIG_SYS_NAND_BASE 0x00 #endif
+#ifdef CONFIG_AHCI +#define CONFIG_LIBATA +#define CONFIG_SCSI_AHCI +#define CONFIG_SCSI_AHCI_PLAT +#define CONFIG_SCSI_AHCI_SUNXI +#define CONFIG_SYS_SCSI_MAX_SCSI_ID 1 +#define CONFIG_SYS_SCSI_MAX_LUN 1 +#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ + CONFIG_SYS_SCSI_MAX_LUN) +#define CONFIG_CMD_SCSI +#endif + #define CONFIG_CMD_MEMORY #define CONFIG_CMD_SETEXPR

On Fri, 2014-03-07 at 01:19 +0000, Ian Campbell wrote:
This is the third version of my series to add support for AHCI to the sunxi platform. This uses the existing ahci platform support already present in u-boot. Most of the sunxi specific code comes from the Linux platform patches.
Since last time I've cut out all the unused register #defines and made the Calxeda midway platform use the scsi_init hook (new patch).
I've tested this only on cubietruck, but it is enabled for Olinino Micro, cubieboard and cubieboard2 based on inspection of the Linux DTS files. I have also now tested on Calxeda midway.
Once again as requested I am also cross posting to the main uboot mailing list since the first two patches are generic and don't rely on
Oops: ^three
That is: ahci-plat: Provide a weak scsi_init hook highbank: use scsi_init hook ahci: wait longer for link.
are all suitable for main line.
sunxi stuff and so could go into mainline now.
Ian.

Hi Ian ..
You would have a repository with these updates where I could play with git, compile and test my cubieboard2 using kernel 3.14.rc5
I'm waiting! to test your boot! thank you

On Fri, 2014-03-07 at 08:44 -0800, Ezaul Zillmer wrote:
You would have a repository with these updates where I could play with git, compile and test my cubieboard2 using kernel 3.14.rc5
git://gitorious.org/ijc/u-boot.git ahci-sunxi
It is based on jwrdegoede/sunxi-next.
Ian.

Hi Ian
U-Boot SPL 2014.01-rc1-gb754a91 (Mar 12 2014 - 09:11:26) Board: Cubieboard2 DRAM: 1024 MiB CPU: 960000000Hz, AXI/AHB/APB: 3/2/2 spl: not an uImage at 1600
U-Boot 2014.01-rc1-gb754a91 (Mar 12 2014 - 09:11:26) Allwinner Technology
CPU: Allwinner A20 (SUN7I) Board: Cubieboard2 I2C: ready DRAM: 1 GiB WARNING: Caches not enabled MMC: SUNXI SD/MMC: 0 SCSI: SUNXI SCSI INIT SATA link 0 timeout. AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode flags: ncq stag pm led clo only pmp pio slum part ccc apst *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: mii0 Warning: failed to set MAC address
Hit any key to stop autoboot: 0 ** Unrecognized filesystem type ** ** File not found boot/uEnv.txt ** ** File not found uEnv.txt ** ** Unrecognized filesystem type ** 414 bytes read in 11 ms (36.1 KiB/s) Jumping to boot.scr ## Executing script at 44000000 45384 bytes read in 31 ms (1.4 MiB/s) invalid extent block invalid extent block ext4fs_devread read outside partition 4294967120 20752 bytes read in 16 ms (1.2 MiB/s) Wrong Image Format for bootm command ERROR: can't get kernel image! 45384 bytes read in 18 ms (2.4 MiB/s) invalid extent block invalid extent block ext4fs_devread read outside partition 4294967120 ** Unrecognized filesystem type ** ** File not found /script.bin **
What is not wrong that the boot SCSI wheel Where am I going wrong with leaving boot.cmd? use today as well
boot.cmd setenv bootargs console = tty0 console = ttyS0, 115200 = hdmi.audio EDID: 0 = disp.screen0_output_mode EDID: 1280x800p60 root = / dev/mmcblk0p1 rootfstype = ext4 rootwait panic = 10 ext4load mmc 0 0x43000000 boot / script.bin ext4load mmc 0 0x46000000 boot / uImage ext4load mmc 0 0x49000000 boot/cubie2.dtb env September fdt_high ffffffff bootm 0x46000000 - 0x49000000
MMC for swap SCSI?
It should be assimo Boot.cmd?
setenv bootargs console = tty0 console = ttyS0, 115200 = hdmi.audio EDID: 0 = disp.screen0_output_mode EDID: 1280x800p60 root = / dev/sda1 rootfstype = ext4 rootwait panic = 10 ext4load 0 0x43000000 scsi boot / script.bin ext4load 0 0x46000000 scsi boot / uImage ext4load scsi 0 0x49000000 boot/cubie2.dtb env September fdt_high ffffffff bootm 0x46000000 - 0x49000000
I thank Hug!
Em sábado, 8 de março de 2014 01h16min30s UTC-3, Ian Campbell escreveu:
On Fri, 2014-03-07 at 08:44 -0800, Ezaul Zillmer wrote:
You would have a repository with these updates where I could play with git, compile and test my cubieboard2 using kernel 3.14.rc5
git://gitorious.org/ijc/u-boot.git ahci-sunxi
It is based on jwrdegoede/sunxi-next.
Ian.

On Wed, 2014-03-12 at 05:43 -0700, Ezaul Zillmer wrote:
I'm afraid much of your mail was incomprehensible to me.
setenv bootargs console = tty0 console = ttyS0, 115200 = hdmi.audio EDID: 0 = disp.screen0_output_mode EDID: 1280x800p60 root = / dev/sda1 rootfstype = ext4 rootwait panic = 10 ext4load 0 0x43000000 scsi boot / script.bin ext4load 0 0x46000000 scsi boot / uImage ext4load scsi 0 0x49000000 boot/cubie2.dtb
The first two and the last one are using a totally different syntax, only one of them can be correct, I suggest you check the uboot help/docs and experiment by hand on the uboot console before trying to construct a boot.scr.
env September fdt_high ffffffff
WTF?
Ian.

Op 12 mrt. 2014, om 13:56 heeft Ian Campbell ijc@hellion.org.uk het volgende geschreven:
On Wed, 2014-03-12 at 05:43 -0700, Ezaul Zillmer wrote:
I'm afraid much of your mail was incomprehensible to me.
setenv bootargs console = tty0 console = ttyS0, 115200 = hdmi.audio EDID: 0 = disp.screen0_output_mode EDID: 1280x800p60 root = / dev/sda1 rootfstype = ext4 rootwait panic = 10 ext4load 0 0x43000000 scsi boot / script.bin ext4load 0 0x46000000 scsi boot / uImage ext4load scsi 0 0x49000000 boot/cubie2.dtb
The first two and the last one are using a totally different syntax, only one of them can be correct, I suggest you check the uboot help/docs and experiment by hand on the uboot console before trying to construct a boot.scr.
I've noticed 'ext4load' twice today, once in the mail above and once in the 'fedora on panda' blog post. What's stopping people from using the generic 'fsload' commands?
regards,
Koen

On Wed, 2014-03-12 at 14:17 +0100, Koen Kooi wrote:
Op 12 mrt. 2014, om 13:56 heeft Ian Campbell ijc@hellion.org.uk het volgende geschreven:
On Wed, 2014-03-12 at 05:43 -0700, Ezaul Zillmer wrote:
I'm afraid much of your mail was incomprehensible to me.
setenv bootargs console = tty0 console = ttyS0, 115200 = hdmi.audio EDID: 0 = disp.screen0_output_mode EDID: 1280x800p60 root = / dev/sda1 rootfstype = ext4 rootwait panic = 10 ext4load 0 0x43000000 scsi boot / script.bin ext4load 0 0x46000000 scsi boot / uImage ext4load scsi 0 0x49000000 boot/cubie2.dtb
The first two and the last one are using a totally different syntax, only one of them can be correct, I suggest you check the uboot help/docs and experiment by hand on the uboot console before trying to construct a boot.scr.
I've noticed 'ext4load' twice today, once in the mail above and once in the 'fedora on panda' blog post. What's stopping people from using the generic 'fsload' commands?
Personally because I'd never heard of it ;-)
Ian.

sun7i# scsi reset
Reset SCSI scanning bus for devices... timeout exit! Found 0 device(s).
this same problem not think that the drive to boot
Nothing appears scsi info
:( I will try to put another HD
Loading the kernel [3.723244] ata1.00: ATA-8: SAMSUNG HM320II, 2AC101C4, max UDMA/133 [3.729646] ata1.00: 625142448 sectors, multi 0: LBA48 NCQ (depth 31/32) [3.748349] ata1.00: configured for UDMA/133 [3.752698] ATA1: EH complete [3.756157] scsi 0:0:0:0: Direct-Access ATA SAMSUNG HM320II 2AC1 PQ: 0 ANSI: 5 [3.767627] sd 0:0:0:0: [sda] 625142448 512-byte logical blocks: (320 GB/298 GiB) [3.787130] sd 0:0:0:0: [sda] Write Protect is off [3.796692] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, does not support DPO or FUA [3.827250] sda: sda1 [3.836155] sd 0:0:0:0: [sda] Attached SCSI disk done.
Ezaul Zillmer
participants (5)
-
Ezaul Zillmer
-
Ian Campbell
-
Koen Kooi
-
Rob Herring
-
Tom Rini