[PATCH 0/5] [GSoC - x86_64] Add interrupts and clock driver

Amaan Cheval amaan.cheval at gmail.com
Mon Aug 13 11:27:19 UTC 2018


This patch series includes all of my remaining work so far on the x86_64 BSP. It
supports:

* Static paging support using 1GiB superpages
* RTEMS interrupts
* A fairly accurate clock driver based on the APIC timer calibrated by the PIT

ticker.exe passes reliably on -O0 optimization level, and it seems like it
_should_ on -O2 as well, except for the issue I've been describing on this
thread:

https://lists.rtems.org/pipermail/devel/2018-August/022825.html

 bsps/x86_64/amd64/clock/clock.c               | 299 ++++++++++++++++++
 bsps/x86_64/amd64/config/amd64.cfg            |   3 +
 bsps/x86_64/amd64/headers.am                  |   3 +
 bsps/x86_64/amd64/include/apic.h              |  62 ++++
 bsps/x86_64/amd64/include/clock.h             |  99 ++++++
 bsps/x86_64/amd64/include/pic.h               |  75 +++++
 bsps/x86_64/amd64/interrupts/idt.c            | 151 +++++++++
 bsps/x86_64/amd64/interrupts/isr_handler.S    | 191 +++++++++++
 bsps/x86_64/amd64/interrupts/pic.c            |  76 +++++
 bsps/x86_64/amd64/start/bspstart.c            |   4 +
 bsps/x86_64/amd64/start/linkcmds              |   6 +-
 bsps/x86_64/amd64/start/page.c                | 172 ++++++++++
 bsps/x86_64/headers.am                        |   9 +
 bsps/x86_64/include/bsp/irq.h                 |  46 +++
 bsps/x86_64/include/libcpu/page.h             |  68 ++++
 c/src/lib/libbsp/x86_64/amd64/Makefile.am     |   9 +-
 cpukit/score/cpu/x86_64/cpu.c                 |  17 +-
 cpukit/score/cpu/x86_64/headers.am            |   2 +
 cpukit/score/cpu/x86_64/include/rtems/asm.h   |  10 +
 .../cpu/x86_64/include/rtems/score/cpu.h      | 112 +++++--
 .../cpu/x86_64/include/rtems/score/cpu_asm.h  | 104 ++++++
 .../cpu/x86_64/include/rtems/score/cpuimpl.h  |  16 +-
 .../cpu/x86_64/include/rtems/score/idt.h      | 131 ++++++++
 .../cpu/x86_64/include/rtems/score/x86_64.h   |  13 +-
 .../cpu/x86_64/x86_64-context-initialize.c    |   9 +-
 .../score/cpu/x86_64/x86_64-context-switch.S  |   8 +-
 26 files changed, 1636 insertions(+), 59 deletions(-)
 create mode 100644 bsps/x86_64/amd64/clock/clock.c
 create mode 100644 bsps/x86_64/amd64/include/apic.h
 create mode 100644 bsps/x86_64/amd64/include/clock.h
 create mode 100644 bsps/x86_64/amd64/include/pic.h
 create mode 100644 bsps/x86_64/amd64/interrupts/idt.c
 create mode 100644 bsps/x86_64/amd64/interrupts/isr_handler.S
 create mode 100644 bsps/x86_64/amd64/interrupts/pic.c
 create mode 100644 bsps/x86_64/amd64/start/page.c
 create mode 100644 bsps/x86_64/headers.am
 create mode 100644 bsps/x86_64/include/bsp/irq.h
 create mode 100644 bsps/x86_64/include/libcpu/page.h
 create mode 100644 cpukit/score/cpu/x86_64/include/rtems/score/cpu_asm.h
 create mode 100644 cpukit/score/cpu/x86_64/include/rtems/score/idt.h

-- 
2.18.0



More information about the devel mailing list