Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openrisc: Define screen_info in kernel setup #5

Open
wants to merge 127 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
a87e274
add README.openrisc and TODO.openrisc
Jan 5, 2013
cc2f18d
openrisc: add initramfs
jonibo Nov 13, 2010
aa95da6
openrisc: add or1ksim config
jonibo Nov 13, 2010
93e02cc
not for upstream: add initramfs path
Jun 23, 2011
ab086d8
openrisc: use SPARSE_IRQ
May 9, 2012
eb76d80
Add IO primitives for Wishbone bus
Oct 1, 2010
7e54f5e
openrisc: add CONFIG_WISHBONE_BUS_BIG_ENDIAN
Mar 2, 2012
2b8c3eb
scet: Character driver SCET device
Nov 10, 2010
3f734ce
scet: Rework driver init and probing
Nov 11, 2010
d53445b
scet: Cleanups and debug output
Nov 11, 2010
46a5caf
BLOB: From Adam - USB host
May 19, 2010
9e8bbba
USB OHS bits... what is this?
Aug 9, 2010
70ccaa3
ohs900: Rename ohs900.h to ohs900-hcd.h
Nov 10, 2010
ab705c9
ohs: move platform registration out of driver
Nov 10, 2010
7435a8f
ohs900: Clean upp debug printouts.
Nov 10, 2010
5ce948f
ohs900: device tree support
Nov 10, 2010
e504fac
Run Lindent on ohs900 files
Nov 11, 2010
b182cd6
ohs900: Remove unused function
Nov 11, 2010
dc1b7d3
ohs900: Use standard debugging routines
Nov 11, 2010
a5233eb
ohs900: clean up probe routine
Nov 11, 2010
e01e657
ohs900: more cleanups
jonibo Nov 12, 2010
2ceaa8d
OHS900 USB driver balance spin_lock
May 26, 2011
d09a0d5
Reflect the removal of the "bitmap" #define in hcd.h
May 26, 2011
3d59083
OHS900 include definition of prefetch()
Jun 3, 2011
c61eaf4
ohs900: Remove superfluous name cast
geertu Nov 13, 2013
93dea34
ohs900: Use min_t() instead of explicit casts
geertu Nov 13, 2013
b8801af
phy: Reset Micrel PHY at initialization
May 19, 2010
09620c2
increase number of ethoc buffers
May 19, 2010
f814919
ethoc: use big endian accessors on OpenRISC Wishbone
Jul 2, 2011
6a3e160
ethoc: add version info to compatible string
Jul 13, 2011
8ba9a10
input/serio: Add OpenCores PS/2 core driver
skristiansson May 18, 2011
74960bb
serio/opencores_ps2: include platform_device.h
skristiansson May 2, 2013
12254b1
Add spi_opencores driver
Sep 27, 2010
9160a98
spi_opencores: use RFEMPTY to determine end of transaction
May 9, 2012
2006df5
spi_opencores: include cpuinfo.h
May 25, 2012
d29ed39
spi_opencores: reset SPI controller in ocspi_reset
May 25, 2012
d740deb
spi: spi_opencores is for OpenRISC arch only
Aug 1, 2013
5c845ed
spi/spi_opencores: rename to spi-oc-simple
skristiansson Sep 1, 2013
201bce8
spi/spi-oc-simple: update driver names in file header
skristiansson Sep 1, 2013
9023824
spi/spi-oc-simple: remove __devinit, __devexit, __init and __exit
skristiansson Sep 1, 2013
b7ccab7
spi/spi-oc-simple: include module.h
skristiansson Sep 1, 2013
1461453
spi/spi-oc-simple: whitespace and format cleanup
skristiansson Sep 1, 2013
191c8b3
spi/spi-oc-simple: remove dead and commented out code
skristiansson Sep 1, 2013
70d3902
spi/spi-oc-simple: remove unused variables
skristiansson Sep 1, 2013
8c3f463
spi/spi-oc-simple: use the SPI framework queue
skristiansson Sep 1, 2013
20f26f2
spi/spi-oc-simple: use platform_{get, set}_drvdata()
skristiansson Sep 1, 2013
f8b0e0b
spi/spi-oc-simple: use module_platform_driver to register driver
skristiansson Sep 1, 2013
aca5566
GPIO support w/ jbtrivial driver
Aug 2, 2010
d698bf6
jbtrivial: Add missing #include <linux/module.h>
geertu Nov 5, 2013
6458da9
jbtrivial: fix data direction inversed logic bug
skristiansson Aug 19, 2013
fdfb1da
openrisc: Remove obsolete __dev* uses in non-mainline drivers
geertu Nov 5, 2013
9a79d8c
openrisc: Add DTS and defconfig for DE0-Nano
geertu Nov 9, 2013
ce81986
openrisc: add cache way information to cpuinfo
skristiansson Apr 27, 2013
565d72a
Apply transparent_union attribute to union semun
Jun 11, 2014
fcdf735
openrisc: Differentiate defconfigs by CONFIG_LOCALVERSION
geertu Nov 14, 2013
c352343
openrisc: tlb miss handler optimizations
skristiansson Aug 1, 2013
88f85ab
openrisc: head: use THREAD_SIZE instead of magic constant
skristiansson Jan 8, 2014
e28b476
openrisc: fix PTRS_PER_PGD define
skristiansson Jan 10, 2014
9acd54a
openrisc: restore call-saved regs on sigreturn
Sep 23, 2013
e3bfea5
openrisc: Add thread-local storage (TLS) support
bluecmd Jan 25, 2014
4a54d6f
openrisc: copy thread pointer from userregs
skristiansson May 12, 2014
7fd8a8d
openrisc: irq: use irqchip framework
skristiansson May 19, 2014
3396c43
openrisc: use "scratch sprs" to save regs on exception
skristiansson May 11, 2014
f489078
openrisc: add SMP and NR_CPUS Kconfig options
skristiansson May 11, 2014
9d56863
openrisc: add Kconfig for l.lwa and l.swa atomic instructions
skristiansson May 12, 2014
c098213
openrisc: add atomic bitops
skristiansson May 12, 2014
e66689f
openrisc: add cmpxchg and xchg implementations
skristiansson May 13, 2014
59957c3
openrisc: add optimized atomic operations
skristiansson May 13, 2014
0eb877f
openrisc: add spinlock implementation
skristiansson May 16, 2014
cbc434f
openrisc: head: refactor out tlb flush into it's own function
skristiansson May 17, 2014
c5778e7
openrisc: select GENERIC_SMP_IDLE_THREAD
skristiansson May 18, 2014
03f6ab9
openrisc: spr_defs: add SPR_COREID and SPR_NUMCORES
skristiansson May 18, 2014
683734b
openrisc: add simple_smp example dts file
skristiansson May 18, 2014
3be988f
openrisc: initial SMP support
skristiansson May 18, 2014
425d203
openrisc: create a current_pgd for each cpu
skristiansson May 26, 2014
b237342
openrisc/smp: implement IPI
skristiansson Jun 10, 2014
c4737e6
openrisc/smp: initialize current_pgd in __cpu_up
skristiansson Jun 10, 2014
5eae41e
openrisc: add smp tlb flush functionality
skristiansson Jun 10, 2014
5cfad06
openrisc/head: load r10 from per-cpu current_thread_info_set
skristiansson Jun 13, 2014
bbbd73a
irqchip: add initial support for ompic
skristiansson Jun 13, 2014
9b1b0ba
openrisc: select OMPIC
skristiansson Jun 13, 2014
1da082c
openrisc: enable caches on secondary cpus
skristiansson Jun 28, 2014
a966c95
openrisc: include l.swa in check for write data pagefault
skristiansson Jul 3, 2014
d863b06
openrisc: add futex_atomic_* implementations
skristiansson Jul 15, 2014
09fc079
openrisc: set OUTPUT_FORMAT to elf32-or1k
skristiansson Jul 19, 2014
db34795
openrisc: update initramfs
skristiansson Jul 19, 2014
7255e4d
openrisc: remove unnecessary stddef.h include
skristiansson Jul 19, 2014
fdfdd3b
openrisc: add musl_defconfig
skristiansson Jul 19, 2014
f2eb703
openrisc: remove SPR_ISR* scratch reg hack
skristiansson Jul 22, 2014
3fdc19a
openrisc: improve description of OPENRISC_HAVE_SHADOW_GPRS
skristiansson Jul 22, 2014
8ccf367
openrisc: set OUTPUT_FORMAT to elf32-or1k
skristiansson Jul 19, 2014
8e34abc
openrisc: add Kconfig for l.lwa and l.swa atomic instructions
skristiansson May 12, 2014
d0056a7
openrisc: add atomic bitops
skristiansson May 12, 2014
93fd0ce
openrisc: add cmpxchg and xchg implementations
skristiansson May 13, 2014
8990060
openrisc: add atomic operations implementations
skristiansson May 13, 2014
b8a2b05
openrisc: include l.swa in check for write data pagefault
skristiansson Jul 3, 2014
9fdef15
openrisc: add futex_atomic_* implementations
skristiansson Jul 15, 2014
094e73b
Merge branch 'atomics' into smp
skristiansson Jul 23, 2014
00e4dad
Merge tag 'v3.16' into smp
skristiansson Aug 27, 2014
a234425
Revert "net: phy: Set the driver when registering an MDIO bus device"
Aug 5, 2014
e26e5b5
irqchip/ompic: increase number of retries
skristiansson Sep 2, 2014
4330140
irqchip/ompic: use irqsave spinlock
skristiansson Sep 2, 2014
441f8c8
openrisc: Support both old (or32) and new (or1k) toolchain
groeck Sep 8, 2014
a245bde
ASoC: ssm2602: add device tree bindings
skristiansson Sep 28, 2014
5c0fc4b
ASoC: ssm2602: add support for 11.025kHz and 22.5kHz sample rates
skristiansson Sep 28, 2014
f30f502
dma: add driver for wishbone streamer
skristiansson Sep 28, 2014
0f44297
openrisc: Fix the bitmask for the unit present register
s-macke Jul 20, 2014
ab7c034
openrisc: Initial support for the idle state
s-macke Jul 20, 2014
e26afc3
openrisc: add some missing spr registers
skristiansson Sep 30, 2014
30c1eac
openrisc: make cpuinfo per-cpu specific
skristiansson Sep 30, 2014
ca0b6ff
openrisc: remove local max_low_pfn in setup_arch
skristiansson Sep 30, 2014
456953a
openrisc: time: make timers work with smp
skristiansson Sep 30, 2014
431fbb2
openrisc: delay: use get_cycles() instead of reading the raw timer
skristiansson Sep 30, 2014
0f977eb
openrisc: smp: init clockevent on secondary cpus
skristiansson Sep 30, 2014
4223095
openrisc: add example .dts for sockit-multicore fusesoc SoC
skristiansson Sep 30, 2014
32505ca
Merge tag 'v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/to…
skristiansson Oct 6, 2014
54d6703
openrisc: add l.lwa/l.swa emulation
skristiansson Nov 3, 2014
383e846
Merge tag 'v3.18' into smp
skristiansson Dec 20, 2014
accd1fd
spi/spi-oc-simple: Fix cpuinfo usage
skristiansson Jan 15, 2015
a728fc8
openrisc: Add optimized memset
olofk Feb 6, 2015
1d5fcfb
openrisc: add dynamic libs to initramfs
skristiansson Feb 9, 2015
e56b2bd
or1k: update busybox+libs in initramfs and add missing .so files
skristiansson Feb 27, 2015
8b587c9
Merge tag 'v3.19'
skristiansson Mar 1, 2015
29b64e5
openrisc: default to no-compression initramfs
skristiansson Mar 22, 2015
0cc0094
Merge tag 'v4.0' into smp
skristiansson Jun 21, 2015
83bdd07
Merge tag 'v4.2'
skristiansson Oct 3, 2015
56f8055
openrisc: Define screen_info in kernel setup
olofk Oct 29, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 15 additions & 0 deletions README.openrisc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Initramfs
=========

In order to have the initramfs built into your kernel you need to have the following
options set:

CONFIG_INITRAMFS_SOURCE="arch/or32/support/initramfs arch/or32/support/initramfs.devnodes"
CONFIG_DEVTMPFS=y

This builds the initramfs from the directory initramfs and adds some extra
directories and device nodes from the file initramfs.

There is not a hard dependency on devtmpfs, but it makes life easier and the initramfs
is configured to use it!

5 changes: 5 additions & 0 deletions TODO.openrisc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
LOAD_CURRENT_THREAD_INFO is not used anywhere

Implement memcpy and memset (string.h)

switch bootmem allocation over to memblock
37 changes: 37 additions & 0 deletions arch/openrisc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@ config OPENRISC
select GENERIC_CLOCKEVENTS
select GENERIC_STRNCPY_FROM_USER
select GENERIC_STRNLEN_USER
select GENERIC_SMP_IDLE_THREAD
select MODULES_USE_ELF_RELA
select HAVE_DEBUG_STACKOVERFLOW
select OR1K_PIC
select OMPIC if SMP

config MMU
def_bool y
Expand All @@ -47,6 +49,9 @@ config NO_IOPORT_MAP
config TRACE_IRQFLAGS_SUPPORT
def_bool y

config WISHBONE_BUS_BIG_ENDIAN
def_bool y

# For now, use generic checksum functions
#These can be reimplemented in assembly later if so inclined
config GENERIC_CSUM
Expand Down Expand Up @@ -98,8 +103,30 @@ config OPENRISC_HAVE_INST_DIV
default y
help
Select this if your implementation has a hardware divide instruction

config OPENRISC_HAVE_INST_LWA_SWA
bool "Have instruction l.lwa and l.swa"
help
Select this if your implementation have l.lwa and l.swa atomic
instructions.

endmenu

config NR_CPUS
int "Maximum number of CPUs (2-32)"
range 2 32
depends on SMP
default "2"

config SMP
bool "Symmetric Multi-Processing support"
depends on OPENRISC_HAVE_INST_LWA_SWA
help
This enables support for systems with more than one CPU. If you have
a system with only one CPU, say N. If you have a system with more
than one CPU, say Y.

If you don't know what to do here, say N.

source kernel/Kconfig.hz
source kernel/Kconfig.preempt
Expand All @@ -118,6 +145,16 @@ config OPENRISC_NO_SPR_SR_DSX
Say N here if you know that your OpenRISC processor has
SPR_SR_DSX bit implemented. Say Y if you are unsure.

config OPENRISC_HAVE_SHADOW_GPRS
bool "Support for shadow gpr files"
help
Say Y here if your OpenRISC processor features shadowed
register files. They will in such case be used as a
scratch reg storage on exception entry.

On SMP systems, this feature is mandatory.
On a unicore system it's safe to say N here if you are unsure.

config CMDLINE
string "Default kernel command string"
default ""
Expand Down
158 changes: 158 additions & 0 deletions arch/openrisc/boot/dts/de0_nano.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
/dts-v1/;
/ {
compatible = "opencores,de0_nano";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&pic>;

chosen {
bootargs = "console=uart,mmio,0x90000000,115200";
};

memory@0 {
device_type = "memory";
reg = <0x00000000 0x02000000>;
};

cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "opencores,or1200-rtlsvn481";
reg = <0>;
clock-frequency = <50000000>;
};
};

/*
* OR1K PIC is built into CPU and accessed via special purpose
* registers. It is not addressable and, hence, has no 'reg'
* property.
*/
pic: pic {
compatible = "opencores,or1k-pic";
#interrupt-cells = <1>;
interrupt-controller;
};

serial0: serial@90000000 {
compatible = "opencores,uart16550-rtlsvn105", "ns16550a";
reg = <0x90000000 0x100>;
interrupts = <2>;
clock-frequency = <50000000>;
};

i2c0: ocores@a0000000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "opencores,i2c-ocores";
reg = <0xa0000000 0x8>;
interrupts = <10>;
clock-frequency = <50000000>;

reg-shift = <0>; /* 8 bit registers */
reg-io-width = <1>; /* 8 bit read/write */

adxl34x@1d {
compatible = "adxl34x";
reg = <0x1d>;
interrupts = <26>;
};
eeprom@50 {
compatible = "at24,24c02";
reg = <0x50>;
pagesize = <8>;
};
};

spi0: spi0@b0000000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "opencores,spi-simple";
reg = <0xb0000000 0x5>;

flash0: mtd@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "spansion,s25sl064p";
reg = <0>;
spi-max-frequency = <40000000>;
m25p,fast-read;

partition@0 {
label = "FPGA image";
reg = <0x00000000 0x000b0000>;
read-only;
};
partition@b0000 {
label = "bootloader";
reg = <0x000b0000 0x00050000>;
read-only;
};
partition@100000 {
label = "free space";
reg = <0x00100000 0x00700000>;
};
};
};

spi1: spi1@b1000000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "opencores,spi-simple";
reg = <0xb1000000 0x5>;

adc@0 {
compatible = "adcxx,adcxx8s";
reg = <0>;
spi-max-frequency = <1000000>;
};
};

gpio0: gpio@91000000 {
compatible = "opencores,jbtrivial";
reg = <0x91000000 0x2>;
#gpio-cells = <2>;
gpio-controller;
xlnx,data-offset = <0>;
xlnx,tri-offset = <1>;
xlnx,gpio-width = <8>;
};

gpio-leds {
compatible = "gpio-leds";
heartbeat {
label = "Heartbeat";
gpios = <&gpio0 0 0x0>;
linux,default-trigger = "heartbeat";
};
led1 {
label = "led1";
gpios = <&gpio0 1 0>;
};
led2 {
label = "led2";
gpios = <&gpio0 2 0>;
};
led3 {
label = "led3";
gpios = <&gpio0 3 0>;
};
led4 {
label = "led4";
gpios = <&gpio0 4 0>;
};
led5 {
label = "led5";
gpios = <&gpio0 5 0>;
};
led6 {
label = "led6";
gpios = <&gpio0 6 0>;
};
led7 {
label = "led7";
gpios = <&gpio0 7 0>;
};
};
};
74 changes: 74 additions & 0 deletions arch/openrisc/boot/dts/simple_smp.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/dts-v1/;
/ {
compatible = "opencores,or1ksim";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&pic>;

chosen {
bootargs = "console=uart,mmio,0x90000000,115200";
};

memory@0 {
device_type = "memory";
reg = <0x00000000 0x02000000>;
};

cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "opencores,or1200-rtlsvn481";
reg = <0>;
clock-frequency = <50000000>;
};
cpu@1 {
compatible = "opencores,or1200-rtlsvn481";
reg = <1>;
clock-frequency = <50000000>;
};
};

ompic: ompic {
compatible = "ompic";
reg = <0x98000000 0x100>;
#interrupt-cells = <1>;
interrupt-controller;
interrupts = <1>;
};

/*
* OR1K PIC is built into CPU and accessed via special purpose
* registers. It is not addressable and, hence, has no 'reg'
* property.
*/
pic: pic {
compatible = "opencores,or1k-pic";
#interrupt-cells = <1>;
interrupt-controller;
};

serial0: serial@90000000 {
compatible = "opencores,uart16550-rtlsvn105", "ns16550a";
reg = <0x90000000 0x100>;
interrupts = <2>;
clock-frequency = <50000000>;
};

/*
enet0: ethoc@92000000 {
compatible = "opencores,ethmac-rtlsvn338";
reg = <0x92000000 0x100>;
interrupts = <4>;
};
ata@9e000000 {
compatible = "ata-generic";
reg = <0x9e000040 0x30
0x9e000078 0x10>;
pio-mode = <4>;
reg-shift = <2>;
interrupts = <15>;
};
*/

};
Loading