summaryrefslogtreecommitdiff
path: root/board
Commit message (Collapse)AuthorAgeLines
* split CPC45 board-specific IDE functions from cmd_ide.cPavel Herrmann2012-10-17-1/+131
| | | | | | | | | Move input_data() and friends to board/cpc45/ide.c, as overrides for weak aliases in cmd_ide.c note: checkpatch emits warnings about using volatile Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* change all versions of input_data() and output_data() to global weak aliasesPavel Herrmann2012-10-17-3/+0
| | | | | | | | | | This changes input_data() and friends from static function to global symbols under weak alias, to enable board specific overrides (and therefore get rid of board-specific code in cmd_ide.c) Also declare ide_bus_offset in the header file, so other files can use ATA_CURR_BASE as well. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* split IVM power hooks from cmd_ide.cPavel Herrmann2012-10-17-0/+46
| | | | | | Move power control code from ide_reset() into IVM-specific IDE reset code. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* serial: Use default_serial_puts() in driversMarek Vasut2012-10-17-50/+7
| | | | | | | | | | Replace the in-place ad-hoc implementation of serial_puts() within the drivers with default_serial_puts() call. This cuts down on the code duplication quite a bit. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
* mpc82xx: Remove BMW board portStefan Roese2012-10-17-3227/+0
| | | | | | | | | | | As the board seems to be unmaintained for some time, lets remove the support in mainline completely. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: James F. Dougherty <jfd@broadcom.com> Cc: Wolfgang Denk <wd@denx.de> Acked-by: Marek Vasut <marex@denx.de>
* mx6qsabreauto: Add Ethernet supportFabio Estevam2012-10-15-0/+75
| | | | | | | | mx6qsabreauto has a AR8031 Gigabit PHY. Add support for it. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
* mx25: Clean up lowlevel_initBenoît Thébaudeau2012-10-15-31/+3
| | | | | | | | | | | | | | | Clean up mx25 lowlevel_init: - Add comments. - Do not use write32 repeatedly with the same value in order not to increase code size. - Make register values configurable. - Use macro parameters with default values instead of literal constants. - Use defined macros instead of duplicating code. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Stefano Babic <sbabic@denx.de> Cc: John Rigby <jcrigby@gmail.com> Cc: Matthias Weisser <weisserm@arcor.de>
* mx31: Fix PDR0_CSI_PODFBenoît Thébaudeau2012-10-15-5/+5
| | | | | | | | | | The CSI PODF bit-field used by the previous code for the i.MX31 CCM PDR0 register is actually composed of two bit-fields: one pre-divider and one post-divider. This patch fixes the CCM access macros and the code using them accordingly. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Stefano Babic <sbabic@denx.de>
* mx5/6: Define default SoC input clock frequenciesBenoît Thébaudeau2012-10-15-1/+1
| | | | | | | | | | | Define default SoC input clock frequencies for i.MX5/6 in order to get rid of duplicated definitions. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Jason Liu <r64343@freescale.com> Cc: Matt Sealey <matt@genesi-usa.com> Cc: Fabio Estevam <fabio.estevam@freescale.com>
* mx6q: Add basic support for mx6qsabreautoFabio Estevam2012-10-15-0/+317
| | | | | | | | | | | | | | | | | | | | | | mx6qsabreauto is a board based on mx6q SoC with the following features: - 2GB of DDR3 - 2 USB ports - 1 HDMI output port - SPI NOR - 2 LVDS LCD ports - Gigabit Ethernet - Camera - eMMC and SD card slot - Multichannel Audio - CAN - SATA - NAND - PCIE - Video Input Add very basic support for it. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
* mx6qsabresd: Add 8-bit USDHC supportFabio Estevam2012-10-15-0/+4
| | | | | | USDHC3 has 8 pins wired in mx6qsabresd. Configure the extra pins. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
* mx6qsabresd: Add Ethernet supportFabio Estevam2012-10-15-0/+76
| | | | | | | | | | | | | | mx6qsabresd has a AR8031 Gigabit PHY. Add support for it. Also increase CONFIG_SYS_MALLOC_LEN so that FEC buffer allocation does not fail. Tested on 1Gbp and 100Mbps networks. Suggested-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Kim Phillips <kim.phillips@freescale.com>
* mx6: Add basic support for mx6qsabresd board.Fabio Estevam2012-10-15-0/+159
| | | | | | | | | | | | | | | | | mx6qsabresd is a board based on mx6q SoC with the following features: - 1GB of DDR3 - 1 USB OTG port - 1 HDMI output port - SPI NOR - LVDS panel - Gigabit Ethernet - Camera Connector - eMMC and SD card slot - Audio Add very basic support for it. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
* mx6q: Factor out common DDR3 init codeFabio Estevam2012-10-15-0/+0
| | | | | | | Factor out common DDR3 initialization code, allowing easier maintainance of such scripts. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
* tegra: nand: add board pinmuxLucas Stach2012-10-15-0/+12
| | | | | | | | Boards may require a different pinmux setup for NAND than the default one. Add a way to call into board specific code to set this up. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Tom Warren <twarren@nvidia.com>
* tegra: clean up board include hellLucas Stach2012-10-15-39/+1
| | | | | | | | | | The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header. Signed-off-by: Lucas Stach <dev@lynxeye.de> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
* tegra20: rework UART GPIO handlingLucas Stach2012-10-15-40/+9
| | | | | | | | | | | | | | | | | | | | Rename board provided gpio_config_uart() to gpio_early_init_uart() as it does the same thing as the equally called function provided by the uart-switch code. This allows to simply call this function in early board init whether or not we are building with CONFIG_UART_SWITCH defined. Also provide a weak symbol for this function, to avoid the need to provide this function for boards that don't need any fixup. This patch supersedes the earlier posted "tegra: convert gpio_config_uart to weak symbol". Build tested with MAKEALL -s tegra20 Signed-off-by: Lucas Stach <dev@lynxeye.de> Acked-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Warren <twarren@nvidia.com>
* Tegra20: Move some include files to arch-tegra for sharing with Tegra30Tom Warren2012-10-15-34/+32
| | | | | | | | | | | The move is pretty straight-forward. ap20.h and tegra20.h were renamed to ap.h and tegra.h. Some files remain in arch-tegra20 but 'include' a file in 'arch-tegra' with #defines & structs that will be common between T20 and T30 HW. HW-specific #defines, etc. stay in the 'arch-tegra20' 'root' file. All boards build OK w/MAKEALL -s tegra20. Checkpatch.pl runs clean. Seaboard works OK. Signed-off-by: Tom Warren <twarren@nvidia.com>
* tegra: Rename Medcom to Medcom-WideThierry Reding2012-10-15-1/+1
| | | | | | | | | | Medcom is the marketing name for an older, PXA-based version of the same device. In order to avoid confusion, rename the Tegra-based version to the new marketing name. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
* tegra: Update Avionic Design vendor prefixThierry Reding2012-10-15-3/+3
| | | | | | | | | The official vendor prefix for Avionic Design is now "ad". Update the board DTS files accordingly. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
* usb: ehci: rework to take advantage of new lowlevel interfaceLucas Stach2012-10-15-15/+15
| | | | | | | | | | | | | | Kill off ehci-core.h It was used to specify some static controller data. To support more than one controller being active at any time we have to carry the controller data ourselfes. Change the ehci interface accordingly. NOTE: OMAP implemented the ehci stuff a bit backwards and should be fixed to do the same thing as other platforms. But the change for now is at least compile clean. Signed-off-by: Lucas Stach <dev@lynxeye.de> Reviewed-by: Marek Vasut <marex@denx.de>
* usb: lowlevel interface change to support multiple controllersLucas Stach2012-10-15-2/+2
| | | | | | | | | | | Carry an index in the lowlevel usb functions to make specify the respective usb controller. Also pass through an controller struct from lowlevel_init to the creation of the root usb device of this controller. Signed-off-by: Lucas Stach <dev@lynxeye.de> Reviewed-by: Marek Vasut <marex@denx.de>
* pmc405de and zeus: remove the env_ptr externsIgor Grinberg2012-10-15-2/+0
| | | | | | | | | | The env_ptr is already declared in environment.h, so there is no need to redeclare in board files (especially after including the environment.h) Remove those declarations. Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Matthias Fuchs <matthias.fuchs@esd.eu>
* ppc4xx: Remove AP1000 board supportStefan Roese2012-10-15-3321/+0
| | | | | | | | | As the board seems to be unmaintained for some time, lets remove the support in mainline completely. Signed-off-by: Stefan Roese <sr@denx.de> Cc: James MacAulay <james.macaulay@amirix.com> Acked-by: Marek Vasut <marex@denx.de>
* ppc4xx: Remove ML2 board supportStefan Roese2012-10-15-804/+0
| | | | | | | | | As the board seems to be unmaintained for some time, lets remove the support in mainline completely. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Peter De Schrijver <p2@mind.be> Acked-by: Marek Vasut <marex@denx.de>
* serial: Remove CONFIG_SERIAL_MULTI from serial driversMarek Vasut2012-10-15-291/+0
| | | | | | | | | | | | Remove the support for not-CONFIG_SERIAL_MULTI part from serial port drivers and some board files. Since CONFIG_SERIAL_MULTI is now enabled by default, that part is a dead code. Remove it. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de> Signed-off-by: Tom Rini <trini@ti.com>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into p3mx serial driverMarek Vasut2012-10-15-6/+62
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into p3mx serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the p3mx driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into sconsole serial driverMarek Vasut2012-10-15-6/+60
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into sconsole serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the sconsole driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into ml2 serial driverMarek Vasut2012-10-15-6/+60
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into ml2 serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the ml2 driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into evb64260 serial driverMarek Vasut2012-10-15-20/+65
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into evb64260 serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the evb64260 driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into cpci750 serial driverMarek Vasut2012-10-15-6/+61
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into cpci750 serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the cpci750 driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into cogent serial driverMarek Vasut2012-10-15-6/+60
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into cogent serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the cogent driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into bmw serial driverMarek Vasut2012-10-15-6/+62
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into bmw serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the bmw driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into amirix serial driverMarek Vasut2012-10-15-6/+60
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into amirix serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the amirix driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: powerpc: Implement CONFIG_SERIAL_MULTI into marvell serial driverMarek Vasut2012-10-15-13/+67
| | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into marvell serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the marvell driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* serial: zoom2: Remove zoom2 serial prototypes from serial.hMarek Vasut2012-10-15-1/+6
| | | | | | | | | | | | | | Remove the prototypes for zoom2_serial_deviceN from serial.h . This can't be done right away, as they are referenced from the zoom2 config file. Therefore, adjust the code so the config file only specifies number of the port. Then, replace the simple return in default_serial_console() with a switch across possible values, which returns the zoom2_serial_deviceN . With such adjustment in place, the exported prototypes in serial.h can be safely removed. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
* serial: pxa: Make use of default_serial_console in serial_pxaMarek Vasut2012-10-15-35/+0
| | | | | | | | | | Make use of the newly implemented weak default_serial_console in the serial_pxa driver. This removes all reimplementations of this function from board files. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
* serial: Properly spell out the structure member names of serial_driverMarek Vasut2012-10-15-8/+8
| | | | | | | | | | | | | | | | | Properly spell out the whole structure member names when an initialized varible is instantiated from the struct serial_driver. In case the structure definition for struct serial_driver undergoes reordering, there will be no impact on variables defined based on this structure. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Mike Frysinger <vapier@gentoo.org> Cc: C Nauman <cnauman@diagraph.com> Cc: Minkyu Kang <mk7.kang@samsung.com> Cc: Michal Simek <monstr@monstr.eu>
* COMMON: Use __stringify() instead of rest of implementationsMarek Vasut2012-10-15-4/+3
| | | | | | | Fix up the rest of implementations of __stringify(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Wolfgang Denk <wd@denx.de>
* COMMON: Use __stringify() instead of MK_STR()Marek Vasut2012-10-15-8/+1
| | | | | | | | | Kill multiple occurances and redeclaration of MK_STR in favor of __stringify(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Wolfgang Denk <wd@denx.de> Signed-off-by: Tom Rini <trini@ti.com>
* gth2: Remove this platformTom Rini2012-10-15-1566/+0
| | | | | | | After taking with the former maintainer, delete this platform. The patch is from the former maintainer. Signed-off-by: Tom Rini <trini@ti.com>
* ARM: prevent misaligned array initsAlbert ARIBAUD2012-10-15-14/+14
| | | | | | | | | | | | | | Under option -munaligned-access, gcc can perform local char or 16-bit array initializations using misaligned native accesses which will throw a data abort exception. Fix files where these array initializations were unneeded, and for files known to contain such initializations, enforce gcc option -mno-unaligned-access. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> [trini: Switch to usign call cc-option for -mno-unaligned-access as Albert had done previously as that's really correct] Signed-off-by: Tom Rini <trini@ti.com>
* MPC85xx: remove support for TQM85xx boardsWolfgang Denk2012-10-05-1877/+0
| | | | | | | | | | | | Due to grown code sizes the TQM85xx boards don't build any more with some older tool chains (like ELDK 4.2). As these boards have long reached EOL it seems a waste of effort trying to fix them. The vendor has agreed to drop support for them, too. So let's get rid of them. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> cc: Kim Phillips <kim.phillips@freescale.com> Acked-by: Stefan Roese <sr@denx.de>
* sh: ap_sh4a_4a: Fixed initialization value of DDR memoryNobuhiro Iwamatsu2012-10-05-1/+1
| | | | | | | | The wrong value was set as value of column of DDR memory for ap_sh4a_4a. 10 is the right value. This fixed this problem. Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
* Merge branch 'master' of git://git.denx.de/u-boot-armTom Rini2012-10-04-40/+2516
|\
| * ARM: Add Altera SOCFPGA Cyclone5Dinh Nguyen2012-10-04-0/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add minimal support for Altera's SOCFPGA Cyclone 5 hardware. Signed-off-by: Dinh Nguyen <dinguyen@altera.com> Signed-off-by: Chin Liang See <clsee@altera.com> Signed-off-by: Pavel Machek <pavel@denx.de> Reviewed-by: Marek Vasut <marex@denx.de> Acked-by: Tom Trini <trini@ti.com> Cc: Wolfgang Denx <wd@denx.de> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Stefan Roese <sr@denx.de> ---- v8: Remove no_return attribute for reset_cpu Based on v2012.10-rc2
| * snowball: Clear UART RX FIFORamesh Chandrasekaran2012-10-04-0/+4
| | | | | | | | | | | | | | | | | | Without usb-serial cable plugged at this stage, some garbage is seen in UART RX FIFO, which blocks autoboot progress. The fix makes sure to empty the RX FIFO, before we wait for user input to interrupt autoboot. Signed-off-by: Ramesh Chandrasekaran <ramesh.chandrasekaran@stericsson.com>
| * xilinx: Add new Zynq boardMichal Simek2012-10-04-0/+108
| | | | | | | | | | | | | | | | Add support for Xilinx Zynq board. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Marek Vasut <marex@denx.de> CC: Joe Hershberger <joe.hershberger@gmail.com>
| * ARM: Add X600 board support (SPEAr600 based)Stefan Roese2012-10-04-0/+474
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the X600 SPEAr600 based board. Its also the first SPEAr600 board that uses the newly introduced SPEAr600 SPL support. Xloader is not necessary any more. By using the new "u-boot.spr" make target, one image will generated containing both, U-Boot SPL (with mkimage header as needed by the SPEAr BootROM, and the main U-Boot with mkimage header. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Amit Virdi <amit.virdi@st.com> Cc: Vipin Kumar <vipin.kumar@st.com>
| * Merge remote-tracking branch 'u-boot-marvell/master'Albert ARIBAUD2012-10-03-5/+633
| |\