From patchwork Fri Sep 29 13:16:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Bowman X-Patchwork-Id: 819921 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-463182-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="jD8Q+HGi"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y3XC35Bmlz9t2Q for ; Fri, 29 Sep 2017 23:16:46 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:content-type :content-transfer-encoding:mime-version; q=dns; s=default; b=R0X 8wMY2f2clvSRqr2MboTymLwNA9m762Eb2NgyXw/j6aVMzMPSOhx3QWlFMmYC861Q 1kHYdDEPkwrZ2ocQKzdKHIJXNbXYZ7oVZhPHhdtVbMet0N/gRS+Dfaq71CuqwOWl gHvQz73HA6omRD6IZdzUZAh9Vt+hr22vl+DocWUQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:content-type :content-transfer-encoding:mime-version; s=default; bh=1+JZ4Yw2A NE+wqNUxsfGICVokLE=; b=jD8Q+HGiyz0WFhR+m/tsMAdmHAaxClAwVV/PwfkoA E98A7bBWZYeh+sMJWqZoQ7IWkj2irrpGc/4AXcoYgXziLmGjMWAtXoBFx4QF+qDP +PziDejmWpea3XYKdWCTEnDCgYcPcbXAYDMI4k/lHTiPJjAPde2I4fOHMhz7kViv jI= Received: (qmail 6199 invoked by alias); 29 Sep 2017 13:16:36 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 5924 invoked by uid 89); 29 Sep 2017 13:16:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-12.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1672, stab, HAccept-Language:en-GB X-HELO: smtp-out6.electric.net Received: from smtp-out6.electric.net (HELO smtp-out6.electric.net) (192.162.217.183) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 29 Sep 2017 13:16:34 +0000 Received: from 1dxv9a-000C12-VF by out6a.electric.net with emc1-ok (Exim 4.87) (envelope-from ) id 1dxv9b-000C2o-T7 for gcc-patches@gcc.gnu.org; Fri, 29 Sep 2017 06:16:31 -0700 Received: by emcmailer; Fri, 29 Sep 2017 06:16:31 -0700 Received: from [188.39.184.226] (helo=glaexch1.ftdichip.com) by out6a.electric.net with esmtps (TLSv1:AES128-SHA:128) (Exim 4.87) (envelope-from ) id 1dxv9a-000C12-VF for gcc-patches@gcc.gnu.org; Fri, 29 Sep 2017 06:16:30 -0700 Received: from GLAEXCH1.ftdi.local ([172.16.0.121]) by glaexch3 ([172.16.0.161]) with mapi id 14.01.0438.000; Fri, 29 Sep 2017 14:16:30 +0100 From: James Bowman To: "gcc-patches@gcc.gnu.org" Subject: [patch committed FT32] Add watchdog vector and FT930 support Date: Fri, 29 Sep 2017 13:16:29 +0000 Message-ID: <2BB0A51F073B384698CACFD1D5A30FCC0DED1EEE@glaexch1> MIME-Version: 1.0 X-Outbound-IP: 188.39.184.226 X-Env-From: james.bowman@ftdichip.com X-Proto: esmtps X-Revdns: 188-39-184-226.static.enta.net X-TLS: TLSv1:AES128-SHA:128 X-Authenticated_ID: X-PolicySMART: 10711027 The attached patch adds a watchdog reset vector and FT930 support to the base interrupt code. [libgcc] 2017-09-28 James Bowman * config/ft32/crti-hw.S: Add watchdog vector, FT930 IRQ support. Index: libgcc/config/ft32/crti-hw.S =================================================================== --- libgcc/config/ft32/crti-hw.S (revision 253084) +++ libgcc/config/ft32/crti-hw.S (working copy) @@ -1,8 +1,8 @@ .global _start _start: # START Interrupt Vector Table [[ - jmp __PMSIZE-4 - jmp watchdog_init + jmp __PMSIZE-4 # RESET Vector + jmp interrupt_33 # Watchdog reset vector jmp interrupt_0 jmp interrupt_1 jmp interrupt_2 @@ -35,24 +35,29 @@ jmp interrupt_29 jmp interrupt_30 jmp interrupt_31 - jmp __PMSIZE-8 + jmp __PMSIZE-8 # Interrupt vector 32 (NMI) # ]] END Interrupt Vector Table codestart: jmp init - + .global _exithook _exithook: # Debugger uses '_exithook' at 0x90 to catch program exit return - -watchdog_init: - ldk $r0,1 + init: ldk $sp,__RAMSIZE # Disable all interrupts - ldk $r4,0x80 - sta.b 0x100e3,$r4 - + lda $r1,0x10000 + lshr $r1,$r1,20 + cmp $r1,0x90 + ldk $r1,0x100e3 # FT900 IRQ Control Register + jmpc z,1f + ldk $r1,0x10123 # FT930 IRQ Control Register +1: + ldk $r4,0x80 + sti.b $r1,0,$r4 + # Initialize DATA by copying from program memory ldk.l $r4,__data_load_start ldk.l $r1,__data_load_end @@ -139,6 +144,7 @@ inth 30 inth 31 inth 32 + inth 33 # On entry: r0, already saved, holds the handler function interrupt_common: @@ -182,7 +188,7 @@ .section .data .global vector_table vector_table: - .rept 33 + .rept 34 .long nullvector .endr