Skip to content

Commit

Permalink
powerpc/44x: Support OCM(On Chip Memory) for APM821xx SoC and Bluesto…
Browse files Browse the repository at this point in the history
…ne board

This patch consists of:
- Add driver for OCM component
- Export OCM Information at /sys/kernel/debug/ppc4xx_ocm/info

Signed-off-by: Vinh Nguyen Huu Tuong <vhtnguyen@apm.com>
Acked-by: Josh Boyer <jwboyer@gmail.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Vinh Nguyen Huu Tuong authored and Benjamin Herrenschmidt committed Jan 10, 2013
1 parent 0388c79 commit c19d824
Show file tree
Hide file tree
Showing 5 changed files with 477 additions and 0 deletions.
8 changes: 8 additions & 0 deletions arch/powerpc/boot/dts/bluestone.dts
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,14 @@
interrupt-parent = <&UIC0>;
};

OCM: ocm@400040000 {
compatible = "ibm,ocm";
status = "ok";
cell-index = <1>;
/* configured in U-Boot */
reg = <4 0x00040000 0x8000>; /* 32K */
};

SDR0: sdr {
compatible = "ibm,sdr-apm821xx";
dcr-reg = <0x00e 0x002>;
Expand Down
45 changes: 45 additions & 0 deletions arch/powerpc/include/asm/ppc4xx_ocm.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
* PowerPC 4xx OCM memory allocation support
*
* (C) Copyright 2009, Applied Micro Circuits Corporation
* Victor Gallardo (vgallardo@amcc.com)
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/

#ifndef __ASM_POWERPC_PPC4XX_OCM_H__
#define __ASM_POWERPC_PPC4XX_OCM_H__

#define PPC4XX_OCM_NON_CACHED 0
#define PPC4XX_OCM_CACHED 1

#if defined(CONFIG_PPC4xx_OCM)

void *ppc4xx_ocm_alloc(phys_addr_t *phys, int size, int align,
int flags, const char *owner);
void ppc4xx_ocm_free(const void *virt);

#else

#define ppc4xx_ocm_alloc(phys, size, align, flags, owner) NULL
#define ppc4xx_ocm_free(addr) ((void)0)

#endif /* CONFIG_PPC4xx_OCM */

#endif /* __ASM_POWERPC_PPC4XX_OCM_H__ */
8 changes: 8 additions & 0 deletions arch/powerpc/platforms/44x/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,14 @@ config PPC4xx_GPIO
help
Enable gpiolib support for ppc440 based boards

config PPC4xx_OCM
bool "PPC4xx On Chip Memory (OCM) support"
depends on 4xx
select PPC_LIB_RHEAP
help
Enable OCM support for PowerPC 4xx platforms with on chip memory,
OCM provides the fast place for memory access to improve performance.

# 44x specific CPU modules, selected based on the board above.
config 440EP
bool
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/sysdev/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o
obj-$(CONFIG_PPC_I8259) += i8259.o
obj-$(CONFIG_IPIC) += ipic.o
obj-$(CONFIG_4xx) += uic.o
obj-$(CONFIG_PPC4xx_OCM) += ppc4xx_ocm.o
obj-$(CONFIG_4xx_SOC) += ppc4xx_soc.o
obj-$(CONFIG_XILINX_VIRTEX) += xilinx_intc.o
obj-$(CONFIG_XILINX_PCI) += xilinx_pci.o
Expand Down
Loading

0 comments on commit c19d824

Please sign in to comment.