Skip to contentSkip to conversation

mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

PATCH New Fabio Estevam 5 participants 12 messages Jul 15, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

From: Fabio Estevam <[email protected]>

mx6qsabrelite and nitrogen6q boards are hardware compatible, so let's avoid the code duplication and only use the nitrogen6x source code to make board code maintainance easier.

Tested booting a mainline device tree kernel on a mx6qsabrelite board.

---
 .../nitrogen6x/README.mx6qsabrelite}               |   0
 .../nitrogen6x/{README => README.nitrogen6x}       |   0
 board/freescale/mx6qsabrelite/Makefile             |  41 -
 board/freescale/mx6qsabrelite/mx6qsabrelite.c      | 848 ---------------------
 boards.cfg                                         |   2 +-
 include/configs/mx6qsabrelite.h                    | 297 --------
 include/configs/nitrogen6x.h                       |  80 +-
 7 files changed, 80 insertions(+), 1188 deletions(-)
 rename board/{freescale/mx6qsabrelite/README => boundary/nitrogen6x/README.mx6qsabrelite} (100%)
 rename board/boundary/nitrogen6x/{README => README.nitrogen6x} (100%)
 delete mode 100644 board/freescale/mx6qsabrelite/Makefile
 delete mode 100644 board/freescale/mx6qsabrelite/mx6qsabrelite.c
 delete mode 100644 include/configs/mx6qsabrelite.h
board/boundary/nitrogen6x/README.mx6qsabrelite renamed from board/freescale/mx6qsabrelite/README +0 -0
similarity index 100%
rename from board/freescale/mx6qsabrelite/README
rename to board/boundary/nitrogen6x/README.mx6qsabrelite
board/boundary/nitrogen6x/README.nitrogen6x renamed from board/boundary/nitrogen6x/README +0 -0
similarity index 100%
rename from board/boundary/nitrogen6x/README
rename to board/boundary/nitrogen6x/README.nitrogen6x
board/freescale/mx6qsabrelite/Makefile deleted +0 -0
deleted file mode 100644
index cf344e4..0000000
board/freescale/mx6qsabrelite/mx6qsabrelite.c deleted +0 -0
deleted file mode 100644
index 862bc30..0000000
boards.cfg +1 -1
index db56488..86e2fd6 100644
@@ -259,7 +259,7 @@ vision2                      arm         armv7       vision2             ttcontr
 cgtqmx6qeval				 arm		 armv7		 cgtqmx6eval		 congatec		mx6		cgtqmx6eval:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg,MX6Q
 mx6qarm2                     arm         armv7       mx6qarm2            freescale      mx6		mx6qarm2:IMX_CONFIG=board/freescale/mx6qarm2/imximage.cfg
 mx6qsabreauto                arm         armv7       mx6qsabreauto       freescale      mx6		mx6qsabreauto:IMX_CONFIG=board/freescale/mx6qsabreauto/imximage.cfg,MX6Q
-mx6qsabrelite                arm         armv7       mx6qsabrelite       freescale      mx6		mx6qsabrelite:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
+mx6qsabrelite                arm         armv7       nitrogen6x          boundary       mx6		nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6q.cfg,MX6Q,DDR_MB=1024,SABRELITE
 mx6dlsabresd                 arm         armv7       mx6sabresd          freescale      mx6		mx6sabresd:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl.cfg,MX6DL
 mx6qsabresd                  arm         armv7       mx6sabresd          freescale      mx6		mx6sabresd:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg,MX6Q
 mx6slevk                     arm         armv7       mx6slevk            freescale      mx6		mx6slevk:IMX_CONFIG=board/freescale/mx6slevk/imximage.cfg,MX6SL
include/configs/mx6qsabrelite.h deleted +0 -0
deleted file mode 100644
index c7db81d..0000000
include/configs/nitrogen6x.h +79 -1

99 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Quoted 9 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

mx6qsabrelite and nitrogen6q boards are hardware compatible, so let's avoid the code duplication and only use the nitrogen6x source code to make board code maintainance easier.

Tested booting a mainline device tree kernel on a mx6qsabrelite board.

I think this is a huge improvement I am just not sure about the environment preserving for sabrelite. I think most people using sabrelite end using the U-Boot from SPI NOR.

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750

#2 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Hi Otavio,

Quoted 7 lines · Otavio Salvador
Quoted 6 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

mx6qsabrelite and nitrogen6q boards are hardware compatible, so let's avoid the code duplication and only use the nitrogen6x source code to make board code maintainance easier.

Quoted 7 lines
Quoted 3 lines

Tested booting a mainline device tree kernel on a mx6qsabrelite board.

I think this is a huge improvement I am just not sure about the environment preserving for sabrelite. I think most people using sabrelite end using the U-Boot from SPI NOR.

I can't say whether SPI NOR or SD card is the most common medium for storing the environment variables for sabrelite, but my main goal here was to try to keep compability with existing code.

Currently mx6qsabrelite defines CONFIG_ENV_IS_IN_MMC, so I kept the same here. This patch introduces no change in functional behaviour.

If we think CONFIG_ENV_IS_IN_xxx should be changed, then this is something to be handled by a separate patch.

Regards,

Fabio Estevam

#3 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Quoted 23 lines · Fabio Estevam

Hi Otavio,

Quoted 7 lines · Otavio Salvador
Quoted 6 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

mx6qsabrelite and nitrogen6q boards are hardware compatible, so let's avoid the code duplication and only use the nitrogen6x source code to make board code maintainance easier.

Quoted 7 lines
Quoted 3 lines

Tested booting a mainline device tree kernel on a mx6qsabrelite board.

I think this is a huge improvement I am just not sure about the environment preserving for sabrelite. I think most people using sabrelite end using the U-Boot from SPI NOR.

I can't say whether SPI NOR or SD card is the most common medium for storing the environment variables for sabrelite, but my main goal here was to try to keep compability with existing code.

Quoted 5 lines

Currently mx6qsabrelite defines CONFIG_ENV_IS_IN_MMC, so I kept the same here. This patch introduces no change in functional behaviour.

If we think CONFIG_ENV_IS_IN_xxx should be changed, then this is something to be handled by a separate patch.

Agreed :-)

--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750

#4 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Quoted 27 lines · Otavio Salvador
Quoted 26 lines · Fabio Estevam

Hi Otavio,

Quoted 7 lines · Otavio Salvador
Quoted 6 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

mx6qsabrelite and nitrogen6q boards are hardware compatible, so let's avoid the code duplication and only use the nitrogen6x source code to make board code maintainance easier.

Quoted 7 lines
Quoted 3 lines

Tested booting a mainline device tree kernel on a mx6qsabrelite board.

I think this is a huge improvement I am just not sure about the environment preserving for sabrelite. I think most people using sabrelite end using the U-Boot from SPI NOR.

I can't say whether SPI NOR or SD card is the most common medium for storing the environment variables for sabrelite, but my main goal here was to try to keep compability with existing code.

Currently mx6qsabrelite defines CONFIG_ENV_IS_IN_MMC, so I kept the same here. This patch introduces no change in functional behaviour.

Quoted 7 lines
Quoted 2 lines

If we think CONFIG_ENV_IS_IN_xxx should be changed, then this is something to be handled by a separate patch.

Agreed :-)

+1

We should also add something to the README file though.

#5 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Hi Eric,

Quoted 8 lines · Eric Nelson
Quoted 4 lines

Agreed :-)

+1

We should also add something to the README file though.

In this patch I am still using the original README's:

rename board/{freescale/mx6qsabrelite/README => boundary/nitrogen6x/README.mx6qsabrelite} (100%)
rename board/boundary/nitrogen6x/{README => README.nitrogen6x} (100%)

What would you like me to the README?

Regards,

Fabio Estevam

#6 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Hi Fabio,

Quoted 7 lines · Fabio Estevam

Hi Eric,

Quoted 2 lines · Eric Nelson
Quoted 2 lines

Agreed :-)

Quoted 9 lines
Quoted 6 lines
Quoted 2 lines

+1

We should also add something to the README file though.

In this patch I am still using the original README's:

Thanks for pointing it out. I had missed this.

Quoted 2 lines

rename board/{freescale/mx6qsabrelite/README =>
boundary/nitrogen6x/README.mx6qsabrelite} (100%)

I also have to admit not having read this README.

It appears to give pretty bad advice, suggesting that the user use the iMX6DQ_SPI_to_uSDHC3.bin shim to force boot from SDHC3.

I think this explains how people keep ending up at that stale Linaro post.

Quoted 4 lines

rename board/boundary/nitrogen6x/{README => README.nitrogen6x} (100%)

What would you like me to the README?

It seems that there are two policy differences between the mx6qsabrelite.h and nitrogen6x.h files:

1. Use of MMC for environment storage
2. Use of boot script in nitrogen6x

I think we can dispense with #1. Can you think of any reason a user would care where this is stored?

The second is a bit more subtle. The boot script approach allows booting any O/S from any FAT or ext2/3/4 from any SD card or SATA).

OTOH, if there are a significant number of people who don't have boot scripts in their image(s), we'll give them a minor speed bump during the transition.

Since these are all environment settings, it seems easy enough to allow things to be configured in "the Freescale way" by adding a layer of in-direction.

i.e. we could point 'bootcmd' at either 'bootcmd_boundary' or 'bootcmd_freescale' and allow a user to select their flavour of boot.

This would prevent the need for a compile-time switch.

The other difference I note in the default environment is the inclusion of network boot.

I don't think including this bit does any harm, though I would suggest that it be a conscious choice and not an automatic fall-back. In order to enable network boot, a user already needs to configure at least the server IP and boot path. Why not also ask them to set 'bootcmd' to 'bootcmd_net'?

Let me know your thoughts.

Regards,

Eric

#7 lore raw

[U-Boot] Antwort: Re: [PATCH] mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Hi Eric, Hi everyone else,

Quoted 8 lines

It seems that there are two policy differences between the mx6qsabrelite.h and nitrogen6x.h files:

1. Use of MMC for environment storage
2. Use of boot script in nitrogen6x

I think we can dispense with #1. Can you think of any reason a user would care where this is stored?

I don't agree. I usually don't have a MMC put into the slot on my board, as I want to boot my board via NFS. Last week I had exactly the situation that my environment was resetted everytime i rebooted the board. Since i was testing a very unstable kernel, this happened a lot and i had to reinitialise the environment for networking booting every time. At the end it took me half an hour to find the swtich and the thing was done. But mentioning the fact in the README would have saved some time. :)

regards,
Stephan

#8 lore raw

[U-Boot] Antwort: Re: [PATCH] mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Hi Stephan,

Quoted 5 lines · Stephan Bauroth

Hi Eric, Hi everyone else,

Quoted 2 lines

It seems that there are two policy differences between the mx6qsabrelite.h and nitrogen6x.h files:

Quoted 8 lines
Quoted 5 lines

1. Use of MMC for environment storage
2. Use of boot script in nitrogen6x

I think we can dispense with #1. Can you think of any reason a user would care where this is stored?

I don't agree. I usually don't have a MMC put into the slot on my board, as I want to boot my board via NFS.

This sounds like a vote for having the environment in SPI-NOR.

Quoted 5 lines

Last week I had exactly the situation that my environment was resetted everytime i rebooted the board. Since i was testing a very unstable kernel, this happened a lot and i had to reinitialise the environment for networking booting every time.

I'm not sure what you're not agreeing with. I'm suggesting that in order to configure for boot to network, you'll need to run a few commands:

U-Boot > setenv serverip 192.168.0.44
U-Boot > setenv nfsroot /path/to/rootfs
U-Boot > setenv bootcmd "run bootcmd_net"
U-Boot > saveenv

The 'bootcmd' is the question I have. The mx6qsabrelite.h file currently has this:

	   "mmc dev ${mmcdev}; if mmc rescan; then " \
		   "if run loadbootscript; then " \
			   "run bootscript; " \
		   "else " \
			   "if run loaduimage; then " \
				   "run mmcboot; " \
			   "else run netboot; " \
			   "fi; " \
		   "fi; " \
	   "else run netboot; fi"

That is, "try to run from SD card, and network if that fails".

What I'm suggesting is that we make the SD card part of things above 'bootcmd_freescale', so you have three choices for configurations:

U-Boot > setenv bootcmd "run bootcmd_boundary" U-Boot > setenv bootcmd "run bootcmd_freescale" U-Boot > setenv bootcmd "run bootcmd_net"

'bootcmd_freescale' and 'bootcmd_net' can be essentially the Freescale scripts, so they match documentation done by the Freescale team. 'bootcmd_boundary' would be the default for boards we ship.

Any of these can be saved to SPI NOR for use at POR.

Quoted 4 lines

At the end it took me half an hour to find the swtich and the thing was done. But mentioning the fact in the README would have saved some time. :)

I think we're all in agreement about proper notes in the README. We're just trying to figure out the policy to document.

Also note that since a user can over-ride 'bootcmd', all of this are just defaults.

When I'm doing network boots, I find it easier to simply set the 'bootargs' and 'bootcmd' variables directly

U-Boot > setenv bootargs ... root=/dev/nfs nfsroot=... U-Boot > setenv bootcmd 'dhcp 10800000 192.168.0.44:uImage && bootm'

This skips all of the conditionals and is much easier to verify.

Regards,

Eric

#9 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

In reply to Eric Nelson

Hi Eric,

Quoted 7 lines · Eric Nelson

Thanks for pointing it out. I had missed this.

Quoted 2 lines

rename board/{freescale/mx6qsabrelite/README =>
boundary/nitrogen6x/README.mx6qsabrelite} (100%)

Quoted 8 lines

I also have to admit not having read this README.

It appears to give pretty bad advice, suggesting that the user use the iMX6DQ_SPI_to_uSDHC3.bin shim to force boot from SDHC3.

I think this explains how people keep ending up at that stale Linaro post.

As I explained to Otavio, this patch does not attempt to introduce any change in current behaviour.

The only intention here is to get rid of code duplication.

If we want to change the current behaviour and align it with nitrogen6x, then we should do this on a separate patch.

I will address Stefano's suggestion of changing the MAINTAINER file and plan to send a v2 later today.

Thanks,

Fabio Estevam

#10 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

Quoted 24 lines · Fabio Estevam

Hi Eric,

Quoted 7 lines · Eric Nelson

Thanks for pointing it out. I had missed this.

Quoted 2 lines

rename board/{freescale/mx6qsabrelite/README =>
boundary/nitrogen6x/README.mx6qsabrelite} (100%)

Quoted 8 lines

I also have to admit not having read this README.

It appears to give pretty bad advice, suggesting that the user use the iMX6DQ_SPI_to_uSDHC3.bin shim to force boot from SDHC3.

I think this explains how people keep ending up at that stale Linaro post.

As I explained to Otavio, this patch does not attempt to introduce any change in current behaviour.

Quoted 8 lines

The only intention here is to get rid of code duplication.

If we want to change the current behaviour and align it with nitrogen6x, then we should do this on a separate patch.

I will address Stefano's suggestion of changing the MAINTAINER file and plan to send a v2 later today.

Ok.

#11 lore raw

PATCH 1/1 mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6x

In reply to Fabio Estevam

Hi Fabio,

Quoted 9 lines · Fabio Estevam

From: Fabio Estevam <[email protected]>

mx6qsabrelite and nitrogen6q boards are hardware compatible, so let's avoid the code duplication and only use the nitrogen6x source code to make board code maintainance easier.

Tested booting a mainline device tree kernel on a mx6qsabrelite board.

Quoted 8 lines
---
 .../nitrogen6x/README.mx6qsabrelite}               |   0
 .../nitrogen6x/{README => README.nitrogen6x}       |   0
 board/freescale/mx6qsabrelite/Makefile             |  41 -
 board/freescale/mx6qsabrelite/mx6qsabrelite.c      | 848 ---------------------
 boards.cfg                                         |   2 +-
 include/configs/mx6qsabrelite.h                    | 297 --------
 include/configs/nitrogen6x.h                       |  80 +-

Should we update the MAINTAINERS, too ? It is weird that we have two maintainers for the same code.

Best regards,
Stefano

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================