[beagleboard] [RFC] BeagleBoard: Test for user button to load ramdisk

247 views
Skip to first unread message

Jason Kridner

unread,
May 16, 2010, 8:47:39 PM5/16/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
If USER button is pressed, ramdisk.gz should be loaded and boot.scr
should be ignored.

Signed-off-by: Jason Kridner <jkri...@beagleboard.org>
---
board/ti/beagle/beagle.c | 26 ++++++++++++++++++++++++++
include/configs/omap3_beagle.h | 23 +++++++++++++++++++++--
2 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 556e995..468bcc1 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -265,6 +265,32 @@ int misc_init_r(void)
dieid_num_r();
omap3_dss_enable();

+ switch (beagle_revision) {
+ case REVISION_AXBX:
+ case REVISION_CX:
+ case REVISION_C4:
+ omap_request_gpio(7);
+ omap_set_gpio_direction(7, 1);
+ if(omap_get_gpio_datain(7))
+ {
+ printf("Attemting to boot using ramdisk\n");
+ setenv("bootcmd", "if run loadramdisk; run ramboot; fi;");
+ }
+ omap_free_gpio(7);
+ break;
+ case REVISION_XM:
+ omap_request_gpio(4);
+ omap_set_gpio_direction(4, 1);
+ if(omap_get_gpio_datain(4))
+ {
+ printf("Attemting to boot using ramdisk\n");
+ setenv("bootcmd", "if run loadramdisk; run ramboot; fi;");
+ }
+ omap_free_gpio(4);
+ break;
+ default:
+ }
+
return 0;
}

diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index affabf1..8c019a7 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -181,9 +181,11 @@
#define CONFIG_BOOTDELAY 3

#define CONFIG_EXTRA_ENV_SETTINGS \
- "loadaddr=0x82000000\0" \
+ "loadaddr=0x80200000\0" \
+ "rdaddr=0x81600000\0" \
"usbtty=cdc_acm\0" \
"console=ttyS2,115200n8\0" \
+ "optargs=\0" \
"mpurate=500\0" \
"buddy=none\0" \
"vram=12M\0" \
@@ -209,6 +211,16 @@
"omapdss.def_disp=${defaultdisplay} " \
"root=${nandroot} " \
"rootfstype=${nandrootfstype}\0" \
+ "ramargs=setenv bootargs console=${console} " \
+ "mpurate=${mpurate} " \
+ "buddy=${buddy} "\
+ "vram=${vram} " \
+ "omapfb.mode=dvi:${dvimode} " \
+ "omapdss.def_disp=${defaultdisplay} " \
+ "root=/dev/ram0 rw ramdisk_size=65536 " \
+ "initrd=${rdaddr},64M " \
+ "rootfstype=\0" \
+ "loadramdisk=fatload mmc 0 ${rdaddr} ramdisk.gz\0" \
"loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
"bootscript=echo Running bootscript from mmc ...; " \
"source ${loadaddr}\0" \
@@ -220,6 +232,9 @@
"run nandargs; " \
"nand read ${loadaddr} 280000 400000; " \
"bootm ${loadaddr}\0" \
+ "ramboot=echo Booting from ramdisk ...; " \
+ "run ramargs; " \
+ "bootm ${loadaddr}\0" \

#define CONFIG_BOOTCOMMAND \
"if mmc init; then " \
@@ -227,7 +242,11 @@
"run bootscript; " \
"else " \
"if run loaduimage; then " \
- "run mmcboot; " \
+ "if run loadramdisk; then " \
+ "run ramboot; " \
+ "else " \
+ "run mmcboot; " \
+ "fi; " \
"else run nandboot; " \
"fi; " \
"fi; " \
--
1.5.6.4

--
You received this message because you are subscribed to the Google Groups "Beagle Board" group.
To post to this group, send email to beagl...@googlegroups.com.
To unsubscribe from this group, send email to beagleboard...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/beagleboard?hl=en.

Jason Kridner

unread,
May 16, 2010, 10:56:20 PM5/16/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
The BeagleBoard-xM is on GPIO 4, instead of GPIO 7. The BeagleBoard-xM doesn't have
NAND flash, so the boot decisions are different.

Signed-off-by: Jason Kridner <jkri...@beagleboard.org>
---
arch/arm/mach-omap2/board-omap3beagle.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index dd830b1..bd91e33 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -711,6 +711,13 @@ static void __init omap3_beagle_init(void)
{
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
omap3_beagle_i2c_init();
+
+ /* BeagleBoard-xM has the USER button on GPIO 4 instead of 7 */
+ if (cpu_is_omap3630())
+ {
+ gpio_buttons.gpio = 4;
+ }
+
platform_add_devices(omap3_beagle_devices,
ARRAY_SIZE(omap3_beagle_devices));
omap_serial_init();

Jason Kridner

unread,
May 16, 2010, 11:03:18 PM5/16/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
Got a bit anxious with my patch-sending scripts... Still, the main
point is to find out if this is the right way to make these changes.

On Sun, May 16, 2010 at 10:56 PM, Jason Kridner
<jkri...@beagleboard.org> wrote:
> The BeagleBoard-xM is on GPIO 4, instead of GPIO 7.  The BeagleBoard-xM doesn't have
> NAND flash, so the boot decisions are different.
>
> Signed-off-by: Jason Kridner <jkri...@beagleboard.org>
> ---
>  arch/arm/mach-omap2/board-omap3beagle.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
> index dd830b1..bd91e33 100644
> --- a/arch/arm/mach-omap2/board-omap3beagle.c
> +++ b/arch/arm/mach-omap2/board-omap3beagle.c
> @@ -711,6 +711,13 @@ static void __init omap3_beagle_init(void)
>  {
>        omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
>        omap3_beagle_i2c_init();
> +
> +       /* BeagleBoard-xM has the USER button on GPIO 4 instead of 7 */
> +        if (cpu_is_omap3630())
> +       {
> +               gpio_buttons.gpio = 4;

I meant:

gpio_buttons[0].gpio = 4;

Still compiling.

Hunyue Yau

unread,
May 17, 2010, 2:58:55 AM5/17/10
to beagl...@googlegroups.com, Jason Kridner
Question -
What other functions does the user button do on the xM?

Depending on what the functions the xM uses the user button for, the added
functionality create some tricky timing.

For a stock A-C Beagle board, the user button would cause the MLO to be picked
up (and presumeablly U-boot) from the SD card. Looking at the button for at
the same button to ignore the boot.scr could lead to some confused users
depending on how quickly they release the button. A console could help with
the timing but running it w/o a console could be trickly.
Hunyue Yau
http://www.hy-research.com/

Michael Evans

unread,
May 17, 2010, 4:37:33 AM5/17/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
I agree with ybeagle... The logic in the code shows it would apply to all board versions - just the GPIO used being different for xM.  I appreciate the xM doesn't have any NAND, but then does it really need an alternative boot option...?  In the short term that code apply only to xM boards.

Get a free e-mail account with Hotmail. Sign-up now.

Michael Evans

unread,
May 17, 2010, 4:44:46 AM5/17/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
P.S.  How about getting U-Boot to load "user.scr" instead of "boot.scr" if USER is pressed...??
 

From: horse...@hotmail.com
To: beagl...@googlegroups.com
CC: jkri...@beagleboard.org
Subject: RE: [beagleboard] [RFC] BeagleBoard: Test for user button to load ramdisk
Date: Mon, 17 May 2010 09:37:33 +0100

jkri...@beagleboard.org

unread,
May 17, 2010, 6:45:37 AM5/17/10
to Michael Evans, Beagle Board
What about using a different script name then, like reset.scr, when the button is held?

This is exactly what these RFC's are for. Thanks!

Sent via BlackBerry from T-Mobile


From: Michael Evans <horse...@hotmail.com>
Date: Mon, 17 May 2010 09:37:33 +0100
Subject: RE: [beagleboard] [RFC] BeagleBoard: Test for user button to load ramdisk

Jason Kridner

unread,
May 17, 2010, 7:04:03 AM5/17/10
to Michael Evans, beagl...@googlegroups.com
On Mon, May 17, 2010 at 4:44 AM, Michael Evans <horse...@hotmail.com> wrote:
> P.S.  How about getting U-Boot to load "user.scr" instead of "boot.scr" if
> USER is pressed...??

That works for me. I missed this e-mail before sending my last one.

Jason Kridner

unread,
May 17, 2010, 8:05:01 AM5/17/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
If USER button is pressed, user.scr should be loaded, instead of
boot.scr.

Signed-off-by: Jason Kridner <jkri...@beagleboard.org>
---
board/ti/beagle/beagle.c | 27 +++++++++++++++++++++++++++
include/configs/omap3_beagle.h | 3 ++-
2 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 556e995..3e80955 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -265,6 +265,33 @@ int misc_init_r(void)
dieid_num_r();
omap3_dss_enable();

+ switch (beagle_revision) {
+ case REVISION_AXBX:
+ case REVISION_CX:
+ case REVISION_C4:
+ omap_request_gpio(7);
+ omap_set_gpio_direction(7, 1);
+ if(omap_get_gpio_datain(7))
+ {
+ printf("Using alternate boot script (user.scr)\n");
+ setenv("bootscr", "user.scr");
+ }
+ omap_free_gpio(7);
+ break;
+ case REVISION_XM:
+ omap_request_gpio(4);
+ omap_set_gpio_direction(4, 1);
+ if(omap_get_gpio_datain(4))
+ {
+ printf("Using alternate boot script (user.scr)\n");
+ setenv("bootscr", "user.scr");
+ }
+ omap_free_gpio(4);
+ break;
+ default:
+ break;
+ }
+
return 0;
}

diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index affabf1..9b4a56f 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -189,6 +189,7 @@
"vram=12M\0" \
"dvimode=640x480MR-16@60\0" \
"defaultdisplay=dvi\0" \
+ "bootscr=boot.scr\0" \
"mmcroot=/dev/mmcblk0p2 rw\0" \
"mmcrootfstype=ext3 rootwait\0" \
"nandroot=/dev/mtdblock4 rw\0" \
@@ -209,7 +210,7 @@
"omapdss.def_disp=${defaultdisplay} " \
"root=${nandroot} " \
"rootfstype=${nandrootfstype}\0" \
- "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
+ "loadbootscript=fatload mmc 0 ${loadaddr} ${bootscr}\0" \
"bootscript=echo Running bootscript from mmc ...; " \
"source ${loadaddr}\0" \
"loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
--
1.5.6.4

Jason Kridner

unread,
May 17, 2010, 8:05:02 AM5/17/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
To simplify booting into various boot configurations, there is now a
test for an existing ramdisk.gz image if loading the boot script fails.
Adding additional boot arguments can also be done using optargs.

Signed-off-by: Jason Kridner <jkri...@beagleboard.org>
---
include/configs/omap3_beagle.h | 26 ++++++++++++++++++++++++--
1 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 9b4a56f..a2080ce 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -181,9 +181,11 @@
#define CONFIG_BOOTDELAY 3

#define CONFIG_EXTRA_ENV_SETTINGS \
- "loadaddr=0x82000000\0" \
+ "loadaddr=0x80200000\0" \
+ "rdaddr=0x81600000\0" \
"usbtty=cdc_acm\0" \
"console=ttyS2,115200n8\0" \
+ "optargs=\0" \
"mpurate=500\0" \
"buddy=none\0" \
"vram=12M\0" \
@@ -195,6 +197,7 @@
"nandroot=/dev/mtdblock4 rw\0" \
"nandrootfstype=jffs2\0" \
"mmcargs=setenv bootargs console=${console} " \
+ "${optargs} " \
"mpurate=${mpurate} " \
"buddy=${buddy} "\
"vram=${vram} " \
@@ -203,6 +206,7 @@
"root=${mmcroot} " \
"rootfstype=${mmcrootfstype}\0" \
"nandargs=setenv bootargs console=${console} " \
+ "${optargs} " \
"mpurate=${mpurate} " \
"buddy=${buddy} "\
"vram=${vram} " \
@@ -210,6 +214,17 @@
"omapdss.def_disp=${defaultdisplay} " \
"root=${nandroot} " \
"rootfstype=${nandrootfstype}\0" \
+ "ramargs=setenv bootargs console=${console} " \
+ "${optargs} " \
+ "mpurate=${mpurate} " \
+ "buddy=${buddy} "\
+ "vram=${vram} " \
+ "omapfb.mode=dvi:${dvimode} " \
+ "omapdss.def_disp=${defaultdisplay} " \
+ "root=/dev/ram0 rw ramdisk_size=65536 " \
+ "initrd=${rdaddr},64M " \
+ "rootfstype=\0" \
+ "loadramdisk=fatload mmc 0 ${rdaddr} ramdisk.gz\0" \
"loadbootscript=fatload mmc 0 ${loadaddr} ${bootscr}\0" \
"bootscript=echo Running bootscript from mmc ...; " \
"source ${loadaddr}\0" \
@@ -221,6 +236,9 @@
"run nandargs; " \
"nand read ${loadaddr} 280000 400000; " \
"bootm ${loadaddr}\0" \
+ "ramboot=echo Booting from ramdisk ...; " \
+ "run ramargs; " \
+ "bootm ${loadaddr}\0" \

#define CONFIG_BOOTCOMMAND \
"if mmc init; then " \
@@ -228,7 +246,11 @@
"run bootscript; " \
"else " \
"if run loaduimage; then " \
- "run mmcboot; " \
+ "if run loadramdisk; then " \
+ "run ramboot; " \
+ "else " \
+ "run mmcboot; " \
+ "fi; " \
"else run nandboot; " \
"fi; " \
"fi; " \

Koen Kooi

unread,
May 17, 2010, 8:15:04 AM5/17/10
to beagl...@googlegroups.com, jkri...@beagleboard.org

Op 17 mei 2010, om 14:05 heeft Jason Kridner het volgende geschreven:

> If USER button is pressed, user.scr should be loaded, instead of
> boot.scr.

How about printing a message like "press USER button now to load user.scr" and wait 1 second or so for that? That would make the progress a bit more obvious.

regards,

Koen

Michael Evans

unread,
May 17, 2010, 12:30:26 PM5/17/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
I don't really use the NAND on my Beagleboards as I get confused easily :)  However, if I did I would be concerned about it running boot.scr or user.scr depending on how quickly the user lets go of the USER button (to the point that I'd end up having both files).
 
So, while this would actually work me (as both my boards are headless and would benefit from an alternate boot) for most people I suspect it would potentially cause confusion.  Ideally the different models of the BeagleBoard would all work the same way.
 
The simplest option for now would be to only apply this code if the board is an xM...
 
What do other people think...?
 
> Subject: Re: [beagleboard] [RFC] BeagleBoard: Change boot script on USER button
> From: ko...@beagleboard.org
> Date: Mon, 17 May 2010 14:15:04 +0200
> CC: jkri...@beagleboard.org
> To: beagl...@googlegroups.com

Get a free e-mail account with Hotmail. Sign-up now.

--

Gerald Coley

unread,
May 17, 2010, 12:45:54 PM5/17/10
to beagl...@googlegroups.com
This solution does not work on th -xM board. It will force the board not boot at all when the ROM code loads.
 
Gerald

Michael Evans

unread,
May 17, 2010, 3:43:47 PM5/17/10
to beagl...@googlegroups.com
Gerald, could you elaborate as to why the xM wouldn't boot at all if the USER button is held down.  I appreciate that the GPIO used is different - so how does that affect the BootROM...?
 

Date: Mon, 17 May 2010 11:45:54 -0500

Subject: Re: [beagleboard] [RFC] BeagleBoard: Change boot script on USER button

Jason Kridner

unread,
May 17, 2010, 3:56:46 PM5/17/10
to beagl...@googlegroups.com
On Mon, May 17, 2010 at 3:43 PM, Michael Evans <horse...@hotmail.com> wrote:
> Gerald, could you elaborate as to why the xM wouldn't boot at all if the
> USER button is held down.  I appreciate that the GPIO used is different - so
> how does that affect the BootROM...?

Because it is on a different SYS_BOOT pin, it effects the boot mode
differently. It is on a different SYS_BOOT pin because now some of
the DSS lines are multiplexed with the SYS_BOOT pins--and GPIO4 is not
(whereas GPIO7 is).

Jason Kridner

unread,
May 19, 2010, 7:59:59 AM5/19/10
to beagl...@googlegroups.com, jkri...@beagleboard.org
Added LED driver using status_led. USR0 is set to monitor the boot
status. USR1 is set to be the GREEN LED.

To simplify booting into various boot configurations, there is now a
test for an existing ramdisk.gz image if loading the boot script fails.
Adding additional boot arguments can also be done using optargs.

Signed-off-by: Jason Kridner <jkri...@beagleboard.org>
---
board/ti/beagle/Makefile | 4 +-
board/ti/beagle/beagle.c | 8 +++
board/ti/beagle/led.c | 99 ++++++++++++++++++++++++++++++++++++++++
include/configs/omap3_beagle.h | 41 +++++++++++++++-
4 files changed, 148 insertions(+), 4 deletions(-)
create mode 100644 board/ti/beagle/led.c

diff --git a/board/ti/beagle/Makefile b/board/ti/beagle/Makefile
index f797112..59eef5c 100644
--- a/board/ti/beagle/Makefile
+++ b/board/ti/beagle/Makefile
@@ -25,8 +25,10 @@ include $(TOPDIR)/config.mk

LIB = $(obj)lib$(BOARD).a

-COBJS := beagle.o
+COBJS-y := $(BOARD).o
+COBJS-$(CONFIG_STATUS_LED) += led.o

++COBJS := $(sort $(COBJS-y))
SRCS := $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))

diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 556e995..d21b9c8 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -30,6 +30,9 @@
* MA 02111-1307 USA
*/
#include <common.h>
+#ifdef CONFIG_STATUS_LED
+#include <status_led.h>
+#endif
#include <twl4030.h>
#include <asm/io.h>
#include <asm/arch/mux.h>
@@ -83,6 +86,10 @@ int board_init(void)
/* boot param addr */
gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);

+#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
+ status_led_set (STATUS_LED_BOOT, STATUS_LED_ON);
+#endif
+
return 0;
}

@@ -278,3 +285,4 @@ void set_muxconf_regs(void)
{
MUX_BEAGLE();
}
+
diff --git a/board/ti/beagle/led.c b/board/ti/beagle/led.c
new file mode 100644
index 0000000..7b73f23
--- /dev/null
+++ b/board/ti/beagle/led.c
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2010 Texas Instruments, Inc.
+ * Jason Kridner <jkri...@beagleboard.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#include <common.h>
+#include <status_led.h>
+#include <asm/arch/cpu.h>
+#include <asm/io.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/arch/gpio.h>
+
+static unsigned int saved_state[2] = {STATUS_LED_OFF, STATUS_LED_OFF};
+
+/* GPIO pins for the LEDs */
+#define BEAGLE_LED_USR0 149
+#define BEAGLE_LED_USR1 150
+
+#ifdef STATUS_LED_GREEN
+void green_LED_off (void)
+{
+ if (!omap_request_gpio(BEAGLE_LED_GREEN)) {
+ omap_set_gpio_direction(BEAGLE_LED_GREEN, 0);
+ omap_set_gpio_dataout(BEAGLE_LED_GREEN, 0);
+ }
+ saved_state[STATUS_LED_GREEN] = STATUS_LED_OFF;
+}
+
+void green_LED_on (void)
+{
+ if (!omap_request_gpio(BEAGLE_LED_GREEN)) {
+ omap_set_gpio_direction(BEAGLE_LED_GREEN, 0);
+ omap_set_gpio_dataout(BEAGLE_LED_GREEN, 1);
+ }
+ saved_state[STATUS_LED_GREEN] = STATUS_LED_ON;
+}
+#endif
+
+void __led_init (led_id_t mask, int state)
+{
+ __led_set (mask, state);
+}
+
+void __led_toggle (led_id_t mask)
+{
+#ifdef STATUS_LED_BIT
+ if (STATUS_LED_BIT) & mask) {
+ if (STATUS_LED_ON == saved_state[0])
+ __led_set(STATUS_LED_BIT, 0);
+ else
+ __led_set(STATUS_LED_BIT, 1);
+ }
+#endif
+#ifdef STATUS_LED_BIT1
+ if (STATUS_LED_BIT1) & mask) {
+ if (STATUS_LED_ON == saved_state[1])
+ __led_set(STATUS_LED_BIT1, 0);
+ else
+ __led_set(STATUS_LED_BIT1, 1);
+ }
+#endif
+}
+
+void __led_set (led_id_t mask, int state)
+{
+#ifdef STATUS_LED_BIT
+ if (STATUS_LED_BIT) & mask) {
+ if (!omap_request_gpio(BEAGLE_LED_USR0)) {
+ omap_set_gpio_direction(BEAGLE_LED_USR0, 0);
+ omap_set_gpio_dataout(BEAGLE_LED_USR0, state);
+ }
+ saved_state[0] = state;
+ }
+#endif
+#ifdef STATUS_LED_BIT1
+ if (STATUS_LED_BIT1) & mask) {
+ if (!omap_request_gpio(BEAGLE_LED_USR1)) {
+ omap_set_gpio_direction(BEAGLE_LED_USR1, 0);
+ omap_set_gpio_dataout(BEAGLE_LED_USR1, state);
+ }
+ saved_state[1] = state;
+ }
+#endif
+}
+
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index affabf1..c2a824b 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -97,6 +97,18 @@
#define CONFIG_OMAP3_MMC 1
#define CONFIG_DOS_PARTITION 1

+/* Status LED */
+#define CONFIG_STATUS_LED 1
+#define CONFIG_BOARD_SPECIFIC_LED 1
+#define STATUS_LED_BIT 0x01
+#define STATUS_LED_STATE STATUS_LED_ON
+#define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 2)
+#define STATUS_LED_BIT1 0x02
+#define STATUS_LED_STATE1 STATUS_LED_ON
+#define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2)
+#define STATUS_LED_BOOT STATUS_LED_BIT
+#define STATUS_LED_GREEN STATUS_LED_BIT1
+
/* DDR - I use Micron DDR */
#define CONFIG_OMAP3_MICRON_DDR 1

@@ -181,9 +193,12 @@
#define CONFIG_BOOTDELAY 3

#define CONFIG_EXTRA_ENV_SETTINGS \
- "loadaddr=0x82000000\0" \
+ "loadaddr=0x80200000\0" \
+ "rdaddr=0x81600000\0" \
"usbtty=cdc_acm\0" \
"console=ttyS2,115200n8\0" \
+ "optargs=\0" \
+ "bootscr=boot.scr\0" \
"mpurate=500\0" \
"buddy=none\0" \
"vram=12M\0" \
@@ -194,6 +209,7 @@
"nandroot=/dev/mtdblock4 rw\0" \
"nandrootfstype=jffs2\0" \
"mmcargs=setenv bootargs console=${console} " \
+ "${optargs} " \
"mpurate=${mpurate} " \
"buddy=${buddy} "\
"vram=${vram} " \
@@ -202,6 +218,7 @@
"root=${mmcroot} " \
"rootfstype=${mmcrootfstype}\0" \
"nandargs=setenv bootargs console=${console} " \
+ "${optargs} " \
"mpurate=${mpurate} " \
"buddy=${buddy} "\
"vram=${vram} " \
@@ -209,7 +226,18 @@
"omapdss.def_disp=${defaultdisplay} " \
"root=${nandroot} " \
"rootfstype=${nandrootfstype}\0" \
- "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
+ "ramargs=setenv bootargs console=${console} " \
+ "${optargs} " \
+ "mpurate=${mpurate} " \
+ "buddy=${buddy} "\
+ "vram=${vram} " \
+ "omapfb.mode=dvi:${dvimode} " \
+ "omapdss.def_disp=${defaultdisplay} " \
+ "root=/dev/ram0 rw ramdisk_size=65536 " \
+ "initrd=${rdaddr},64M " \
+ "rootfstype=\0" \
+ "loadramdisk=fatload mmc 0 ${rdaddr} ramdisk.gz\0" \
+ "loadbootscript=fatload mmc 0 ${loadaddr} ${bootscr}\0" \
"bootscript=echo Running bootscript from mmc ...; " \
"source ${loadaddr}\0" \
"loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
@@ -220,6 +248,9 @@
"run nandargs; " \
"nand read ${loadaddr} 280000 400000; " \
"bootm ${loadaddr}\0" \
+ "ramboot=echo Booting from ramdisk ...; " \
+ "run ramargs; " \
+ "bootm ${loadaddr}\0" \

#define CONFIG_BOOTCOMMAND \
"if mmc init; then " \
@@ -227,7 +258,11 @@
"run bootscript; " \
"else " \
"if run loaduimage; then " \
- "run mmcboot; " \
+ "if run loadramdisk; then " \
+ "run ramboot; " \
+ "else " \
+ "run mmcboot; " \
+ "fi; " \
"else run nandboot; " \
"fi; " \
"fi; " \
Reply all
Reply to author
Forward
0 new messages