/* * Copyright (c) 2013 ETH Zurich. All rights reserved. * * This file is distributed under the terms in the attached LICENSE file. * If you do not find this file, copies can be found by writing to: * ETH Zurich D-INFK, CAB F.78, Universitaetstrasse 6, CH-8092 Zurich, * Attn: Systems Group. */ /* * omap44xx_gpmc.dev * * DESCRIPTION: * * NOTE: This file has been automatically generated based on the * XML files extracted from the TI RDT v1.0.0.4p Tool. * Download from here: http://www.ti.com/product/omap4460 * This means that the file might not be optimal in terms of naming * conventions for constants and registers (duplicated * namespaces in register and device name etc.). * Also, because of the underlying structure from the original XML * it's possible that some constants appear multiple times (if they * have slightly different descriptions for example). * * You want to clean that up before using the files for the first time! */ device omap44xx_gpmc msbfirst ( addr base ) "" { register gpmc_revision ro addr(base, 0x0) "This register contains the IP revision code." type(uint32); constants sidlemode_status width(2) "" { SIDLEMODE_1 = 1 "No-idle. An idle request is never acknowledged"; SIDLEMODE_2 = 2 "Smart-idle. Acknowledgment to an idle request is given based on the internal activity of the module"; SIDLEMODE_3 = 3 "Do not use"; }; constants softreset_status width(1) "" { SOFTRESET_0 = 0 "Normal mode"; SOFTRESET_1 = 1 "The module is reset"; }; constants autoidle_status width(1) "" { AUTOIDLE_0 = 0 "Interface clock is free-running"; AUTOIDLE_1 = 1 "Automatic Interface clock gating strategy is applied, based on the Interconnect activity"; }; register gpmc_sysconfig addr(base, 0x10) "This register controls the various parameters of the Interconnect." { _ 27 mbz; sidlemode 2 rw type(sidlemode_status) "0x0: Force-idle. An idle request is acknowledged unconditionally"; _ 1 mbz; softreset 1 rw type(softreset_status) "Software reset. Set this bit to 1 triggers a module reset. This bit is automatically reset by hardware. During reads, it always returns 0."; autoidle 1 rw type(autoidle_status) "Internal Interface clock gating strategy"; }; constants resetdone_status width(1) "" { RESETDONE_0 = 0 "Internal module reset in ongoing"; RESETDONE_1 = 1 "Reset completed"; }; register gpmc_sysstatus addr(base, 0x14) "This register provides status information about the module, excluding the interrupt status information" { _ 24 mbz; _ 7 mbz; resetdone 1 ro type(resetdone_status) "Internal reset monitoring"; }; constants wait2edgedetection_status_status width(1) "" { WAIT2EDGEDETECTION_STATUS_0_r = 0 "A transition on WAIT2 input pin has not been detected"; WAIT2EDGEDETECTION_STATUS_0_w = 0 "WAIT2EDGEDETECTIONSTATUS bit unchanged"; WAIT2EDGEDETECTION_STATUS_1_r = 1 "A transition on WAIT2 input pin has been detected"; WAIT2EDGEDETECTION_STATUS_1_w = 1 "WAIT2EDGEDETECTIONSTATUS bit is reset"; }; constants wait1edgedetection_status_status width(1) "" { WAIT1EDGEDETECTION_STATUS_0_r = 0 "A transition on WAIT1 input pin has not been detected"; WAIT1EDGEDETECTION_STATUS_0_w = 0 "WAIT1EDGEDETECTIONSTATUS bit unchanged"; WAIT1EDGEDETECTION_STATUS_1_r = 1 "A transition on WAIT1 input pin has been detected"; WAIT1EDGEDETECTION_STATUS_1_w = 1 "WAIT1EDGEDETECTIONSTATUS bit is reset"; }; constants wait0edgedetection_status_status width(1) "" { WAIT0EDGEDETECTION_STATUS_0_r = 0 "A transition on WAIT0 input pin has not been detected"; WAIT0EDGEDETECTION_STATUS_0_w = 0 "WAIT0EDGEDETECTIONSTATUS bit unchanged"; WAIT0EDGEDETECTION_STATUS_1_r = 1 "A transition on WAIT0 input pin has been detected"; WAIT0EDGEDETECTION_STATUS_1_w = 1 "WAIT0EDGEDETECTIONSTATUS bit is reset"; }; constants terminalcountstatus_status width(1) "" { TERMINALCOUNTSTATUS_0_r = 0 "Indicates that CountValue is greater than 0"; TERMINALCOUNTSTATUS_0_w = 0 "TERMINALCOUNTSTATUS bit unchanged"; TERMINALCOUNTSTATUS_1_r = 1 "Indicates that CountValue is equal to 0"; TERMINALCOUNTSTATUS_1_w = 1 "TERMINALCOUNTSTATUS bit is reset"; }; constants fifoeventstatus_status width(1) "" { FIFOEVENTSTATUS_0_r = 0 "Indicates than less than[16] FIFOTHRESHOLDSTATUS bytes are available in prefetch mode and less than FIFOTHRESHOLD bytes free places are available in write-posting mode."; FIFOEVENTSTATUS_0_w = 0 "FIFOEVENTSTATUS bit unchanged"; FIFOEVENTSTATUS_1_r = 1 "Indicates than at least[16] FIFOTHRESHOLDSTATUS bytes are available in prefetch mode and at least FIFOTHRESHOLD bytes free places are available in write-posting mode."; FIFOEVENTSTATUS_1_w = 1 "FIFOEVENTSTATUS bit is reset"; }; register gpmc_irqstatus addr(base, 0x18) "This interrupt status register regroups all the status of the module internal events that can generate an interrupt." { _ 21 mbz; wait2edgedetection_status 1 rw type(wait2edgedetection_status_status) "Status of the Wait2 Edge Detection interrupt"; wait1edgedetection_status 1 rw type(wait1edgedetection_status_status) "Status of the Wait1 Edge Detection interrupt"; wait0edgedetection_status 1 rw type(wait0edgedetection_status_status) "Status of the Wait0 Edge Detection interrupt"; _ 6 mbz; terminalcountstatus 1 rw type(terminalcountstatus_status) "Status of the TerminalCountEvent interrupt"; fifoeventstatus 1 rw type(fifoeventstatus_status) "Status of the FIFOEvent interrupt"; }; constants wait2edgedetection_enable_status width(1) "" { WAIT2EDGEDETECTION_ENABLE_0 = 0 "Wait2EdgeDetection interrupt is masked"; WAIT2EDGEDETECTION_ENABLE_1 = 1 "Wait2EdgeDetection event generates an interrupt if occurs"; }; constants wait1edgedetection_enable_status width(1) "" { WAIT1EDGEDETECTION_ENABLE_0 = 0 "Wait1EdgeDetection interrupt is masked"; WAIT1EDGEDETECTION_ENABLE_1 = 1 "Wait1EdgeDetection event generates an interrupt if occurs"; }; constants wait0edgedetection_enable_status width(1) "" { WAIT0EDGEDETECTION_ENABLE_0 = 0 "Wait0EdgeDetection interrupt is masked"; WAIT0EDGEDETECTION_ENABLE_1 = 1 "Wait0EdgeDetection event generates an interrupt if occurs"; }; constants terminalcountevent_enable_status width(1) "" { TERMINALCOUNTEVENT_ENABLE_0 = 0 "TerminalCountEvent interrupt is masked"; TERMINALCOUNTEVENT_ENABLE_1 = 1 "TerminalCountEvent interrupt is not masked"; }; constants fifoeventenable_status width(1) "" { FIFOEVENTENABLE_0 = 0 "FIFOEvent interrupt is masked"; FIFOEVENTENABLE_1 = 1 "FIFOEvent interrupt is not masked"; }; register gpmc_irqenable addr(base, 0x1C) "The interrupt enable register allows to mask/unmask the module internal sources of interrupt, on a event-by-event basis." { _ 21 mbz; wait2edgedetection_enable 1 rw type(wait2edgedetection_enable_status) "Enables the Wait2 Edge Detection interrupt"; wait1edgedetection_enable 1 rw type(wait1edgedetection_enable_status) "Enables the Wait1 Edge Detection interrupt"; wait0edgedetection_enable 1 rw type(wait0edgedetection_enable_status) "Enables the Wait0 Edge Detection interrupt"; _ 6 mbz; terminalcountevent_enable 1 rw type(terminalcountevent_enable_status) "Enables TerminalCountEvent interrupt issuing in prefetch or write-posting mode"; fifoeventenable 1 rw type(fifoeventenable_status) "Enables the FIFOEvent interrupt"; }; constants timeoutenable_status width(1) "" { TIMEOUTENABLE_0 = 0 "TimeOut feature is disabled"; TIMEOUTENABLE_1 = 1 "TimeOut feature is enabled"; }; register gpmc_timeout_control addr(base, 0x40) "The register allows the user to set the start value of the timeout counter" { _ 19 mbz; timeoutstartvalue 9 rw "Start value of the time-out counter 0x000: Zero GPMC_FCLK cycle 0x001: One GPMC_FCLK cycle ... 0x1FF: 511 GPMC_FCLK cycles"; _ 3 mbz; timeoutenable 1 rw type(timeoutenable_status) "Enable bit of the TimeOut feature"; }; register gpmc_err_address addr(base, 0x44) "The register stores the address of the illegal access when an error occurs" { _ 1 mbz; illegaladd 31 ro "Address of illegal access A30: 0 for memory region, 1 for GPMC register region A29-A0: 1 GBytes max"; }; constants errornotsuppadd_status width(1) "" { ERRORNOTSUPPADD_0 = 0 "No error occurs"; ERRORNOTSUPPADD_1 = 1 "The error is due to a non supported Address"; }; constants errortimeout_status width(1) "" { ERRORTIMEOUT_0 = 0 "No error occurs"; ERRORTIMEOUT_1 = 1 "The error is due to a time out"; }; constants errorvalid_status width(1) "" { ERRORVALID_0 = 0 "All error fields no longer valid"; ERRORVALID_1 = 1 "Error detected and logged in the other error fields"; }; register gpmc_err_type addr(base, 0x48) "The register stores the type of error when an error occurs" { _ 21 mbz; illegalmcmd 3 ro "System Command of the transaction that caused the error"; _ 3 mbz; errornotsuppadd 1 ro type(errornotsuppadd_status) "Not supported Address error"; errornotsuppmcmd 1 ro type(errornotsuppadd_status) "Not supported Command error"; errortimeout 1 ro type(errortimeout_status) "Time-out error"; _ 1 mbz; errorvalid 1 rw type(errorvalid_status) "Error validity status - Must be explicitly cleared with a write 1 transaction"; }; constants wait2pinpolarity_status width(1) "" { WAIT2PINPOLARITY_0 = 0 "WAIT2 active low"; WAIT2PINPOLARITY_1 = 1 "WAIT2 active high"; }; constants wait1pinpolarity_status width(1) "" { WAIT1PINPOLARITY_0 = 0 "WAIT1 active low"; WAIT1PINPOLARITY_1 = 1 "WAIT1 active high"; }; constants wait0pinpolarity_status width(1) "" { WAIT0PINPOLARITY_0 = 0 "WAIT0 active low"; WAIT0PINPOLARITY_1 = 1 "WAIT0 active high"; }; constants writeprotect_status width(1) "" { WRITEPROTECT_0 = 0 "WP output pin is low"; WRITEPROTECT_1 = 1 "WP output pin is high"; }; constants limitedaddress_status width(1) "" { LIMITEDADDRESS_0 = 0 "No effect"; LIMITEDADDRESS_1 = 1 "A26-A11 are not modified during an external memory access."; }; constants nandforcepostedwrite_status width(1) "" { NANDFORCEPOSTEDWRITE_0 = 0 "Disables Force Posted Write"; NANDFORCEPOSTEDWRITE_1 = 1 "Enables Force Posted Write"; }; register gpmc_config addr(base, 0x50) "The configuration register allows global configuration of the GPMC" { _ 21 rsvd; wait2pinpolarity 1 rw type(wait2pinpolarity_status) "Selects the polarity of input pin WAIT2"; wait1pinpolarity 1 rw type(wait1pinpolarity_status) "Selects the polarity of input pin WAIT1"; wait0pinpolarity 1 rw type(wait0pinpolarity_status) "Selects the polarity of input pin WAIT0"; _ 3 mbz; writeprotect 1 rw type(writeprotect_status) "Controls the WP output pin level"; _ 2 mbz; limitedaddress 1 rw type(limitedaddress_status) "Limited Address device support"; nandforcepostedwrite 1 rw type(nandforcepostedwrite_status) "Enables the Force Posted Write feature to NAND Cmd/Add/Data location"; }; constants wait2status_status width(1) "" { WAIT2STATUS_0 = 0 "WAIT2 asserted (inactive state)"; WAIT2STATUS_1 = 1 "WAIT2 deasserted"; }; constants wait1status_status width(1) "" { WAIT1STATUS_0 = 0 "WAIT1 asserted (inactive state)"; WAIT1STATUS_1 = 1 "WAIT1 deasserted"; }; constants wait0status_status width(1) "" { WAIT0STATUS_0 = 0 "WAIT0 asserted (inactive state)"; WAIT0STATUS_1 = 1 "WAIT0 deasserted"; }; constants emptywritebufferstatus_status width(1) "" { EMPTYWRITEBUFFERSTATUS_0 = 0 "Write Buffer is not empty"; EMPTYWRITEBUFFERSTATUS_1 = 1 "Write Buffer is empty"; }; register gpmc_status addr(base, 0x54) "The status register provides global status bits of the GPMC" { _ 21 mbz; wait2status 1 ro type(wait2status_status) "Is a copy of input pin WAIT2. (Reset value is WAIT2 input pin sampled at IC reset)"; wait1status 1 ro type(wait1status_status) "Is a copy of input pin WAIT1. (Reset value is WAIT1 input pin sampled at IC reset)"; wait0status 1 ro type(wait0status_status) "Is a copy of input pin WAIT0. (Reset value is WAIT0 input pin sampled at IC reset)"; _ 7 mbz; emptywritebufferstatus 1 ro type(emptywritebufferstatus_status) "Stores the empty status of the write buffer"; }; constants wrapburst_status width(1) "" { WRAPBURST_0 = 0 "Synchronous wrapping burst not supported"; WRAPBURST_1 = 1 "Synchronous wrapping burst supported"; }; constants readmultiple_status width(1) "" { READMULTIPLE_0 = 0 "Single access"; READMULTIPLE_1 = 1 "Multiple access (burst if synchronous, page if asynchronous)"; }; constants readtype_status width(1) "" { READTYPE_0 = 0 "Read Asynchronous"; READTYPE_1 = 1 "Read Synchronous"; }; constants writetype_status width(1) "" { WRITETYPE_0 = 0 "Write Asynchronous"; WRITETYPE_1 = 1 "Write Synchronous"; }; constants clkactivationtime_status width(2) "" { CLKACTIVATIONTIME_0 = 0 "First rising edge of GPMC_CLK at start access time"; CLKACTIVATIONTIME_1 = 1 "First rising edge of GPMC_CLK one GPMC_FCLK cycle after start access time"; CLKACTIVATIONTIME_2 = 2 "First rising edge of GPMC_CLK two GPMC_FCLK cycles after start access time"; CLKACTIVATIONTIME_3 = 3 "Reserved"; }; constants attacheddevicepage_length_status width(2) "" { ATTACHEDDEVICEPAGE_LENGTH_0 = 0 "4 Words"; ATTACHEDDEVICEPAGE_LENGTH_1 = 1 "8 Words"; ATTACHEDDEVICEPAGE_LENGTH_2 = 2 "16 Words"; ATTACHEDDEVICEPAGE_LENGTH_3 = 3 "Reserved (1 Word = Interface size)"; }; constants waitreadmonitoring_status width(1) "" { WAITREADMONITORING_0 = 0 "Wait pin is not monitored for read accesses"; WAITREADMONITORING_1 = 1 "Wait pin is monitored for read accesses"; }; constants waitwritemonitoring_status width(1) "" { WAITWRITEMONITORING_0 = 0 "Wait pin is not monitored for write accesses"; WAITWRITEMONITORING_1 = 1 "Wait pin is monitored for write accesses"; }; constants waitmonitoringtime_status width(2) "" { WAITMONITORINGTIME_0 = 0 "Wait pin is monitored with valid data"; WAITMONITORINGTIME_1 = 1 "Wait pin is monitored one GPMC_CLK cycle before valid data"; WAITMONITORINGTIME_2 = 2 "Wait pin is monitored two GPMC_CLK cycle before valid data"; WAITMONITORINGTIME_3 = 3 "Reserved"; }; constants waitpinselect_status width(2) "" { WAITPINSELECT_0 = 0 "Wait input pin is WAIT0"; WAITPINSELECT_1 = 1 "Wait input pin is WAIT1"; WAITPINSELECT_2 = 2 "Wait input pin is WAIT2"; WAITPINSELECT_3 = 3 "Reserved"; }; constants devicesize_status width(2) "" { DEVICESIZE_0 = 0 "8 bit"; DEVICESIZE_1 = 1 "16 bit"; DEVICESIZE_2 = 2 "Reserved"; DEVICESIZE_3 = 3 "Reserved"; }; constants devicetype_status width(2) "" { DEVICETYPE_0 = 0 "NOR Flash like, asynchronous and synchronous devices"; DEVICETYPE_1 = 1 "Reserved"; DEVICETYPE_2 = 2 "NAND Flash like devices, stream mode"; DEVICETYPE_3 = 3 "Reserved"; }; constants muxadddata_status width(2) "" { MUXADDDATA_0 = 0 "Non-multiplexed attached device"; MUXADDDATA_1 = 1 "AAD-mux protocol device"; MUXADDDATA_2 = 2 "Address and data multiplexed attached device"; MUXADDDATA_3 = 3 "Reserved"; }; constants timeparagranularity_status width(1) "" { TIMEPARAGRANULARITY_0 = 0 "x1 latencies"; TIMEPARAGRANULARITY_1 = 1 "x2 latencies"; }; constants gpmcfclkdivider_status width(2) "" { GPMCFCLKDIVIDER_0 = 0 "GPMC_CLK frequency = GPMC_FCLK frequency"; GPMCFCLKDIVIDER_1 = 1 "GPMC_CLK frequency = GPMC_FCLK frequency / 2"; GPMCFCLKDIVIDER_2 = 2 "GPMC_CLK frequency = GPMC_FCLK frequency / 3"; GPMCFCLKDIVIDER_3 = 3 "GPMC_CLK frequency = GPMC_FCLK frequency /4"; }; register gpmc_config1_i_0 addr(base, 0x60) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; register gpmc_config1_i_1 addr(base, 0x90) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; register gpmc_config1_i_2 addr(base, 0xC0) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; register gpmc_config1_i_3 addr(base, 0xF0) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; register gpmc_config1_i_4 addr(base, 0x120) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; register gpmc_config1_i_5 addr(base, 0x150) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; register gpmc_config1_i_6 addr(base, 0x180) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; register gpmc_config1_i_7 addr(base, 0x1B0) "The configuration register 1 sets signal control parameters per chip-select" { wrapburst 1 rw type(wrapburst_status) "Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst"; readmultiple 1 rw type(readmultiple_status) "Selects the read single or multiple access"; readtype 1 rw type(readtype_status) "Selects the read mode operation"; writemultiple 1 rw type(readmultiple_status) "Selects the write single or multiple access"; writetype 1 rw type(writetype_status) "Selects the write mode operation"; clkactivationtime 2 rw type(clkactivationtime_status) "Output GPMC_CLK activation time"; attacheddevicepage_length 2 rw type(attacheddevicepage_length_status) "Specifies the attached device page (burst) length"; waitreadmonitoring 1 rw type(waitreadmonitoring_status) "Selects the Wait monitoring configuration for Read accesses (Reset value is input pin sampled at IC reset)"; waitwritemonitoring 1 rw type(waitwritemonitoring_status) "Selects the Wait monitoring configuration for Write accesses"; _ 1 mbz; waitmonitoringtime 2 rw type(waitmonitoringtime_status) "Selects input pin Wait monitoring time"; waitpinselect 2 rw type(waitpinselect_status) "Selects the input WAIT pin for this chip-select (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-7)"; _ 2 mbz; devicesize 2 rw type(devicesize_status) "Selects the device size attached (Reset value is input pin sampled at IC reset for CS0 and 0x1 for CS1 to CS7)"; devicetype 2 rw type(devicetype_status) "Selects the attached device type"; muxadddata 2 rw type(muxadddata_status) "Enables the address and data multiplexed protocol (Reset value is input pin sampled at IC reset for CS0 and 0 for CS1-CS7)"; _ 3 mbz; timeparagranularity 1 rw type(timeparagranularity_status) "Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS)"; _ 2 mbz; gpmcfclkdivider 2 rw type(gpmcfclkdivider_status) "Divides the GPMC_FCLK clock"; }; constants csextradelay_status width(1) "" { CSEXTRADELAY_0 = 0 "CS i Timing control signal is not delayed"; CSEXTRADELAY_1 = 1 "CS i Timing control signal is delayed of half GPMC_FCLK clock cycle"; }; register gpmc_config2_i_0 addr(base, 0x64) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config2_i_1 addr(base, 0x94) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config2_i_2 addr(base, 0xC4) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config2_i_3 addr(base, 0xF4) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config2_i_4 addr(base, 0x124) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config2_i_5 addr(base, 0x154) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config2_i_6 addr(base, 0x184) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config2_i_7 addr(base, 0x1B4) "CS signal timing parameter configuration" { _ 11 mbz; cswrofftime 5 rw "CS i de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; csrdofftime 5 rw "CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; csextradelay 1 rw type(csextradelay_status) "CS i Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; csontime 4 rw "CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; constants advextradelay_status width(1) "" { ADVEXTRADELAY_0 = 0 "nADV Timing control signal is not delayed"; ADVEXTRADELAY_1 = 1 "nADV Timing control signal is delayed of half GPMC_FCLK clock cycle"; }; register gpmc_config3_i_0 addr(base, 0x68) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config3_i_1 addr(base, 0x98) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config3_i_2 addr(base, 0xC8) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config3_i_3 addr(base, 0xF8) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config3_i_4 addr(base, 0x128) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config3_i_5 addr(base, 0x158) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config3_i_6 addr(base, 0x188) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config3_i_7 addr(base, 0x1B8) "nADV signal timing parameter configuration" { _ 1 mbz; advaadmuxwrofftime 3 rw "nADV de-assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 1 mbz; advaadmuxrdofftime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; _ 3 mbz; advwrofftime 5 rw "nADV de-assertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; advrdofftime 5 rw "nADV de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; advextradelay 1 rw type(advextradelay_status) "nADV Add Extra Half GPMC_FCLK cycle"; advaadmuxontime 3 rw "nADV assertion for first address phase when using the AAD-mux protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; advontime 4 rw "nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_0 addr(base, 0x6C) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_1 addr(base, 0x9C) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_2 addr(base, 0xCC) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_3 addr(base, 0xFC) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_4 addr(base, 0x12C) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_5 addr(base, 0x15C) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_6 addr(base, 0x18C) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config4_i_7 addr(base, 0x1BC) "nWE and nOE signals timing parameter configuration" { _ 3 rsvd; weofftime 5 rw "nWE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; weextradelay 1 rw type(advextradelay_status) "nWE Add Extra Half GPMC_FCLK cycle"; _ 3 mbz; weontime 4 rw "nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; oeaadmux_offtime 3 rw "nOE de-assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeofftime 5 rw "nOE de-assertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; oeextradelay 1 rw type(advextradelay_status) "nOE Add Extra Half GPMC_FCLK cycle"; oeaadmux_ontime 3 rw "nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; oeontime 4 rw "nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config5_i_0 addr(base, 0x70) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; register gpmc_config5_i_1 addr(base, 0xA0) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; register gpmc_config5_i_2 addr(base, 0xD0) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; register gpmc_config5_i_3 addr(base, 0x100) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; register gpmc_config5_i_4 addr(base, 0x130) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; register gpmc_config5_i_5 addr(base, 0x160) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; register gpmc_config5_i_6 addr(base, 0x190) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; register gpmc_config5_i_7 addr(base, 0x1C0) "RdAccessTime and CycleTime timing parameters configuration" { _ 4 mbz; pageburstaccesstime 4 rw "Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; _ 3 mbz; rdaccesstime 5 rw "Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; wrcycletime 5 rw "Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 3 mbz; rdcycletime 5 rw "Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; }; constants cycle2cyclesamecsen_status width(1) "" { CYCLE2CYCLESAMECSEN_0 = 0 "No delay between the two accesses"; CYCLE2CYCLESAMECSEN_1 = 1 "Add CYCLE2CYCLEDELAY"; }; register gpmc_config6_i_0 addr(base, 0x74) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config6_i_1 addr(base, 0xA4) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config6_i_2 addr(base, 0xD4) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config6_i_3 addr(base, 0x104) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config6_i_4 addr(base, 0x134) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config6_i_5 addr(base, 0x164) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config6_i_6 addr(base, 0x194) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; register gpmc_config6_i_7 addr(base, 0x1C4) "WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration" { _ 1 rsvd; _ 2 mbz; wraccesstime 5 rw "Delay from start access time to the GPMC_FCLK rising edge corresponding the the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles"; _ 4 mbz; wrdataonadmuxbus 4 rw "Specifies on which GPMC_FCLK rising edge the first data of the synchronous burst write is driven in the add/data mux bus"; _ 4 mbz; cycle2cycledelay 4 rw "Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; cycle2cyclesamecsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to the same CS (any access type)"; cycle2cyclediffcsen 1 rw type(cycle2cyclesamecsen_status) "Add CYCLE2CYCLEDELAY between successive accesses to a different CS (any access type)"; _ 2 mbz; busturnaround 4 rw "Bus turn around latency between successive accesses to the same CS (read to write) or to a different CS (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles"; }; constants csvalid_status width(1) "" { CSVALID_0 = 0 "CS disabled"; CSVALID_1 = 1 "CS enabled"; }; register gpmc_config7_i_0 addr(base, 0x78) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_config7_i_1 addr(base, 0xA8) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_config7_i_2 addr(base, 0xD8) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_config7_i_3 addr(base, 0x108) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_config7_i_4 addr(base, 0x138) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_config7_i_5 addr(base, 0x168) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_config7_i_6 addr(base, 0x198) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_config7_i_7 addr(base, 0x1C8) "CS address mapping configuration" { _ 20 mbz; maskaddress 4 rw "CS mask address. 0x1000: Chip-select size of 128 Mbytes 0x1100: Chip-select size of 64 Mbytes 0x1110: Chip-select size of 32 Mbytes 0x1111: Chip-select size of 16 Mbytes Other values must be avoided as they create holes in the chip-select address space."; _ 1 mbz; csvalid 1 rw type(csvalid_status) "CS enable"; baseaddress 6 rw "CSi base address where i = 0 to 7 (16M bytes minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See"; }; register gpmc_nand_command_i_0 wo addr(base, 0x7C) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_command_i_1 wo addr(base, 0xAC) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_command_i_2 wo addr(base, 0xDC) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_command_i_3 wo addr(base, 0x10C) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_command_i_4 wo addr(base, 0x13C) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_command_i_5 wo addr(base, 0x16C) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_command_i_6 wo addr(base, 0x19C) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_command_i_7 wo addr(base, 0x1CC) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_0 wo addr(base, 0x80) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_1 wo addr(base, 0xB0) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_2 wo addr(base, 0xE0) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_3 wo addr(base, 0x110) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_4 wo addr(base, 0x140) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_5 wo addr(base, 0x170) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_6 wo addr(base, 0x1A0) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_address_i_7 wo addr(base, 0x1D0) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_0 wo addr(base, 0x84) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_1 wo addr(base, 0xB4) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_2 wo addr(base, 0xE4) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_3 wo addr(base, 0x114) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_4 wo addr(base, 0x144) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_5 wo addr(base, 0x174) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_6 wo addr(base, 0x1A4) "This register is not a true register, just an address location." type(uint32); register gpmc_nand_data_i_7 wo addr(base, 0x1D4) "This register is not a true register, just an address location." type(uint32); constants enableoptimizedaccess_status width(1) "" { ENABLEOPTIMIZEDACCESS_0 = 0 "Access cycle optimization is disabled"; ENABLEOPTIMIZEDACCESS_1 = 1 "Access cycle optimization is enabled"; }; constants enableengine_status width(1) "" { ENABLEENGINE_0 = 0 "Prefetch Postwrite engine is disabled"; ENABLEENGINE_1 = 1 "Prefetch Postwrite engine is enabled"; }; constants waitpinselector_status width(2) "" { WAITPINSELECTOR_0 = 0 "Selects Wait0 EdgeDetection"; WAITPINSELECTOR_1 = 1 "Selects Wait1 EdgeDetection"; WAITPINSELECTOR_2 = 2 "Selects Wait2 EdgeDetection"; WAITPINSELECTOR_3 = 3 "Reserved"; }; constants synchromode_status width(1) "" { SYNCHROMODE_0 = 0 "Engine starts the access to CS as soon as STARTENGINE is set"; SYNCHROMODE_1 = 1 "Engine starts the access to CS as soon as STARTENGINE is set AND wait to non wait edge detection on the selected wait pin"; }; constants dmamode_status width(1) "" { DMAMODE_0 = 0 "Interrupt synchronization is enabled. Only interrupt line will be activated on FIFO threshold crossing."; DMAMODE_1 = 1 "DMA request synchronization is enabled. A DMA request protocol is used."; }; constants accessmode_status width(1) "" { ACCESSMODE_0 = 0 "Prefetch read mode"; ACCESSMODE_1 = 1 "Write-posting mode"; }; register gpmc_prefetch_config1 addr(base, 0x1E0) "Prefetch engine configuration 1" { _ 1 mbz; cycleoptimization 3 rw "Define the number of GPMC_FCLK cycles to be subtracted from RDCYCLETIME, WRCYCLETIME, ACCESSTIME, CSRDOFFTIME, CSWROFFTIME, ADVRDOFFTIME, ADVWROFFTIME, OEOFFTIME, WEOFFTIME 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles"; enableoptimizedaccess 1 rw type(enableoptimizedaccess_status) "Enables access cycle optimization"; enginecsselector 3 rw "Selects the CS where Prefetch Postwrite engine is active 0x0: CS0 0x1: CS1 0x2: CS2 0x3: CS3 0x4: CS4 0x5: CS5 0x6: CS6 0x7: CS7"; pfpwenroundrobin 1 rw type(waitwritemonitoring_status) "Enables the PFPW RoundRobin arbitration"; _ 3 mbz; pfpwweightedprio 4 rw "When an arbitration occurs between a DMA and a PFPW engine access, the DMA is always serviced. If the PFPWEnRoundRobin is enabled, 0x0: the next access is granted to the PFPW engine, 0x1: the two next accesses are granted to the PFPW engine, ..., 0xF: the 16 next accesses are granted to the PFPW engine."; _ 1 mbz; fifothreshold 7 rw "Selects the maximum number of bytes read from the FIFO or written to the FIFO by the host on a DMA or interrupt request 0x00: 0 byte 0x01: 1 byte ... 0x40: 64 bytes"; enableengine 1 rw type(enableengine_status) "Enables the Prefetch Postwite engine"; _ 1 mbz; waitpinselector 2 rw type(waitpinselector_status) "Select which wait pin edge detector should start the engine in synchronized mode"; synchromode 1 rw type(synchromode_status) "Selects when the engine starts the access to CS"; dmamode 1 rw type(dmamode_status) "Selects interrupt synchronization or DMA request synchronization"; _ 1 mbz; accessmode 1 rw type(accessmode_status) "Selects prefetch read or write-posting accesses"; }; register gpmc_prefetch_config2 addr(base, 0x1E4) "Prefetch engine configuration 2" { _ 18 mbz; transfercount 14 rw "Selects the number of bytes to be read or written by the engine to the selected CS 0x0000: 0 byte 0x0001: 1 byte ... 0x2000: 8 Kbytes"; }; constants startengine_status width(1) "" { STARTENGINE_0_r = 0 "Engine is stopped"; STARTENGINE_1_r = 1 "Engine is running"; }; register gpmc_prefetch_control addr(base, 0x1EC) "Prefetch engine control" { _ 31 mbz; startengine 1 rw type(startengine_status) "Resets the FIFO pointer and starts the engineWrite 0x0 stops the engine . Write 0x1 resets the FIFO pointer to 0x0 in prefetch mode and 0x40 in postwrite mode and starts the engine ."; }; register gpmc_prefetch_status addr(base, 0x1F0) "Prefetch engine status" { _ 1 mbz; fifopointer 7 ro "Number of available bytes to be read or number of free empty byte places to be written 0x00: 0 byte available to be read or 0 free empty place to be written ... 0x40: 64 bytes available to be read or 64 empty places to be written"; _ 7 mbz; fifothresholdstatus 1 ro type(waitwritemonitoring_status) "Set when FIFOPointer exceeds FIFOThreshold value"; _ 2 mbz; countvalue 14 ro "Number of remaining bytes to be read or to be written by the engine according to the TransferCount value 0x0000: 0 byte remaining to be read or to be written 0x0001: 1 byte remaining to be read or to be written ... 0x2000: 8 Kbytes remaining to be read or to be written"; }; constants eccalgorithm_status width(1) "" { ECCALGORITHM_0 = 0 "Hamming code"; ECCALGORITHM_1 = 1 "BCH code"; }; constants eccbchtsel_status width(2) "" { ECCBCHTSEL_0 = 0 "Up to 4 bits error correction (t = 4)"; ECCBCHTSEL_1 = 1 "Up to 8 bits error correction (t = 8)"; ECCBCHTSEL_2 = 2 "Up to 16 bits error correction (t = 16)"; ECCBCHTSEL_3 = 3 "Reserved"; }; constants ecc16b_status width(1) "" { ECC16B_0 = 0 "ECC calculated on 8 columns"; ECC16B_1 = 1 "ECC calculated on 16 columns"; }; constants ecccs_status width(3) "" { ECCCS_0 = 0 "Chip-select 0"; ECCCS_1 = 1 "Chip-select 1"; ECCCS_2 = 2 "Chip-select 2"; ECCCS_3 = 3 "Chip-select 3"; }; constants eccenable_status width(1) "" { ECCENABLE_0 = 0 "ECC disabled"; ECCENABLE_1 = 1 "ECC enabled"; }; register gpmc_ecc_config addr(base, 0x1F4) "ECC configuration" { _ 15 mbz; eccalgorithm 1 rw type(eccalgorithm_status) "ECC algorithm used"; _ 2 mbz; eccbchtsel 2 rw type(eccbchtsel_status) "Error correction capability used for BCH"; eccwrapmode 4 rw "Spare area organization definition for the BCH algorithm. See the BCH syndrome/parity calculator module functional specification for more details"; ecc16b 1 rw type(ecc16b_status) "Selects an ECC calculated on 16 columns"; ecctopsector 3 rw "Number of sectors to process with the BCH algorithm 0x0: 1 sector (512kB page) 0x1: 2 sectors ... 0x3: 4 sectors (2kB page) ... 0x7: 8 sectors (4kB page)"; ecccs 3 rw type(ecccs_status) "Selects the CS where ECC is computedOther: Reserved ."; eccenable 1 rw type(eccenable_status) "Enables the ECC feature"; }; constants eccpointer_status width(4) "" { ECCPOINTER_0 = 0 "Writing 0x0 disables the ECC engine (ECCENABLE bit of set to 0)"; ECCPOINTER_1 = 1 "ECC result register 1 selected"; ECCPOINTER_2 = 2 "ECC result register 2 selected"; ECCPOINTER_3 = 3 "ECC result register 3 selected"; ECCPOINTER_4 = 4 "ECC result register 4 selected"; ECCPOINTER_5 = 5 "ECC result register 5 selected"; ECCPOINTER_6 = 6 "ECC result register 6 selected"; ECCPOINTER_7 = 7 "ECC result register 7 selected"; ECCPOINTER_8 = 8 "ECC result register 8 selected"; ECCPOINTER_9 = 9 "ECC result register 9 selected"; }; register gpmc_ecc_control addr(base, 0x1F8) "ECC control" { _ 23 mbz; eccclear 1 rw "Clear all ECC result registers Reads returns 0 Write 0x1 to this field clear all ECC result registers Write 0x0 is ignored"; _ 4 mbz; eccpointer 4 rw type(eccpointer_status) "Selects ECC result register (Reads to this field give the dynamic position of the ECC pointer - Writes to this field select the ECC result register where the first ECC computation will be stored); Other enums: writing other values disables the ECC engine (ECCENABLE bit ofGPMC_ECC_CONFIG set to 0)"; }; constants ecc9resultsize_status width(1) "" { ECC9RESULTSIZE_0 = 0 "ECCSIZE0 selected"; ECC9RESULTSIZE_1 = 1 "ECCSIZE1 selected"; }; register gpmc_ecc_size_config addr(base, 0x1FC) "ECC size" { _ 2 mbz; eccsize1 8 rw "Defines Hamming code ECC size 1 in bytes 0x00: 2 Bytes 0x01: 4 Bytes 0x02: 6 Bytes 0x03: 8 Bytes ... 0xFF: 512 Bytes For BCH code ECC, the size 1 is programmed directly with the number of nibbles (see , )."; _ 2 mbz; eccsize0 8 rw "Defines Hamming code ECC size 0 in bytes 0x00: 2 Bytes 0x01: 4 Bytes 0x02: 6 Bytes 0x03: 8 Bytes ... 0xFF: 512 Bytes For BCH code ECC, the size 0 is programmed directly with the number of nibbles (see , )."; _ 3 mbz; ecc9resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 9 result register"; ecc8resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 8 result register"; ecc7resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 7 result register"; ecc6resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 6 result register"; ecc5resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 5 result register"; ecc4resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 4 result register"; ecc3resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 3 result register"; ecc2resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 2 result register"; ecc1resultsize 1 rw type(ecc9resultsize_status) "Selects ECC size for ECC 1 result register"; }; register gpmc_eccj_result_0 addr(base, 0x200) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_1 addr(base, 0x204) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_2 addr(base, 0x208) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_3 addr(base, 0x20C) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_4 addr(base, 0x210) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_5 addr(base, 0x214) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_6 addr(base, 0x218) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_7 addr(base, 0x21C) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_eccj_result_8 addr(base, 0x220) "ECC result register" { _ 4 mbz; p2048o 1 ro "Odd row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024o 1 ro "Odd row parity bit 1024"; p512o 1 ro "Odd row parity bit 512"; p256o 1 ro "Odd row parity bit 256"; p128o 1 ro "Odd row parity bit 128"; p64o 1 ro "Odd row parity bit 64"; p32o 1 ro "Odd row parity bit 32"; p16o 1 ro "Odd row parity bit 16"; p8o 1 ro "Odd row parity bit 8"; p4o 1 ro "Odd Column Parity bit 4"; p2o 1 ro "Odd Column Parity bit 2"; p1o 1 ro "Odd Column Parity bit 1"; _ 4 mbz; p2048e 1 ro "Even row parity bit 2048, only used for ECC computed on 512 Bytes"; p1024e 1 ro "Even row parity bit 1024"; p512e 1 ro "Even row parity bit 512"; p256e 1 ro "Even row parity bit 256"; p128e 1 ro "Even row parity bit 128"; p64e 1 ro "Even row parity bit 64"; p32e 1 ro "Even row parity bit 32"; p16e 1 ro "Even row parity bit 16"; p8e 1 ro "Even row parity bit 8"; p4e 1 ro "Even column parity bit 4"; p2e 1 ro "Even column parity bit 2"; p1e 1 ro "Even column parity bit 1"; }; register gpmc_bch_result0_i_0 rw addr(base, 0x240) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result0_i_1 rw addr(base, 0x250) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result0_i_2 rw addr(base, 0x260) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result0_i_3 rw addr(base, 0x270) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result0_i_4 rw addr(base, 0x280) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result0_i_5 rw addr(base, 0x290) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result0_i_6 rw addr(base, 0x2A0) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result0_i_7 rw addr(base, 0x2B0) "BCH ECC result (bits 0 to 31)" type(uint32); register gpmc_bch_result1_i_0 rw addr(base, 0x244) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result1_i_1 rw addr(base, 0x254) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result1_i_2 rw addr(base, 0x264) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result1_i_3 rw addr(base, 0x274) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result1_i_4 rw addr(base, 0x284) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result1_i_5 rw addr(base, 0x294) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result1_i_6 rw addr(base, 0x2A4) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result1_i_7 rw addr(base, 0x2B4) "BCH ECC result (bits 32 to 63)" type(uint32); register gpmc_bch_result2_i_0 rw addr(base, 0x248) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result2_i_1 rw addr(base, 0x258) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result2_i_2 rw addr(base, 0x268) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result2_i_3 rw addr(base, 0x278) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result2_i_4 rw addr(base, 0x288) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result2_i_5 rw addr(base, 0x298) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result2_i_6 rw addr(base, 0x2A8) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result2_i_7 rw addr(base, 0x2B8) "BCH ECC result (bits 64 to 95)" type(uint32); register gpmc_bch_result3_i_0 rw addr(base, 0x24C) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_result3_i_1 rw addr(base, 0x25C) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_result3_i_2 rw addr(base, 0x26C) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_result3_i_3 rw addr(base, 0x27C) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_result3_i_4 rw addr(base, 0x28C) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_result3_i_5 rw addr(base, 0x29C) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_result3_i_6 rw addr(base, 0x2AC) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_result3_i_7 rw addr(base, 0x2BC) "BCH ECC result (bits 96 to 127)" type(uint32); register gpmc_bch_swdata addr(base, 0x2D0) "This register is used to directly pass data to the BCH ECC calculator without accessing the actual NAND flash interface." { _ 16 mbz; bch_data 16 rw "Data to be included in the BCH calculation. Only bits 0 to 7 are taken into account if the calculator is configured to use 8 bits data (GPMC_ECC_CONFIG[7] ECC16B = 0)"; }; register gpmc_bch_result4_i_0 rw addr(base, 0x300) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result4_i_1 rw addr(base, 0x310) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result4_i_2 rw addr(base, 0x320) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result4_i_3 rw addr(base, 0x330) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result4_i_4 rw addr(base, 0x340) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result4_i_5 rw addr(base, 0x350) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result4_i_6 rw addr(base, 0x360) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result4_i_7 rw addr(base, 0x370) "BCH ECC result (bits 128 to 159)" type(uint32); register gpmc_bch_result5_i_0 rw addr(base, 0x304) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result5_i_1 rw addr(base, 0x314) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result5_i_2 rw addr(base, 0x324) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result5_i_3 rw addr(base, 0x334) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result5_i_4 rw addr(base, 0x344) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result5_i_5 rw addr(base, 0x354) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result5_i_6 rw addr(base, 0x364) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result5_i_7 rw addr(base, 0x374) "BCH ECC result (bits 160 to 191)" type(uint32); register gpmc_bch_result6_i_0 addr(base, 0x308) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; register gpmc_bch_result6_i_1 addr(base, 0x318) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; register gpmc_bch_result6_i_2 addr(base, 0x328) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; register gpmc_bch_result6_i_3 addr(base, 0x338) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; register gpmc_bch_result6_i_4 addr(base, 0x348) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; register gpmc_bch_result6_i_5 addr(base, 0x358) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; register gpmc_bch_result6_i_6 addr(base, 0x368) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; register gpmc_bch_result6_i_7 addr(base, 0x378) "BCH ECC result (bits 192 to 207)" { _ 16 mbz; bch_result_6 16 rw "BCH ECC result (bits 192 to 207)"; }; };