Re: TQM5200 + SM501 FB
Am 04.12.2009 um 23:04 schrieb Wolfgang Denk: Please find attached below a patch which fixes some issues (but we don't consider it clean enough for inclusion into mainline yet), and a known to be working config file. [Kudos to Anatolij for providing this.] Thanks Wolfgang, I will try it on monday. What needs to be done to get this into mainline? Modify the sm501 stuff for fdt and extend the tqm5200.dts file with the sm501 resources? -Rolf ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: TQM5200 + SM501 FB
Dear Rolf Offermanns, In message f5b2e7ae-a0c5-4d9b-af8f-3158b94d6...@sysgo.com you wrote: Thanks Wolfgang, I will try it on monday. What needs to be done to get this into mainline? Modify the sm501 stuff for fdt and extend the tqm5200.dts file with the sm501 resources? Right, especially the OF bindings in the SM501 driver and the device tree entries are still missing. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de He'd been wrong, there _was_ a light at the end of the tunnel, and it was a flamethrower. - Terry Pratchett, _Mort_ ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[RFC] doc/powerpc: try to explain why the interrupt numbers are off by 16
Signed-off-by: Sebastian Andrzej Siewior sebast...@breakpoint.cc --- Documentation/powerpc/dts-bindings/fsl/mpic.txt | 42 +++ 1 files changed, 42 insertions(+), 0 deletions(-) create mode 100644 Documentation/powerpc/dts-bindings/fsl/mpic.txt diff --git a/Documentation/powerpc/dts-bindings/fsl/mpic.txt b/Documentation/powerpc/dts-bindings/fsl/mpic.txt new file mode 100644 index 000..71e39cf --- /dev/null +++ b/Documentation/powerpc/dts-bindings/fsl/mpic.txt @@ -0,0 +1,42 @@ +* OpenPIC and its interrupt numbers on Freescale's e500/e600 cores + +The OpenPIC specification does not specify which interrupt source has to +become which interrupt number. This is up to the software implementation +of the interrupt controller. The only requirement is that every +interrupt source has to have an unique interrupt number / vector number. +To accomplish this the current implementation assigns the number zero to +the first source, the number one to the second source and so on until +all interrupt sources have their unique number. +Usually the assigned vector number equals the interrupt number mentioned +in the documentation for a given core / CPU. This is however not true +for the e500 cores (MPC85XX CPUs) where the documentation distinguishes +between internal and external interrupt sources and starts counting at +zero for both of them. + +So what to write for external interrupt source X or internal interrupt +source Y into the device tree? Here is an example: + +The memory map for the interrupt controller in the MPC8544[0] shows, +that the first interrupt source starts at 0x5_ (PIC Register Address +Map-Interrupt Source Configuration Registers). This source becomes the +number zero therefore: + External interrupt 0 = interrupt number 0 + External interrupt 1 = interrupt number 1 + External interrupt 2 = interrupt number 2 + ... +Every interrupt number allocates 0x20 bytes register space. So to get +its number it is sufficient to shift the lower 16bits to right by five. +So for the external interrupt 10 we have: + 0x0140 5 = 10 + +After the external sources, the internal sources follow. The in core I2C +controller on the MPC8544 for instance has the internal source number +27. Oo obtain its interrupt number we take the lower 16bits of its memory +address (0x5_0560) and shift it right: + 0x0560 5 = 43 + +Therefore the I2C device node for the MPC8544 CPU has to have the +interrupt number 43 specified in the device tree. + +[0] MPC8544E PowerQUICCTM III, Integrated Host Processor Family Reference Manual +MPC8544ERM Rev. 1 10/2007 -- 1.6.5.3 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 1/2] agp/uninorth: Also handle user memory types in u3_remove_memory().
From: Michel Dänzer daen...@vmware.com Also short-circuit empty updates. Signed-off-by: Michel Dänzer daen...@vmware.com --- drivers/char/agp/uninorth-agp.c | 29 ++--- 1 files changed, 22 insertions(+), 7 deletions(-) diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c index 703959e..4e05021 100644 --- a/drivers/char/agp/uninorth-agp.c +++ b/drivers/char/agp/uninorth-agp.c @@ -151,9 +151,6 @@ static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start, void *temp; int mask_type; - temp = agp_bridge-current_size; - num_entries = A_SIZE_32(temp)-num_entries; - if (type != mem-type) return -EINVAL; @@ -163,6 +160,12 @@ static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start, return -EINVAL; } + if (mem-page_count == 0) + return 0; + + temp = agp_bridge-current_size; + num_entries = A_SIZE_32(temp)-num_entries; + if ((pg_start + mem-page_count) num_entries) return -EINVAL; @@ -194,9 +197,6 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type) u32 *gp; int mask_type; - temp = agp_bridge-current_size; - num_entries = A_SIZE_32(temp)-num_entries; - if (type != mem-type) return -EINVAL; @@ -206,6 +206,12 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type) return -EINVAL; } + if (mem-page_count == 0) + return 0; + + temp = agp_bridge-current_size; + num_entries = A_SIZE_32(temp)-num_entries; + if ((pg_start + mem-page_count) num_entries) return -EINVAL; @@ -234,10 +240,19 @@ int u3_remove_memory(struct agp_memory *mem, off_t pg_start, int type) { size_t i; u32 *gp; + int mask_type; + + if (type != mem-type) + return -EINVAL; - if (type != 0 || mem-type != 0) + mask_type = agp_bridge-driver-agp_type_to_mask_type(agp_bridge, type); + if (mask_type != 0) { /* We know nothing of memory types */ return -EINVAL; + } + + if (mem-page_count == 0) + return 0; gp = (u32 *) agp_bridge-gatt_table[pg_start]; for (i = 0; i mem-page_count; ++i) -- 1.6.5.3 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 2/2] agp/uninorth: Unify U3 and pre-U3 insert_memory and remove_memory hooks.
From: Michel Dänzer daen...@vmware.com Signed-off-by: Michel Dänzer daen...@vmware.com --- drivers/char/agp/uninorth-agp.c | 64 +++ 1 files changed, 11 insertions(+), 53 deletions(-) diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c index 4e05021..d89da4a 100644 --- a/drivers/char/agp/uninorth-agp.c +++ b/drivers/char/agp/uninorth-agp.c @@ -144,53 +144,7 @@ static int uninorth_configure(void) return 0; } -static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start, - int type) -{ - int i, j, num_entries; - void *temp; - int mask_type; - - if (type != mem-type) - return -EINVAL; - - mask_type = agp_bridge-driver-agp_type_to_mask_type(agp_bridge, type); - if (mask_type != 0) { - /* We know nothing of memory types */ - return -EINVAL; - } - - if (mem-page_count == 0) - return 0; - - temp = agp_bridge-current_size; - num_entries = A_SIZE_32(temp)-num_entries; - - if ((pg_start + mem-page_count) num_entries) - return -EINVAL; - - j = pg_start; - - while (j (pg_start + mem-page_count)) { - if (agp_bridge-gatt_table[j]) - return -EBUSY; - j++; - } - - for (i = 0, j = pg_start; i mem-page_count; i++, j++) { - agp_bridge-gatt_table[j] = - cpu_to_le32((page_to_phys(mem-pages[i]) 0xF000UL) | 0x1UL); - flush_dcache_range((unsigned long)__va(page_to_phys(mem-pages[i])), - (unsigned long)__va(page_to_phys(mem-pages[i]))+0x1000); - } - (void)in_le32((volatile u32*)agp_bridge-gatt_table[pg_start]); - mb(); - - uninorth_tlbflush(mem); - return 0; -} - -static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type) +static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start, int type) { int i, num_entries; void *temp; @@ -219,14 +173,18 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type) for (i = 0; i mem-page_count; ++i) { if (gp[i]) { dev_info(agp_bridge-dev-dev, -u3_insert_memory: entry 0x%x occupied (%x)\n, +uninorth_insert_memory: entry 0x%x occupied (%x)\n, i, gp[i]); return -EBUSY; } } for (i = 0; i mem-page_count; i++) { - gp[i] = (page_to_phys(mem-pages[i]) PAGE_SHIFT) | 0x8000UL; + if (is_u3) + gp[i] = (page_to_phys(mem-pages[i]) PAGE_SHIFT) | 0x8000UL; + else + gp[i] = cpu_to_le32((page_to_phys(mem-pages[i]) 0xF000UL) | + 0x1UL); flush_dcache_range((unsigned long)__va(page_to_phys(mem-pages[i])), (unsigned long)__va(page_to_phys(mem-pages[i]))+0x1000); } @@ -236,7 +194,7 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type) return 0; } -int u3_remove_memory(struct agp_memory *mem, off_t pg_start, int type) +int uninorth_remove_memory(struct agp_memory *mem, off_t pg_start, int type) { size_t i; u32 *gp; @@ -551,7 +509,7 @@ const struct agp_bridge_driver uninorth_agp_driver = { .create_gatt_table = uninorth_create_gatt_table, .free_gatt_table= uninorth_free_gatt_table, .insert_memory = uninorth_insert_memory, - .remove_memory = agp_generic_remove_memory, + .remove_memory = uninorth_remove_memory, .alloc_by_type = agp_generic_alloc_by_type, .free_by_type = agp_generic_free_by_type, .agp_alloc_page = agp_generic_alloc_page, @@ -577,8 +535,8 @@ const struct agp_bridge_driver u3_agp_driver = { .agp_enable = uninorth_agp_enable, .create_gatt_table = uninorth_create_gatt_table, .free_gatt_table= uninorth_free_gatt_table, - .insert_memory = u3_insert_memory, - .remove_memory = u3_remove_memory, + .insert_memory = uninorth_insert_memory, + .remove_memory = uninorth_remove_memory, .alloc_by_type = agp_generic_alloc_by_type, .free_by_type = agp_generic_free_by_type, .agp_alloc_page = agp_generic_alloc_page, -- 1.6.5.3 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
MACE DMA problem on Powermac 7300
Hi, everybody, I post this in hope that somebody could shed some light on how should the DMA work in conjunction with the MACE ethernet controller. I find difficult to understand why it does not work in my case: What happens? First two bytes of a received frame are not what they should be in more than 50% of frames. This can be avoided by receiving the frame on a word boundary, but with the usual skb_reserve(..., 2) (to make the IP header land on word boundary), it won't work. So, I can make the driver work by receiving at 0 offset, and then moving the data 2 bytes up, before handing it over to upper layers. This used to work with a 2.4.27 kernel, obviously the Grand Central DBDMA controller can receive on non-word boundaries. Now I have 2.6.15.7. Any ideas, what could cause this kind of behaviour (and regression)? Best regards, Risto Suominen ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: using different format for hugetlbfs
Even than, does that preclude the format I suggested? I'm assuming that pgd_t/pud_t/pmd_t are always a double word so the low order 4- bits should be 0 (on 64-bit), so using the lsb as the flag between hugetlb and normal pointer should still work. Might do, depends if David has enough bits ... David ? Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: ZILOG serial port broken in 2.6.32
On Sun, 2009-12-06 at 01:01 -0600, Rob Landley wrote: Trying again with a few likely-looking cc's from the MAINTAINERS file: Summary: The PMACZILOG serial driver last worked in 2.6.28. It was broken by commit f751928e0ddf54ea4fe5546f35e99efc5b5d9938 by Alan Cox making bits of the tty layer dynamically allocated. The PMACZILOG driver wasn't properly converted, it works with interrupts disabled (for boot messages), but as soon as interrupts are enabled (PID 1 spawns) the next write to the serial console panics the kernel. Ah looks like I missed that... I'll dig. Thanks for the report. Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 1/4] powerpc: Reduce 64bit vmlinux by making acenic and cramfs modules
Machines with acenic adapters are rare these days, so we may as well make it a module. Cramfs is also very rarely used so we can make it a module. Together this saves 143kB on a 64bit compile: textdata bss dec hex filename 8247176 1729404 1221988 11198568 aae068 vmlinux~ 8134997 1727588 1188836 11051421 a8a19d vmlinux Signed-off-by: Anton Blanchard an...@samba.org --- Index: linux.trees.git/arch/powerpc/configs/g5_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/g5_defconfig 2009-11-25 12:47:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/g5_defconfig 2009-11-25 12:47:41.0 +1100 @@ -757,7 +757,7 @@ CONFIG_SUNGEM=y # CONFIG_B44 is not set # CONFIG_ATL2 is not set CONFIG_NETDEV_1000=y -CONFIG_ACENIC=y +CONFIG_ACENIC=m CONFIG_ACENIC_OMIT_TIGON_I=y # CONFIG_DL2K is not set CONFIG_E1000=y Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig 2009-11-25 12:47:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-25 12:47:41.0 +1100 @@ -980,7 +980,7 @@ CONFIG_E100=y # CONFIG_SC92031 is not set # CONFIG_ATL2 is not set CONFIG_NETDEV_1000=y -CONFIG_ACENIC=y +CONFIG_ACENIC=m CONFIG_ACENIC_OMIT_TIGON_I=y # CONFIG_DL2K is not set CONFIG_E1000=y @@ -1863,7 +1863,7 @@ CONFIG_HFSPLUS_FS=m # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_CRAMFS=y +CONFIG_CRAMFS=m # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig 2009-11-25 12:47:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/pseries_defconfig 2009-11-25 12:47:41.0 +1100 @@ -796,7 +796,7 @@ CONFIG_E100=y # CONFIG_NET_POCKET is not set # CONFIG_ATL2 is not set CONFIG_NETDEV_1000=y -CONFIG_ACENIC=y +CONFIG_ACENIC=m CONFIG_ACENIC_OMIT_TIGON_I=y # CONFIG_DL2K is not set CONFIG_E1000=y @@ -1494,7 +1494,7 @@ CONFIG_CONFIGFS_FS=m # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_CRAMFS=y +CONFIG_CRAMFS=m # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 3/4] powerpc: Reduce differences between pseries and ppc64 defconfigs
The pseries and ppc64 defconfigs have drifted apart over the years. Reduce some of the differences while still keeping the idea that the ppc64 defconfig is cross platform but enables fewer features than pseries, eg: - NR_CPUS is lower - No NUMA support Also enable a number of common adapters as modules. Signed-off-by: Anton Blanchard an...@samba.org --- Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig 2009-11-26 12:38:30.0 +1100 +++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-26 15:33:30.0 +1100 @@ -137,8 +137,9 @@ CONFIG_TRACEPOINTS=y CONFIG_MARKERS=y CONFIG_OPROFILE=y CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set +CONFIG_KPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_KRETPROBES=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y @@ -191,6 +192,7 @@ CONFIG_SCANLOG=m CONFIG_LPARCFG=y CONFIG_PPC_SMLPAR=y CONFIG_CMM=y +CONFIG_DTL=y CONFIG_PPC_ISERIES=y # @@ -358,7 +360,7 @@ CONFIG_ARCH_MEMORY_PROBE=y CONFIG_PPC_HAS_HASH_64K=y # CONFIG_PPC_64K_PAGES is not set CONFIG_FORCE_MAX_ZONEORDER=13 -# CONFIG_SCHED_SMT is not set +CONFIG_SCHED_SMT=y CONFIG_PROC_DEVICETREE=y # CONFIG_CMDLINE_BOOL is not set CONFIG_EXTRA_TARGETS= @@ -790,12 +792,12 @@ CONFIG_SCSI_IPR=y CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y # CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_FC is not set +CONFIG_SCSI_QLA_FC=m # CONFIG_SCSI_QLA_ISCSI is not set CONFIG_SCSI_LPFC=m # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set -CONFIG_SCSI_DEBUG=m +# CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_SRP is not set # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set # CONFIG_SCSI_DH is not set @@ -867,9 +869,8 @@ CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=y CONFIG_MD_RAID0=y CONFIG_MD_RAID1=y -CONFIG_MD_RAID10=y -CONFIG_MD_RAID456=y -CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m CONFIG_BLK_DEV_DM=y @@ -984,7 +985,7 @@ CONFIG_ACENIC=m CONFIG_ACENIC_OMIT_TIGON_I=y # CONFIG_DL2K is not set CONFIG_E1000=y -# CONFIG_E1000E is not set +CONFIG_E1000E=m # CONFIG_IP1000 is not set # CONFIG_IGB is not set # CONFIG_NS83820 is not set @@ -1006,19 +1007,19 @@ CONFIG_GELIC_WIRELESS=y # CONFIG_ATL1E is not set # CONFIG_JME is not set CONFIG_NETDEV_1=y -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T3=m CONFIG_EHEA=m # CONFIG_ENIC is not set -# CONFIG_IXGBE is not set +CONFIG_IXGBE=m CONFIG_IXGB=m -# CONFIG_S2IO is not set -# CONFIG_MYRI10GE is not set -# CONFIG_NETXEN_NIC is not set +CONFIG_S2IO=m +CONFIG_MYRI10GE=m +CONFIG_NETXEN_NIC=m # CONFIG_NIU is not set CONFIG_PASEMI_MAC=y -# CONFIG_MLX4_EN is not set -# CONFIG_MLX4_CORE is not set +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m # CONFIG_TEHUTI is not set # CONFIG_BNX2X is not set # CONFIG_QLGE is not set @@ -1169,7 +1170,7 @@ CONFIG_SERIAL_TXX9=y CONFIG_HAS_TXX9_SERIAL=y CONFIG_SERIAL_TXX9_NR_UARTS=6 CONFIG_SERIAL_TXX9_CONSOLE=y -# CONFIG_SERIAL_JSM is not set +CONFIG_SERIAL_JSM=m # CONFIG_SERIAL_OF_PLATFORM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y @@ -1586,7 +1587,7 @@ CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set -# CONFIG_USB_MON is not set +CONFIG_USB_MON=m # CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set @@ -1686,21 +1687,22 @@ CONFIG_USB_APPLEDISPLAY=m # CONFIG_NEW_LEDS is not set # CONFIG_ACCESSIBILITY is not set CONFIG_INFINIBAND=m -# CONFIG_INFINIBAND_USER_MAD is not set -# CONFIG_INFINIBAND_USER_ACCESS is not set +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_MTHCA=m CONFIG_INFINIBAND_MTHCA_DEBUG=y -# CONFIG_INFINIBAND_IPATH is not set +CONFIG_INFINIBAND_IPATH=m CONFIG_INFINIBAND_EHCA=m # CONFIG_INFINIBAND_AMSO1100 is not set -# CONFIG_MLX4_INFINIBAND is not set +CONFIG_MLX4_INFINIBAND=m # CONFIG_INFINIBAND_NES is not set CONFIG_INFINIBAND_IPOIB=m -# CONFIG_INFINIBAND_IPOIB_CM is not set +CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG=y # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set -# CONFIG_INFINIBAND_SRP is not set +CONFIG_INFINIBAND_SRP=m CONFIG_INFINIBAND_ISER=m CONFIG_EDAC=y @@ -1798,7 +1800,7 @@ CONFIG_REISERFS_FS=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=y +CONFIG_JFS_FS=m CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set @@ -1811,14 +1813,22 @@ CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_DEBUG_MASKLOG=y
[PATCH 2/4] powerpc: Disable token ring in powerpc defconfigs
Token what? Lets save some space in our powerpc kernels and remove token ring support. Signed-off-by: Anton Blanchard an...@samba.org --- Index: linux.trees.git/arch/powerpc/configs/g5_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/g5_defconfig 2009-11-26 12:35:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/g5_defconfig 2009-11-26 12:35:59.0 +1100 @@ -794,8 +794,8 @@ CONFIG_NETDEV_1=y # CONFIG_BNX2X is not set # CONFIG_QLGE is not set # CONFIG_SFC is not set -CONFIG_TR=y -CONFIG_IBMOL=y +# CONFIG_TR is not set +# CONFIG_IBMOL is not set # CONFIG_3C359 is not set # CONFIG_TMS380TR is not set Index: linux.trees.git/arch/powerpc/configs/iseries_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/iseries_defconfig 2009-11-26 12:35:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/iseries_defconfig 2009-11-26 12:35:55.0 +1100 @@ -714,8 +714,8 @@ CONFIG_NETDEV_1=y # CONFIG_BNX2X is not set # CONFIG_QLGE is not set # CONFIG_SFC is not set -CONFIG_TR=y -CONFIG_IBMOL=y +# CONFIG_TR is not set +# CONFIG_IBMOL is not set # CONFIG_3C359 is not set # CONFIG_TMS380TR is not set Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig 2009-11-26 12:35:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-26 12:35:51.0 +1100 @@ -1023,8 +1023,8 @@ CONFIG_PASEMI_MAC=y # CONFIG_BNX2X is not set # CONFIG_QLGE is not set # CONFIG_SFC is not set -CONFIG_TR=y -CONFIG_IBMOL=y +# CONFIG_TR is not set +# CONFIG_IBMOL is not set # CONFIG_3C359 is not set # CONFIG_TMS380TR is not set Index: linux.trees.git/arch/powerpc/configs/ppc64e_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/ppc64e_defconfig 2009-11-26 12:35:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/ppc64e_defconfig 2009-11-26 12:35:41.0 +1100 @@ -1008,8 +1008,8 @@ CONFIG_IXGB=m # CONFIG_QLGE is not set # CONFIG_SFC is not set # CONFIG_BE2NET is not set -CONFIG_TR=y -CONFIG_IBMOL=y +# CONFIG_TR is not set +# CONFIG_IBMOL is not set # CONFIG_3C359 is not set # CONFIG_TMS380TR is not set CONFIG_WLAN=y Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig 2009-11-26 12:35:15.0 +1100 +++ linux.trees.git/arch/powerpc/configs/pseries_defconfig 2009-11-26 12:36:04.0 +1100 @@ -834,8 +834,8 @@ CONFIG_S2IO=m # CONFIG_BNX2X is not set # CONFIG_QLGE is not set # CONFIG_SFC is not set -CONFIG_TR=y -CONFIG_IBMOL=y +# CONFIG_TR is not set +# CONFIG_IBMOL is not set # CONFIG_3C359 is not set # CONFIG_TMS380TR is not set ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 4/4] powerpc: Set HZ=100 on pseries and ppc64 defconfigs
Now we have high res timers there is less of a reason for a high HZ value. Furthermore I think there a few reasons we should reduce HZ to 100: - Timer interrupt overhead. While this overhead is small, there are applications that are very sensitive to jitter (eg some HPC apps). - Issues with the timer wheel code. When coming out of NO_HZ idle we work our way through the timer code one tick at a time. If we have been idle a long time, this adds up - I sometimes see milliseconds of time spent in that loop. Long term we should fix the timer wheel algorithm, but for now if we reduce HZ then we reduce the amount of work the timer code has to do when coming out of idle. Signed-off-by: Anton Blanchard an...@samba.org --- Index: linux.trees.git/arch/powerpc/configs/ppc64_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/ppc64_defconfig 2009-11-27 11:58:09.0 +1100 +++ linux.trees.git/arch/powerpc/configs/ppc64_defconfig2009-11-27 11:58:43.0 +1100 @@ -306,11 +306,11 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -# CONFIG_HZ_100 is not set -CONFIG_HZ_250=y +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set # CONFIG_HZ_1000 is not set -CONFIG_HZ=250 +CONFIG_HZ=100 CONFIG_SCHED_HRTICK=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set Index: linux.trees.git/arch/powerpc/configs/pseries_defconfig === --- linux.trees.git.orig/arch/powerpc/configs/pseries_defconfig 2009-11-27 11:58:11.0 +1100 +++ linux.trees.git/arch/powerpc/configs/pseries_defconfig 2009-11-27 11:58:31.0 +1100 @@ -231,11 +231,11 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -# CONFIG_HZ_100 is not set -CONFIG_HZ_250=y +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set # CONFIG_HZ_1000 is not set -CONFIG_HZ=250 +CONFIG_HZ=100 CONFIG_SCHED_HRTICK=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH] offb: add support for framebuffer handoff to offb.
From: Dave Airlie airl...@ppcg5.localdomain This allows offb to be used for initial framebuffer, and a kms driver to take over later in the boot sequence. Signed-off-by: Dave Airlie airl...@redhat.com --- drivers/video/offb.c | 15 ++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/drivers/video/offb.c b/drivers/video/offb.c index 4d8c54c..b043ac8 100644 --- a/drivers/video/offb.c +++ b/drivers/video/offb.c @@ -282,8 +282,17 @@ static int offb_set_par(struct fb_info *info) return 0; } +static void offb_destroy(struct fb_info *info) +{ + if (info-screen_base) + iounmap(info-screen_base); + release_mem_region(info-aperture_base, info-aperture_size); + framebuffer_release(info); +} + static struct fb_ops offb_ops = { .owner = THIS_MODULE, + .fb_destroy = offb_destroy, .fb_setcolreg = offb_setcolreg, .fb_set_par = offb_set_par, .fb_blank = offb_blank, @@ -482,10 +491,14 @@ static void __init offb_init_fb(const char *name, const char *full_name, var-sync = 0; var-vmode = FB_VMODE_NONINTERLACED; + /* set offb aperture size for generic probing */ + info-aperture_base = address; + info-aperture_size = fix-smem_len; + info-fbops = offb_ops; info-screen_base = ioremap(address, fix-smem_len); info-pseudo_palette = (void *) (info + 1); - info-flags = FBINFO_DEFAULT | foreign_endian; + info-flags = FBINFO_DEFAULT | FBINFO_MISC_FIRMWARE | foreign_endian; fb_alloc_cmap(info-cmap, 256, 0); -- 1.6.5.rc2 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
dts file for MPC8343EA
Hi We have an MPC8343EA based custom board. I am not able to get Linux up and running in this. No serial output to debug further. U-boot shows correct 'bdinfo' 'clocks' output. inux hangs at machine_probe. I doubt the DTS file in Linux. anyone has DTS file for MPC8343?? u-boot version - 1.3.2 linux-2.6.27 The board base files are drived from MPC8349Imtx-GP since we have the reference board in which we tested the linux image. My current DTS file /dts-v1/; / { model = MPC8343; compatible = MPC8349EMDS, MPC834xMDS, MPC83xxMDS; linux,phandle = 0x100; #size-cells = 0x1; #address-cells = 0x1; aliases { ethernet0 = enet0; ethernet1 = enet1; serial0 = serial0; serial1 = serial1; pci0 = pci0; pci1 = pci1; }; cpus { linux,phandle = 0x200; #cpus = 0x1; #address-cells = 1; #size-cells = 0; PowerPC,834...@0 { device_type = cpu; reg = 0x0; d-cache-line-size = 20; i-cache-line-size = 20; d-cache-size = 8000; i-cache-size = 8000; timebase-frequency = 0; // from bootloader bus-frequency = 0;// from bootloader clock-frequency = 0; // from bootloader 32-bit; }; }; memory { device_type = memory; reg = 0x 0x1000; // 256MB at 0 }; b...@e240 { device_type = board-control; reg = 0xe240 0x8000; }; soc8...@e000 { bus-frequency = 0x1; reg = 0xe000 0x200; ranges = 0x0 0xe000 0x10; device_type = soc; #interrupt-cells = 0x2; #size-cells = 0x1; #address-cells = 0x1; w...@200 { device_type = watchdog; compatible = mpc83xx_wdt; reg = 0x200 0x100; }; i...@3000 { #address-cells = 1; #size-cells = 0; cell-index = 0; compatible = fsl-i2c; reg = 0x3000 0x100; interrupts = 14 0x8; interrupt-parent = ipic; dfsrr; r...@68 { compatible = dallas,ds1374; reg = 0x68; }; }; i...@3100 { #address-cells = 1; #size-cells = 0; cell-index = 1; compatible = fsl-i2c; reg = 0x3100 0x100; interrupts = 15 0x8; interrupt-parent = ipic; dfsrr; }; s...@7000 { cell-index = 0; compatible = fsl,spi; reg = 0x7000 0x1000; interrupts = 16 0x8; interrupt-parent = ipic; mode = cpu; }; d...@82a8 { #address-cells = 1; #size-cells = 1; compatible = fsl,mpc8349-dma, fsl,elo-dma; reg = 0x82a8 4; ranges = 0 0x8100 0x1a8; interrupt-parent = ipic; interrupts = 71 8; cell-index = 0; dma-chan...@0 { compatible = fsl,mpc8349-dma-channel, fsl,elo-dma-channel; reg = 0 0x80; interrupt-parent = ipic; interrupts = 71 8; }; dma-chan...@80 { compatible = fsl,mpc8349-dma-channel, fsl,elo-dma-channel; reg = 0x80 0x80; interrupt-parent = ipic; interrupts = 71 8; }; dma-chan...@100 { compatible = fsl,mpc8349-dma-channel, fsl,elo-dma-channel; reg = 0x100 0x80; interrupt-parent = ipic; interrupts = 71 8;