Skip to content
Stafford Horne edited this page Dec 17, 2016 · 20 revisions

This page is an attempt to classify the openrisc linux commit sets into feature branches which can be packaged up and submitted upstream for review and pull requests. These commits are from running a rebase onto linus's mainline from a copy my openrisc branch.

git checkout openrisc
git checkout -b openrisc-4.8   # make a copy
git rebase -i v4.8-rc6         # rebase onto linus's

Branches

Below are the proposed branched to split different features to these out to. I have done core as a POC which is currently stored at my branch openrisc-core-4.8.

openrisc-next (4.11)


openrisc-smp1

Initial SMP support, published by stefan https://lkml.org/lkml/2014/7/23/657

pick 8e34abc openrisc: add Kconfig for l.lwa and l.swa atomic instructions
pick d0056a7 openrisc: add atomic bitops
pick 93fd0ce openrisc: add cmpxchg and xchg implementations
pick 8990060 openrisc: add atomic operations implementations
pick b8a2b05 openrisc: include l.swa in check for write data pagefault
pick 9fdef15 openrisc: add futex_atomic_* implementations
pick 683734b openrisc: add simple_smp example dts file
pick 3be988f openrisc: initial SMP support

pick 30c1eac openrisc: make cpuinfo per-cpu specific                      # needs spi here
pick 456953a openrisc: time: make timers work with smp                    # conflict with upstream 00c5a0acd11ec157585d290469b6c82ddd816663
pick 4223095 openrisc: add example .dts for sockit-multicore fusesoc SoC
pick 54d6703 openrisc: add l.lwa/l.swa emulation            # added as per Alan's response

openrisc-core

These are changes that should go later

pick ab086d8 openrisc: use Spick 456953a openrisc: time: make timers work with smp                    # conflict with upstream 00c5a0acd11ec157585d290469b6c82ddd816663PARSE_IRQ
pick eb76d80 Addpick 54d6703 openrisc: add l.lwa/l.swa emulation            # added as per Alan's response IO primitives for Wishbone bus
pick 7e54f5e openrisc: add CONFIG_WISHBONE_BUS_BIG_ENDIAN
pick ce81986 openrisc: add cache way information to cpuinfo            # had confick with upstream cleanup
pick c352343 openrisc: tlb miss handler optimizations
pick 88f85ab openrisc: head: use THREAD_SIZE instead of magic constant
# pick e3bfea5 openrisc: Add thread-local storage (TLS) support
# pick 4a54d6f openrisc: copy thread pointer from userregs
# pick 7fd8a8d openrisc: irq: use irqchip framework                     # obsolete upstream fixes
pick 3396c43 openrisc: use "scratch sprs" to save regs on exception
# SMP support https://lkml.org/lkml/2014/7/23/657
# pick 9d56863 openrisc: add Kconfig for l.lwa and l.swa atomic instructions
# pick c098213 openrisc: add atomic bitops
# pick e66689f openrisc: add cmpxchg and xchg implementations
# pick 59957c3 openrisc: add optimized atomic operations
pick 0eb877f openrisc: add spinlock implementation
pick cbc434f openrisc: head: refactor out tlb flush into its own function
pick c5778e7 openrisc: select GENERIC_SMP_IDLE_THREAD
pick 03f6ab9 openrisc: spr_defs: add SPR_COREID and SPR_NUMCORES
# intial SMP
# pick 683734b openrisc: add simple_smp example dts file
# pick 3be988f openrisc: initial SMP support
pick 425d203 openrisc: create a current_pgd for each cpu
pick b237342 openrisc/smp: implement IPI
pick c4737e6 openrisc/smp: initialize current_pgd in __cpu_up
pick 5eae41e openrisc: add smp tlb flush functionality
pick 5cfad06 openrisc/head: load r10 from per-cpu current_thread_info_set
## new ompic driver
pick bbbd73a irqchip: add initial support for ompic
pick 9b1b0ba openrisc: select OMPIC
pick 1da082c openrisc: enable caches on secondary cpus
# pick a966c95 openrisc: include l.swa in check for write data pagefault
# pick d863b06 openrisc: add futex_atomic_* implementations
pick 7255e4d openrisc: remove unnecessary stddef.h include
pick fdfdd3b openrisc: add musl_defconfig
pick f2eb703 openrisc: remove SPR_ISR* scratch reg hack
pick 3fdc19a openrisc: improve description of OPENRISC_HAVE_SHADOW_GPRS
## DUPLICATE b8801af
# pick 8ccf367 openrisc: set OUTPUT_FORMAT to elf32-or1k
# pick 8e34abc openrisc: add Kconfig for l.lwa and l.swa atomic instructions
# pick d0056a7 openrisc: add atomic bitops
# pick 93fd0ce openrisc: add cmpxchg and xchg implementations
# pick 8990060 openrisc: add atomic operations implementations
# pick b8a2b05 openrisc: include l.swa in check for write data pagefault
# pick 9fdef15 openrisc: add futex_atomic_* implementations
pick e26e5b5 irqchip/ompic: increase number of retries
pick 4330140 irqchip/ompic: use irqsave spinlock
# pick 441f8c8 openrisc: Support both old (or32) and new (or1k) toolchain # moved to fixes queue
pick 0f44297 openrisc: Fix the bitmask for the unit present register      # requested by Sebastian Macke
pick ab7c034 openrisc: Initial support for the idle state                 # requested by Sebastian Macke
pick e26afc3 openrisc: add some missing spr registers
# pick 30c1eac openrisc: make cpuinfo per-cpu specific                      # needs spi here
# pick ca0b6ff openrisc: remove local max_low_pfn in setup_arch           # absorbed in shorne memblock changes
# pick 456953a openrisc: time: make timers work with smp                    # conflict with upstream 00c5a0acd11ec157585d290469b6c82ddd816663
pick 431fbb2 openrisc: delay: use get_cycles() instead of reading the raw timer
pick 0f977eb openrisc: smp: init clockevent on secondary cpus
# pick 4223095 openrisc: add example .dts for sockit-multicore fusesoc SoC
# pick 54d6703 openrisc: add l.lwa/l.swa emulation
pick a728fc8 openrisc: Add optimized memset
# pick 8b8e1f8 openrisc/time: Migrate to new 'set-state' interface       # already upstream
pick 2802d43 openrisc: do not clobber r25 when checking COREID
pick a0876b0e openrisc: default to no-compression initramfs (part deux)
pick e2a49b5 Need not flush dcaches on every core.
pick a8d9fd2 Need to also flush caches in copy_to_user_page API.

openrisc-support

These commits are just for maintaining todo+readme + initramfs + busybox binaries which should not go into the mainline. I think it would be better to maintain this as a separate project which could be symlinked in during build.

pick a87e274 add README.openrisc and TODO.openrisc
pick cc2f18d openrisc: add initramfs
pick aa95da6 openrisc: add or1ksim config
pick 93e02cc not for upstream: add initramfs path
pick db34795 openrisc: update initramfs
pick 1d5fcfb openrisc: add dynamic libs to initramfs
pick e56b2bd or1k: update busybox+libs in initramfs and add missing .so files

openrisc-shorne

My local stuff, need to sort

pick 454d381 openrisc: Add git ignore for .lds files
pick a603aa7 openrisc: de0_nano: update dts to use i2c ip-clock-frequency
pick eb6b230 openrisc: Add optimized memcpy routine
pick 687ee7a openrisc: Remove rcS command which enables eth0 by default
pick b62b8ba openrisc: Kconfig: move write through option into platform
pick 88bd081 openrisc: update default de0 nano config
# pick 7c4d6d9 openrisc: Updates after openrisc.net has been lost      # moved to fixes
pick 0a283df openrisc: Ensure we export memcpy
# pick 8fb5ec7 openrisc: Add stefan to maintainers                     # moved to fixes
pick 0bf2ac0 openrisc: Discard unused memcpy routines
# pick 8b6aa7a openrisc: Consolidate setup to use memblock instead of bootmem # ok from jonas moved to fixes
pick ae5aa2b openrisc: kconfig: Allow compiling openrisc with frame pointers
pick 63fa13d openrisc: scripts: Add a util to annotate bare stack traces
pick 227663c openrisc: scripts: Allow for annotating method trace
pick fbb1dea openrisc: scripts: Add some more functionality to stack annotator
pick c9ca144 openrisc: annotate: chomp lines in case of bad paste

openrisc Drivers

Separated out since its a bit more work to review. Items marked for New are newly created for openrisc but not yet upstream.

oc-spi

New smp does depend on this, so move to core?

pick 12254b1 Add spi_opencores driver
pick 9160a98 spi_opencores: use RFEMPTY to determine end of transaction
pick 2006df5 spi_opencores: include cpuinfo.h
pick d29ed393 spi_opencores: reset SPI controller in ocspi_reset
pick d740deb spi: spi_opencores is for OpenRISC arch only
pick 5c845ed spi/spi_opencores: rename to spi-oc-simple
pick 201bce8 spi/spi-oc-simple: update driver names in file header
pick 9023824 spi/spi-oc-simple: remove __devinit, __devexit, __init and __exit
pick b7ccab7 spi/spi-oc-simple: include module.h
pick 1461453 spi/spi-oc-simple: whitespace and format cleanup
pick 191c8b3 spi/spi-oc-simple: remove dead and commented out code
pick 70d3902 spi/spi-oc-simple: remove unused variables
pick 8c3f463 spi/spi-oc-simple: use the SPI framework queue
pick 20f26f2 spi/spi-oc-simple: use platform_{get, set}_drvdata()
pick f8b0e0b spi/spi-oc-simple: use module_platform_driver to register driver
pick accd1fd spi/spi-oc-simple: Fix cpuinfo usage

oc-gpio (jbtrivial)

New gpio driver, needs some work, probably renamed to oc-gpio or something?

pick aca5566 GPIO support w/ jbtrivial driver
pick d698bf6 jbtrivial: Add missing #include <linux/module.h>
pick 6458da9 jbtrivial: fix data direction inversed logic bug

oc-ps2

New ps2 driver, nothing seems out of place with this

pick 8ba9a10 input/serio: Add OpenCores PS/2 core driver
pick 74960bb serio/opencores_ps2: include platform_device.h

scet

New character device

pick 2b8c3eb scet: Character driver SCET device
pick 3f734ce scet: Rework driver init and probing
pick d53445b scet: Cleanups and debug output

ohs900

New usb controller

pick 46a5caf BLOB: From Adam - USB host
pick 9e8bbba USB OHS bits... what is this?
pick 70ccaa3 ohs900: Rename ohs900.h to ohs900-hcd.h
pick ab705c9 ohs: move platform registration out of driver
pick 7435a8f ohs900: Clean upp debug printouts.
pick 5ce948f ohs900: device tree support
pick e504fac Run Lindent on ohs900 files
pick b182cd6 ohs900: Remove unused function
pick dc1b7d3 ohs900: Use standard debugging routines
pick a5233eb ohs900: clean up probe routine
pick e01e657 ohs900: more cleanups
pick 2ceaa8d OHS900 USB driver balance spin_lock
pick d09a0d5 Reflect the removal of the "bitmap" #define in hcd.h
pick 3d59083 OHS900 include definition of prefetch()
pick c61eaf4 ohs900: Remove superfluous name cast
pick 93dea34 ohs900: Use min_t() instead of explicit casts

asoc - ssm2602

Sound driver, looks good alreayd upstream

# pick a245bde ASoC: ssm2602: add device tree bindings
# pick 5c0fc4b ASoC: ssm2602: add support for 11.025kHz and 22.5kHz sample rates

oc-dma

New dma driver

pick f30f502 dma: add driver for wishbone streamer

ethoc

These are patches to the upstream driver. Could just be submitted.

pick 09620c2 increase number of ethoc buffers
# pick f814919 ethoc: use big endian accessors on OpenRISC Wishbone # dev now supports big endian
pick 6a3e160 ethoc: add version info to compatible string

micrel

These are patches to the upstream driver. Could just be submitted.

# pick b8801af phy: Reset Micrel PHY at initialization  # driver rewirtten patch doesnt apply, probably already fixed upstream

Multiple driver touches - could split into separate patch

pick fdfb1da openrisc: Remove obsolete __dev* uses in non-mainline drivers

  • drivers/char/scet.c
  • drivers/gpio/jbtrivial.c
  • drivers/usb/host/ohs900-hcd.c

PAST Merged

openrisc-fixes (merged 4.10)

These are current changes that are selected for the upstream pull request and review

# pick 565d72a Apply transparent_union attribute to union semun      # BROKEN need to fix/remove (removed, musl works fine no abi issue)
pick 9acd54a2 openrisc: restore call-saved regs on sigreturn         # NAK Confirmed no issue with strace updated message
pick e3bfea5 openrisc: Add thread-local storage (TLS) support        # NAK need to update spec r10 as TLS

# pick 4a54d6f openrisc: copy thread pointer from userregs             # squashed
# pick ca9751d Ensure icache is properly synchronized when code is written to mem # I remember this is wanted too, but it depends on smp
# pick 09fc079 openrisc: set OUTPUT_FORMAT to elf32-or1k     # squashed 
# pick f489078 openrisc: add SMP and NR_CPUS Kconfig options # needed by Kconfig changes  # NAK/updated in v2
# pick 9a79d8c openrisc: Add DTS and defconfig for DE0-Nano  # needed to test on my hardware
# pick fcdf735 openrisc: Differentiate defconfigs by CONFIG_LOCALVERSION

pick 2da8e658 openrisc: add NR_CPUS Kconfig default value
pick 8b991473 openrisc: remove the redundant of_platform_populate

pick 441f8c8 openrisc: Support both old (or32) and new (or1k) toolchain       # Tested-by: Guenter Roeck <linux@roeck-us.net>
pick e28b476 openrisc: fix PTRS_PER_PGD define                                # Acked-by: Jonas Bonn <jonas@southpole.se> 
pick ec636e9b2 openrisc: Updates after openrisc.net has been lost             # added
pick 6e01cafbf openrisc: Consolidate setup to use memblock instead of bootmem # Tested-by: Guenter Roeck <linux@roeck-us.net> , Acked-by: Jonas <jonas@southpole.se>
pick a966c95 openrisc: include l.swa in check for write data pagefault        # needed as musl has l.swa inxn