From patchwork Wed Apr 6 11:53:44 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dirk Eibach X-Patchwork-Id: 90015 X-Patchwork-Delegate: sr@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 8F928B6EF1 for ; Wed, 6 Apr 2011 22:14:54 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0B7F7280E6; Wed, 6 Apr 2011 14:14:10 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jFqcov2M6vtg; Wed, 6 Apr 2011 14:14:09 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7EBD2280CB; Wed, 6 Apr 2011 14:13:38 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 8DF1128091 for ; Wed, 6 Apr 2011 14:13:31 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02qvjoD-XWWT for ; Wed, 6 Apr 2011 14:13:30 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from sputnik.urmx.de (sputnik.urmx.de [88.198.51.18]) by theia.denx.de (Postfix) with ESMTP id 3AA042808F for ; Wed, 6 Apr 2011 14:13:24 +0200 (CEST) Received: from mailrelay.gdsys.de (unknown [217.6.197.20]) by sputnik.urmx.de (Postfix) with ESMTP id 2A1AC602020B for ; Wed, 6 Apr 2011 13:54:01 +0200 (CEST) Received: from mailsgw.gdsys.de (localhost [127.0.0.1]) by mailsgw.gdsys.de (Postfix) with ESMTP id 4162D1F8801 for ; Wed, 6 Apr 2011 13:54:02 +0200 (CEST) From: Dirk Eibach To: u-boot@lists.denx.de Date: Wed, 6 Apr 2011 13:53:44 +0200 Message-Id: <1302090830-15824-3-git-send-email-eibach@gdsys.de> In-Reply-To: <1302090830-15824-2-git-send-email-eibach@gdsys.de> References: <1302090830-15824-1-git-send-email-eibach@gdsys.de> <1302090830-15824-2-git-send-email-eibach@gdsys.de> X-SafeGuard_MailGateway: Version: 5.60.3.10058 SGMG Date: 20110406115402Z X-AntiVirus: checked by AntiVir MailGate (version: 2.0.2-5; AVE: 7.9.4.202; VDF: 7.11.5.205; host: mailrelay) Subject: [U-Boot] [PATCH 2/8] ppc4xx: Improve video board detection X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.9 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de Signed-off-by: Dirk Eibach --- board/gdsys/405ep/dlvision-10g.c | 26 ++++++++++++++++++-------- 1 files changed, 18 insertions(+), 8 deletions(-) diff --git a/board/gdsys/405ep/dlvision-10g.c b/board/gdsys/405ep/dlvision-10g.c index df7fb14..d7b4fb2 100644 --- a/board/gdsys/405ep/dlvision-10g.c +++ b/board/gdsys/405ep/dlvision-10g.c @@ -31,6 +31,9 @@ #include "../common/osd.h" +#define LATCH2_BASE (CONFIG_SYS_LATCH_BASE + 0x200) +#define LATCH2_MC2_PRESENT_N 0x0080 + enum { UNITTYPE_VIDEO_USER = 0, UNITTYPE_MAIN_USER = 1, @@ -206,8 +209,8 @@ static void print_fpga_info(unsigned dev) */ int checkboard(void) { - unsigned k; char *s = getenv("serial#"); + u16 latch2 = in_le16((void *)LATCH2_BASE); printf("Board: "); @@ -220,20 +223,27 @@ int checkboard(void) puts("\n"); - for (k = 0; k < CONFIG_SYS_FPGA_COUNT; ++k) - print_fpga_info(k); + print_fpga_info(0); + if (!(latch2 & LATCH2_MC2_PRESENT_N)) + print_fpga_info(1); return 0; } int last_stage_init(void) { - unsigned k; + ihs_fpga_t *fpga = (ihs_fpga_t *) CONFIG_SYS_FPGA_BASE(0); + u16 versions = in_le16(&fpga->versions); + u16 latch2 = in_le16((void *)LATCH2_BASE); + + if (((versions >> 4) & 0x000f) != UNITTYPE_MAIN_USER) + return 0; + + if (!get_fpga_state(0)) + osd_probe(0); - for (k = 0; k < CONFIG_SYS_OSD_SCREENS; ++k) - if (!get_fpga_state(k) - || (get_fpga_state(k) == FPGA_STATE_DONE_FAILED)) - osd_probe(k); + if (!(latch2 & LATCH2_MC2_PRESENT_N) && !get_fpga_state(1)) + osd_probe(1); return 0; }