| cpu: CPU.CortexM @ sysbus |
| cpuType: "cortex-m4f" |
| nvic: nvic |
| |
| nvic: IRQControllers.NVIC @ sysbus 0xE000E000 |
| -> cpu@0 |
| |
| dwt: Miscellaneous.DWT @ sysbus 0xE0001000 |
| frequency: 72000000 |
| |
| rom: Memory.MappedMemory @ sysbus 0x00000000 |
| size: 0x10000 |
| |
| code_ram: Memory.MappedMemory @ { |
| sysbus 0x10058000; |
| sysbus 0x20058000 |
| } |
| size: 0x68000 |
| |
| data_ram: Memory.MappedMemory @ { |
| sysbus 0x200C0000; |
| sysbus 0x100C0000 |
| } |
| size: 0x17800 |
| |
| battery_backed_ram: Memory.MappedMemory @ sysbus 0x400AF000 |
| // Size should be 0x40 |
| size: 0x400 |
| |
| internal_flash: Memory.MappedMemory @ sysbus 0x64000000 |
| size: 0x100000 |
| |
| nvicIrq33: Miscellaneous.CombinedInput @ none |
| numberOfInputs: 2 |
| -> nvic@33 |
| |
| nvicIrq32: Miscellaneous.CombinedInput @ none |
| numberOfInputs: 2 |
| -> nvic@32 |
| |
| nvicIrq38: Miscellaneous.CombinedInput @ none |
| numberOfInputs: 2 |
| -> nvic@38 |
| |
| nvicIrq39: Miscellaneous.CombinedInput @ none |
| numberOfInputs: 2 |
| -> nvic@39 |
| |
| cr_uart1: UART.NPCX_UART @ sysbus 0x400E0000 |
| IRQ -> nvicIrq33@0 |
| DMAReceive -> mdma1@0 |
| |
| cr_uart2: UART.NPCX_UART @ sysbus 0x400E2000 |
| IRQ -> nvicIrq32@0 |
| DMAReceive -> mdma2@0 |
| |
| cr_uart3: UART.NPCX_UART @ sysbus 0x400E4000 |
| IRQ -> nvicIrq38@0 |
| DMAReceive -> mdma3@0 |
| |
| cr_uart4: UART.NPCX_UART @ sysbus 0x400E6000 |
| IRQ -> nvicIrq39@0 |
| DMAReceive -> mdma4@0 |
| |
| itim32_1: Timers.NPCX_ITIM32 @ sysbus 0x400B0000 |
| -> nvic@28 |
| |
| itim32_2: Timers.NPCX_ITIM32 @ sysbus 0x400B2000 |
| -> nvic@27 |
| |
| itim32_3: Timers.NPCX_ITIM32 @ sysbus 0x400B4000 |
| -> nvic@17 |
| |
| itim32_4: Timers.NPCX_ITIM32 @ sysbus 0x400B6000 |
| -> nvic@43 |
| |
| itim32_5: Timers.NPCX_ITIM32 @ sysbus 0x400B8000 |
| -> nvic@44 |
| |
| itim32_6: Timers.NPCX_ITIM32 @ sysbus 0x400BA000 |
| -> nvic@45 |
| |
| image_type: Memory.ArrayMemory @ sysbus 0x4000C009 |
| size: 0x1 |
| |
| twd: Timers.NPCX_TWD @ sysbus 0x400D8000 |
| -> nvic@31 |
| |
| mtc: Timers.NPCX_MTC @ sysbus 0x400B7000 |
| -> nvic@5 |
| |
| mdma1: DMA.NPCX_MDMA @ sysbus 0x40011100 |
| sourceAddress: 0x400E0002 |
| destinationAddress: 0x400E0000 |
| -> nvicIrq33@1 |
| |
| mdma2: DMA.NPCX_MDMA @ sysbus 0x40011200 |
| sourceAddress: 0x400E2002 |
| destinationAddress: 0x400E2000 |
| -> nvicIrq32@1 |
| |
| mdma3: DMA.NPCX_MDMA @ sysbus 0x40011300 |
| sourceAddress: 0x400E4002 |
| destinationAddress: 0x400E4000 |
| -> nvicIrq38@1 |
| |
| mdma4: DMA.NPCX_MDMA @ sysbus 0x40011400 |
| sourceAddress: 0x400E6002 |
| destinationAddress: 0x400E6000 |
| -> nvicIrq39@1 |
| |
| mdma5: DMA.NPCX_MDMA @ sysbus 0x40011500 |
| // For MDMA5 the source and destination addresses can be different |
| // based on the state of `I3C_MS` flag in the `DEV_CTL3` register |
| // of the System Configuration peripheral. |
| // This is currently not implemented. |
| sourceAddress: 0x400E00C0 |
| destinationAddress: 0x400E00B0 |
| |
| spip: SPI.NPCX_SPIP @ sysbus 0x400D2000 |
| |
| lfcg: Miscellaneous.NPCX_LFCG @ sysbus 0x400B5100 |
| |
| hfcg: Miscellaneous.NPCX_HFCG @ sysbus 0x400B5000 |
| |
| fiu: SPI.NPCX_FIU @ sysbus 0x40020000 |
| |
| internal_flash_controller: SPI.NPCX_Flash @ fiu |
| memory: internal_flash |
| |
| gpio0: GPIOPort.NPCX_GPIO @ sysbus 0x40081000 |
| |
| gpio1: GPIOPort.NPCX_GPIO @ sysbus 0x40083000 |
| |
| gpio2: GPIOPort.NPCX_GPIO @ sysbus 0x40085000 |
| |
| gpio3: GPIOPort.NPCX_GPIO @ sysbus 0x40087000 |
| |
| gpio4: GPIOPort.NPCX_GPIO @ sysbus 0x40089000 |
| |
| gpio5: GPIOPort.NPCX_GPIO @ sysbus 0x4008B000 |
| |
| gpio6: GPIOPort.NPCX_GPIO @ sysbus 0x4008D000 |
| |
| gpio7: GPIOPort.NPCX_GPIO @ sysbus 0x4008F000 |
| |
| gpio8: GPIOPort.NPCX_GPIO @ sysbus 0x40091000 |
| |
| gpio9: GPIOPort.NPCX_GPIO @ sysbus 0x40093000 |
| |
| gpioa: GPIOPort.NPCX_GPIO @ sysbus 0x40095000 |
| |
| gpiob: GPIOPort.NPCX_GPIO @ sysbus 0x40097000 |
| |
| gpioc: GPIOPort.NPCX_GPIO @ sysbus 0x40099000 |
| |
| gpiod: GPIOPort.NPCX_GPIO @ sysbus 0x4009B000 |
| |
| gpioe: GPIOPort.NPCX_GPIO @ sysbus 0x4009D000 |
| |
| gpiof: GPIOPort.NPCX_GPIO @ sysbus 0x4009F000 |
| |
| // DEV_CTL4 register from the System Configuration peripheral |
| // Its `Write-Protect Internal Flash` bit is used to force |
| // write protection of the internal flash |
| DEV_CTL4: Python.PythonPeripheral @ sysbus 0x400C3006 |
| size: 0x1 |
| initable: true |
| script: ''' |
| if request.isInit: |
| value = 0xA |
| is_locked = False |
| WRITE_PROTECTION = (1 << 5) |
| |
| elif request.isRead: |
| request.value = value |
| |
| elif request.isWrite: |
| if is_locked: |
| request.value |= WRITE_PROTECTION |
| elif request.value & WRITE_PROTECTION: |
| is_locked = True |
| # This signal (WP) is active-low |
| self.GetMachine()["sysbus.fiu.internal_flash_controller"].OnGPIO(0, False) |
| value = request.value |
| |
| value = request.value |
| ''' |
| |
| sysbus: |
| init: |
| // Script contains implementation for select bootrom functions |
| // that on hardware would be present in board's read-only memory |
| Machine ExecutePythonFromFile @scripts/pydev/nuvoton_npcx9_bootrom.py |
| |
| Tag <0x400C3000 0x400> "System Configuration" |
| Tag <0x400F8000 0x400> "FLM" |
| Tag <0x40011000 0x100> "GDMA" |
| Tag <0x400BB000 0x100> "MIWU0" |
| Tag <0x400BD000 0x100> "MIWU1" |
| Tag <0x400BF000 0x100> "MIWU2" |
| Tag <0x400A3000 0x100> "Keyboard scan" |
| Tag <0x400A5000 0x100> "System Glue Functions" |
| Tag <0x400B1000 0x100> "PS/2" |
| Tag <0x400E1000 0x100> "MTF16-1" |
| Tag <0x400E3000 0x100> "MTF16-2" |
| Tag <0x400E5000 0x100> "MTF16-3" |
| Tag <0x400BE000 0x100> "ITIM64" |
| Tag <0x400D7000 0x100> "LTC" |
| Tag <0x40080000 0x100> "PWM0" |
| Tag <0x40082000 0x100> "PWM1" |
| Tag <0x40084000 0x100> "PWM2" |
| Tag <0x40086000 0x100> "PWM3" |
| Tag <0x40088000 0x100> "PWM4" |
| Tag <0x4008A000 0x100> "PWM5" |
| Tag <0x4008C000 0x100> "PWM6" |
| Tag <0x4008E000 0x100> "PWM7" |
| Tag <0x400D1000 0x100> "ADC" |
| Tag <0x40009000 0x100> "SMBUS0" |
| Tag <0x4000B000 0x100> "SMBUS1" |
| Tag <0x400C0000 0x100> "SMBUS2" |
| Tag <0x400C2000 0x100> "SMBUS3" |
| Tag <0x40008000 0x100> "SMBUS4" |
| Tag <0x40017000 0x100> "SMBUS5" |
| Tag <0x40018000 0x100> "SMBUS6" |
| Tag <0x40019000 0x100> "SMBUS7" |
| Tag <0x400D4000 0x100> "PECI" |
| Tag <0x4000F000 0x200> "SHI" |
| Tag <0x400AF100 0x100> "BBRM" |
| Tag <0x4000C000 0x100> "MDC" |
| Tag <0x40007000 0x100> "OTPI" |
| Tag <0x4000D000 0x100> "PMC" |
| Tag <0x400C3000 0x100> "Debugger Interface" |
| Tag <0x400C7000 0x100> "Keyboard and Mouse Interface" |
| Tag <0x400C9000 0x100> "PM1" |
| Tag <0x400CB000 0x100> "PM2" |
| Tag <0x400CD000 0x100> "PM3" |
| Tag <0x400CF000 0x100> "PM4" |
| Tag <0x4000E000 0x100> "Host Modules" |
| Tag <0x40010000 0x80> "SHM" |
| Tag <0x40010080 0x80> "eSHM" |
| Tag <0x400C1000 0x100> "MSWC" |
| Tag <0x4000A000 0x100> "eSPI_SIF" |