From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: barebox@lists.infradead.org
Cc: Lior Amsalem <alior@marvell.com>, Willy Tarreau <w@1wt.eu>,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Subject: [PATCH 0/7] Basic support for Marvell Armada 370/XP SoC
Date: Fri, 3 May 2013 18:51:04 +0200 [thread overview]
Message-ID: <1367599871-28479-1-git-send-email-thomas.petazzoni@free-electrons.com> (raw)
Hello,
Here is a patch set that adds basic support for the Marvell Armada 370
and Armada XP SoC. For now, the support is quite minimal, since only
the serial port is supported. However, a significant part of the work
has been the development of the tools that allow to extract/create
bootable images and to push a bootable image through the UART to the
hardware platform.
I expect to work on adding support for more devices (such as the
network interface) and possibly to add support for the older, but
popular, Marvell Kirkwood SoC family. Contributions are of course
welcome.
In detail, the patch set contains:
* A kwbimage tool. This tool allows to extract existing bootloader
images, and create new bootloader images. It is more or less
similar in purpose to the kwbimage tool from U-Boot, but is capable
of handling 'version 1' images used by Armada 370/XP, and not only
allows to create images, but also extract images.
A typical usage is to first extract an existing bootloader image:
./scripts/kwbimage -x -i <existing-image> -o <some-directory>
As an output, you typically get 3 files: kwbimage.cfg (a text file
that describes the configuration of the image in a format
ressembling the one used by U-Boot), binary.0 (the binary blob that
does the DDR3 training) and payload (the bootloader itself).
Being able to extract an image is needed in order to get the DDR3
training code, and re-use it with Barebox.
An image is then later created with:
./scripts/kwbimage -x -i <path/to/kwbimage.cfg> -o <image>
For each board, the kwbimage.cfg file is typically located in
arch/arm/boards/<board-name>/. The DDR3 training code must however
be extracted from an existing bootloader image of your board,
usually the one provided by the board manufacturer.
* A kwboot tool to push a bootloader through UART. It is directly
taken from U-Boot source code, to which I've added some fixes:
- Extend the timeouts, to actually make it work on Armada
370/XP. This has originally been found by Willy Tarreau.
- Ignore non-Xmodem characters, so that the original DDR3 training
code can be used without modifications (Willy had to change it to
make it output its messages on a different serial port, otherwise
it was confusing the Xmodem implementation)
- Output to stdout all the non-Xmodem characters so that if
something goes wrong during the transfer, we have some
informations. It also shows the messages output by the DDR3
training code.
- Remove the 'patch' feature that patches an image to have the UART
type. This requires a knowledge of the header format, which is
different between version 0 (kirkwood) and version 1 (armada
370/xp). It is not really needed anyway since kwbimage can
extract and create images.
* The SoC-level code, which for now only consists in a minimal
clocksource driver, a function to register an UART, a fixed-rate
clock, and a function that determines the amount of RAM by looking
at the SDRAM windows registers.
* The board-level code for the Armada 370 Mirabox from Globalscale,
the Armada XP OpenBlocks AX3 from Plathome and the Armada XP GP
from Marvell.
Reviews and comments welcome!
Best regards,
Thomas
Thomas Petazzoni (7):
scripts: allow lines longer than 80 cols with printf() in checkpatch
scripts: new kwbimage manipulation tool for Marvell SoC boot images
scripts: add kwboot tool
arm: initial support for Marvell Armada 370/XP SoCs
arm: add basic support for Armada XP OpenBlocks AX3 platform
arm: add basic support for the Armada 370 Mirabox platform
arm: add basic support for the Armada XP GP platform
arch/arm/Kconfig | 8 +
arch/arm/Makefile | 4 +
arch/arm/boards/globalscale-mirabox/Makefile | 2 +
arch/arm/boards/globalscale-mirabox/config.h | 4 +
.../globalscale-mirabox/globalscale-mirabox.c | 26 +
arch/arm/boards/globalscale-mirabox/kwbimage.cfg | 8 +
arch/arm/boards/globalscale-mirabox/lowlevel.c | 26 +
arch/arm/boards/marvell-armada-xp-gp/Makefile | 2 +
arch/arm/boards/marvell-armada-xp-gp/config.h | 4 +
arch/arm/boards/marvell-armada-xp-gp/kwbimage.cfg | 8 +
arch/arm/boards/marvell-armada-xp-gp/lowlevel.c | 25 +
.../marvell-armada-xp-gp/marvell-armada-xp-gp.c | 25 +
arch/arm/boards/plathome-openblocks-ax3/Makefile | 2 +
arch/arm/boards/plathome-openblocks-ax3/config.h | 4 +
.../boards/plathome-openblocks-ax3/kwbimage.cfg | 8 +
arch/arm/boards/plathome-openblocks-ax3/lowlevel.c | 25 +
.../plathome-openblocks-ax3.c | 25 +
arch/arm/configs/globalscale_mirabox_defconfig | 8 +
arch/arm/configs/marvell_armada_xp_gp_defconfig | 10 +
arch/arm/configs/plathome_openblocks_ax3_defconfig | 9 +
arch/arm/mach-mvebu/Kconfig | 54 +
arch/arm/mach-mvebu/Makefile | 1 +
arch/arm/mach-mvebu/core.c | 142 +++
arch/arm/mach-mvebu/include/mach/clkdev.h | 7 +
arch/arm/mach-mvebu/include/mach/debug_ll.h | 40 +
arch/arm/mach-mvebu/include/mach/mvebu.h | 22 +
drivers/clocksource/Kconfig | 4 +
drivers/clocksource/Makefile | 1 +
drivers/clocksource/mvebu.c | 90 ++
scripts/.gitignore | 2 +
scripts/Makefile | 3 +-
scripts/checkpatch.pl | 2 +-
scripts/kwbimage.c | 1224 ++++++++++++++++++++
scripts/kwboot.c | 717 ++++++++++++
34 files changed, 2540 insertions(+), 2 deletions(-)
create mode 100644 arch/arm/boards/globalscale-mirabox/Makefile
create mode 100644 arch/arm/boards/globalscale-mirabox/config.h
create mode 100644 arch/arm/boards/globalscale-mirabox/globalscale-mirabox.c
create mode 100644 arch/arm/boards/globalscale-mirabox/kwbimage.cfg
create mode 100644 arch/arm/boards/globalscale-mirabox/lowlevel.c
create mode 100644 arch/arm/boards/marvell-armada-xp-gp/Makefile
create mode 100644 arch/arm/boards/marvell-armada-xp-gp/config.h
create mode 100644 arch/arm/boards/marvell-armada-xp-gp/kwbimage.cfg
create mode 100644 arch/arm/boards/marvell-armada-xp-gp/lowlevel.c
create mode 100644 arch/arm/boards/marvell-armada-xp-gp/marvell-armada-xp-gp.c
create mode 100644 arch/arm/boards/plathome-openblocks-ax3/Makefile
create mode 100644 arch/arm/boards/plathome-openblocks-ax3/config.h
create mode 100644 arch/arm/boards/plathome-openblocks-ax3/kwbimage.cfg
create mode 100644 arch/arm/boards/plathome-openblocks-ax3/lowlevel.c
create mode 100644 arch/arm/boards/plathome-openblocks-ax3/plathome-openblocks-ax3.c
create mode 100644 arch/arm/configs/globalscale_mirabox_defconfig
create mode 100644 arch/arm/configs/marvell_armada_xp_gp_defconfig
create mode 100644 arch/arm/configs/plathome_openblocks_ax3_defconfig
create mode 100644 arch/arm/mach-mvebu/Kconfig
create mode 100644 arch/arm/mach-mvebu/Makefile
create mode 100644 arch/arm/mach-mvebu/core.c
create mode 100644 arch/arm/mach-mvebu/include/mach/clkdev.h
create mode 100644 arch/arm/mach-mvebu/include/mach/debug_ll.h
create mode 100644 arch/arm/mach-mvebu/include/mach/mvebu.h
create mode 100644 drivers/clocksource/mvebu.c
create mode 100644 scripts/kwbimage.c
create mode 100644 scripts/kwboot.c
--
1.7.9.5
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next reply other threads:[~2013-05-03 16:51 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-03 16:51 Thomas Petazzoni [this message]
2013-05-03 16:51 ` [PATCH 1/7] scripts: allow lines longer than 80 cols with printf() in checkpatch Thomas Petazzoni
2013-05-06 7:23 ` Sascha Hauer
2013-05-06 7:27 ` Thomas Petazzoni
2013-05-03 16:51 ` [PATCH 2/7] scripts: new kwbimage manipulation tool for Marvell SoC boot images Thomas Petazzoni
2013-05-04 19:51 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-04 20:32 ` Jason Cooper
2013-05-05 6:40 ` Sascha Hauer
2013-05-05 11:19 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-05 11:40 ` Willy Tarreau
2013-05-06 13:53 ` Thomas Petazzoni
2013-05-06 13:54 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-06 14:06 ` Thomas Petazzoni
2013-05-06 14:04 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-06 14:13 ` Thomas Petazzoni
2013-05-06 14:14 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-06 14:31 ` Willy Tarreau
2013-05-06 19:34 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-06 19:53 ` Willy Tarreau
2013-05-06 20:21 ` Thomas Petazzoni
2013-05-06 20:35 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-06 20:44 ` Thomas Petazzoni
2013-05-06 20:56 ` Sascha Hauer
2013-05-06 21:03 ` Thomas Petazzoni
2013-05-07 6:31 ` Sascha Hauer
2013-05-07 9:33 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-07 9:46 ` Willy Tarreau
2013-05-07 9:47 ` Sascha Hauer
2013-05-07 9:57 ` Thomas Petazzoni
2013-05-06 20:48 ` Sascha Hauer
2013-05-06 14:21 ` Jason Cooper
2013-05-06 19:39 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-07 6:44 ` Sascha Hauer
2013-05-06 19:41 ` Sascha Hauer
2013-05-06 19:16 ` Sascha Hauer
2013-05-06 20:22 ` Thomas Petazzoni
2013-05-07 23:30 ` Gregory CLEMENT
2013-05-03 16:51 ` [PATCH 3/7] scripts: add kwboot tool Thomas Petazzoni
2013-05-03 16:51 ` [PATCH 4/7] arm: initial support for Marvell Armada 370/XP SoCs Thomas Petazzoni
2013-05-06 14:09 ` Thomas Petazzoni
2013-05-06 14:07 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-06 14:30 ` Sascha Hauer
2013-05-06 14:34 ` Thomas Petazzoni
2013-05-06 14:46 ` Sascha Hauer
2013-05-06 14:48 ` Thomas Petazzoni
2013-05-03 16:51 ` [PATCH 5/7] arm: add basic support for Armada XP OpenBlocks AX3 platform Thomas Petazzoni
2013-05-05 6:59 ` Sascha Hauer
2013-05-03 16:51 ` [PATCH 6/7] arm: add basic support for the Armada 370 Mirabox platform Thomas Petazzoni
2013-05-03 16:51 ` [PATCH 7/7] arm: add basic support for the Armada XP GP platform Thomas Petazzoni
2013-05-04 17:15 ` [PATCH 0/7] Basic support for Marvell Armada 370/XP SoC Jason Cooper
2013-05-04 17:23 ` Re[2]: " Alexander Shiyan
2013-05-04 17:49 ` Thomas Petazzoni
2013-05-04 17:52 ` Re[2]: " Alexander Shiyan
2013-05-04 17:52 ` Thomas Petazzoni
2013-05-04 18:34 ` Jason Cooper
2013-05-05 6:33 ` Sascha Hauer
2013-05-06 13:54 ` Thomas Petazzoni
2013-05-06 19:28 ` Sascha Hauer
2013-05-06 20:32 ` Thomas Petazzoni
2013-05-07 23:28 ` Gregory CLEMENT
2013-05-07 23:46 ` Gregory CLEMENT
2013-05-08 10:46 ` Thomas Petazzoni
2013-05-08 21:02 ` Gregory CLEMENT
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1367599871-28479-1-git-send-email-thomas.petazzoni@free-electrons.com \
--to=thomas.petazzoni@free-electrons.com \
--cc=alior@marvell.com \
--cc=barebox@lists.infradead.org \
--cc=ezequiel.garcia@free-electrons.com \
--cc=w@1wt.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox