* [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA
@ 2012-01-06 22:14 Stephen Warren
2012-01-06 22:14 ` [U-Boot] [PATCH 2/3] tegra2: Fix default RAM size selection in odmdata Stephen Warren
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Stephen Warren @ 2012-01-06 22:14 UTC (permalink / raw)
To: u-boot
Tegra appears to boot with function UARTA pre-selected on mux
group SDB. If two mux groups are both set to the same function,
it's unclear which group's pins drive the RX signals into the
HW module. For UARTA, SDB certainly overrides group IRTX in
practice. To solve this, configure some alternative function on
SDB to avoid the conflict. Also, tri-state the group to avoid
driving any signal onto it until we know what's connected.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
arch/arm/cpu/armv7/tegra2/funcmux.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/arch/arm/cpu/armv7/tegra2/funcmux.c b/arch/arm/cpu/armv7/tegra2/funcmux.c
index 0878f51..140f8a7 100644
--- a/arch/arm/cpu/armv7/tegra2/funcmux.c
+++ b/arch/arm/cpu/armv7/tegra2/funcmux.c
@@ -37,6 +37,18 @@ int funcmux_select(enum periph_id id, int config)
pinmux_set_func(PINGRP_IRTX, PMUX_FUNC_UARTA);
pinmux_tristate_disable(PINGRP_IRRX);
pinmux_tristate_disable(PINGRP_IRTX);
+ /*
+ * Tegra appears to boot with function UARTA pre-selected on
+ * mux group SDB. If two mux groups are both set to the same
+ * function, it's unclear which group's pins drive the RX
+ * signals into the HW module. For UARTA, SDB certainly
+ * overrides group IRTX in practice. To solve this, configure
+ * some alternative function on SDB to avoid the conflict. Also,
+ * tri-state the group to avoid driving any signal onto it until
+ * we know what's connected.
+ */
+ pinmux_tristate_enable(PINGRP_SDB);
+ pinmux_set_func(PINGRP_SDB, PMUX_FUNC_SDIO3);
break;
case PERIPH_ID_UART2:
--
1.7.0.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/3] tegra2: Fix default RAM size selection in odmdata
2012-01-06 22:14 [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA Stephen Warren
@ 2012-01-06 22:14 ` Stephen Warren
2012-01-09 19:39 ` Simon Glass
2012-01-06 22:14 ` [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100) Stephen Warren
2012-01-09 19:35 ` [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA Simon Glass
2 siblings, 1 reply; 12+ messages in thread
From: Stephen Warren @ 2012-01-06 22:14 UTC (permalink / raw)
To: u-boot
A value of 0 in the odmdata RAM size field means default, which is 512MB
not 1GB. Fix this. For reference, see:
http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;\
f=arch/arm/mach-tegra/odm_kit/query/harmony/tegra_devkit_custopt.h;\
h=1ec7010911454f19a5018952fd245785a62c59ad;\
hb=0e52d7fe25b11a656c376a37890be219470661fb
v2: New patch
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
arch/arm/cpu/armv7/tegra2/board.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/cpu/armv7/tegra2/board.c b/arch/arm/cpu/armv7/tegra2/board.c
index ea06570..404d34c 100644
--- a/arch/arm/cpu/armv7/tegra2/board.c
+++ b/arch/arm/cpu/armv7/tegra2/board.c
@@ -58,9 +58,9 @@ unsigned int query_sdram_size(void)
case 1:
return 0x10000000; /* 256 MB */
case 2:
+ default:
return 0x20000000; /* 512 MB */
case 3:
- default:
return 0x40000000; /* 1GB */
}
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-06 22:14 [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA Stephen Warren
2012-01-06 22:14 ` [U-Boot] [PATCH 2/3] tegra2: Fix default RAM size selection in odmdata Stephen Warren
@ 2012-01-06 22:14 ` Stephen Warren
2012-01-09 19:55 ` Simon Glass
2012-01-09 19:35 ` [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA Simon Glass
2 siblings, 1 reply; 12+ messages in thread
From: Stephen Warren @ 2012-01-06 22:14 UTC (permalink / raw)
To: u-boot
The Toshiba AC100 (Compal code-name Paz00, aka Dynabook AZ) is a netbook
derived from the NVIDIA Tegra Harmony reference board. It ships with
Android, but is often repurposed to run Linux. This patch adds just enough
support to get a U-Boot serial console, and the ability access built-in
eMMC and the external SD slot.
v2:
* Rebased on latest HEAD, incorporated changes made to other board files.
* Moved board files from board/nvidia to board/compal.
* Switched to correct odmdata value. This required add the previous patch
to fix U-Boot's interpretation of the odmdata RAM size field.
* Removed nvmem= from default Linux kernel command-line; no drivers use the
reserved memory yet, so there's no point reserving it.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
MAINTAINERS | 1 +
board/compal/paz00/Makefile | 41 ++++++++++++++++++++++
board/compal/paz00/paz00.c | 81 +++++++++++++++++++++++++++++++++++++++++++
boards.cfg | 1 +
include/configs/paz00.h | 51 +++++++++++++++++++++++++++
5 files changed, 175 insertions(+), 0 deletions(-)
create mode 100644 board/compal/paz00/Makefile
create mode 100644 board/compal/paz00/paz00.c
create mode 100644 include/configs/paz00.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 4bf12b5..9c796e2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -891,6 +891,7 @@ Tom Warren <twarren@nvidia.com>
Stephen Warren <swarren@nvidia.com>
ventana Tegra2 (ARM7 & A9 Dual Core)
+ paz00 Tegra2 (ARM7 & A9 Dual Core)
Thomas Weber <weber@corscience.de>
diff --git a/board/compal/paz00/Makefile b/board/compal/paz00/Makefile
new file mode 100644
index 0000000..488e381
--- /dev/null
+++ b/board/compal/paz00/Makefile
@@ -0,0 +1,41 @@
+#
+# Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+
+include $(TOPDIR)/config.mk
+
+ifneq ($(OBJTREE),$(SRCTREE))
+$(shell mkdir -p $(obj)../../nvidia/common)
+endif
+
+LIB = $(obj)lib$(BOARD).o
+
+COBJS := $(BOARD).o
+COBJS += ../../nvidia/common/board.o
+
+SRCS := $(COBJS:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS))
+
+$(LIB): $(obj).depend $(OBJS)
+ $(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/compal/paz00/paz00.c b/board/compal/paz00/paz00.c
new file mode 100644
index 0000000..3b48917
--- /dev/null
+++ b/board/compal/paz00/paz00.c
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/tegra2.h>
+#include <asm/arch/pinmux.h>
+#include <asm/arch/mmc.h>
+#include <asm/gpio.h>
+#ifdef CONFIG_TEGRA2_MMC
+#include <mmc.h>
+#endif
+
+/*
+ * Routine: gpio_config_uart
+ * Description: Does nothing on Paz00 - no conflict w/SPI.
+ */
+void gpio_config_uart(void)
+{
+}
+
+#ifdef CONFIG_TEGRA2_MMC
+/*
+ * Routine: pin_mux_mmc
+ * Description: setup the pin muxes/tristate values for the SDMMC(s)
+ */
+static void pin_mux_mmc(void)
+{
+ /* SDMMC4: config 3, x8 on 2nd set of pins */
+ pinmux_set_func(PINGRP_ATB, PMUX_FUNC_SDIO4);
+ pinmux_set_func(PINGRP_GMA, PMUX_FUNC_SDIO4);
+ pinmux_set_func(PINGRP_GME, PMUX_FUNC_SDIO4);
+
+ pinmux_tristate_disable(PINGRP_ATB);
+ pinmux_tristate_disable(PINGRP_GMA);
+ pinmux_tristate_disable(PINGRP_GME);
+
+ /* SDMMC1: SDIO1_CLK, SDIO1_CMD, SDIO1_DAT[3:0] */
+ pinmux_set_func(PINGRP_SDMMC1, PMUX_FUNC_SDIO1);
+
+ pinmux_tristate_disable(PINGRP_SDMMC1);
+
+ /* For power GPIO PV1 */
+ pinmux_tristate_disable(PINGRP_UAC);
+ /* For CD GPIO PI5 */
+ pinmux_tristate_disable(PINGRP_ATC);
+}
+
+/* this is a weak define that we are overriding */
+int board_mmc_init(bd_t *bd)
+{
+ debug("board_mmc_init called\n");
+
+ /* Enable muxes, etc. for SDMMC controllers */
+ pin_mux_mmc();
+
+ debug("board_mmc_init: init eMMC\n");
+ /* init dev 0, eMMC chip, with 4-bit bus */
+ /* The board has an 8-bit bus, but 8-bit doesn't work yet */
+ tegra2_mmc_init(0, 4, -1, -1);
+
+ debug("board_mmc_init: init SD slot\n");
+ /* init dev 3, SD slot, with 4-bit bus */
+ tegra2_mmc_init(3, 4, GPIO_PV1, GPIO_PI5);
+
+ return 0;
+}
+#endif
diff --git a/boards.cfg b/boards.cfg
index 0b32532..8a0343a 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -247,6 +247,7 @@ colibri_pxa270 arm pxa - toradex
jornada arm sa1100
plutux arm armv7 plutux avionic-design tegra2
medcom arm armv7 medcom avionic-design tegra2
+paz00 arm armv7 paz00 compal tegra2
atngw100 avr32 at32ap - atmel at32ap700x
atstk1002 avr32 at32ap atstk1000 atmel at32ap700x
atstk1003 avr32 at32ap atstk1000 atmel at32ap700x
diff --git a/include/configs/paz00.h b/include/configs/paz00.h
new file mode 100644
index 0000000..f53f20e
--- /dev/null
+++ b/include/configs/paz00.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010,2011, NVIDIA CORPORATION. All rights reserved.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <asm/sizes.h>
+#include "tegra2-common.h"
+
+/* High-level configuration options */
+#define TEGRA2_SYSMEM "mem=512M at 0M"
+#define V_PROMPT "Tegra2 (Paz00) MOD # "
+#define CONFIG_TEGRA2_BOARD_STRING "Compal Paz00"
+
+/* Board-specific serial config */
+#define CONFIG_SERIAL_MULTI
+#define CONFIG_TEGRA2_ENABLE_UARTA
+#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTA_BASE
+
+#define CONFIG_MACH_TYPE MACH_TYPE_PAZ00
+#define CONFIG_SYS_BOARD_ODMDATA 0x800c0085 /* lp1, 512MB */
+
+#define CONFIG_BOARD_EARLY_INIT_F
+
+/* SD/MMC */
+#define CONFIG_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_TEGRA2_MMC
+#define CONFIG_CMD_MMC
+
+#define CONFIG_DOS_PARTITION
+#define CONFIG_EFI_PARTITION
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_FAT
+
+/* Environment not stored */
+#define CONFIG_ENV_IS_NOWHERE
+#endif /* __CONFIG_H */
--
1.7.0.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA
2012-01-06 22:14 [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA Stephen Warren
2012-01-06 22:14 ` [U-Boot] [PATCH 2/3] tegra2: Fix default RAM size selection in odmdata Stephen Warren
2012-01-06 22:14 ` [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100) Stephen Warren
@ 2012-01-09 19:35 ` Simon Glass
2 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2012-01-09 19:35 UTC (permalink / raw)
To: u-boot
On Fri, Jan 6, 2012 at 2:14 PM, Stephen Warren <swarren@nvidia.com> wrote:
> Tegra appears to boot with function UARTA pre-selected on mux
> group SDB. If two mux groups are both set to the same function,
> it's unclear which group's pins drive the RX signals into the
> HW module. For UARTA, SDB certainly overrides group IRTX in
> practice. To solve this, configure some alternative function on
> SDB to avoid the conflict. Also, tri-state the group to avoid
> driving any signal onto it until we know what's connected.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
Tested on Seaboard.
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
> ---
> ?arch/arm/cpu/armv7/tegra2/funcmux.c | ? 12 ++++++++++++
> ?1 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/tegra2/funcmux.c b/arch/arm/cpu/armv7/tegra2/funcmux.c
> index 0878f51..140f8a7 100644
> --- a/arch/arm/cpu/armv7/tegra2/funcmux.c
> +++ b/arch/arm/cpu/armv7/tegra2/funcmux.c
> @@ -37,6 +37,18 @@ int funcmux_select(enum periph_id id, int config)
> ? ? ? ? ? ? ? ?pinmux_set_func(PINGRP_IRTX, PMUX_FUNC_UARTA);
> ? ? ? ? ? ? ? ?pinmux_tristate_disable(PINGRP_IRRX);
> ? ? ? ? ? ? ? ?pinmux_tristate_disable(PINGRP_IRTX);
> + ? ? ? ? ? ? ? /*
> + ? ? ? ? ? ? ? ?* Tegra appears to boot with function UARTA pre-selected on
> + ? ? ? ? ? ? ? ?* mux group SDB. If two mux groups are both set to the same
> + ? ? ? ? ? ? ? ?* function, it's unclear which group's pins drive the RX
> + ? ? ? ? ? ? ? ?* signals into the HW module. For UARTA, SDB certainly
> + ? ? ? ? ? ? ? ?* overrides group IRTX in practice. To solve this, configure
> + ? ? ? ? ? ? ? ?* some alternative function on SDB to avoid the conflict. Also,
> + ? ? ? ? ? ? ? ?* tri-state the group to avoid driving any signal onto it until
> + ? ? ? ? ? ? ? ?* we know what's connected.
> + ? ? ? ? ? ? ? ?*/
> + ? ? ? ? ? ? ? pinmux_tristate_enable(PINGRP_SDB);
> + ? ? ? ? ? ? ? pinmux_set_func(PINGRP_SDB, ?PMUX_FUNC_SDIO3);
> ? ? ? ? ? ? ? ?break;
>
> ? ? ? ?case PERIPH_ID_UART2:
> --
> 1.7.0.4
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/3] tegra2: Fix default RAM size selection in odmdata
2012-01-06 22:14 ` [U-Boot] [PATCH 2/3] tegra2: Fix default RAM size selection in odmdata Stephen Warren
@ 2012-01-09 19:39 ` Simon Glass
0 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2012-01-09 19:39 UTC (permalink / raw)
To: u-boot
On Fri, Jan 6, 2012 at 2:14 PM, Stephen Warren <swarren@nvidia.com> wrote:
> A value of 0 in the odmdata RAM size field means default, which is 512MB
> not 1GB. Fix this. For reference, see:
>
> http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;\
> f=arch/arm/mach-tegra/odm_kit/query/harmony/tegra_devkit_custopt.h;\
> h=1ec7010911454f19a5018952fd245785a62c59ad;\
> hb=0e52d7fe25b11a656c376a37890be219470661fb
>
> v2: New patch
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
Tested on a Seaboard with 1GB RAM.
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
> ---
> ?arch/arm/cpu/armv7/tegra2/board.c | ? ?2 +-
> ?1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/tegra2/board.c b/arch/arm/cpu/armv7/tegra2/board.c
> index ea06570..404d34c 100644
> --- a/arch/arm/cpu/armv7/tegra2/board.c
> +++ b/arch/arm/cpu/armv7/tegra2/board.c
> @@ -58,9 +58,9 @@ unsigned int query_sdram_size(void)
> ? ? ? ?case 1:
> ? ? ? ? ? ? ? ?return 0x10000000; ? ? ?/* 256 MB */
> ? ? ? ?case 2:
> + ? ? ? default:
> ? ? ? ? ? ? ? ?return 0x20000000; ? ? ?/* 512 MB */
> ? ? ? ?case 3:
> - ? ? ? default:
> ? ? ? ? ? ? ? ?return 0x40000000; ? ? ?/* 1GB */
> ? ? ? ?}
> ?}
> --
> 1.7.0.4
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-06 22:14 ` [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100) Stephen Warren
@ 2012-01-09 19:55 ` Simon Glass
2012-01-09 20:00 ` Stephen Warren
2012-01-09 20:04 ` Stephen Warren
0 siblings, 2 replies; 12+ messages in thread
From: Simon Glass @ 2012-01-09 19:55 UTC (permalink / raw)
To: u-boot
Hi Stephen,
On Fri, Jan 6, 2012 at 2:14 PM, Stephen Warren <swarren@nvidia.com> wrote:
> The Toshiba AC100 (Compal code-name Paz00, aka Dynabook AZ) is a netbook
> derived from the NVIDIA Tegra Harmony reference board. It ships with
> Android, but is often repurposed to run Linux. This patch adds just enough
> support to get a U-Boot serial console, and the ability access built-in
> eMMC and the external SD slot.
>
> v2:
> * Rebased on latest HEAD, incorporated changes made to other board files.
> * Moved board files from board/nvidia to board/compal.
> * Switched to correct odmdata value. This required add the previous patch
> ?to fix U-Boot's interpretation of the odmdata RAM size field.
> * Removed nvmem= from default Linux kernel command-line; no drivers use the
> ?reserved memory yet, so there's no point reserving it.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> ?MAINTAINERS ? ? ? ? ? ? ? ? | ? ?1 +
> ?board/compal/paz00/Makefile | ? 41 ++++++++++++++++++++++
> ?board/compal/paz00/paz00.c ?| ? 81 +++++++++++++++++++++++++++++++++++++++++++
> ?boards.cfg ? ? ? ? ? ? ? ? ?| ? ?1 +
> ?include/configs/paz00.h ? ? | ? 51 +++++++++++++++++++++++++++
> ?5 files changed, 175 insertions(+), 0 deletions(-)
> ?create mode 100644 board/compal/paz00/Makefile
> ?create mode 100644 board/compal/paz00/paz00.c
> ?create mode 100644 include/configs/paz00.h
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 4bf12b5..9c796e2 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -891,6 +891,7 @@ Tom Warren <twarren@nvidia.com>
> ?Stephen Warren <swarren@nvidia.com>
>
> ? ? ? ?ventana ? ? ? ? Tegra2 (ARM7 & A9 Dual Core)
> + ? ? ? paz00 ? ? ? ? ? Tegra2 (ARM7 & A9 Dual Core)
>
> ?Thomas Weber <weber@corscience.de>
>
> diff --git a/board/compal/paz00/Makefile b/board/compal/paz00/Makefile
> new file mode 100644
> index 0000000..488e381
> --- /dev/null
> +++ b/board/compal/paz00/Makefile
> @@ -0,0 +1,41 @@
> +#
> +# Copyright (c) 2010-2012, NVIDIA CORPORATION. ?All rights reserved.
> +#
> +# See file CREDITS for list of people who contributed to this
> +# project.
> +#
> +# This program is free software; you can redistribute it and/or modify it
> +# under the terms and conditions of the GNU General Public License,
> +# version 2, as published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope it will be useful, but WITHOUT
> +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> +# FITNESS FOR A PARTICULAR PURPOSE. ?See the GNU General Public License for
> +# more details.
> +#
> +
> +include $(TOPDIR)/config.mk
> +
> +ifneq ($(OBJTREE),$(SRCTREE))
> +$(shell mkdir -p $(obj)../../nvidia/common)
> +endif
> +
> +LIB ? ?= $(obj)lib$(BOARD).o
> +
> +COBJS ?:= $(BOARD).o
> +COBJS ?+= ../../nvidia/common/board.o
I think you can drop this as the top-level Makefile should bring in
the library from that directory.
> +
> +SRCS ? := $(COBJS:.o=.c)
> +OBJS ? := $(addprefix $(obj),$(COBJS))
> +
> +$(LIB): ? ? ? ?$(obj).depend $(OBJS)
> + ? ? ? $(call cmd_link_o_target, $(OBJS))
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/compal/paz00/paz00.c b/board/compal/paz00/paz00.c
> new file mode 100644
> index 0000000..3b48917
> --- /dev/null
> +++ b/board/compal/paz00/paz00.c
> @@ -0,0 +1,81 @@
> +/*
> + * Copyright (c) 2010-2012, NVIDIA CORPORATION. ?All rights reserved.
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE. ?See the GNU General Public License for
> + * more details.
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/tegra2.h>
> +#include <asm/arch/pinmux.h>
> +#include <asm/arch/mmc.h>
> +#include <asm/gpio.h>
> +#ifdef CONFIG_TEGRA2_MMC
> +#include <mmc.h>
> +#endif
> +
> +/*
> + * Routine: gpio_config_uart
> + * Description: Does nothing on Paz00 - no conflict w/SPI.
> + */
> +void gpio_config_uart(void)
> +{
> +}
> +
> +#ifdef CONFIG_TEGRA2_MMC
> +/*
> + * Routine: pin_mux_mmc
> + * Description: setup the pin muxes/tristate values for the SDMMC(s)
> + */
> +static void pin_mux_mmc(void)
> +{
> + ? ? ? /* SDMMC4: config 3, x8 on 2nd set of pins */
> + ? ? ? pinmux_set_func(PINGRP_ATB, PMUX_FUNC_SDIO4);
> + ? ? ? pinmux_set_func(PINGRP_GMA, PMUX_FUNC_SDIO4);
> + ? ? ? pinmux_set_func(PINGRP_GME, PMUX_FUNC_SDIO4);
> +
> + ? ? ? pinmux_tristate_disable(PINGRP_ATB);
> + ? ? ? pinmux_tristate_disable(PINGRP_GMA);
> + ? ? ? pinmux_tristate_disable(PINGRP_GME);
> +
> + ? ? ? /* SDMMC1: SDIO1_CLK, SDIO1_CMD, SDIO1_DAT[3:0] */
> + ? ? ? pinmux_set_func(PINGRP_SDMMC1, PMUX_FUNC_SDIO1);
> +
> + ? ? ? pinmux_tristate_disable(PINGRP_SDMMC1);
> +
> + ? ? ? /* For power GPIO PV1 */
> + ? ? ? pinmux_tristate_disable(PINGRP_UAC);
> + ? ? ? /* For CD GPIO PI5 */
> + ? ? ? pinmux_tristate_disable(PINGRP_ATC);
> +}
Gosh, we are seeing a lot of duplication in this area - I will come up
with a patch to move this into funcmux.
> +
> +/* this is a weak define that we are overriding */
> +int board_mmc_init(bd_t *bd)
> +{
> + ? ? ? debug("board_mmc_init called\n");
> +
> + ? ? ? /* Enable muxes, etc. for SDMMC controllers */
> + ? ? ? pin_mux_mmc();
> +
> + ? ? ? debug("board_mmc_init: init eMMC\n");
> + ? ? ? /* init dev 0, eMMC chip, with 4-bit bus */
> + ? ? ? /* The board has an 8-bit bus, but 8-bit doesn't work yet */
> + ? ? ? tegra2_mmc_init(0, 4, -1, -1);
Yes - I will see if I can do a patch to enable 8-bit.
> +
> + ? ? ? debug("board_mmc_init: init SD slot\n");
> + ? ? ? /* init dev 3, SD slot, with 4-bit bus */
> + ? ? ? tegra2_mmc_init(3, 4, GPIO_PV1, GPIO_PI5);
> +
> + ? ? ? return 0;
> +}
> +#endif
> diff --git a/boards.cfg b/boards.cfg
> index 0b32532..8a0343a 100644
> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -247,6 +247,7 @@ colibri_pxa270 ? ? ? ? ? ? ? arm ? ? ? ? pxa ? ? ? ? - ? ? ? ? ? ? ? ? ? toradex
> ?jornada ? ? ? ? ? ? ? ? ? ? ?arm ? ? ? ? sa1100
> ?plutux ? ? ? ? ? ? ? ? ? ? ? arm ? ? ? ? armv7 ? ? ? plutux ? ? ? ? ? ? ?avionic-design tegra2
> ?medcom ? ? ? ? ? ? ? ? ? ? ? arm ? ? ? ? armv7 ? ? ? medcom ? ? ? ? ? ? ?avionic-design tegra2
> +paz00 ? ? ? ? ? ? ? ? ? ? ? ?arm ? ? ? ? armv7 ? ? ? paz00 ? ? ? ? ? ? ? compal ? ? ? ? tegra2
> ?atngw100 ? ? ? ? ? ? ? ? ? ? avr32 ? ? ? at32ap ? ? ?- ? ? ? ? ? ? ? ? ? atmel ? ? ? ? ?at32ap700x
> ?atstk1002 ? ? ? ? ? ? ? ? ? ?avr32 ? ? ? at32ap ? ? ?atstk1000 ? ? ? ? ? atmel ? ? ? ? ?at32ap700x
> ?atstk1003 ? ? ? ? ? ? ? ? ? ?avr32 ? ? ? at32ap ? ? ?atstk1000 ? ? ? ? ? atmel ? ? ? ? ?at32ap700x
> diff --git a/include/configs/paz00.h b/include/configs/paz00.h
> new file mode 100644
> index 0000000..f53f20e
> --- /dev/null
> +++ b/include/configs/paz00.h
> @@ -0,0 +1,51 @@
> +/*
> + * Copyright (c) 2010,2011, NVIDIA CORPORATION. ?All rights reserved.
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE. ?See the GNU General Public License for
> + * more details.
> + */
> +
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +#include <asm/sizes.h>
> +#include "tegra2-common.h"
> +
> +/* High-level configuration options */
> +#define TEGRA2_SYSMEM ? ? ? ? ?"mem=512M at 0M"
> +#define V_PROMPT ? ? ? ? ? ? ? "Tegra2 (Paz00) MOD # "
> +#define CONFIG_TEGRA2_BOARD_STRING ? ? "Compal Paz00"
> +
> +/* Board-specific serial config */
> +#define CONFIG_SERIAL_MULTI
> +#define CONFIG_TEGRA2_ENABLE_UARTA
> +#define CONFIG_SYS_NS16550_COM1 ? ? ? ? ? ? ? ?NV_PA_APB_UARTA_BASE
> +
> +#define CONFIG_MACH_TYPE ? ? ? ? ? ? ? MACH_TYPE_PAZ00
> +#define CONFIG_SYS_BOARD_ODMDATA ? ? ? 0x800c0085 /* lp1, 512MB */
> +
> +#define CONFIG_BOARD_EARLY_INIT_F
> +
> +/* SD/MMC */
> +#define CONFIG_MMC
> +#define CONFIG_GENERIC_MMC
> +#define CONFIG_TEGRA2_MMC
> +#define CONFIG_CMD_MMC
> +
> +#define CONFIG_DOS_PARTITION
> +#define CONFIG_EFI_PARTITION
> +#define CONFIG_CMD_EXT2
> +#define CONFIG_CMD_FAT
> +
> +/* Environment not stored */
> +#define CONFIG_ENV_IS_NOWHERE
> +#endif /* __CONFIG_H */
> --
> 1.7.0.4
>
Regards,
Simon
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-09 19:55 ` Simon Glass
@ 2012-01-09 20:00 ` Stephen Warren
2012-01-09 20:04 ` Simon Glass
2012-01-09 20:04 ` Stephen Warren
1 sibling, 1 reply; 12+ messages in thread
From: Stephen Warren @ 2012-01-09 20:00 UTC (permalink / raw)
To: u-boot
On 01/09/2012 12:55 PM, Simon Glass wrote:
> On Fri, Jan 6, 2012 at 2:14 PM, Stephen Warren <swarren@nvidia.com> wrote:
>> The Toshiba AC100 (Compal code-name Paz00, aka Dynabook AZ) is a netbook
>> derived from the NVIDIA Tegra Harmony reference board. It ships with
>> Android, but is often repurposed to run Linux. This patch adds just enough
>> support to get a U-Boot serial console, and the ability access built-in
>> eMMC and the external SD slot.
...
>> diff --git a/board/compal/paz00/Makefile b/board/compal/paz00/Makefile
...
>> +COBJS := $(BOARD).o
>> +COBJS += ../../nvidia/common/board.o
>
> I think you can drop this as the top-level Makefile should bring in
> the library from that directory.
I did try that initially, and it doesn't work. I didn't investigate very
far at all, but I assume it's because the common library is for vendor
NVIDIA, but this board is for vendor compal, and so the common library
doesn't get pulled in? Does that make sense, or should I investigate
further?
--
nvpublic
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-09 20:00 ` Stephen Warren
@ 2012-01-09 20:04 ` Simon Glass
2012-01-09 20:10 ` Stephen Warren
0 siblings, 1 reply; 12+ messages in thread
From: Simon Glass @ 2012-01-09 20:04 UTC (permalink / raw)
To: u-boot
Hi Stephen,
On Mon, Jan 9, 2012 at 12:00 PM, Stephen Warren <swarren@nvidia.com> wrote:
> On 01/09/2012 12:55 PM, Simon Glass wrote:
>> On Fri, Jan 6, 2012 at 2:14 PM, Stephen Warren <swarren@nvidia.com> wrote:
>>> The Toshiba AC100 (Compal code-name Paz00, aka Dynabook AZ) is a netbook
>>> derived from the NVIDIA Tegra Harmony reference board. It ships with
>>> Android, but is often repurposed to run Linux. This patch adds just enough
>>> support to get a U-Boot serial console, and the ability access built-in
>>> eMMC and the external SD slot.
> ...
>>> diff --git a/board/compal/paz00/Makefile b/board/compal/paz00/Makefile
> ...
>>> +COBJS ?:= $(BOARD).o
>>> +COBJS ?+= ../../nvidia/common/board.o
>>
>> I think you can drop this as the top-level Makefile should bring in
>> the library from that directory.
>
> I did try that initially, and it doesn't work. I didn't investigate very
> far at all, but I assume it's because the common library is for vendor
> NVIDIA, but this board is for vendor compal, and so the common library
> doesn't get pulled in? Does that make sense, or should I investigate
> further?
Sorry, of course you are using a different vendor.
It seems a bit dodgy to include a board file from a different vendor.
Sad as it is, perhaps the right thing to do is to copy the code from
that file?
We should perhaps look at moving some of it into arch, as we have done
previously.
Regards,
Simon
>
> --
> nvpublic
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-09 19:55 ` Simon Glass
2012-01-09 20:00 ` Stephen Warren
@ 2012-01-09 20:04 ` Stephen Warren
2012-01-09 20:09 ` Simon Glass
1 sibling, 1 reply; 12+ messages in thread
From: Stephen Warren @ 2012-01-09 20:04 UTC (permalink / raw)
To: u-boot
On 01/09/2012 12:55 PM, Simon Glass wrote:
...
>> + debug("board_mmc_init: init eMMC\n");
>> + /* init dev 0, eMMC chip, with 4-bit bus */
>> + /* The board has an 8-bit bus, but 8-bit doesn't work yet */
>> + tegra2_mmc_init(0, 4, -1, -1);
>
> Yes - I will see if I can do a patch to enable 8-bit.
BTW, I briefly looked at this quite a while back when I first started
looking at U-Boot. I filed an internal bug to investigate this further
at some later time. The notes are below:
MMC devices can have a 1-, 4-, or 8-bit data bus. Support for 8-bit data
buses is currently not fully implemented in mainline(Denx) U-Boot. This
is mostly an issue with the MMC core, and not Tegra-specific. The
following potential issues exist:
1)
drivers/mmc/tegra2_mmc.c:tegra2_mmc_init() contains:
if (bus_width == 8)
mmc->host_caps = MMC_MODE_8BIT;
else
mmc->host_caps = MMC_MODE_4BIT;
I /think/ this should be rewritten as:
if (bus_width == 8)
mmc->host_caps = MMC_MODE_8BIT;
if (bus_width >= 4)
mmc->host_caps = MMC_MODE_4BIT;
... thus allowing both caps to be set at once.
2)
drivers/mmc/mmc.c:mmc_change_freq() contains the following for v4 cards:
mmc->card_caps |= MMC_MODE_4BIT;
Nothing ever performs:
mmc->card_caps |= MMC_MODE_8BIT;
... so 8-bit mode can never be active.
I note that ChromeOS's U-Boot replaces the above code with:
if(mmc->host_caps & MMC_MODE_8BIT)
mmc->card_caps |= MMC_MODE_8BIT;
else
mmc->card_caps |= MMC_MODE_4BIT;
which implies that the 8-bit and 4-bit mode flags are meant to be
mutually exclusive, which seems a little odd; our controller could do
either just fine...
3)
drivers/mmc/mmc.c:mmc_startup() contains:
if (mmc->card_caps & MMC_MODE_4BIT) {
// setup for 4-bit mode
} else if (mmc->card_caps & MMC_MODE_8BIT) {
// setup for 8-bit mode
}
which oddly checks for 4-bit mode first, so if both 4- and 8-bit mode
are allowed, 4-bit wins.
4)
If you look at the Linux kernel MMC driver, there's a lot more to
selecting between 1-, 4-, and 8-bit mode. Specifically:
a) You're supposed to try 8-bit mode, test it and see if it works. If
that fails, fall back to trying 4-bit mode, then fall back to 1-bit
mode. U-Boot currently just picks one, doesn't fully test it, and if it
fails, you're done.
b) You're supposed to test the card works correctly after selecting a
bus width using a special bus-width test command.
c) The Linux kernel at least also executes commands to switch the card
between various power modes that the card reports it needs for different
bus speeds and widths. I don't think U-Boot does this anywhere.
(a) and (b) are also supported by the following document from the MMC
association:
http://read.pudn.com/downloads153/doc/project/671834/MMC
SD/AN_MMCA050419.pdf
I hacked a fix for (1), (2), and (3) above and tested Seaboard's
internal eMMC. While data transfer appeared to still operated correctly,
I didn't observe any difference in transfer speed. I don't know if this
is due to (4) above, or some other issue. However, I did observe a
nearly 2x speedup going from 4- to 8-bit mode when running the Linux kernel.
So, quite a lot of further investigation/work needed here.
--
nvpublic
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-09 20:04 ` Stephen Warren
@ 2012-01-09 20:09 ` Simon Glass
0 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2012-01-09 20:09 UTC (permalink / raw)
To: u-boot
HI Stephen,
On Mon, Jan 9, 2012 at 12:04 PM, Stephen Warren <swarren@nvidia.com> wrote:
> On 01/09/2012 12:55 PM, Simon Glass wrote:
> ...
>>> + ? ? ? debug("board_mmc_init: init eMMC\n");
>>> + ? ? ? /* init dev 0, eMMC chip, with 4-bit bus */
>>> + ? ? ? /* The board has an 8-bit bus, but 8-bit doesn't work yet */
>>> + ? ? ? tegra2_mmc_init(0, 4, -1, -1);
>>
>> Yes - I will see if I can do a patch to enable 8-bit.
>
> BTW, I briefly looked at this quite a while back when I first started
> looking at U-Boot. I filed an internal bug to investigate this further
> at some later time. The notes are below:
I committed a few patches to our tree a week or two ago - got a
reduction from about 120ms to 70ms in kernel load time. Will see what
I can do.
Thank you for the notes.
>
> MMC devices can have a 1-, 4-, or 8-bit data bus. Support for 8-bit data
> buses is currently not fully implemented in mainline(Denx) U-Boot. This
> is mostly an issue with the MMC core, and not Tegra-specific. The
> following potential issues exist:
>
> 1)
>
> drivers/mmc/tegra2_mmc.c:tegra2_mmc_init() contains:
>
> if (bus_width == 8)
> ? ?mmc->host_caps = MMC_MODE_8BIT;
> else
> ? ?mmc->host_caps = MMC_MODE_4BIT;
>
> I /think/ this should be rewritten as:
>
> if (bus_width == 8)
> ? ?mmc->host_caps = MMC_MODE_8BIT;
> if (bus_width >= 4)
> ? ?mmc->host_caps = MMC_MODE_4BIT;
>
> ... thus allowing both caps to be set at once.
>
> 2)
>
> drivers/mmc/mmc.c:mmc_change_freq() contains the following for v4 cards:
>
> mmc->card_caps |= MMC_MODE_4BIT;
>
> Nothing ever performs:
>
> mmc->card_caps |= MMC_MODE_8BIT;
>
> ... so 8-bit mode can never be active.
>
> I note that ChromeOS's U-Boot replaces the above code with:
>
> if(mmc->host_caps & MMC_MODE_8BIT)
> ? ?mmc->card_caps |= MMC_MODE_8BIT;
> else
> ? ?mmc->card_caps |= MMC_MODE_4BIT;
>
> which implies that the 8-bit and 4-bit mode flags are meant to be
> mutually exclusive, which seems a little odd; our controller could do
> either just fine...
>
> 3)
>
> drivers/mmc/mmc.c:mmc_startup() contains:
>
> if (mmc->card_caps & MMC_MODE_4BIT) {
> ? ?// setup for 4-bit mode
> } else if (mmc->card_caps & MMC_MODE_8BIT) {
> ? ?// setup for 8-bit mode
> }
>
> which oddly checks for 4-bit mode first, so if both 4- and 8-bit mode
> are allowed, 4-bit wins.
>
> 4)
>
> If you look at the Linux kernel MMC driver, there's a lot more to
> selecting between 1-, 4-, and 8-bit mode. Specifically:
>
> a) You're supposed to try 8-bit mode, test it and see if it works. If
> that fails, fall back to trying 4-bit mode, then fall back to 1-bit
> mode. U-Boot currently just picks one, doesn't fully test it, and if it
> fails, you're done.
>
> b) You're supposed to test the card works correctly after selecting a
> bus width using a special bus-width test command.
>
> c) The Linux kernel at least also executes commands to switch the card
> between various power modes that the card reports it needs for different
> bus speeds and widths. I don't think U-Boot does this anywhere.
>
> (a) and (b) are also supported by the following document from the MMC
> association:
>
> http://read.pudn.com/downloads153/doc/project/671834/MMC
> SD/AN_MMCA050419.pdf
>
> I hacked a fix for (1), (2), and (3) above and tested Seaboard's
> internal eMMC. While data transfer appeared to still operated correctly,
> I didn't observe any difference in transfer speed. I don't know if this
> is due to (4) above, or some other issue. However, I did observe a
> nearly 2x speedup going from 4- to 8-bit mode when running the Linux kernel.
>
> So, quite a lot of further investigation/work needed here.
>
> --
> nvpublic
Regards,
Simon
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-09 20:04 ` Simon Glass
@ 2012-01-09 20:10 ` Stephen Warren
2012-01-09 20:16 ` Simon Glass
0 siblings, 1 reply; 12+ messages in thread
From: Stephen Warren @ 2012-01-09 20:10 UTC (permalink / raw)
To: u-boot
On 01/09/2012 01:04 PM, Simon Glass wrote:
> Hi Stephen,
>
> On Mon, Jan 9, 2012 at 12:00 PM, Stephen Warren <swarren@nvidia.com> wrote:
>> On 01/09/2012 12:55 PM, Simon Glass wrote:
>>> On Fri, Jan 6, 2012 at 2:14 PM, Stephen Warren <swarren@nvidia.com> wrote:
>>>> The Toshiba AC100 (Compal code-name Paz00, aka Dynabook AZ) is a netbook
>>>> derived from the NVIDIA Tegra Harmony reference board. It ships with
>>>> Android, but is often repurposed to run Linux. This patch adds just enough
>>>> support to get a U-Boot serial console, and the ability access built-in
>>>> eMMC and the external SD slot.
>> ...
>>>> diff --git a/board/compal/paz00/Makefile b/board/compal/paz00/Makefile
>> ...
>>>> +COBJS := $(BOARD).o
>>>> +COBJS += ../../nvidia/common/board.o
>>>
>>> I think you can drop this as the top-level Makefile should bring in
>>> the library from that directory.
>>
>> I did try that initially, and it doesn't work. I didn't investigate very
>> far at all, but I assume it's because the common library is for vendor
>> NVIDIA, but this board is for vendor compal, and so the common library
>> doesn't get pulled in? Does that make sense, or should I investigate
>> further?
>
> Sorry, of course you are using a different vendor.
>
> It seems a bit dodgy to include a board file from a different vendor.
> Sad as it is, perhaps the right thing to do is to copy the code from
> that file?
I think that's what Thierry did with the Avionics Design boards. But to
me it seemed the lack of cleanliness of pulling in an existing file from
outside the vendor tree was less than that of cut/pasting the code.
With my patch, any issues should still show up with "MAKEALL -s tegra2"
at build-/change-time, whereas if I cut/paste the code, the Compal
vendor might not pick up any bug fixes etc. to the shared code until
after someone had actually tested on the PAZ00 board, which will
probably happen a lot less frequently.
Given that, do you think this change is reasonable?
> We should perhaps look at moving some of it into arch, as we have done
> previously.
Yes, that's probably the best long-term solution. I don't actually
recall exactly which parts of that common code the PAZ00 code relies on
right now; it might be an easy change.
--
nvpublic
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100)
2012-01-09 20:10 ` Stephen Warren
@ 2012-01-09 20:16 ` Simon Glass
0 siblings, 0 replies; 12+ messages in thread
From: Simon Glass @ 2012-01-09 20:16 UTC (permalink / raw)
To: u-boot
Hi Stephen,
On Mon, Jan 9, 2012 at 12:10 PM, Stephen Warren <swarren@nvidia.com> wrote:
> On 01/09/2012 01:04 PM, Simon Glass wrote:
>> Hi Stephen,
>>
>> On Mon, Jan 9, 2012 at 12:00 PM, Stephen Warren <swarren@nvidia.com> wrote:
>>> On 01/09/2012 12:55 PM, Simon Glass wrote:
>>>> On Fri, Jan 6, 2012 at 2:14 PM, Stephen Warren <swarren@nvidia.com> wrote:
>>>>> The Toshiba AC100 (Compal code-name Paz00, aka Dynabook AZ) is a netbook
>>>>> derived from the NVIDIA Tegra Harmony reference board. It ships with
>>>>> Android, but is often repurposed to run Linux. This patch adds just enough
>>>>> support to get a U-Boot serial console, and the ability access built-in
>>>>> eMMC and the external SD slot.
>>> ...
>>>>> diff --git a/board/compal/paz00/Makefile b/board/compal/paz00/Makefile
>>> ...
>>>>> +COBJS ?:= $(BOARD).o
>>>>> +COBJS ?+= ../../nvidia/common/board.o
>>>>
>>>> I think you can drop this as the top-level Makefile should bring in
>>>> the library from that directory.
>>>
>>> I did try that initially, and it doesn't work. I didn't investigate very
>>> far at all, but I assume it's because the common library is for vendor
>>> NVIDIA, but this board is for vendor compal, and so the common library
>>> doesn't get pulled in? Does that make sense, or should I investigate
>>> further?
>>
>> Sorry, of course you are using a different vendor.
>>
>> It seems a bit dodgy to include a board file from a different vendor.
>> Sad as it is, perhaps the right thing to do is to copy the code from
>> that file?
>
> I think that's what Thierry did with the Avionics Design boards. But to
> me it seemed the lack of cleanliness of pulling in an existing file from
> outside the vendor tree was less than that of cut/pasting the code.
>
> With my patch, any issues should still show up with "MAKEALL -s tegra2"
> at build-/change-time, whereas if I cut/paste the code, the Compal
> vendor might not pick up any bug fixes etc. to the shared code until
> after someone had actually tested on the PAZ00 board, which will
> probably happen a lot less frequently.
>
> Given that, do you think this change is reasonable?
>
>> We should perhaps look at moving some of it into arch, as we have done
>> previously.
>
> Yes, that's probably the best long-term solution. I don't actually
> recall exactly which parts of that common code the PAZ00 code relies on
> right now; it might be an easy change.
It's not that hard (each of the two functions has <10 LOC), but I
agree with your reasoning, and this is fine with me until we address
it.
Acked-by: Simon Glass <sjg@chromium.org>
>
> --
> nvpublic
Regards,
Simon
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-01-09 20:16 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-06 22:14 [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA Stephen Warren
2012-01-06 22:14 ` [U-Boot] [PATCH 2/3] tegra2: Fix default RAM size selection in odmdata Stephen Warren
2012-01-09 19:39 ` Simon Glass
2012-01-06 22:14 ` [U-Boot] [PATCH 3/3] tegra2: Add support for Compal Paz00 (Toshiba AC100) Stephen Warren
2012-01-09 19:55 ` Simon Glass
2012-01-09 20:00 ` Stephen Warren
2012-01-09 20:04 ` Simon Glass
2012-01-09 20:10 ` Stephen Warren
2012-01-09 20:16 ` Simon Glass
2012-01-09 20:04 ` Stephen Warren
2012-01-09 20:09 ` Simon Glass
2012-01-09 19:35 ` [U-Boot] [PATCH 1/3] tegra2: Fix conflicting pinmux for UARTA Simon Glass
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox