* [PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 2
@ 2007-08-14 18:41 Valentine Barshak
2007-08-14 18:45 ` [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig Valentine Barshak
` (3 more replies)
0 siblings, 4 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-14 18:41 UTC (permalink / raw)
To: linuxppc-dev
The following patches add initial PowerPC 440EPx Sequoia board support.
The code is based mainly on the Bamboo board support by Josh Boyer and
should be applied on top of the "[patch 00/10] 4xx patch series for 2.6.24"
which adds Bamboo support, since Sequoia shares some code pieces with Bamboo.
These patches have been modified based on the comments for the previous
440EPx Sequoia patch series.
The 2.6.24 4xx patch series is included in the following git tree:
git pull git://git.infradead.org/users/jwboyer/powerpc.git for-2.6.24
Thanks,
Valentine.
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig
2007-08-14 18:41 [PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 2 Valentine Barshak
@ 2007-08-14 18:45 ` Valentine Barshak
2007-08-14 19:21 ` Josh Boyer
2007-08-14 18:48 ` [PATCH 2/4] PowerPC 440EPx: Sequoia DTS Valentine Barshak
` (2 subsequent siblings)
3 siblings, 1 reply; 21+ messages in thread
From: Valentine Barshak @ 2007-08-14 18:45 UTC (permalink / raw)
To: linuxppc-dev
Sequoia defconfig
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/configs/sequoia_defconfig | 783 +++++++++++++++++++++++++++++++++
1 files changed, 783 insertions(+)
diff -ruN linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig linux-2.6/arch/powerpc/configs/sequoia_defconfig
--- linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/configs/sequoia_defconfig 2007-08-14 17:18:07.000000000 +0400
@@ -0,0 +1,783 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.23-rc1
+# Fri Jul 27 20:46:07 2007
+#
+# CONFIG_PPC64 is not set
+
+#
+# Processor support
+#
+# CONFIG_6xx is not set
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+CONFIG_44x=y
+# CONFIG_E200 is not set
+CONFIG_PPC_FPU=y
+CONFIG_4xx=y
+CONFIG_BOOKE=y
+CONFIG_PTE_64BIT=y
+CONFIG_PHYS_64BIT=y
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_NOT_COHERENT_CACHE=y
+CONFIG_PPC32=y
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_OF=y
+CONFIG_PPC_UDBG_16550=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_GENERIC_BUG=y
+# CONFIG_DEFAULT_UIMAGE is not set
+CONFIG_PPC_DCR_NATIVE=y
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_PPC_DCR=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+CONFIG_LBD=y
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# Platform support
+#
+# CONFIG_PPC_MPC52xx is not set
+# CONFIG_PPC_MPC5200 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_EBONY is not set
+CONFIG_SEQUOIA=y
+CONFIG_440EPX=y
+CONFIG_440A=y
+# CONFIG_MPIC is not set
+# CONFIG_MPIC_WEIRD is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_RTAS is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPM2 is not set
+
+#
+# Kernel options
+#
+# CONFIG_HIGHMEM is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_MATH_EMULATION=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_PROC_DEVICETREE=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE=""
+CONFIG_SECCOMP=y
+CONFIG_WANT_DEVICE_TREE=y
+CONFIG_DEVICE_TREE="sequoia.dts"
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_ZONE_DMA=y
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_SYSCALL=y
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_PCI_MSI is not set
+# CONFIG_PCI_DEBUG is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0x80000000
+CONFIG_CONSISTENT_START=0xff100000
+CONFIG_CONSISTENT_SIZE=0x00200000
+CONFIG_BOOT_LOAD=0x01000000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+# CONFIG_MTD is not set
+CONFIG_OF_DEVICE=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=35000
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_XILINX_SYSACE is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_PHANTOM is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_IEEE1394 is not set
+# CONFIG_I2O is not set
+CONFIG_MACINTOSH_DRIVERS=y
+# CONFIG_MAC_EMUMOUSEBTN is not set
+# CONFIG_WINDFARM is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ARCNET is not set
+# CONFIG_NET_ETHERNET is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+CONFIG_NETDEV_10000=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+# CONFIG_MYRI10GE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_MLX4_CORE is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_PCI is not set
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_WATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_FB is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+# CONFIG_MMC is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_INFINIBAND is not set
+# CONFIG_EDAC is not set
+
+#
+# Real Time Clock
+#
+# CONFIG_RTC_CLASS is not set
+
+#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
+# Userspace I/O
+#
+# CONFIG_UIO is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+# CONFIG_NLS is not set
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+# CONFIG_UCC_SLOW is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+
+#
+# Instrumentation Support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_DEBUGGER=y
+# CONFIG_KGDB is not set
+# CONFIG_XMON is not set
+# CONFIG_BDI_SWITCH is not set
+CONFIG_PPC_EARLY_DEBUG=y
+# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
+# CONFIG_PPC_EARLY_DEBUG_G5 is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
+# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
+# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
+# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
+# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
+CONFIG_PPC_EARLY_DEBUG_44x=y
+CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0xef600300
+CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_MANAGER=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_HW=y
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 2/4] PowerPC 440EPx: Sequoia DTS
2007-08-14 18:41 [PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 2 Valentine Barshak
2007-08-14 18:45 ` [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig Valentine Barshak
@ 2007-08-14 18:48 ` Valentine Barshak
2007-08-15 3:43 ` David Gibson
2007-08-15 6:39 ` Stefan Roese
2007-08-14 18:53 ` [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper Valentine Barshak
2007-08-14 19:04 ` [PATCH 4/4] PowerPC 440EPx: Sequoia board support Valentine Barshak
3 siblings, 2 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-14 18:48 UTC (permalink / raw)
To: linuxppc-dev
AMCC Sequoia device tree.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/boot/dts/sequoia.dts | 289 ++++++++++++++++++++++++++++++++++++++
1 files changed, 289 insertions(+)
diff -ruN linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts linux-2.6/arch/powerpc/boot/dts/sequoia.dts
--- linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/boot/dts/sequoia.dts 2007-08-14 19:32:56.000000000 +0400
@@ -0,0 +1,289 @@
+/*
+ * Device Tree Source for AMCC Sequoia
+ *
+ * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright (c) 2006, 2007 IBM Corp.
+ *
+ * FIXME: Draft only!
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without
+ * any warranty of any kind, whether express or implied.
+ *
+ */
+
+/ {
+ #address-cells = <2>;
+ #size-cells = <1>;
+ model = "amcc,sequoia";
+ compatible = "amcc,sequoia";
+ dcr-parent = <&/cpus/PowerPC,440EPx@0>;
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ PowerPC,440EPx@0 {
+ device_type = "cpu";
+ reg = <0>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ timebase-frequency = <0>; /* Filled in by zImage */
+ i-cache-line-size = <20>;
+ d-cache-line-size = <20>;
+ i-cache-size = <8000>;
+ d-cache-size = <8000>;
+ dcr-controller;
+ dcr-access-method = "native";
+ };
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0 0 0>; /* Filled in by zImage */
+ };
+
+ UIC0: interrupt-controller0 {
+ compatible = "ibm,uic-440epx","ibm,uic";
+ interrupt-controller;
+ cell-index = <0>;
+ dcr-reg = <0c0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ };
+
+ UIC1: interrupt-controller1 {
+ compatible = "ibm,uic-440epx","ibm,uic";
+ interrupt-controller;
+ cell-index = <1>;
+ dcr-reg = <0d0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ interrupts = <1e 4 1f 4>; /* cascade */
+ interrupt-parent = <&UIC0>;
+ };
+
+ UIC2: interrupt-controller2 {
+ compatible = "ibm,uic-440epx","ibm,uic";
+ interrupt-controller;
+ cell-index = <2>;
+ dcr-reg = <0e0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ interrupts = <1c 4 1d 4>; /* cascade */
+ interrupt-parent = <&UIC0>;
+ };
+
+ SDR0: sdr {
+ compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
+ dcr-reg = <00e 002>;
+ };
+
+ CPR0: cpr {
+ compatible = "ibm,cpr-440epx", "ibm,sdr-440ep";
+ dcr-reg = <00c 002>;
+ };
+
+ plb {
+ compatible = "ibm,plb-440epx", "ibm,plb4";
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges;
+ clock-frequency = <0>; /* Filled in by zImage */
+
+ SDRAM0: sdram {
+ device_type = "memory-controller";
+ compatible = "ibm,sdram-44x-ddr2denali";
+ dcr-reg = <010 2>;
+ };
+
+ DMA0: dma {
+ compatible = "ibm,dma-440epx", "ibm,dma-4xx";
+ dcr-reg = <100 027>;
+ };
+
+ MAL0: mcmal {
+ compatible = "ibm,mcmal-440epx", "ibm,mcmal-440spe", "ibm,mcmal2";
+ dcr-reg = <180 62>;
+ num-tx-chans = <4>;
+ num-rx-chans = <4>;
+ interrupt-parent = <&MAL0>;
+ interrupts = <0 1 2 3 4>;
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
+ /*RXEOB*/ 1 &UIC0 b 4
+ /*SERR*/ 2 &UIC1 0 4
+ /*TXDE*/ 3 &UIC1 1 4
+ /*RXDE*/ 4 &UIC1 2 4>;
+ interrupt-map-mask = <ffffffff>;
+ };
+
+ POB0: opb {
+ compatible = "ibm,opb-440epx", "ibm,opb";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ /* Bamboo is oddball in the 44x world and doesn't use the ERPN
+ * bits.
+ */
+ ranges = <00000000 1 00000000 80000000
+ 80000000 1 80000000 80000000>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <7 4>;
+ clock-frequency = <0>; /* Filled in by zImage */
+
+ EBC0: ebc {
+ compatible = "ibm,ebc-440epx";
+ dcr-reg = <012 2>;
+ #address-cells = <2>;
+ #size-cells = <1>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ interrupts = <5 1>;
+ interrupt-parent = <&UIC1>;
+
+ nor_flash@0,0 {
+ device_type = "rom";
+ compatible = "direct-mapped";
+ probe-type = "CFI";
+ bank-width = <2>;
+ partitions = < 0 180000
+ 180000 200000
+ 380000 3aa0000
+ 3e20000 140000
+ 3f60000 40000
+ 3fa0000 60000>;
+ partition-names = "Kernel", "ramdisk", "file system",
+ "kozio", "env", "u-boot";
+ reg = <0 000000 4000000>;
+ };
+
+ };
+
+ UART0: serial@ef600300 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600300 8>;
+ virtual-reg = <ef600300>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ current-speed = <1c200>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <0 4>;
+ };
+
+ UART1: serial@ef600400 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600400 8>;
+ virtual-reg = <ef600400>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <1 4>;
+ };
+
+ UART2: serial@ef600500 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600500 8>;
+ virtual-reg = <ef600500>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <3 4>;
+ };
+
+ UART3: serial@ef600600 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600600 8>;
+ virtual-reg = <ef600600>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <4 4>;
+ };
+
+ IIC0: i2c@ef600700 {
+ device_type = "i2c";
+ compatible = "ibm,iic-440epx", "ibm,iic";
+ reg = <ef600700 14>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <2 4>;
+ };
+
+ IIC1: i2c@ef600800 {
+ device_type = "i2c";
+ compatible = "ibm,iic-440epx", "ibm,iic";
+ reg = <ef600800 14>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <7 4>;
+ };
+
+ ZMII0: emac-zmii@ef600d00 {
+ device_type = "zmii-interface";
+ compatible = "ibm,zmii-440epx", "ibm,zmii";
+ reg = <ef600d00 c>;
+ };
+
+ EMAC0: ethernet@ef600e00 {
+ linux,network-index = <0>;
+ device_type = "network";
+ compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
+ interrupt-parent = <&EMAC0>;
+ interrupts = <0 1>;
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ interrupt-map = </*Status*/ 0 &UIC0 18 4
+ /*Wake*/ 1 &UIC1 1d 4>;
+ reg = <ef600e00 70>;
+ local-mac-address = [000000000000];
+ mal-device = <&MAL0>;
+ mal-tx-channel = <0 1>;
+ mal-rx-channel = <0>;
+ cell-index = <0>;
+ max-frame-size = <5dc>;
+ rx-fifo-size = <1000>;
+ tx-fifo-size = <800>;
+ phy-mode = "rmii";
+ phy-map = <00000000>;
+ zmii-device = <&ZMII0>;
+ zmii-channel = <0>;
+ };
+
+ EMAC1: ethernet@ef600f00 {
+ linux,network-index = <1>;
+ device_type = "network";
+ compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
+ interrupt-parent = <&EMAC1>;
+ interrupts = <0 1>;
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ interrupt-map = </*Status*/ 0 &UIC0 19 4
+ /*Wake*/ 1 &UIC1 1f 4>;
+ reg = <ef600f00 70>;
+ local-mac-address = [000000000000];
+ mal-device = <&MAL0>;
+ mal-tx-channel = <2 3>;
+ mal-rx-channel = <1>;
+ cell-index = <1>;
+ max-frame-size = <5dc>;
+ rx-fifo-size = <1000>;
+ tx-fifo-size = <800>;
+ phy-mode = "rmii";
+ phy-map = <00000000>;
+ zmii-device = <&ZMII0>;
+ zmii-channel = <1>;
+ };
+ };
+ };
+
+ chosen {
+ linux,stdout-path = "/plb/opb/serial@ef600300";
+ bootargs = "console=ttyS0,115200";
+ };
+};
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper
2007-08-14 18:41 [PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 2 Valentine Barshak
2007-08-14 18:45 ` [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig Valentine Barshak
2007-08-14 18:48 ` [PATCH 2/4] PowerPC 440EPx: Sequoia DTS Valentine Barshak
@ 2007-08-14 18:53 ` Valentine Barshak
2007-08-15 3:46 ` David Gibson
2007-08-15 17:37 ` Jerone Young
2007-08-14 19:04 ` [PATCH 4/4] PowerPC 440EPx: Sequoia board support Valentine Barshak
3 siblings, 2 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-14 18:53 UTC (permalink / raw)
To: linuxppc-dev
Bootwrapper code for AMCC 440EPx Sequoia board.
The DDR2 Denali controller support has been moved to
arch/powerpc/boot/4xx.c
The code also uses 440EP clocking fixups
initially provided for 440EP Bamboo.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/boot/44x.h | 1
arch/powerpc/boot/4xx.c | 108 +++++++++++++++++++++++++++++++++++++
arch/powerpc/boot/4xx.h | 1
arch/powerpc/boot/Makefile | 6 +-
arch/powerpc/boot/cuboot-sequoia.c | 31 ++++++++++
arch/powerpc/boot/sequoia.c | 48 ++++++++++++++++
6 files changed, 193 insertions(+), 2 deletions(-)
diff -ruN linux-2.6.orig/arch/powerpc/boot/44x.h linux-2.6/arch/powerpc/boot/44x.h
--- linux-2.6.orig/arch/powerpc/boot/44x.h 2007-08-14 17:11:16.000000000 +0400
+++ linux-2.6/arch/powerpc/boot/44x.h 2007-08-14 17:25:37.000000000 +0400
@@ -12,5 +12,6 @@
void ebony_init(void *mac0, void *mac1);
void bamboo_init(void);
+void sequoia_init(void *mac0, void *mac1);
#endif /* _PPC_BOOT_44X_H_ */
diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.c linux-2.6/arch/powerpc/boot/4xx.c
--- linux-2.6.orig/arch/powerpc/boot/4xx.c 2007-08-14 17:11:16.000000000 +0400
+++ linux-2.6/arch/powerpc/boot/4xx.c 2007-08-14 20:16:57.000000000 +0400
@@ -39,6 +39,114 @@
dt_fixup_memory(0, memsize);
}
+/* 4xx DDR1/2 Denali memory controller support */
+/* DDR0 registers */
+#define DDR0_02 2
+#define DDR0_08 8
+#define DDR0_10 10
+#define DDR0_14 14
+#define DDR0_42 42
+#define DDR0_43 43
+
+/* DDR0_02 */
+#define DDR_START 0x1
+#define DDR_START_SHIFT 0
+#define DDR_MAX_CS_REG 0x3
+#define DDR_MAX_CS_REG_SHIFT 24
+#define DDR_MAX_COL_REG 0xf
+#define DDR_MAX_COL_REG_SHIFT 16
+#define DDR_MAX_ROW_REG 0xf
+#define DDR_MAX_ROW_REG_SHIFT 8
+/* DDR0_08 */
+#define DDR_DDR2_MODE 0x1
+#define DDR_DDR2_MODE_SHIFT 0
+/* DDR0_10 */
+#define DDR_CS_MAP 0x3
+#define DDR_CS_MAP_SHIFT 8
+/* DDR0_14 */
+#define DDR_REDUC 0x1
+#define DDR_REDUC_SHIFT 16
+/* DDR0_42 */
+#define DDR_APIN 0x7
+#define DDR_APIN_SHIFT 24
+/* DDR0_43 */
+#define DDR_COL_SZ 0x7
+#define DDR_COL_SZ_SHIFT 8
+#define DDR_BANK8 0x1
+#define DDR_BANK8_SHIFT 0
+
+#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask))
+
+static inline u32 mfdcr_sdram0(u32 reg)
+{
+ mtdcr(DCRN_SDRAM0_CFGADDR, reg);
+ return mfdcr(DCRN_SDRAM0_CFGDATA);
+}
+
+void ibm4xx_denali_fixup_memsize(void)
+{
+ u32 val, max_cs, max_col, max_row;
+ u32 cs, col, row, bank, dpath;
+ unsigned long memsize;
+
+ val = mfdcr_sdram0(DDR0_02);
+ if (!DDR_GET_VAL(val, DDR_START, DDR_START_SHIFT))
+ fatal("DDR controller is not initialized\n");
+
+ /* get maximum cs col and row values */
+ max_cs = DDR_GET_VAL(val, DDR_MAX_CS_REG, DDR_MAX_CS_REG_SHIFT);
+ max_col = DDR_GET_VAL(val, DDR_MAX_COL_REG, DDR_MAX_COL_REG_SHIFT);
+ max_row = DDR_GET_VAL(val, DDR_MAX_ROW_REG, DDR_MAX_ROW_REG_SHIFT);
+
+ /* get CS value */
+ val = mfdcr_sdram0(DDR0_10);
+
+ val = DDR_GET_VAL(val, DDR_CS_MAP, DDR_CS_MAP_SHIFT);
+ cs = 0;
+ while (val) {
+ if (val && 0x1)
+ cs++;
+ val = val >> 1;
+ }
+
+ if (!cs)
+ fatal("No memory installed\n");
+ if (cs > max_cs)
+ fatal("DDR wrong CS configuration\n");
+
+ /* get data path bytes */
+ val = mfdcr_sdram0(DDR0_14);
+
+ if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT))
+ dpath = 8; /* 64 bits */
+ else
+ dpath = 4; /* 32 bits */
+
+ /* get adress pins (rows) */
+ val = mfdcr_sdram0(DDR0_42);
+
+ row = DDR_GET_VAL(val, DDR_APIN, DDR_APIN_SHIFT);
+ if (row > max_row)
+ fatal("DDR wrong APIN configuration\n");
+ row = max_row - row;
+
+ /* get collomn size and banks */
+ val = mfdcr_sdram0(DDR0_43);
+
+ col = DDR_GET_VAL(val, DDR_COL_SZ, DDR_COL_SZ_SHIFT);
+ if (col > max_col)
+ fatal("DDR wrong COL configuration\n");
+ col = max_col - col;
+
+ if (DDR_GET_VAL(val, DDR_BANK8, DDR_BANK8_SHIFT))
+ bank = 8; /* 8 banks */
+ else
+ bank = 4; /* 4 banks */
+
+ memsize = cs * (1 << (col+row)) * bank * dpath;
+ dt_fixup_memory(0, memsize);
+}
+
#define DBCR0_RST_SYSTEM 0x30000000
void ibm44x_dbcr_reset(void)
diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.h linux-2.6/arch/powerpc/boot/4xx.h
--- linux-2.6.orig/arch/powerpc/boot/4xx.h 2007-08-14 17:11:16.000000000 +0400
+++ linux-2.6/arch/powerpc/boot/4xx.h 2007-08-14 20:24:22.000000000 +0400
@@ -12,6 +12,7 @@
#define _POWERPC_BOOT_4XX_H_
void ibm4xx_fixup_memsize(void);
+void ibm4xx_denali_fixup_memsize(void);
void ibm44x_dbcr_reset(void);
void ibm40x_dbcr_reset(void);
void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1);
diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
--- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-14 17:25:37.000000000 +0400
@@ -0,0 +1,31 @@
+/*
+ * Old U-boot compatibility for Sequoia
+ *
+ * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
+ *
+ * Copyright 2007 David Gibson, IBM Corporatio.
+ * Based on cuboot-83xx.c, which is:
+ * Copyright (c) 2007 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#include "ops.h"
+#include "stdio.h"
+#include "44x.h"
+#include "cuboot.h"
+
+#define TARGET_4xx
+#define TARGET_44x
+#include "ppcboot.h"
+
+static bd_t bd;
+
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7)
+{
+ CUBOOT_INIT();
+ sequoia_init(&bd.bi_enetaddr, &bd.bi_enet1addr);
+}
diff -ruN linux-2.6.orig/arch/powerpc/boot/Makefile linux-2.6/arch/powerpc/boot/Makefile
--- linux-2.6.orig/arch/powerpc/boot/Makefile 2007-08-14 17:11:16.000000000 +0400
+++ linux-2.6/arch/powerpc/boot/Makefile 2007-08-14 17:25:38.000000000 +0400
@@ -44,10 +44,11 @@
src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
ns16550.c serial.c simple_alloc.c div64.S util.S \
gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
- 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c
+ 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
+ sequoia.c
src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
- ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c
+ ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-sequoia.c
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -143,6 +144,7 @@
image-$(CONFIG_PPC_85xx) += cuImage.85xx
image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
image-$(CONFIG_BAMBOO) += treeImage.bamboo
+image-$(CONFIG_SEQUOIA) += cuImage.sequoia
endif
# For 32-bit powermacs, build the COFF and miboot images
diff -ruN linux-2.6.orig/arch/powerpc/boot/sequoia.c linux-2.6/arch/powerpc/boot/sequoia.c
--- linux-2.6.orig/arch/powerpc/boot/sequoia.c 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/boot/sequoia.c 2007-08-14 20:52:10.000000000 +0400
@@ -0,0 +1,48 @@
+/*
+ * Valentine Barshak <vbarshak@ru.mvista.com>
+ * Copyright 2007 MontaVista Software, Inc
+ *
+ * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright IBM Corporation, 2007
+ *
+ * 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; version 2 of the License
+ */
+#include <stdarg.h>
+#include <stddef.h>
+#include "types.h"
+#include "elf.h"
+#include "string.h"
+#include "stdio.h"
+#include "page.h"
+#include "ops.h"
+#include "dcr.h"
+#include "4xx.h"
+#include "44x.h"
+
+extern char _dtb_start[];
+extern char _dtb_end[];
+
+static u8 *sequoia_mac0, *sequoia_mac1;
+
+
+static void sequoia_fixups(void)
+{
+ unsigned long sysclk = 33333333;
+
+ ibm440ep_fixup_clocks(sysclk, 11059200);
+ ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
+ ibm4xx_denali_fixup_memsize();
+ dt_fixup_mac_addresses(sequoia_mac0, sequoia_mac1);
+}
+
+void sequoia_init(void *mac0, void *mac1)
+{
+ platform_ops.fixups = sequoia_fixups;
+ platform_ops.exit = ibm44x_dbcr_reset;
+ sequoia_mac0 = mac0;
+ sequoia_mac1 = mac1;
+ ft_init(_dtb_start, 0, 32);
+ serial_console_init();
+}
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 4/4] PowerPC 440EPx: Sequoia board support
2007-08-14 18:41 [PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 2 Valentine Barshak
` (2 preceding siblings ...)
2007-08-14 18:53 ` [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper Valentine Barshak
@ 2007-08-14 19:04 ` Valentine Barshak
2007-08-15 3:48 ` David Gibson
3 siblings, 1 reply; 21+ messages in thread
From: Valentine Barshak @ 2007-08-14 19:04 UTC (permalink / raw)
To: linuxppc-dev
AMCC 440EPx Sequoia board support.
The second bit (0x4) in the 440EPx/440GRx PVR value indicates
the Security/Kasumi engine absence if set.
This bit has been removed from the pvr mask to use a single
cputable entry for with/without Security/Kasumi cpu versions.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/kernel/cputable.c | 18 +++++++++
arch/powerpc/kernel/head_44x.S | 2 -
arch/powerpc/platforms/44x/Kconfig | 17 ++++++++-
arch/powerpc/platforms/44x/Makefile | 1
arch/powerpc/platforms/44x/sequoia.c | 66 +++++++++++++++++++++++++++++++++++
5 files changed, 102 insertions(+), 2 deletions(-)
diff -ruN linux-2.6.orig/arch/powerpc/kernel/cputable.c linux-2.6/arch/powerpc/kernel/cputable.c
--- linux-2.6.orig/arch/powerpc/kernel/cputable.c 2007-08-14 17:11:18.000000000 +0400
+++ linux-2.6/arch/powerpc/kernel/cputable.c 2007-08-14 19:37:54.000000000 +0400
@@ -1132,6 +1132,24 @@
.dcache_bsize = 32,
.platform = "ppc440",
},
+ { /* 440EPX */
+ .pvr_mask = 0xf0000ffb,
+ .pvr_value = 0x200008D0,
+ .cpu_name = "440EPX",
+ .cpu_features = CPU_FTRS_44X,
+ .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ },
+ { /* 440GRX */
+ .pvr_mask = 0xf0000ffb,
+ .pvr_value = 0x200008D8,
+ .cpu_name = "440GRX",
+ .cpu_features = CPU_FTRS_44X,
+ .cpu_user_features = COMMON_USER_BOOKE,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ },
{ /* 440GP Rev. B */
.pvr_mask = 0xf0000fff,
.pvr_value = 0x40000440,
diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
--- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-14 17:11:19.000000000 +0400
+++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-14 17:18:43.000000000 +0400
@@ -217,7 +217,7 @@
lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
mtspr SPRN_IVPR,r4
-#ifdef CONFIG_440EP
+#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
/* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
mfspr r2,SPRN_CCR0
lis r3,0xffef
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig linux-2.6/arch/powerpc/platforms/44x/Kconfig
--- linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig 2007-08-14 17:11:17.000000000 +0400
+++ linux-2.6/arch/powerpc/platforms/44x/Kconfig 2007-08-14 20:36:19.000000000 +0400
@@ -14,6 +14,14 @@
help
This option enables support for the IBM PPC440GP evaluation board.
+config SEQUOIA
+ bool "Sequoia"
+ depends on 44x
+ default n
+ select 440EPX
+ help
+ This option enables support for the AMCC PPC440EPX evaluation board.
+
#config LUAN
# bool "Luan"
# depends on 44x
@@ -37,6 +45,13 @@
select IBM440EP_ERR42
# select IBM_NEW_EMAC_ZMII
+config 440EPX
+ bool
+ select PPC_FPU
+# Disabled until the new EMAC Driver is merged.
+# select IBM_NEW_EMAC_EMAC4
+# select IBM_NEW_EMAC_ZMII
+
config 440GP
bool
# Disabled until the new EMAC Driver is merged.
@@ -50,7 +65,7 @@
config 440A
bool
- depends on 440GX
+ depends on 440GX || 440EPX
default y
# 44x errata/workaround config symbols, selected by the CPU models above
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Makefile linux-2.6/arch/powerpc/platforms/44x/Makefile
--- linux-2.6.orig/arch/powerpc/platforms/44x/Makefile 2007-08-14 17:11:17.000000000 +0400
+++ linux-2.6/arch/powerpc/platforms/44x/Makefile 2007-08-14 17:18:43.000000000 +0400
@@ -1,3 +1,4 @@
obj-$(CONFIG_44x) := misc_44x.o
obj-$(CONFIG_EBONY) += ebony.o
obj-$(CONFIG_BAMBOO) += bamboo.o
+obj-$(CONFIG_SEQUOIA) += sequoia.o
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c linux-2.6/arch/powerpc/platforms/44x/sequoia.c
--- linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/platforms/44x/sequoia.c 2007-08-14 20:12:26.000000000 +0400
@@ -0,0 +1,66 @@
+/*
+ * Sequoia board specific routines
+ *
+ * Valentine Barshak <vbarshak@ru.mvista.com>
+ * Copyright 2007 MontaVista Software Inc.
+ *
+ * Based on the Bamboo code by
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright 2007 IBM Corporation
+ *
+ * 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.
+ */
+#include <linux/init.h>
+#include <asm/machdep.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/time.h>
+#include <asm/uic.h>
+#include <asm/of_platform.h>
+#include "44x.h"
+
+static struct of_device_id sequoia_of_bus[] = {
+ { .compatible = "ibm,plb", },
+ { .compatible = "ibm,opb", },
+ { .compatible = "ibm,ebc", },
+ {},
+};
+
+static int __init sequoia_device_probe(void)
+{
+ if (!machine_is(sequoia))
+ return 0;
+
+ of_platform_bus_probe(NULL, sequoia_of_bus, NULL);
+
+ return 0;
+}
+device_initcall(sequoia_device_probe);
+
+static int __init sequoia_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+
+ if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
+ return 0;
+
+ return 1;
+}
+
+static void __init sequoia_setup_arch(void)
+{
+}
+
+define_machine(sequoia) {
+ .name = "Sequoia",
+ .probe = sequoia_probe,
+ .setup_arch = sequoia_setup_arch,
+ .progress = udbg_progress,
+ .init_IRQ = uic_init_tree,
+ .get_irq = uic_get_irq,
+ .restart = ppc44x_reset_system,
+ .calibrate_decr = generic_calibrate_decr,
+};
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig
2007-08-14 18:45 ` [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig Valentine Barshak
@ 2007-08-14 19:21 ` Josh Boyer
2007-08-15 12:11 ` Valentine Barshak
0 siblings, 1 reply; 21+ messages in thread
From: Josh Boyer @ 2007-08-14 19:21 UTC (permalink / raw)
To: linuxppc-dev
On Tue, 14 Aug 2007 22:45:00 +0400
Valentine Barshak <vbarshak@ru.mvista.com> wrote:
> Sequoia defconfig
>
> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
> ---
> arch/powerpc/configs/sequoia_defconfig | 783 +++++++++++++++++++++++++++++++++
> 1 files changed, 783 insertions(+)
>
> diff -ruN linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig linux-2.6/arch/powerpc/configs/sequoia_defconfig
> --- linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/configs/sequoia_defconfig 2007-08-14 17:18:07.000000000 +0400
> @@ -0,0 +1,783 @@
> +#
> +# Automatically generated make config: don't edit
> +# Linux kernel version: 2.6.23-rc1
> +# Fri Jul 27 20:46:07 2007
> +#
> +# CONFIG_PPC64 is not set
> +
> +#
> +# Processor support
> +#
> +# CONFIG_6xx is not set
> +# CONFIG_PPC_85xx is not set
> +# CONFIG_PPC_8xx is not set
> +# CONFIG_40x is not set
> +CONFIG_44x=y
> +# CONFIG_E200 is not set
> +CONFIG_PPC_FPU=y
...
> +CONFIG_MATH_EMULATION=y
You shouldn't need both FPU and MATH_EMULATION. Bamboo had the same
bug in it's defconfig until recently, so you can blame me if you'd
like :)
josh
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/4] PowerPC 440EPx: Sequoia DTS
2007-08-14 18:48 ` [PATCH 2/4] PowerPC 440EPx: Sequoia DTS Valentine Barshak
@ 2007-08-15 3:43 ` David Gibson
2007-08-15 16:56 ` Valentine Barshak
2007-08-15 6:39 ` Stefan Roese
1 sibling, 1 reply; 21+ messages in thread
From: David Gibson @ 2007-08-15 3:43 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
On Tue, Aug 14, 2007 at 10:48:43PM +0400, Valentine Barshak wrote:
> AMCC Sequoia device tree.
>
> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
> ---
> arch/powerpc/boot/dts/sequoia.dts | 289 ++++++++++++++++++++++++++++++++++++++
> 1 files changed, 289 insertions(+)
>
> diff -ruN linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts linux-2.6/arch/powerpc/boot/dts/sequoia.dts
> --- linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/boot/dts/sequoia.dts 2007-08-14 19:32:56.000000000 +0400
> @@ -0,0 +1,289 @@
> +/*
> + * Device Tree Source for AMCC Sequoia
> + *
> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
> + * Copyright (c) 2006, 2007 IBM Corp.
> + *
> + * FIXME: Draft only!
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without
> + * any warranty of any kind, whether express or implied.
> + *
> + */
> +
> +/ {
> + #address-cells = <2>;
> + #size-cells = <1>;
> + model = "amcc,sequoia";
> + compatible = "amcc,sequoia";
> + dcr-parent = <&/cpus/PowerPC,440EPx@0>;
> +
> + cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + PowerPC,440EPx@0 {
> + device_type = "cpu";
> + reg = <0>;
> + clock-frequency = <0>; /* Filled in by zImage */
> + timebase-frequency = <0>; /* Filled in by zImage */
> + i-cache-line-size = <20>;
> + d-cache-line-size = <20>;
> + i-cache-size = <8000>;
> + d-cache-size = <8000>;
> + dcr-controller;
> + dcr-access-method = "native";
> + };
> + };
> +
> + memory {
> + device_type = "memory";
> + reg = <0 0 0>; /* Filled in by zImage */
> + };
> +
> + UIC0: interrupt-controller0 {
> + compatible = "ibm,uic-440epx","ibm,uic";
> + interrupt-controller;
> + cell-index = <0>;
> + dcr-reg = <0c0 009>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + #interrupt-cells = <2>;
> + };
> +
> + UIC1: interrupt-controller1 {
> + compatible = "ibm,uic-440epx","ibm,uic";
> + interrupt-controller;
> + cell-index = <1>;
> + dcr-reg = <0d0 009>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + #interrupt-cells = <2>;
> + interrupts = <1e 4 1f 4>; /* cascade */
> + interrupt-parent = <&UIC0>;
> + };
> +
> + UIC2: interrupt-controller2 {
> + compatible = "ibm,uic-440epx","ibm,uic";
> + interrupt-controller;
> + cell-index = <2>;
> + dcr-reg = <0e0 009>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + #interrupt-cells = <2>;
> + interrupts = <1c 4 1d 4>; /* cascade */
> + interrupt-parent = <&UIC0>;
> + };
> +
> + SDR0: sdr {
> + compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
Ok, I take it the 440EP really does have SDR and CPR devices with
which the EPx variants are compatible?
> + dcr-reg = <00e 002>;
> + };
> +
> + CPR0: cpr {
> + compatible = "ibm,cpr-440epx", "ibm,sdr-440ep";
> + dcr-reg = <00c 002>;
> + };
> +
> + plb {
> + compatible = "ibm,plb-440epx", "ibm,plb4";
> + #address-cells = <2>;
> + #size-cells = <1>;
> + ranges;
> + clock-frequency = <0>; /* Filled in by zImage */
> +
> + SDRAM0: sdram {
> + device_type = "memory-controller";
> + compatible = "ibm,sdram-44x-ddr2denali";
Should have an ibm,sdram-440epx entry as well, just in case of chip
specific bugs / workarounds.
> + dcr-reg = <010 2>;
> + };
> +
> + DMA0: dma {
> + compatible = "ibm,dma-440epx", "ibm,dma-4xx";
> + dcr-reg = <100 027>;
> + };
> +
> + MAL0: mcmal {
> + compatible = "ibm,mcmal-440epx", "ibm,mcmal-440spe", "ibm,mcmal2";
What's the 440spe entry about?
> + dcr-reg = <180 62>;
> + num-tx-chans = <4>;
> + num-rx-chans = <4>;
> + interrupt-parent = <&MAL0>;
> + interrupts = <0 1 2 3 4>;
> + #interrupt-cells = <1>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
> + /*RXEOB*/ 1 &UIC0 b 4
> + /*SERR*/ 2 &UIC1 0 4
> + /*TXDE*/ 3 &UIC1 1 4
> + /*RXDE*/ 4 &UIC1 2 4>;
> + interrupt-map-mask = <ffffffff>;
> + };
> +
> + POB0: opb {
> + compatible = "ibm,opb-440epx", "ibm,opb";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + /* Bamboo is oddball in the 44x world and doesn't use the ERPN
> + * bits.
> + */
This incorrect and outdated comment is still here.
> + ranges = <00000000 1 00000000 80000000
> + 80000000 1 80000000 80000000>;
> + interrupt-parent = <&UIC1>;
> + interrupts = <7 4>;
> + clock-frequency = <0>; /* Filled in by zImage */
> +
> + EBC0: ebc {
> + compatible = "ibm,ebc-440epx";
Should have "ibm,ebc" too.
> + dcr-reg = <012 2>;
> + #address-cells = <2>;
> + #size-cells = <1>;
> + clock-frequency = <0>; /* Filled in by zImage */
> + interrupts = <5 1>;
> + interrupt-parent = <&UIC1>;
> +
> + nor_flash@0,0 {
> + device_type = "rom";
> + compatible = "direct-mapped";
> + probe-type = "CFI";
> + bank-width = <2>;
> + partitions = < 0 180000
> + 180000 200000
> + 380000 3aa0000
> + 3e20000 140000
> + 3f60000 40000
> + 3fa0000 60000>;
> + partition-names = "Kernel", "ramdisk", "file system",
> + "kozio", "env", "u-boot";
> + reg = <0 000000 4000000>;
> + };
> +
> + };
> +
> + UART0: serial@ef600300 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600300 8>;
> + virtual-reg = <ef600300>;
> + clock-frequency = <0>; /* Filled in by zImage */
> + current-speed = <1c200>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <0 4>;
> + };
> +
> + UART1: serial@ef600400 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600400 8>;
> + virtual-reg = <ef600400>;
> + clock-frequency = <0>;
> + current-speed = <0>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <1 4>;
> + };
> +
> + UART2: serial@ef600500 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600500 8>;
> + virtual-reg = <ef600500>;
> + clock-frequency = <0>;
> + current-speed = <0>;
> + interrupt-parent = <&UIC1>;
> + interrupts = <3 4>;
> + };
> +
> + UART3: serial@ef600600 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600600 8>;
> + virtual-reg = <ef600600>;
> + clock-frequency = <0>;
> + current-speed = <0>;
> + interrupt-parent = <&UIC1>;
> + interrupts = <4 4>;
> + };
> +
> + IIC0: i2c@ef600700 {
> + device_type = "i2c";
> + compatible = "ibm,iic-440epx", "ibm,iic";
> + reg = <ef600700 14>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <2 4>;
> + };
> +
> + IIC1: i2c@ef600800 {
> + device_type = "i2c";
> + compatible = "ibm,iic-440epx", "ibm,iic";
> + reg = <ef600800 14>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <7 4>;
> + };
> +
> + ZMII0: emac-zmii@ef600d00 {
> + device_type = "zmii-interface";
> + compatible = "ibm,zmii-440epx", "ibm,zmii";
> + reg = <ef600d00 c>;
> + };
> +
> + EMAC0: ethernet@ef600e00 {
> + linux,network-index = <0>;
> + device_type = "network";
> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
Again what's the ibm,emac-440spe about?
> + interrupt-parent = <&EMAC0>;
> + interrupts = <0 1>;
> + #interrupt-cells = <1>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + interrupt-map = </*Status*/ 0 &UIC0 18 4
> + /*Wake*/ 1 &UIC1 1d 4>;
> + reg = <ef600e00 70>;
> + local-mac-address = [000000000000];
> + mal-device = <&MAL0>;
> + mal-tx-channel = <0 1>;
> + mal-rx-channel = <0>;
> + cell-index = <0>;
> + max-frame-size = <5dc>;
> + rx-fifo-size = <1000>;
> + tx-fifo-size = <800>;
> + phy-mode = "rmii";
> + phy-map = <00000000>;
> + zmii-device = <&ZMII0>;
> + zmii-channel = <0>;
> + };
> +
> + EMAC1: ethernet@ef600f00 {
> + linux,network-index = <1>;
> + device_type = "network";
> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
> + interrupt-parent = <&EMAC1>;
> + interrupts = <0 1>;
> + #interrupt-cells = <1>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + interrupt-map = </*Status*/ 0 &UIC0 19 4
> + /*Wake*/ 1 &UIC1 1f 4>;
> + reg = <ef600f00 70>;
> + local-mac-address = [000000000000];
> + mal-device = <&MAL0>;
> + mal-tx-channel = <2 3>;
> + mal-rx-channel = <1>;
> + cell-index = <1>;
> + max-frame-size = <5dc>;
> + rx-fifo-size = <1000>;
> + tx-fifo-size = <800>;
> + phy-mode = "rmii";
> + phy-map = <00000000>;
> + zmii-device = <&ZMII0>;
> + zmii-channel = <1>;
> + };
> + };
> + };
> +
> + chosen {
> + linux,stdout-path = "/plb/opb/serial@ef600300";
> + bootargs = "console=ttyS0,115200";
> + };
> +};
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper
2007-08-14 18:53 ` [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper Valentine Barshak
@ 2007-08-15 3:46 ` David Gibson
2007-08-15 12:22 ` Valentine Barshak
2007-08-15 17:37 ` Jerone Young
1 sibling, 1 reply; 21+ messages in thread
From: David Gibson @ 2007-08-15 3:46 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
On Tue, Aug 14, 2007 at 10:53:55PM +0400, Valentine Barshak wrote:
> Bootwrapper code for AMCC 440EPx Sequoia board.
> The DDR2 Denali controller support has been moved to
> arch/powerpc/boot/4xx.c
> The code also uses 440EP clocking fixups
> initially provided for 440EP Bamboo.
>
> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
[snip]
> diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
> --- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-14 17:25:37.000000000 +0400
> @@ -0,0 +1,31 @@
> +/*
> + * Old U-boot compatibility for Sequoia
> + *
> + * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
> + *
> + * Copyright 2007 David Gibson, IBM Corporatio.
> + * Based on cuboot-83xx.c, which is:
> + * Copyright (c) 2007 Freescale Semiconductor, Inc.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published
> + * by the Free Software Foundation.
> + */
> +
> +#include "ops.h"
> +#include "stdio.h"
> +#include "44x.h"
> +#include "cuboot.h"
> +
> +#define TARGET_4xx
> +#define TARGET_44x
Surely you need to be more specific than that to select the correct
bd_t structure?
> +#include "ppcboot.h"
> +
> +static bd_t bd;
> +
> +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
> + unsigned long r6, unsigned long r7)
> +{
> + CUBOOT_INIT();
> + sequoia_init(&bd.bi_enetaddr, &bd.bi_enet1addr);
> +}
> diff -ruN linux-2.6.orig/arch/powerpc/boot/Makefile linux-2.6/arch/powerpc/boot/Makefile
> --- linux-2.6.orig/arch/powerpc/boot/Makefile 2007-08-14 17:11:16.000000000 +0400
> +++ linux-2.6/arch/powerpc/boot/Makefile 2007-08-14 17:25:38.000000000 +0400
> @@ -44,10 +44,11 @@
> src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
> ns16550.c serial.c simple_alloc.c div64.S util.S \
> gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
> - 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c
> + 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
> + sequoia.c
> src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
> cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
> - ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c
> + ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-sequoia.c
> src-boot := $(src-wlib) $(src-plat) empty.c
>
> src-boot := $(addprefix $(obj)/, $(src-boot))
> @@ -143,6 +144,7 @@
> image-$(CONFIG_PPC_85xx) += cuImage.85xx
> image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
> image-$(CONFIG_BAMBOO) += treeImage.bamboo
> +image-$(CONFIG_SEQUOIA) += cuImage.sequoia
> endif
>
> # For 32-bit powermacs, build the COFF and miboot images
> diff -ruN linux-2.6.orig/arch/powerpc/boot/sequoia.c linux-2.6/arch/powerpc/boot/sequoia.c
> --- linux-2.6.orig/arch/powerpc/boot/sequoia.c 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/boot/sequoia.c 2007-08-14 20:52:10.000000000 +0400
Unless another bootloader is expected to come along for Sequoia,
there's no reason to separate sequoia.c from cuboot-sequoia.c
> @@ -0,0 +1,48 @@
> +/*;5A
> + * Valentine Barshak <vbarshak@ru.mvista.com>
> + * Copyright 2007 MontaVista Software, Inc
> + *
> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
> + * Copyright IBM Corporation, 2007
> + *
> + * 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; version 2 of the License
> + */
> +#include <stdarg.h>
> +#include <stddef.h>
> +#include "types.h"
> +#include "elf.h"
> +#include "string.h"
> +#include "stdio.h"
> +#include "page.h"
> +#include "ops.h"
> +#include "dcr.h"
> +#include "4xx.h"
> +#include "44x.h"
> +
> +extern char _dtb_start[];
> +extern char _dtb_end[];
> +
> +static u8 *sequoia_mac0, *sequoia_mac1;
> +
> +
> +static void sequoia_fixups(void)
> +{
> + unsigned long sysclk = 33333333;
> +
> + ibm440ep_fixup_clocks(sysclk, 11059200);
> + ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
> + ibm4xx_denali_fixup_memsize();
> + dt_fixup_mac_addresses(sequoia_mac0, sequoia_mac1);
> +}
> +
> +void sequoia_init(void *mac0, void *mac1)
> +{
> + platform_ops.fixups = sequoia_fixups;
> + platform_ops.exit = ibm44x_dbcr_reset;
> + sequoia_mac0 = mac0;
> + sequoia_mac1 = mac1;
> + ft_init(_dtb_start, 0, 32);
> + serial_console_init();
> +}
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 4/4] PowerPC 440EPx: Sequoia board support
2007-08-14 19:04 ` [PATCH 4/4] PowerPC 440EPx: Sequoia board support Valentine Barshak
@ 2007-08-15 3:48 ` David Gibson
2007-08-15 13:53 ` Valentine Barshak
0 siblings, 1 reply; 21+ messages in thread
From: David Gibson @ 2007-08-15 3:48 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
On Tue, Aug 14, 2007 at 11:04:09PM +0400, Valentine Barshak wrote:
> AMCC 440EPx Sequoia board support.
> The second bit (0x4) in the 440EPx/440GRx PVR value indicates
> the Security/Kasumi engine absence if set.
> This bit has been removed from the pvr mask to use a single
> cputable entry for with/without Security/Kasumi cpu versions.
>
>
> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
> ---
> arch/powerpc/kernel/cputable.c | 18 +++++++++
> arch/powerpc/kernel/head_44x.S | 2 -
> arch/powerpc/platforms/44x/Kconfig | 17 ++++++++-
> arch/powerpc/platforms/44x/Makefile | 1
> arch/powerpc/platforms/44x/sequoia.c | 66 +++++++++++++++++++++++++++++++++++
> 5 files changed, 102 insertions(+), 2 deletions(-)
>
> diff -ruN linux-2.6.orig/arch/powerpc/kernel/cputable.c linux-2.6/arch/powerpc/kernel/cputable.c
> --- linux-2.6.orig/arch/powerpc/kernel/cputable.c 2007-08-14 17:11:18.000000000 +0400
> +++ linux-2.6/arch/powerpc/kernel/cputable.c 2007-08-14 19:37:54.000000000 +0400
> @@ -1132,6 +1132,24 @@
> .dcache_bsize = 32,
> .platform = "ppc440",
> },
> + { /* 440EPX */
> + .pvr_mask = 0xf0000ffb,
> + .pvr_value = 0x200008D0,
> + .cpu_name = "440EPX",
> + .cpu_features = CPU_FTRS_44X,
> + .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
> + .icache_bsize = 32,
> + .dcache_bsize = 32,
> + },
> + { /* 440GRX */
> + .pvr_mask = 0xf0000ffb,
> + .pvr_value = 0x200008D8,
> + .cpu_name = "440GRX",
> + .cpu_features = CPU_FTRS_44X,
> + .cpu_user_features = COMMON_USER_BOOKE,
> + .icache_bsize = 32,
> + .dcache_bsize = 32,
> + },
> { /* 440GP Rev. B */
> .pvr_mask = 0xf0000fff,
> .pvr_value = 0x40000440,
> diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
> --- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-14 17:11:19.000000000 +0400
> +++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-14 17:18:43.000000000 +0400
> @@ -217,7 +217,7 @@
> lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
> mtspr SPRN_IVPR,r4
>
> -#ifdef CONFIG_440EP
> +#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
Since we should now be able to support both 440GP and 440EP boards in
the same kernel, this probably needs to become a feature section.
> /* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
> mfspr r2,SPRN_CCR0
> lis r3,0xffef
> diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig linux-2.6/arch/powerpc/platforms/44x/Kconfig
> --- linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig 2007-08-14 17:11:17.000000000 +0400
> +++ linux-2.6/arch/powerpc/platforms/44x/Kconfig 2007-08-14 20:36:19.000000000 +0400
> @@ -14,6 +14,14 @@
> help
> This option enables support for the IBM PPC440GP evaluation board.
>
> +config SEQUOIA
> + bool "Sequoia"
> + depends on 44x
> + default n
> + select 440EPX
> + help
> + This option enables support for the AMCC PPC440EPX evaluation board.
> +
> #config LUAN
> # bool "Luan"
> # depends on 44x
> @@ -37,6 +45,13 @@
> select IBM440EP_ERR42
> # select IBM_NEW_EMAC_ZMII
>
> +config 440EPX
> + bool
> + select PPC_FPU
> +# Disabled until the new EMAC Driver is merged.
> +# select IBM_NEW_EMAC_EMAC4
> +# select IBM_NEW_EMAC_ZMII
> +
> config 440GP
> bool
> # Disabled until the new EMAC Driver is merged.
> @@ -50,7 +65,7 @@
>
> config 440A
> bool
> - depends on 440GX
> + depends on 440GX || 440EPX
> default y
>
> # 44x errata/workaround config symbols, selected by the CPU models above
> diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Makefile linux-2.6/arch/powerpc/platforms/44x/Makefile
> --- linux-2.6.orig/arch/powerpc/platforms/44x/Makefile 2007-08-14 17:11:17.000000000 +0400
> +++ linux-2.6/arch/powerpc/platforms/44x/Makefile 2007-08-14 17:18:43.000000000 +0400
> @@ -1,3 +1,4 @@
> obj-$(CONFIG_44x) := misc_44x.o
> obj-$(CONFIG_EBONY) += ebony.o
> obj-$(CONFIG_BAMBOO) += bamboo.o
> +obj-$(CONFIG_SEQUOIA) += sequoia.o
> diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c linux-2.6/arch/powerpc/platforms/44x/sequoia.c
> --- linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/platforms/44x/sequoia.c 2007-08-14 20:12:26.000000000 +0400
> @@ -0,0 +1,66 @@
> +/*
> + * Sequoia board specific routines
> + *
> + * Valentine Barshak <vbarshak@ru.mvista.com>
> + * Copyright 2007 MontaVista Software Inc.
> + *
> + * Based on the Bamboo code by
> + * Josh Boyer <jwboyer@linux.vnet.ibm.com>
> + * Copyright 2007 IBM Corporation
> + *
> + * 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.
> + */
> +#include <linux/init.h>
> +#include <asm/machdep.h>
> +#include <asm/prom.h>
> +#include <asm/udbg.h>
> +#include <asm/time.h>
> +#include <asm/uic.h>
> +#include <asm/of_platform.h>
> +#include "44x.h"
> +
> +static struct of_device_id sequoia_of_bus[] = {
> + { .compatible = "ibm,plb", },
> + { .compatible = "ibm,opb", },
> + { .compatible = "ibm,ebc", },
> + {},
> +};
> +
> +static int __init sequoia_device_probe(void)
> +{
> + if (!machine_is(sequoia))
> + return 0;
> +
> + of_platform_bus_probe(NULL, sequoia_of_bus, NULL);
> +
> + return 0;
> +}
> +device_initcall(sequoia_device_probe);
> +
> +static int __init sequoia_probe(void)
> +{
> + unsigned long root = of_get_flat_dt_root();
> +
> + if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
> + return 0;
> +
> + return 1;
> +}
> +
> +static void __init sequoia_setup_arch(void)
> +{
> +}
> +
> +define_machine(sequoia) {
> + .name = "Sequoia",
> + .probe = sequoia_probe,
> + .setup_arch = sequoia_setup_arch,
> + .progress = udbg_progress,
> + .init_IRQ = uic_init_tree,
> + .get_irq = uic_get_irq,
> + .restart = ppc44x_reset_system,
> + .calibrate_decr = generic_calibrate_decr,
> +};
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/4] PowerPC 440EPx: Sequoia DTS
2007-08-14 18:48 ` [PATCH 2/4] PowerPC 440EPx: Sequoia DTS Valentine Barshak
2007-08-15 3:43 ` David Gibson
@ 2007-08-15 6:39 ` Stefan Roese
2007-08-15 12:09 ` Valentine Barshak
1 sibling, 1 reply; 21+ messages in thread
From: Stefan Roese @ 2007-08-15 6:39 UTC (permalink / raw)
To: linuxppc-dev
On Tuesday 14 August 2007, Valentine Barshak wrote:
> AMCC Sequoia device tree.
Please find some comments below.
> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
> ---
> arch/powerpc/boot/dts/sequoia.dts | 289
> ++++++++++++++++++++++++++++++++++++++ 1 files changed, 289 insertions(+)
>
> diff -ruN linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts
> linux-2.6/arch/powerpc/boot/dts/sequoia.dts ---
> linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts 1970-01-01
> 03:00:00.000000000 +0300 +++
> linux-2.6/arch/powerpc/boot/dts/sequoia.dts 2007-08-14 19:32:56.000000000
> +0400 @@ -0,0 +1,289 @@
> +/*
> + * Device Tree Source for AMCC Sequoia
> + *
> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
> + * Copyright (c) 2006, 2007 IBM Corp.
> + *
> + * FIXME: Draft only!
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without
> + * any warranty of any kind, whether express or implied.
> + *
> + */
> +
> +/ {
> + #address-cells = <2>;
> + #size-cells = <1>;
> + model = "amcc,sequoia";
> + compatible = "amcc,sequoia";
> + dcr-parent = <&/cpus/PowerPC,440EPx@0>;
> +
> + cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + PowerPC,440EPx@0 {
> + device_type = "cpu";
> + reg = <0>;
> + clock-frequency = <0>; /* Filled in by zImage */
> + timebase-frequency = <0>; /* Filled in by zImage */
> + i-cache-line-size = <20>;
> + d-cache-line-size = <20>;
> + i-cache-size = <8000>;
> + d-cache-size = <8000>;
> + dcr-controller;
> + dcr-access-method = "native";
> + };
> + };
> +
> + memory {
> + device_type = "memory";
> + reg = <0 0 0>; /* Filled in by zImage */
> + };
> +
> + UIC0: interrupt-controller0 {
> + compatible = "ibm,uic-440epx","ibm,uic";
> + interrupt-controller;
> + cell-index = <0>;
> + dcr-reg = <0c0 009>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + #interrupt-cells = <2>;
> + };
> +
> + UIC1: interrupt-controller1 {
> + compatible = "ibm,uic-440epx","ibm,uic";
> + interrupt-controller;
> + cell-index = <1>;
> + dcr-reg = <0d0 009>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + #interrupt-cells = <2>;
> + interrupts = <1e 4 1f 4>; /* cascade */
> + interrupt-parent = <&UIC0>;
> + };
> +
> + UIC2: interrupt-controller2 {
> + compatible = "ibm,uic-440epx","ibm,uic";
> + interrupt-controller;
> + cell-index = <2>;
> + dcr-reg = <0e0 009>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + #interrupt-cells = <2>;
> + interrupts = <1c 4 1d 4>; /* cascade */
> + interrupt-parent = <&UIC0>;
> + };
> +
> + SDR0: sdr {
> + compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
> + dcr-reg = <00e 002>;
> + };
> +
> + CPR0: cpr {
> + compatible = "ibm,cpr-440epx", "ibm,sdr-440ep";
sdr-440ep? I assume you really mean:
+ compatible = "ibm,cpr-440epx", "ibm,cpr-440ep";
> + dcr-reg = <00c 002>;
> + };
> +
> + plb {
> + compatible = "ibm,plb-440epx", "ibm,plb4";
> + #address-cells = <2>;
> + #size-cells = <1>;
> + ranges;
> + clock-frequency = <0>; /* Filled in by zImage */
> +
> + SDRAM0: sdram {
> + device_type = "memory-controller";
> + compatible = "ibm,sdram-44x-ddr2denali";
> + dcr-reg = <010 2>;
> + };
> +
> + DMA0: dma {
> + compatible = "ibm,dma-440epx", "ibm,dma-4xx";
> + dcr-reg = <100 027>;
> + };
> +
> + MAL0: mcmal {
> + compatible = "ibm,mcmal-440epx", "ibm,mcmal-440spe", "ibm,mcmal2";
> + dcr-reg = <180 62>;
> + num-tx-chans = <4>;
> + num-rx-chans = <4>;
> + interrupt-parent = <&MAL0>;
> + interrupts = <0 1 2 3 4>;
> + #interrupt-cells = <1>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
> + /*RXEOB*/ 1 &UIC0 b 4
> + /*SERR*/ 2 &UIC1 0 4
> + /*TXDE*/ 3 &UIC1 1 4
> + /*RXDE*/ 4 &UIC1 2 4>;
> + interrupt-map-mask = <ffffffff>;
> + };
> +
> + POB0: opb {
> + compatible = "ibm,opb-440epx", "ibm,opb";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + /* Bamboo is oddball in the 44x world and doesn't use the ERPN
> + * bits.
> + */
Bamboo? And the 440EPx does use the ERPN bits.
> + ranges = <00000000 1 00000000 80000000
> + 80000000 1 80000000 80000000>;
> + interrupt-parent = <&UIC1>;
> + interrupts = <7 4>;
> + clock-frequency = <0>; /* Filled in by zImage */
> +
> + EBC0: ebc {
> + compatible = "ibm,ebc-440epx";
> + dcr-reg = <012 2>;
> + #address-cells = <2>;
> + #size-cells = <1>;
> + clock-frequency = <0>; /* Filled in by zImage */
> + interrupts = <5 1>;
> + interrupt-parent = <&UIC1>;
> +
> + nor_flash@0,0 {
> + device_type = "rom";
> + compatible = "direct-mapped";
> + probe-type = "CFI";
> + bank-width = <2>;
> + partitions = < 0 180000
> + 180000 200000
> + 380000 3aa0000
> + 3e20000 140000
> + 3f60000 40000
> + 3fa0000 60000>;
> + partition-names = "Kernel", "ramdisk", "file system",
> + "kozio", "env", "u-boot";
> + reg = <0 000000 4000000>;
> + };
> +
> + };
> +
> + UART0: serial@ef600300 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600300 8>;
> + virtual-reg = <ef600300>;
> + clock-frequency = <0>; /* Filled in by zImage */
> + current-speed = <1c200>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <0 4>;
> + };
> +
> + UART1: serial@ef600400 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600400 8>;
> + virtual-reg = <ef600400>;
> + clock-frequency = <0>;
> + current-speed = <0>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <1 4>;
> + };
> +
> + UART2: serial@ef600500 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600500 8>;
> + virtual-reg = <ef600500>;
> + clock-frequency = <0>;
> + current-speed = <0>;
> + interrupt-parent = <&UIC1>;
> + interrupts = <3 4>;
> + };
> +
> + UART3: serial@ef600600 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <ef600600 8>;
> + virtual-reg = <ef600600>;
> + clock-frequency = <0>;
> + current-speed = <0>;
> + interrupt-parent = <&UIC1>;
> + interrupts = <4 4>;
> + };
> +
> + IIC0: i2c@ef600700 {
> + device_type = "i2c";
> + compatible = "ibm,iic-440epx", "ibm,iic";
> + reg = <ef600700 14>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <2 4>;
> + };
> +
> + IIC1: i2c@ef600800 {
> + device_type = "i2c";
> + compatible = "ibm,iic-440epx", "ibm,iic";
> + reg = <ef600800 14>;
> + interrupt-parent = <&UIC0>;
> + interrupts = <7 4>;
> + };
> +
> + ZMII0: emac-zmii@ef600d00 {
> + device_type = "zmii-interface";
> + compatible = "ibm,zmii-440epx", "ibm,zmii";
> + reg = <ef600d00 c>;
> + };
> +
> + EMAC0: ethernet@ef600e00 {
> + linux,network-index = <0>;
> + device_type = "network";
> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
> + interrupt-parent = <&EMAC0>;
> + interrupts = <0 1>;
> + #interrupt-cells = <1>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + interrupt-map = </*Status*/ 0 &UIC0 18 4
> + /*Wake*/ 1 &UIC1 1d 4>;
> + reg = <ef600e00 70>;
> + local-mac-address = [000000000000];
> + mal-device = <&MAL0>;
> + mal-tx-channel = <0 1>;
> + mal-rx-channel = <0>;
> + cell-index = <0>;
> + max-frame-size = <5dc>;
> + rx-fifo-size = <1000>;
> + tx-fifo-size = <800>;
> + phy-mode = "rmii";
> + phy-map = <00000000>;
> + zmii-device = <&ZMII0>;
> + zmii-channel = <0>;
> + };
> +
> + EMAC1: ethernet@ef600f00 {
> + linux,network-index = <1>;
> + device_type = "network";
> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
> + interrupt-parent = <&EMAC1>;
> + interrupts = <0 1>;
> + #interrupt-cells = <1>;
> + #address-cells = <0>;
> + #size-cells = <0>;
> + interrupt-map = </*Status*/ 0 &UIC0 19 4
> + /*Wake*/ 1 &UIC1 1f 4>;
> + reg = <ef600f00 70>;
> + local-mac-address = [000000000000];
> + mal-device = <&MAL0>;
> + mal-tx-channel = <2 3>;
> + mal-rx-channel = <1>;
> + cell-index = <1>;
> + max-frame-size = <5dc>;
> + rx-fifo-size = <1000>;
> + tx-fifo-size = <800>;
> + phy-mode = "rmii";
> + phy-map = <00000000>;
> + zmii-device = <&ZMII0>;
> + zmii-channel = <1>;
> + };
> + };
> + };
> +
> + chosen {
> + linux,stdout-path = "/plb/opb/serial@ef600300";
> + bootargs = "console=ttyS0,115200";
> + };
> +};
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
Best regards,
Stefan
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/4] PowerPC 440EPx: Sequoia DTS
2007-08-15 6:39 ` Stefan Roese
@ 2007-08-15 12:09 ` Valentine Barshak
0 siblings, 0 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-15 12:09 UTC (permalink / raw)
To: Stefan Roese; +Cc: linuxppc-dev
Stefan Roese wrote:
> On Tuesday 14 August 2007, Valentine Barshak wrote:
>> AMCC Sequoia device tree.
>
> Please find some comments below.
>
>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>> ---
>> arch/powerpc/boot/dts/sequoia.dts | 289
>> ++++++++++++++++++++++++++++++++++++++ 1 files changed, 289 insertions(+)
>>
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts
>> linux-2.6/arch/powerpc/boot/dts/sequoia.dts ---
>> linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts 1970-01-01
>> 03:00:00.000000000 +0300 +++
>> linux-2.6/arch/powerpc/boot/dts/sequoia.dts 2007-08-14 19:32:56.000000000
>> +0400 @@ -0,0 +1,289 @@
>> +/*
>> + * Device Tree Source for AMCC Sequoia
>> + *
>> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
>> + * Copyright (c) 2006, 2007 IBM Corp.
>> + *
>> + * FIXME: Draft only!
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2. This program is licensed "as is" without
>> + * any warranty of any kind, whether express or implied.
>> + *
>> + */
>> +
>> +/ {
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + model = "amcc,sequoia";
>> + compatible = "amcc,sequoia";
>> + dcr-parent = <&/cpus/PowerPC,440EPx@0>;
>> +
>> + cpus {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + PowerPC,440EPx@0 {
>> + device_type = "cpu";
>> + reg = <0>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> + timebase-frequency = <0>; /* Filled in by zImage */
>> + i-cache-line-size = <20>;
>> + d-cache-line-size = <20>;
>> + i-cache-size = <8000>;
>> + d-cache-size = <8000>;
>> + dcr-controller;
>> + dcr-access-method = "native";
>> + };
>> + };
>> +
>> + memory {
>> + device_type = "memory";
>> + reg = <0 0 0>; /* Filled in by zImage */
>> + };
>> +
>> + UIC0: interrupt-controller0 {
>> + compatible = "ibm,uic-440epx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <0>;
>> + dcr-reg = <0c0 009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + };
>> +
>> + UIC1: interrupt-controller1 {
>> + compatible = "ibm,uic-440epx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <1>;
>> + dcr-reg = <0d0 009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + interrupts = <1e 4 1f 4>; /* cascade */
>> + interrupt-parent = <&UIC0>;
>> + };
>> +
>> + UIC2: interrupt-controller2 {
>> + compatible = "ibm,uic-440epx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <2>;
>> + dcr-reg = <0e0 009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + interrupts = <1c 4 1d 4>; /* cascade */
>> + interrupt-parent = <&UIC0>;
>> + };
>> +
>> + SDR0: sdr {
>> + compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
>> + dcr-reg = <00e 002>;
>> + };
>> +
>> + CPR0: cpr {
>> + compatible = "ibm,cpr-440epx", "ibm,sdr-440ep";
>
> sdr-440ep? I assume you really mean:
>
> + compatible = "ibm,cpr-440epx", "ibm,cpr-440ep";
Oops, thanks for noticing that.
>
>> + dcr-reg = <00c 002>;
>> + };
>> +
>> + plb {
>> + compatible = "ibm,plb-440epx", "ibm,plb4";
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + ranges;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> +
>> + SDRAM0: sdram {
>> + device_type = "memory-controller";
>> + compatible = "ibm,sdram-44x-ddr2denali";
>> + dcr-reg = <010 2>;
>> + };
>> +
>> + DMA0: dma {
>> + compatible = "ibm,dma-440epx", "ibm,dma-4xx";
>> + dcr-reg = <100 027>;
>> + };
>> +
>> + MAL0: mcmal {
>> + compatible = "ibm,mcmal-440epx", "ibm,mcmal-440spe", "ibm,mcmal2";
>> + dcr-reg = <180 62>;
>> + num-tx-chans = <4>;
>> + num-rx-chans = <4>;
>> + interrupt-parent = <&MAL0>;
>> + interrupts = <0 1 2 3 4>;
>> + #interrupt-cells = <1>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
>> + /*RXEOB*/ 1 &UIC0 b 4
>> + /*SERR*/ 2 &UIC1 0 4
>> + /*TXDE*/ 3 &UIC1 1 4
>> + /*RXDE*/ 4 &UIC1 2 4>;
>> + interrupt-map-mask = <ffffffff>;
>> + };
>> +
>> + POB0: opb {
>> + compatible = "ibm,opb-440epx", "ibm,opb";
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + /* Bamboo is oddball in the 44x world and doesn't use the ERPN
>> + * bits.
>> + */
>
> Bamboo? And the 440EPx does use the ERPN bits.
I'll remove the comment.
>
>> + ranges = <00000000 1 00000000 80000000
>> + 80000000 1 80000000 80000000>;
>> + interrupt-parent = <&UIC1>;
>> + interrupts = <7 4>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> +
>> + EBC0: ebc {
>> + compatible = "ibm,ebc-440epx";
>> + dcr-reg = <012 2>;
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> + interrupts = <5 1>;
>> + interrupt-parent = <&UIC1>;
>> +
>> + nor_flash@0,0 {
>> + device_type = "rom";
>> + compatible = "direct-mapped";
>> + probe-type = "CFI";
>> + bank-width = <2>;
>> + partitions = < 0 180000
>> + 180000 200000
>> + 380000 3aa0000
>> + 3e20000 140000
>> + 3f60000 40000
>> + 3fa0000 60000>;
>> + partition-names = "Kernel", "ramdisk", "file system",
>> + "kozio", "env", "u-boot";
>> + reg = <0 000000 4000000>;
>> + };
>> +
>> + };
>> +
>> + UART0: serial@ef600300 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600300 8>;
>> + virtual-reg = <ef600300>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> + current-speed = <1c200>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <0 4>;
>> + };
>> +
>> + UART1: serial@ef600400 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600400 8>;
>> + virtual-reg = <ef600400>;
>> + clock-frequency = <0>;
>> + current-speed = <0>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <1 4>;
>> + };
>> +
>> + UART2: serial@ef600500 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600500 8>;
>> + virtual-reg = <ef600500>;
>> + clock-frequency = <0>;
>> + current-speed = <0>;
>> + interrupt-parent = <&UIC1>;
>> + interrupts = <3 4>;
>> + };
>> +
>> + UART3: serial@ef600600 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600600 8>;
>> + virtual-reg = <ef600600>;
>> + clock-frequency = <0>;
>> + current-speed = <0>;
>> + interrupt-parent = <&UIC1>;
>> + interrupts = <4 4>;
>> + };
>> +
>> + IIC0: i2c@ef600700 {
>> + device_type = "i2c";
>> + compatible = "ibm,iic-440epx", "ibm,iic";
>> + reg = <ef600700 14>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <2 4>;
>> + };
>> +
>> + IIC1: i2c@ef600800 {
>> + device_type = "i2c";
>> + compatible = "ibm,iic-440epx", "ibm,iic";
>> + reg = <ef600800 14>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <7 4>;
>> + };
>> +
>> + ZMII0: emac-zmii@ef600d00 {
>> + device_type = "zmii-interface";
>> + compatible = "ibm,zmii-440epx", "ibm,zmii";
>> + reg = <ef600d00 c>;
>> + };
>> +
>> + EMAC0: ethernet@ef600e00 {
>> + linux,network-index = <0>;
>> + device_type = "network";
>> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
>> + interrupt-parent = <&EMAC0>;
>> + interrupts = <0 1>;
>> + #interrupt-cells = <1>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + interrupt-map = </*Status*/ 0 &UIC0 18 4
>> + /*Wake*/ 1 &UIC1 1d 4>;
>> + reg = <ef600e00 70>;
>> + local-mac-address = [000000000000];
>> + mal-device = <&MAL0>;
>> + mal-tx-channel = <0 1>;
>> + mal-rx-channel = <0>;
>> + cell-index = <0>;
>> + max-frame-size = <5dc>;
>> + rx-fifo-size = <1000>;
>> + tx-fifo-size = <800>;
>> + phy-mode = "rmii";
>> + phy-map = <00000000>;
>> + zmii-device = <&ZMII0>;
>> + zmii-channel = <0>;
>> + };
>> +
>> + EMAC1: ethernet@ef600f00 {
>> + linux,network-index = <1>;
>> + device_type = "network";
>> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
>> + interrupt-parent = <&EMAC1>;
>> + interrupts = <0 1>;
>> + #interrupt-cells = <1>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + interrupt-map = </*Status*/ 0 &UIC0 19 4
>> + /*Wake*/ 1 &UIC1 1f 4>;
>> + reg = <ef600f00 70>;
>> + local-mac-address = [000000000000];
>> + mal-device = <&MAL0>;
>> + mal-tx-channel = <2 3>;
>> + mal-rx-channel = <1>;
>> + cell-index = <1>;
>> + max-frame-size = <5dc>;
>> + rx-fifo-size = <1000>;
>> + tx-fifo-size = <800>;
>> + phy-mode = "rmii";
>> + phy-map = <00000000>;
>> + zmii-device = <&ZMII0>;
>> + zmii-channel = <1>;
>> + };
>> + };
>> + };
>> +
>> + chosen {
>> + linux,stdout-path = "/plb/opb/serial@ef600300";
>> + bootargs = "console=ttyS0,115200";
>> + };
>> +};
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
>
>
> Best regards,
> Stefan
>
> =====================================================================
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de
> =====================================================================
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig
2007-08-14 19:21 ` Josh Boyer
@ 2007-08-15 12:11 ` Valentine Barshak
0 siblings, 0 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-15 12:11 UTC (permalink / raw)
To: Josh Boyer; +Cc: linuxppc-dev
Josh Boyer wrote:
> On Tue, 14 Aug 2007 22:45:00 +0400
> Valentine Barshak <vbarshak@ru.mvista.com> wrote:
>
>> Sequoia defconfig
>>
>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>> ---
>> arch/powerpc/configs/sequoia_defconfig | 783 +++++++++++++++++++++++++++++++++
>> 1 files changed, 783 insertions(+)
>>
>> diff -ruN linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig linux-2.6/arch/powerpc/configs/sequoia_defconfig
>> --- linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig 1970-01-01 03:00:00.000000000 +0300
>> +++ linux-2.6/arch/powerpc/configs/sequoia_defconfig 2007-08-14 17:18:07.000000000 +0400
>> @@ -0,0 +1,783 @@
>> +#
>> +# Automatically generated make config: don't edit
>> +# Linux kernel version: 2.6.23-rc1
>> +# Fri Jul 27 20:46:07 2007
>> +#
>> +# CONFIG_PPC64 is not set
>> +
>> +#
>> +# Processor support
>> +#
>> +# CONFIG_6xx is not set
>> +# CONFIG_PPC_85xx is not set
>> +# CONFIG_PPC_8xx is not set
>> +# CONFIG_40x is not set
>> +CONFIG_44x=y
>> +# CONFIG_E200 is not set
>> +CONFIG_PPC_FPU=y
>
> ...
>
>> +CONFIG_MATH_EMULATION=y
>
> You shouldn't need both FPU and MATH_EMULATION. Bamboo had the same
> bug in it's defconfig until recently, so you can blame me if you'd
> like :)
>
OK, I'll correct this one.
Thanks for noticing that :)
> josh
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper
2007-08-15 3:46 ` David Gibson
@ 2007-08-15 12:22 ` Valentine Barshak
2007-08-16 5:51 ` David Gibson
0 siblings, 1 reply; 21+ messages in thread
From: Valentine Barshak @ 2007-08-15 12:22 UTC (permalink / raw)
To: Valentine Barshak, linuxppc-dev; +Cc: David Gibson
David Gibson wrote:
> On Tue, Aug 14, 2007 at 10:53:55PM +0400, Valentine Barshak wrote:
>> Bootwrapper code for AMCC 440EPx Sequoia board.
>> The DDR2 Denali controller support has been moved to
>> arch/powerpc/boot/4xx.c
>> The code also uses 440EP clocking fixups
>> initially provided for 440EP Bamboo.
>>
>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>
> [snip]
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
>> --- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
>> +++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-14 17:25:37.000000000 +0400
>> @@ -0,0 +1,31 @@
>> +/*
>> + * Old U-boot compatibility for Sequoia
>> + *
>> + * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
>> + *
>> + * Copyright 2007 David Gibson, IBM Corporatio.
>> + * Based on cuboot-83xx.c, which is:
>> + * Copyright (c) 2007 Freescale Semiconductor, Inc.
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU General Public License version 2 as published
>> + * by the Free Software Foundation.
>> + */
>> +
>> +#include "ops.h"
>> +#include "stdio.h"
>> +#include "44x.h"
>> +#include "cuboot.h"
>> +
>> +#define TARGET_4xx
>> +#define TARGET_44x
>
> Surely you need to be more specific than that to select the correct
> bd_t structure?
>
Both TARGET_4xx and TARGET_44x should be selected for 44x. Otherwise I
get wrong bd_t structure (wrong offsets to the eth0/eth1 MAC addresses).
In the older arch/ppc code it used to be CONFIG_4xx and it was selected
for CONFIG_40x and CONFIG_44x as well.
>> +#include "ppcboot.h"
>> +
>> +static bd_t bd;
>> +
>> +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
>> + unsigned long r6, unsigned long r7)
>> +{
>> + CUBOOT_INIT();
>> + sequoia_init(&bd.bi_enetaddr, &bd.bi_enet1addr);
>> +}
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/Makefile linux-2.6/arch/powerpc/boot/Makefile
>> --- linux-2.6.orig/arch/powerpc/boot/Makefile 2007-08-14 17:11:16.000000000 +0400
>> +++ linux-2.6/arch/powerpc/boot/Makefile 2007-08-14 17:25:38.000000000 +0400
>> @@ -44,10 +44,11 @@
>> src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
>> ns16550.c serial.c simple_alloc.c div64.S util.S \
>> gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
>> - 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c
>> + 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
>> + sequoia.c
>> src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
>> cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
>> - ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c
>> + ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-sequoia.c
>> src-boot := $(src-wlib) $(src-plat) empty.c
>>
>> src-boot := $(addprefix $(obj)/, $(src-boot))
>> @@ -143,6 +144,7 @@
>> image-$(CONFIG_PPC_85xx) += cuImage.85xx
>> image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
>> image-$(CONFIG_BAMBOO) += treeImage.bamboo
>> +image-$(CONFIG_SEQUOIA) += cuImage.sequoia
>> endif
>>
>> # For 32-bit powermacs, build the COFF and miboot images
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/sequoia.c linux-2.6/arch/powerpc/boot/sequoia.c
>> --- linux-2.6.orig/arch/powerpc/boot/sequoia.c 1970-01-01 03:00:00.000000000 +0300
>> +++ linux-2.6/arch/powerpc/boot/sequoia.c 2007-08-14 20:52:10.000000000 +0400
>
> Unless another bootloader is expected to come along for Sequoia,
> there's no reason to separate sequoia.c from cuboot-sequoia.c
>
The previous version of Sequoia series had treeboot-sequoia.c, but I've
removed it since only u-boot is used now.
I'm not sure if there are any other bootloaders expected, but is it OK
if I leave 2 separate files just in case? :)
>> @@ -0,0 +1,48 @@
>> +/*;5A
>> + * Valentine Barshak <vbarshak@ru.mvista.com>
>> + * Copyright 2007 MontaVista Software, Inc
>> + *
>> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
>> + * Copyright IBM Corporation, 2007
>> + *
>> + * 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; version 2 of the License
>> + */
>> +#include <stdarg.h>
>> +#include <stddef.h>
>> +#include "types.h"
>> +#include "elf.h"
>> +#include "string.h"
>> +#include "stdio.h"
>> +#include "page.h"
>> +#include "ops.h"
>> +#include "dcr.h"
>> +#include "4xx.h"
>> +#include "44x.h"
>> +
>> +extern char _dtb_start[];
>> +extern char _dtb_end[];
>> +
>> +static u8 *sequoia_mac0, *sequoia_mac1;
>> +
>> +
>> +static void sequoia_fixups(void)
>> +{
>> + unsigned long sysclk = 33333333;
>> +
>> + ibm440ep_fixup_clocks(sysclk, 11059200);
>> + ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
>> + ibm4xx_denali_fixup_memsize();
>> + dt_fixup_mac_addresses(sequoia_mac0, sequoia_mac1);
>> +}
>> +
>> +void sequoia_init(void *mac0, void *mac1)
>> +{
>> + platform_ops.fixups = sequoia_fixups;
>> + platform_ops.exit = ibm44x_dbcr_reset;
>> + sequoia_mac0 = mac0;
>> + sequoia_mac1 = mac1;
>> + ft_init(_dtb_start, 0, 32);
>> + serial_console_init();
>> +}
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>>
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 4/4] PowerPC 440EPx: Sequoia board support
2007-08-15 3:48 ` David Gibson
@ 2007-08-15 13:53 ` Valentine Barshak
2007-08-15 18:43 ` Josh Boyer
0 siblings, 1 reply; 21+ messages in thread
From: Valentine Barshak @ 2007-08-15 13:53 UTC (permalink / raw)
To: Valentine Barshak, linuxppc-dev; +Cc: David Gibson
David Gibson wrote:
> On Tue, Aug 14, 2007 at 11:04:09PM +0400, Valentine Barshak wrote:
>> AMCC 440EPx Sequoia board support.
>> The second bit (0x4) in the 440EPx/440GRx PVR value indicates
>> the Security/Kasumi engine absence if set.
>> This bit has been removed from the pvr mask to use a single
>> cputable entry for with/without Security/Kasumi cpu versions.
>>
>>
>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>> ---
>> arch/powerpc/kernel/cputable.c | 18 +++++++++
>> arch/powerpc/kernel/head_44x.S | 2 -
>> arch/powerpc/platforms/44x/Kconfig | 17 ++++++++-
>> arch/powerpc/platforms/44x/Makefile | 1
>> arch/powerpc/platforms/44x/sequoia.c | 66 +++++++++++++++++++++++++++++++++++
>> 5 files changed, 102 insertions(+), 2 deletions(-)
>>
>> diff -ruN linux-2.6.orig/arch/powerpc/kernel/cputable.c linux-2.6/arch/powerpc/kernel/cputable.c
>> --- linux-2.6.orig/arch/powerpc/kernel/cputable.c 2007-08-14 17:11:18.000000000 +0400
>> +++ linux-2.6/arch/powerpc/kernel/cputable.c 2007-08-14 19:37:54.000000000 +0400
>> @@ -1132,6 +1132,24 @@
>> .dcache_bsize = 32,
>> .platform = "ppc440",
>> },
>> + { /* 440EPX */
>> + .pvr_mask = 0xf0000ffb,
>> + .pvr_value = 0x200008D0,
>> + .cpu_name = "440EPX",
>> + .cpu_features = CPU_FTRS_44X,
>> + .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
>> + .icache_bsize = 32,
>> + .dcache_bsize = 32,
>> + },
>> + { /* 440GRX */
>> + .pvr_mask = 0xf0000ffb,
>> + .pvr_value = 0x200008D8,
>> + .cpu_name = "440GRX",
>> + .cpu_features = CPU_FTRS_44X,
>> + .cpu_user_features = COMMON_USER_BOOKE,
>> + .icache_bsize = 32,
>> + .dcache_bsize = 32,
>> + },
>> { /* 440GP Rev. B */
>> .pvr_mask = 0xf0000fff,
>> .pvr_value = 0x40000440,
>> diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
>> --- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-14 17:11:19.000000000 +0400
>> +++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-14 17:18:43.000000000 +0400
>> @@ -217,7 +217,7 @@
>> lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
>> mtspr SPRN_IVPR,r4
>>
>> -#ifdef CONFIG_440EP
>> +#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
>
> Since we should now be able to support both 440GP and 440EP boards in
> the same kernel, this probably needs to become a feature section.
>
Thanks for pointing that out.
Talking about this, there appears to be more stuff that would need to
become feature sections. There're lots of other ifdefs in
arch/powerpc/kernel/head_44x.S, like ifdef CONFIG_PPC_FPU or ifdef
CONFIG_440A
Looks like all these things have to be detected dynamically and
configured properly at runtime since we tend to support more than one
CPU in the same kernel.
I think this should come as a separate patch, that replaces all these
ifdefs with the FTR_SECTION stuff.
Thanks,
Valentine.
>> /* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
>> mfspr r2,SPRN_CCR0
>> lis r3,0xffef
>> diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig linux-2.6/arch/powerpc/platforms/44x/Kconfig
>> --- linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig 2007-08-14 17:11:17.000000000 +0400
>> +++ linux-2.6/arch/powerpc/platforms/44x/Kconfig 2007-08-14 20:36:19.000000000 +0400
>> @@ -14,6 +14,14 @@
>> help
>> This option enables support for the IBM PPC440GP evaluation board.
>>
>> +config SEQUOIA
>> + bool "Sequoia"
>> + depends on 44x
>> + default n
>> + select 440EPX
>> + help
>> + This option enables support for the AMCC PPC440EPX evaluation board.
>> +
>> #config LUAN
>> # bool "Luan"
>> # depends on 44x
>> @@ -37,6 +45,13 @@
>> select IBM440EP_ERR42
>> # select IBM_NEW_EMAC_ZMII
>>
>> +config 440EPX
>> + bool
>> + select PPC_FPU
>> +# Disabled until the new EMAC Driver is merged.
>> +# select IBM_NEW_EMAC_EMAC4
>> +# select IBM_NEW_EMAC_ZMII
>> +
>> config 440GP
>> bool
>> # Disabled until the new EMAC Driver is merged.
>> @@ -50,7 +65,7 @@
>>
>> config 440A
>> bool
>> - depends on 440GX
>> + depends on 440GX || 440EPX
>> default y
>>
>> # 44x errata/workaround config symbols, selected by the CPU models above
>> diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Makefile linux-2.6/arch/powerpc/platforms/44x/Makefile
>> --- linux-2.6.orig/arch/powerpc/platforms/44x/Makefile 2007-08-14 17:11:17.000000000 +0400
>> +++ linux-2.6/arch/powerpc/platforms/44x/Makefile 2007-08-14 17:18:43.000000000 +0400
>> @@ -1,3 +1,4 @@
>> obj-$(CONFIG_44x) := misc_44x.o
>> obj-$(CONFIG_EBONY) += ebony.o
>> obj-$(CONFIG_BAMBOO) += bamboo.o
>> +obj-$(CONFIG_SEQUOIA) += sequoia.o
>> diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c linux-2.6/arch/powerpc/platforms/44x/sequoia.c
>> --- linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c 1970-01-01 03:00:00.000000000 +0300
>> +++ linux-2.6/arch/powerpc/platforms/44x/sequoia.c 2007-08-14 20:12:26.000000000 +0400
>> @@ -0,0 +1,66 @@
>> +/*
>> + * Sequoia board specific routines
>> + *
>> + * Valentine Barshak <vbarshak@ru.mvista.com>
>> + * Copyright 2007 MontaVista Software Inc.
>> + *
>> + * Based on the Bamboo code by
>> + * Josh Boyer <jwboyer@linux.vnet.ibm.com>
>> + * Copyright 2007 IBM Corporation
>> + *
>> + * 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.
>> + */
>> +#include <linux/init.h>
>> +#include <asm/machdep.h>
>> +#include <asm/prom.h>
>> +#include <asm/udbg.h>
>> +#include <asm/time.h>
>> +#include <asm/uic.h>
>> +#include <asm/of_platform.h>
>> +#include "44x.h"
>> +
>> +static struct of_device_id sequoia_of_bus[] = {
>> + { .compatible = "ibm,plb", },
>> + { .compatible = "ibm,opb", },
>> + { .compatible = "ibm,ebc", },
>> + {},
>> +};
>> +
>> +static int __init sequoia_device_probe(void)
>> +{
>> + if (!machine_is(sequoia))
>> + return 0;
>> +
>> + of_platform_bus_probe(NULL, sequoia_of_bus, NULL);
>> +
>> + return 0;
>> +}
>> +device_initcall(sequoia_device_probe);
>> +
>> +static int __init sequoia_probe(void)
>> +{
>> + unsigned long root = of_get_flat_dt_root();
>> +
>> + if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
>> + return 0;
>> +
>> + return 1;
>> +}
>> +
>> +static void __init sequoia_setup_arch(void)
>> +{
>> +}
>> +
>> +define_machine(sequoia) {
>> + .name = "Sequoia",
>> + .probe = sequoia_probe,
>> + .setup_arch = sequoia_setup_arch,
>> + .progress = udbg_progress,
>> + .init_IRQ = uic_init_tree,
>> + .get_irq = uic_get_irq,
>> + .restart = ppc44x_reset_system,
>> + .calibrate_decr = generic_calibrate_decr,
>> +};
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>>
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/4] PowerPC 440EPx: Sequoia DTS
2007-08-15 3:43 ` David Gibson
@ 2007-08-15 16:56 ` Valentine Barshak
0 siblings, 0 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-15 16:56 UTC (permalink / raw)
To: Valentine Barshak, linuxppc-dev
David Gibson wrote:
> On Tue, Aug 14, 2007 at 10:48:43PM +0400, Valentine Barshak wrote:
>> AMCC Sequoia device tree.
>>
>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>> ---
>> arch/powerpc/boot/dts/sequoia.dts | 289 ++++++++++++++++++++++++++++++++++++++
>> 1 files changed, 289 insertions(+)
>>
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts linux-2.6/arch/powerpc/boot/dts/sequoia.dts
>> --- linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts 1970-01-01 03:00:00.000000000 +0300
>> +++ linux-2.6/arch/powerpc/boot/dts/sequoia.dts 2007-08-14 19:32:56.000000000 +0400
>> @@ -0,0 +1,289 @@
>> +/*
>> + * Device Tree Source for AMCC Sequoia
>> + *
>> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
>> + * Copyright (c) 2006, 2007 IBM Corp.
>> + *
>> + * FIXME: Draft only!
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2. This program is licensed "as is" without
>> + * any warranty of any kind, whether express or implied.
>> + *
>> + */
>> +
>> +/ {
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + model = "amcc,sequoia";
>> + compatible = "amcc,sequoia";
>> + dcr-parent = <&/cpus/PowerPC,440EPx@0>;
>> +
>> + cpus {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + PowerPC,440EPx@0 {
>> + device_type = "cpu";
>> + reg = <0>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> + timebase-frequency = <0>; /* Filled in by zImage */
>> + i-cache-line-size = <20>;
>> + d-cache-line-size = <20>;
>> + i-cache-size = <8000>;
>> + d-cache-size = <8000>;
>> + dcr-controller;
>> + dcr-access-method = "native";
>> + };
>> + };
>> +
>> + memory {
>> + device_type = "memory";
>> + reg = <0 0 0>; /* Filled in by zImage */
>> + };
>> +
>> + UIC0: interrupt-controller0 {
>> + compatible = "ibm,uic-440epx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <0>;
>> + dcr-reg = <0c0 009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + };
>> +
>> + UIC1: interrupt-controller1 {
>> + compatible = "ibm,uic-440epx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <1>;
>> + dcr-reg = <0d0 009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + interrupts = <1e 4 1f 4>; /* cascade */
>> + interrupt-parent = <&UIC0>;
>> + };
>> +
>> + UIC2: interrupt-controller2 {
>> + compatible = "ibm,uic-440epx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <2>;
>> + dcr-reg = <0e0 009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + interrupts = <1c 4 1d 4>; /* cascade */
>> + interrupt-parent = <&UIC0>;
>> + };
>> +
>> + SDR0: sdr {
>> + compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
>
> Ok, I take it the 440EP really does have SDR and CPR devices with
> which the EPx variants are compatible?
Right.
>
>> + dcr-reg = <00e 002>;
>> + };
>> +
>> + CPR0: cpr {
>> + compatible = "ibm,cpr-440epx", "ibm,sdr-440ep";
>> + dcr-reg = <00c 002>;
>> + };
>> +
>> + plb {
>> + compatible = "ibm,plb-440epx", "ibm,plb4";
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + ranges;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> +
>> + SDRAM0: sdram {
>> + device_type = "memory-controller";
>> + compatible = "ibm,sdram-44x-ddr2denali";
>
> Should have an ibm,sdram-440epx entry as well, just in case of chip
> specific bugs / workarounds.
OK
>
>> + dcr-reg = <010 2>;
>> + };
>> +
>> + DMA0: dma {
>> + compatible = "ibm,dma-440epx", "ibm,dma-4xx";
>> + dcr-reg = <100 027>;
>> + };
>> +
>> + MAL0: mcmal {
>> + compatible = "ibm,mcmal-440epx", "ibm,mcmal-440spe", "ibm,mcmal2";
>
> What's the 440spe entry about?
Will remove. No need in 440spe with the updated EMAC driver.
>
>> + dcr-reg = <180 62>;
>> + num-tx-chans = <4>;
>> + num-rx-chans = <4>;
>> + interrupt-parent = <&MAL0>;
>> + interrupts = <0 1 2 3 4>;
>> + #interrupt-cells = <1>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
>> + /*RXEOB*/ 1 &UIC0 b 4
>> + /*SERR*/ 2 &UIC1 0 4
>> + /*TXDE*/ 3 &UIC1 1 4
>> + /*RXDE*/ 4 &UIC1 2 4>;
>> + interrupt-map-mask = <ffffffff>;
>> + };
>> +
>> + POB0: opb {
>> + compatible = "ibm,opb-440epx", "ibm,opb";
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + /* Bamboo is oddball in the 44x world and doesn't use the ERPN
>> + * bits.
>> + */
>
> This incorrect and outdated comment is still here.
Sorry :)
>
>> + ranges = <00000000 1 00000000 80000000
>> + 80000000 1 80000000 80000000>;
>> + interrupt-parent = <&UIC1>;
>> + interrupts = <7 4>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> +
>> + EBC0: ebc {
>> + compatible = "ibm,ebc-440epx";
>
> Should have "ibm,ebc" too.
OK
>
>> + dcr-reg = <012 2>;
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> + interrupts = <5 1>;
>> + interrupt-parent = <&UIC1>;
>> +
>> + nor_flash@0,0 {
>> + device_type = "rom";
>> + compatible = "direct-mapped";
>> + probe-type = "CFI";
>> + bank-width = <2>;
>> + partitions = < 0 180000
>> + 180000 200000
>> + 380000 3aa0000
>> + 3e20000 140000
>> + 3f60000 40000
>> + 3fa0000 60000>;
>> + partition-names = "Kernel", "ramdisk", "file system",
>> + "kozio", "env", "u-boot";
>> + reg = <0 000000 4000000>;
>> + };
>> +
>> + };
>> +
>> + UART0: serial@ef600300 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600300 8>;
>> + virtual-reg = <ef600300>;
>> + clock-frequency = <0>; /* Filled in by zImage */
>> + current-speed = <1c200>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <0 4>;
>> + };
>> +
>> + UART1: serial@ef600400 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600400 8>;
>> + virtual-reg = <ef600400>;
>> + clock-frequency = <0>;
>> + current-speed = <0>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <1 4>;
>> + };
>> +
>> + UART2: serial@ef600500 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600500 8>;
>> + virtual-reg = <ef600500>;
>> + clock-frequency = <0>;
>> + current-speed = <0>;
>> + interrupt-parent = <&UIC1>;
>> + interrupts = <3 4>;
>> + };
>> +
>> + UART3: serial@ef600600 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <ef600600 8>;
>> + virtual-reg = <ef600600>;
>> + clock-frequency = <0>;
>> + current-speed = <0>;
>> + interrupt-parent = <&UIC1>;
>> + interrupts = <4 4>;
>> + };
>> +
>> + IIC0: i2c@ef600700 {
>> + device_type = "i2c";
>> + compatible = "ibm,iic-440epx", "ibm,iic";
>> + reg = <ef600700 14>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <2 4>;
>> + };
>> +
>> + IIC1: i2c@ef600800 {
>> + device_type = "i2c";
>> + compatible = "ibm,iic-440epx", "ibm,iic";
>> + reg = <ef600800 14>;
>> + interrupt-parent = <&UIC0>;
>> + interrupts = <7 4>;
>> + };
>> +
>> + ZMII0: emac-zmii@ef600d00 {
>> + device_type = "zmii-interface";
>> + compatible = "ibm,zmii-440epx", "ibm,zmii";
>> + reg = <ef600d00 c>;
>> + };
>> +
>> + EMAC0: ethernet@ef600e00 {
>> + linux,network-index = <0>;
>> + device_type = "network";
>> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
>
> Again what's the ibm,emac-440spe about?
It's about to be removed from here :)
>
>> + interrupt-parent = <&EMAC0>;
>> + interrupts = <0 1>;
>> + #interrupt-cells = <1>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + interrupt-map = </*Status*/ 0 &UIC0 18 4
>> + /*Wake*/ 1 &UIC1 1d 4>;
>> + reg = <ef600e00 70>;
>> + local-mac-address = [000000000000];
>> + mal-device = <&MAL0>;
>> + mal-tx-channel = <0 1>;
>> + mal-rx-channel = <0>;
>> + cell-index = <0>;
>> + max-frame-size = <5dc>;
>> + rx-fifo-size = <1000>;
>> + tx-fifo-size = <800>;
>> + phy-mode = "rmii";
>> + phy-map = <00000000>;
>> + zmii-device = <&ZMII0>;
>> + zmii-channel = <0>;
>> + };
>> +
>> + EMAC1: ethernet@ef600f00 {
>> + linux,network-index = <1>;
>> + device_type = "network";
>> + compatible = "ibm,emac-440epx", "ibm,emac-440spe", "ibm,emac4";
>> + interrupt-parent = <&EMAC1>;
>> + interrupts = <0 1>;
>> + #interrupt-cells = <1>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + interrupt-map = </*Status*/ 0 &UIC0 19 4
>> + /*Wake*/ 1 &UIC1 1f 4>;
>> + reg = <ef600f00 70>;
>> + local-mac-address = [000000000000];
>> + mal-device = <&MAL0>;
>> + mal-tx-channel = <2 3>;
>> + mal-rx-channel = <1>;
>> + cell-index = <1>;
>> + max-frame-size = <5dc>;
>> + rx-fifo-size = <1000>;
>> + tx-fifo-size = <800>;
>> + phy-mode = "rmii";
>> + phy-map = <00000000>;
>> + zmii-device = <&ZMII0>;
>> + zmii-channel = <1>;
>> + };
>> + };
>> + };
>> +
>> + chosen {
>> + linux,stdout-path = "/plb/opb/serial@ef600300";
>> + bootargs = "console=ttyS0,115200";
>> + };
>> +};
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>>
>
Thanks,
Valentine.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper
2007-08-14 18:53 ` [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper Valentine Barshak
2007-08-15 3:46 ` David Gibson
@ 2007-08-15 17:37 ` Jerone Young
2007-08-15 18:23 ` Valentine Barshak
1 sibling, 1 reply; 21+ messages in thread
From: Jerone Young @ 2007-08-15 17:37 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
What source tree patch based on? The latest kernel.org git tree does not
have arch/powerpc/boot/4xx.c or arch/powerpc/boot/4xx.h . This patch is
attempting to patch these files.
On Tue, 2007-08-14 at 22:53 +0400, Valentine Barshak wrote:
> Bootwrapper code for AMCC 440EPx Sequoia board.
> The DDR2 Denali controller support has been moved to
> arch/powerpc/boot/4xx.c
> The code also uses 440EP clocking fixups
> initially provided for 440EP Bamboo.
>
> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
> ---
> arch/powerpc/boot/44x.h | 1
> arch/powerpc/boot/4xx.c | 108 +++++++++++++++++++++++++++++++++++++
> arch/powerpc/boot/4xx.h | 1
> arch/powerpc/boot/Makefile | 6 +-
> arch/powerpc/boot/cuboot-sequoia.c | 31 ++++++++++
> arch/powerpc/boot/sequoia.c | 48 ++++++++++++++++
> 6 files changed, 193 insertions(+), 2 deletions(-)
>
> diff -ruN linux-2.6.orig/arch/powerpc/boot/44x.h linux-2.6/arch/powerpc/boot/44x.h
> --- linux-2.6.orig/arch/powerpc/boot/44x.h 2007-08-14 17:11:16.000000000 +0400
> +++ linux-2.6/arch/powerpc/boot/44x.h 2007-08-14 17:25:37.000000000 +0400
> @@ -12,5 +12,6 @@
>
> void ebony_init(void *mac0, void *mac1);
> void bamboo_init(void);
> +void sequoia_init(void *mac0, void *mac1);
>
> #endif /* _PPC_BOOT_44X_H_ */
> diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.c linux-2.6/arch/powerpc/boot/4xx.c
> --- linux-2.6.orig/arch/powerpc/boot/4xx.c 2007-08-14 17:11:16.000000000 +0400
> +++ linux-2.6/arch/powerpc/boot/4xx.c 2007-08-14 20:16:57.000000000 +0400
> @@ -39,6 +39,114 @@
> dt_fixup_memory(0, memsize);
> }
>
> +/* 4xx DDR1/2 Denali memory controller support */
> +/* DDR0 registers */
> +#define DDR0_02 2
> +#define DDR0_08 8
> +#define DDR0_10 10
> +#define DDR0_14 14
> +#define DDR0_42 42
> +#define DDR0_43 43
> +
> +/* DDR0_02 */
> +#define DDR_START 0x1
> +#define DDR_START_SHIFT 0
> +#define DDR_MAX_CS_REG 0x3
> +#define DDR_MAX_CS_REG_SHIFT 24
> +#define DDR_MAX_COL_REG 0xf
> +#define DDR_MAX_COL_REG_SHIFT 16
> +#define DDR_MAX_ROW_REG 0xf
> +#define DDR_MAX_ROW_REG_SHIFT 8
> +/* DDR0_08 */
> +#define DDR_DDR2_MODE 0x1
> +#define DDR_DDR2_MODE_SHIFT 0
> +/* DDR0_10 */
> +#define DDR_CS_MAP 0x3
> +#define DDR_CS_MAP_SHIFT 8
> +/* DDR0_14 */
> +#define DDR_REDUC 0x1
> +#define DDR_REDUC_SHIFT 16
> +/* DDR0_42 */
> +#define DDR_APIN 0x7
> +#define DDR_APIN_SHIFT 24
> +/* DDR0_43 */
> +#define DDR_COL_SZ 0x7
> +#define DDR_COL_SZ_SHIFT 8
> +#define DDR_BANK8 0x1
> +#define DDR_BANK8_SHIFT 0
> +
> +#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask))
> +
> +static inline u32 mfdcr_sdram0(u32 reg)
> +{
> + mtdcr(DCRN_SDRAM0_CFGADDR, reg);
> + return mfdcr(DCRN_SDRAM0_CFGDATA);
> +}
> +
> +void ibm4xx_denali_fixup_memsize(void)
> +{
> + u32 val, max_cs, max_col, max_row;
> + u32 cs, col, row, bank, dpath;
> + unsigned long memsize;
> +
> + val = mfdcr_sdram0(DDR0_02);
> + if (!DDR_GET_VAL(val, DDR_START, DDR_START_SHIFT))
> + fatal("DDR controller is not initialized\n");
> +
> + /* get maximum cs col and row values */
> + max_cs = DDR_GET_VAL(val, DDR_MAX_CS_REG, DDR_MAX_CS_REG_SHIFT);
> + max_col = DDR_GET_VAL(val, DDR_MAX_COL_REG, DDR_MAX_COL_REG_SHIFT);
> + max_row = DDR_GET_VAL(val, DDR_MAX_ROW_REG, DDR_MAX_ROW_REG_SHIFT);
> +
> + /* get CS value */
> + val = mfdcr_sdram0(DDR0_10);
> +
> + val = DDR_GET_VAL(val, DDR_CS_MAP, DDR_CS_MAP_SHIFT);
> + cs = 0;
> + while (val) {
> + if (val && 0x1)
> + cs++;
> + val = val >> 1;
> + }
> +
> + if (!cs)
> + fatal("No memory installed\n");
> + if (cs > max_cs)
> + fatal("DDR wrong CS configuration\n");
> +
> + /* get data path bytes */
> + val = mfdcr_sdram0(DDR0_14);
> +
> + if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT))
> + dpath = 8; /* 64 bits */
> + else
> + dpath = 4; /* 32 bits */
> +
> + /* get adress pins (rows) */
> + val = mfdcr_sdram0(DDR0_42);
> +
> + row = DDR_GET_VAL(val, DDR_APIN, DDR_APIN_SHIFT);
> + if (row > max_row)
> + fatal("DDR wrong APIN configuration\n");
> + row = max_row - row;
> +
> + /* get collomn size and banks */
> + val = mfdcr_sdram0(DDR0_43);
> +
> + col = DDR_GET_VAL(val, DDR_COL_SZ, DDR_COL_SZ_SHIFT);
> + if (col > max_col)
> + fatal("DDR wrong COL configuration\n");
> + col = max_col - col;
> +
> + if (DDR_GET_VAL(val, DDR_BANK8, DDR_BANK8_SHIFT))
> + bank = 8; /* 8 banks */
> + else
> + bank = 4; /* 4 banks */
> +
> + memsize = cs * (1 << (col+row)) * bank * dpath;
> + dt_fixup_memory(0, memsize);
> +}
> +
> #define DBCR0_RST_SYSTEM 0x30000000
>
> void ibm44x_dbcr_reset(void)
> diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.h linux-2.6/arch/powerpc/boot/4xx.h
> --- linux-2.6.orig/arch/powerpc/boot/4xx.h 2007-08-14 17:11:16.000000000 +0400
> +++ linux-2.6/arch/powerpc/boot/4xx.h 2007-08-14 20:24:22.000000000 +0400
> @@ -12,6 +12,7 @@
> #define _POWERPC_BOOT_4XX_H_
>
> void ibm4xx_fixup_memsize(void);
> +void ibm4xx_denali_fixup_memsize(void);
> void ibm44x_dbcr_reset(void);
> void ibm40x_dbcr_reset(void);
> void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1);
> diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
> --- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-14 17:25:37.000000000 +0400
> @@ -0,0 +1,31 @@
> +/*
> + * Old U-boot compatibility for Sequoia
> + *
> + * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
> + *
> + * Copyright 2007 David Gibson, IBM Corporatio.
> + * Based on cuboot-83xx.c, which is:
> + * Copyright (c) 2007 Freescale Semiconductor, Inc.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published
> + * by the Free Software Foundation.
> + */
> +
> +#include "ops.h"
> +#include "stdio.h"
> +#include "44x.h"
> +#include "cuboot.h"
> +
> +#define TARGET_4xx
> +#define TARGET_44x
> +#include "ppcboot.h"
> +
> +static bd_t bd;
> +
> +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
> + unsigned long r6, unsigned long r7)
> +{
> + CUBOOT_INIT();
> + sequoia_init(&bd.bi_enetaddr, &bd.bi_enet1addr);
> +}
> diff -ruN linux-2.6.orig/arch/powerpc/boot/Makefile linux-2.6/arch/powerpc/boot/Makefile
> --- linux-2.6.orig/arch/powerpc/boot/Makefile 2007-08-14 17:11:16.000000000 +0400
> +++ linux-2.6/arch/powerpc/boot/Makefile 2007-08-14 17:25:38.000000000 +0400
> @@ -44,10 +44,11 @@
> src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
> ns16550.c serial.c simple_alloc.c div64.S util.S \
> gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
> - 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c
> + 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
> + sequoia.c
> src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
> cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
> - ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c
> + ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-sequoia.c
> src-boot := $(src-wlib) $(src-plat) empty.c
>
> src-boot := $(addprefix $(obj)/, $(src-boot))
> @@ -143,6 +144,7 @@
> image-$(CONFIG_PPC_85xx) += cuImage.85xx
> image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
> image-$(CONFIG_BAMBOO) += treeImage.bamboo
> +image-$(CONFIG_SEQUOIA) += cuImage.sequoia
> endif
>
> # For 32-bit powermacs, build the COFF and miboot images
> diff -ruN linux-2.6.orig/arch/powerpc/boot/sequoia.c linux-2.6/arch/powerpc/boot/sequoia.c
> --- linux-2.6.orig/arch/powerpc/boot/sequoia.c 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/boot/sequoia.c 2007-08-14 20:52:10.000000000 +0400
> @@ -0,0 +1,48 @@
> +/*
> + * Valentine Barshak <vbarshak@ru.mvista.com>
> + * Copyright 2007 MontaVista Software, Inc
> + *
> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
> + * Copyright IBM Corporation, 2007
> + *
> + * 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; version 2 of the License
> + */
> +#include <stdarg.h>
> +#include <stddef.h>
> +#include "types.h"
> +#include "elf.h"
> +#include "string.h"
> +#include "stdio.h"
> +#include "page.h"
> +#include "ops.h"
> +#include "dcr.h"
> +#include "4xx.h"
> +#include "44x.h"
> +
> +extern char _dtb_start[];
> +extern char _dtb_end[];
> +
> +static u8 *sequoia_mac0, *sequoia_mac1;
> +
> +
> +static void sequoia_fixups(void)
> +{
> + unsigned long sysclk = 33333333;
> +
> + ibm440ep_fixup_clocks(sysclk, 11059200);
> + ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
> + ibm4xx_denali_fixup_memsize();
> + dt_fixup_mac_addresses(sequoia_mac0, sequoia_mac1);
> +}
> +
> +void sequoia_init(void *mac0, void *mac1)
> +{
> + platform_ops.fixups = sequoia_fixups;
> + platform_ops.exit = ibm44x_dbcr_reset;
> + sequoia_mac0 = mac0;
> + sequoia_mac1 = mac1;
> + ft_init(_dtb_start, 0, 32);
> + serial_console_init();
> +}
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper
2007-08-15 17:37 ` Jerone Young
@ 2007-08-15 18:23 ` Valentine Barshak
0 siblings, 0 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-15 18:23 UTC (permalink / raw)
To: jyoung5; +Cc: linuxppc-dev
The patches are based mainly on the Bamboo board support by Josh Boyer
and should be applied on top of the "[patch 00/10] 4xx patch series for
2.6.24"
http://ozlabs.org/pipermail/linuxppc-dev/2007-August/040512.html
The 2.6.24 4xx patch series is included in the following git tree:
git://git.infradead.org/users/jwboyer/powerpc.git
Please, take a look at the first message of the thread.
Thanks,
Valentine.
Jerone Young wrote:
> What source tree patch based on? The latest kernel.org git tree does not
> have arch/powerpc/boot/4xx.c or arch/powerpc/boot/4xx.h . This patch is
> attempting to patch these files.
>
> On Tue, 2007-08-14 at 22:53 +0400, Valentine Barshak wrote:
>> Bootwrapper code for AMCC 440EPx Sequoia board.
>> The DDR2 Denali controller support has been moved to
>> arch/powerpc/boot/4xx.c
>> The code also uses 440EP clocking fixups
>> initially provided for 440EP Bamboo.
>>
>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>> ---
>> arch/powerpc/boot/44x.h | 1
>> arch/powerpc/boot/4xx.c | 108 +++++++++++++++++++++++++++++++++++++
>> arch/powerpc/boot/4xx.h | 1
>> arch/powerpc/boot/Makefile | 6 +-
>> arch/powerpc/boot/cuboot-sequoia.c | 31 ++++++++++
>> arch/powerpc/boot/sequoia.c | 48 ++++++++++++++++
>> 6 files changed, 193 insertions(+), 2 deletions(-)
>>
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/44x.h linux-2.6/arch/powerpc/boot/44x.h
>> --- linux-2.6.orig/arch/powerpc/boot/44x.h 2007-08-14 17:11:16.000000000 +0400
>> +++ linux-2.6/arch/powerpc/boot/44x.h 2007-08-14 17:25:37.000000000 +0400
>> @@ -12,5 +12,6 @@
>>
>> void ebony_init(void *mac0, void *mac1);
>> void bamboo_init(void);
>> +void sequoia_init(void *mac0, void *mac1);
>>
>> #endif /* _PPC_BOOT_44X_H_ */
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.c linux-2.6/arch/powerpc/boot/4xx.c
>> --- linux-2.6.orig/arch/powerpc/boot/4xx.c 2007-08-14 17:11:16.000000000 +0400
>> +++ linux-2.6/arch/powerpc/boot/4xx.c 2007-08-14 20:16:57.000000000 +0400
>> @@ -39,6 +39,114 @@
>> dt_fixup_memory(0, memsize);
>> }
>>
>> +/* 4xx DDR1/2 Denali memory controller support */
>> +/* DDR0 registers */
>> +#define DDR0_02 2
>> +#define DDR0_08 8
>> +#define DDR0_10 10
>> +#define DDR0_14 14
>> +#define DDR0_42 42
>> +#define DDR0_43 43
>> +
>> +/* DDR0_02 */
>> +#define DDR_START 0x1
>> +#define DDR_START_SHIFT 0
>> +#define DDR_MAX_CS_REG 0x3
>> +#define DDR_MAX_CS_REG_SHIFT 24
>> +#define DDR_MAX_COL_REG 0xf
>> +#define DDR_MAX_COL_REG_SHIFT 16
>> +#define DDR_MAX_ROW_REG 0xf
>> +#define DDR_MAX_ROW_REG_SHIFT 8
>> +/* DDR0_08 */
>> +#define DDR_DDR2_MODE 0x1
>> +#define DDR_DDR2_MODE_SHIFT 0
>> +/* DDR0_10 */
>> +#define DDR_CS_MAP 0x3
>> +#define DDR_CS_MAP_SHIFT 8
>> +/* DDR0_14 */
>> +#define DDR_REDUC 0x1
>> +#define DDR_REDUC_SHIFT 16
>> +/* DDR0_42 */
>> +#define DDR_APIN 0x7
>> +#define DDR_APIN_SHIFT 24
>> +/* DDR0_43 */
>> +#define DDR_COL_SZ 0x7
>> +#define DDR_COL_SZ_SHIFT 8
>> +#define DDR_BANK8 0x1
>> +#define DDR_BANK8_SHIFT 0
>> +
>> +#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask))
>> +
>> +static inline u32 mfdcr_sdram0(u32 reg)
>> +{
>> + mtdcr(DCRN_SDRAM0_CFGADDR, reg);
>> + return mfdcr(DCRN_SDRAM0_CFGDATA);
>> +}
>> +
>> +void ibm4xx_denali_fixup_memsize(void)
>> +{
>> + u32 val, max_cs, max_col, max_row;
>> + u32 cs, col, row, bank, dpath;
>> + unsigned long memsize;
>> +
>> + val = mfdcr_sdram0(DDR0_02);
>> + if (!DDR_GET_VAL(val, DDR_START, DDR_START_SHIFT))
>> + fatal("DDR controller is not initialized\n");
>> +
>> + /* get maximum cs col and row values */
>> + max_cs = DDR_GET_VAL(val, DDR_MAX_CS_REG, DDR_MAX_CS_REG_SHIFT);
>> + max_col = DDR_GET_VAL(val, DDR_MAX_COL_REG, DDR_MAX_COL_REG_SHIFT);
>> + max_row = DDR_GET_VAL(val, DDR_MAX_ROW_REG, DDR_MAX_ROW_REG_SHIFT);
>> +
>> + /* get CS value */
>> + val = mfdcr_sdram0(DDR0_10);
>> +
>> + val = DDR_GET_VAL(val, DDR_CS_MAP, DDR_CS_MAP_SHIFT);
>> + cs = 0;
>> + while (val) {
>> + if (val && 0x1)
>> + cs++;
>> + val = val >> 1;
>> + }
>> +
>> + if (!cs)
>> + fatal("No memory installed\n");
>> + if (cs > max_cs)
>> + fatal("DDR wrong CS configuration\n");
>> +
>> + /* get data path bytes */
>> + val = mfdcr_sdram0(DDR0_14);
>> +
>> + if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT))
>> + dpath = 8; /* 64 bits */
>> + else
>> + dpath = 4; /* 32 bits */
>> +
>> + /* get adress pins (rows) */
>> + val = mfdcr_sdram0(DDR0_42);
>> +
>> + row = DDR_GET_VAL(val, DDR_APIN, DDR_APIN_SHIFT);
>> + if (row > max_row)
>> + fatal("DDR wrong APIN configuration\n");
>> + row = max_row - row;
>> +
>> + /* get collomn size and banks */
>> + val = mfdcr_sdram0(DDR0_43);
>> +
>> + col = DDR_GET_VAL(val, DDR_COL_SZ, DDR_COL_SZ_SHIFT);
>> + if (col > max_col)
>> + fatal("DDR wrong COL configuration\n");
>> + col = max_col - col;
>> +
>> + if (DDR_GET_VAL(val, DDR_BANK8, DDR_BANK8_SHIFT))
>> + bank = 8; /* 8 banks */
>> + else
>> + bank = 4; /* 4 banks */
>> +
>> + memsize = cs * (1 << (col+row)) * bank * dpath;
>> + dt_fixup_memory(0, memsize);
>> +}
>> +
>> #define DBCR0_RST_SYSTEM 0x30000000
>>
>> void ibm44x_dbcr_reset(void)
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.h linux-2.6/arch/powerpc/boot/4xx.h
>> --- linux-2.6.orig/arch/powerpc/boot/4xx.h 2007-08-14 17:11:16.000000000 +0400
>> +++ linux-2.6/arch/powerpc/boot/4xx.h 2007-08-14 20:24:22.000000000 +0400
>> @@ -12,6 +12,7 @@
>> #define _POWERPC_BOOT_4XX_H_
>>
>> void ibm4xx_fixup_memsize(void);
>> +void ibm4xx_denali_fixup_memsize(void);
>> void ibm44x_dbcr_reset(void);
>> void ibm40x_dbcr_reset(void);
>> void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1);
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
>> --- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
>> +++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-14 17:25:37.000000000 +0400
>> @@ -0,0 +1,31 @@
>> +/*
>> + * Old U-boot compatibility for Sequoia
>> + *
>> + * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
>> + *
>> + * Copyright 2007 David Gibson, IBM Corporatio.
>> + * Based on cuboot-83xx.c, which is:
>> + * Copyright (c) 2007 Freescale Semiconductor, Inc.
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU General Public License version 2 as published
>> + * by the Free Software Foundation.
>> + */
>> +
>> +#include "ops.h"
>> +#include "stdio.h"
>> +#include "44x.h"
>> +#include "cuboot.h"
>> +
>> +#define TARGET_4xx
>> +#define TARGET_44x
>> +#include "ppcboot.h"
>> +
>> +static bd_t bd;
>> +
>> +void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
>> + unsigned long r6, unsigned long r7)
>> +{
>> + CUBOOT_INIT();
>> + sequoia_init(&bd.bi_enetaddr, &bd.bi_enet1addr);
>> +}
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/Makefile linux-2.6/arch/powerpc/boot/Makefile
>> --- linux-2.6.orig/arch/powerpc/boot/Makefile 2007-08-14 17:11:16.000000000 +0400
>> +++ linux-2.6/arch/powerpc/boot/Makefile 2007-08-14 17:25:38.000000000 +0400
>> @@ -44,10 +44,11 @@
>> src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
>> ns16550.c serial.c simple_alloc.c div64.S util.S \
>> gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
>> - 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c
>> + 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
>> + sequoia.c
>> src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
>> cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
>> - ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c
>> + ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-sequoia.c
>> src-boot := $(src-wlib) $(src-plat) empty.c
>>
>> src-boot := $(addprefix $(obj)/, $(src-boot))
>> @@ -143,6 +144,7 @@
>> image-$(CONFIG_PPC_85xx) += cuImage.85xx
>> image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
>> image-$(CONFIG_BAMBOO) += treeImage.bamboo
>> +image-$(CONFIG_SEQUOIA) += cuImage.sequoia
>> endif
>>
>> # For 32-bit powermacs, build the COFF and miboot images
>> diff -ruN linux-2.6.orig/arch/powerpc/boot/sequoia.c linux-2.6/arch/powerpc/boot/sequoia.c
>> --- linux-2.6.orig/arch/powerpc/boot/sequoia.c 1970-01-01 03:00:00.000000000 +0300
>> +++ linux-2.6/arch/powerpc/boot/sequoia.c 2007-08-14 20:52:10.000000000 +0400
>> @@ -0,0 +1,48 @@
>> +/*
>> + * Valentine Barshak <vbarshak@ru.mvista.com>
>> + * Copyright 2007 MontaVista Software, Inc
>> + *
>> + * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
>> + * Copyright IBM Corporation, 2007
>> + *
>> + * 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; version 2 of the License
>> + */
>> +#include <stdarg.h>
>> +#include <stddef.h>
>> +#include "types.h"
>> +#include "elf.h"
>> +#include "string.h"
>> +#include "stdio.h"
>> +#include "page.h"
>> +#include "ops.h"
>> +#include "dcr.h"
>> +#include "4xx.h"
>> +#include "44x.h"
>> +
>> +extern char _dtb_start[];
>> +extern char _dtb_end[];
>> +
>> +static u8 *sequoia_mac0, *sequoia_mac1;
>> +
>> +
>> +static void sequoia_fixups(void)
>> +{
>> + unsigned long sysclk = 33333333;
>> +
>> + ibm440ep_fixup_clocks(sysclk, 11059200);
>> + ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
>> + ibm4xx_denali_fixup_memsize();
>> + dt_fixup_mac_addresses(sequoia_mac0, sequoia_mac1);
>> +}
>> +
>> +void sequoia_init(void *mac0, void *mac1)
>> +{
>> + platform_ops.fixups = sequoia_fixups;
>> + platform_ops.exit = ibm44x_dbcr_reset;
>> + sequoia_mac0 = mac0;
>> + sequoia_mac1 = mac1;
>> + ft_init(_dtb_start, 0, 32);
>> + serial_console_init();
>> +}
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 4/4] PowerPC 440EPx: Sequoia board support
2007-08-15 13:53 ` Valentine Barshak
@ 2007-08-15 18:43 ` Josh Boyer
2007-08-16 5:48 ` David Gibson
0 siblings, 1 reply; 21+ messages in thread
From: Josh Boyer @ 2007-08-15 18:43 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev, David Gibson
On Wed, 15 Aug 2007 17:53:00 +0400
Valentine Barshak <vbarshak@ru.mvista.com> wrote:
> David Gibson wrote:
> >> diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
> >> --- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-14 17:11:19.000000000 +0400
> >> +++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-14 17:18:43.000000000 +0400
> >> @@ -217,7 +217,7 @@
> >> lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
> >> mtspr SPRN_IVPR,r4
> >>
> >> -#ifdef CONFIG_440EP
> >> +#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
> >
> > Since we should now be able to support both 440GP and 440EP boards in
> > the same kernel, this probably needs to become a feature section.
> >
>
> Thanks for pointing that out.
> Talking about this, there appears to be more stuff that would need to
> become feature sections. There're lots of other ifdefs in
> arch/powerpc/kernel/head_44x.S, like ifdef CONFIG_PPC_FPU or ifdef
> CONFIG_440A
> Looks like all these things have to be detected dynamically and
> configured properly at runtime since we tend to support more than one
> CPU in the same kernel.
Yes, definitely. It's on my TODO list. The "multiplatformness" of 44x
at the moment needs work.
> I think this should come as a separate patch, that replaces all these
> ifdefs with the FTR_SECTION stuff.
I agree. I'd like to do this as a separate patch later rather than hold
up Sequoia at the moment.
josh
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 4/4] PowerPC 440EPx: Sequoia board support
2007-08-15 18:43 ` Josh Boyer
@ 2007-08-16 5:48 ` David Gibson
0 siblings, 0 replies; 21+ messages in thread
From: David Gibson @ 2007-08-16 5:48 UTC (permalink / raw)
To: Josh Boyer; +Cc: linuxppc-dev
On Wed, Aug 15, 2007 at 01:43:09PM -0500, Josh Boyer wrote:
> On Wed, 15 Aug 2007 17:53:00 +0400
> Valentine Barshak <vbarshak@ru.mvista.com> wrote:
>
> > David Gibson wrote:
> > >> diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
> > >> --- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-14 17:11:19.000000000 +0400
> > >> +++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-14 17:18:43.000000000 +0400
> > >> @@ -217,7 +217,7 @@
> > >> lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
> > >> mtspr SPRN_IVPR,r4
> > >>
> > >> -#ifdef CONFIG_440EP
> > >> +#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
> > >
> > > Since we should now be able to support both 440GP and 440EP boards in
> > > the same kernel, this probably needs to become a feature section.
> > >
> >
> > Thanks for pointing that out.
> > Talking about this, there appears to be more stuff that would need to
> > become feature sections. There're lots of other ifdefs in
> > arch/powerpc/kernel/head_44x.S, like ifdef CONFIG_PPC_FPU or ifdef
> > CONFIG_440A
> > Looks like all these things have to be detected dynamically and
> > configured properly at runtime since we tend to support more than one
> > CPU in the same kernel.
>
> Yes, definitely. It's on my TODO list. The "multiplatformness" of 44x
> at the moment needs work.
True. Note that not all of them necessarily need to change to feature
sections, though most of them probably do: if the code inside is
harmless, just useless for other platforms it can remain an #ifdef -
the code will run on any kernel with the relevant platform configured.
> > I think this should come as a separate patch, that replaces all these
> > ifdefs with the FTR_SECTION stuff.
>
> I agree. I'd like to do this as a separate patch later rather than hold
> up Sequoia at the moment.
Fair enough.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper
2007-08-15 12:22 ` Valentine Barshak
@ 2007-08-16 5:51 ` David Gibson
2007-08-28 12:54 ` Valentine Barshak
0 siblings, 1 reply; 21+ messages in thread
From: David Gibson @ 2007-08-16 5:51 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
On Wed, Aug 15, 2007 at 04:22:58PM +0400, Valentine Barshak wrote:
> David Gibson wrote:
> > On Tue, Aug 14, 2007 at 10:53:55PM +0400, Valentine Barshak wrote:
> >> Bootwrapper code for AMCC 440EPx Sequoia board.
> >> The DDR2 Denali controller support has been moved to
> >> arch/powerpc/boot/4xx.c
> >> The code also uses 440EP clocking fixups
> >> initially provided for 440EP Bamboo.
> >>
> >> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
> >
> > [snip]
> >> diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
> >> --- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
> >> +++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-14 17:25:37.000000000 +0400
> >> @@ -0,0 +1,31 @@
> >> +/*
> >> + * Old U-boot compatibility for Sequoia
> >> + *
> >> + * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
> >> + *
> >> + * Copyright 2007 David Gibson, IBM Corporatio.
> >> + * Based on cuboot-83xx.c, which is:
> >> + * Copyright (c) 2007 Freescale Semiconductor, Inc.
> >> + *
> >> + * This program is free software; you can redistribute it and/or modify it
> >> + * under the terms of the GNU General Public License version 2 as published
> >> + * by the Free Software Foundation.
> >> + */
> >> +
> >> +#include "ops.h"
> >> +#include "stdio.h"
> >> +#include "44x.h"
> >> +#include "cuboot.h"
> >> +
> >> +#define TARGET_4xx
> >> +#define TARGET_44x
> >
> > Surely you need to be more specific than that to select the correct
> > bd_t structure?
>
> Both TARGET_4xx and TARGET_44x should be selected for 44x. Otherwise I
> get wrong bd_t structure (wrong offsets to the eth0/eth1 MAC addresses).
> In the older arch/ppc code it used to be CONFIG_4xx and it was selected
> for CONFIG_40x and CONFIG_44x as well.
Yes, I'm not objecting to those TARGET macros, but I'd be very
surprised if you don't need more to really get the correct bd_t
structure.
[snip]
> >> diff -ruN linux-2.6.orig/arch/powerpc/boot/sequoia.c linux-2.6/arch/powerpc/boot/sequoia.c
> >> --- linux-2.6.orig/arch/powerpc/boot/sequoia.c 1970-01-01 03:00:00.000000000 +0300
> >> +++ linux-2.6/arch/powerpc/boot/sequoia.c 2007-08-14 20:52:10.000000000 +0400
> >
> > Unless another bootloader is expected to come along for Sequoia,
> > there's no reason to separate sequoia.c from cuboot-sequoia.c
>
> The previous version of Sequoia series had treeboot-sequoia.c, but I've
> removed it since only u-boot is used now.
> I'm not sure if there are any other bootloaders expected, but is it OK
> if I leave 2 separate files just in case? :)
Not unless you have a particular reason to expect another bootloader
will come along, which doesn't seem that likely to me. Or rather the
only likely future bootloader I'd see is newer versions of u-boot
which are device tree aware and handled separately anyway.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper
2007-08-16 5:51 ` David Gibson
@ 2007-08-28 12:54 ` Valentine Barshak
0 siblings, 0 replies; 21+ messages in thread
From: Valentine Barshak @ 2007-08-28 12:54 UTC (permalink / raw)
To: Valentine Barshak, linuxppc-dev
David Gibson wrote:
> On Wed, Aug 15, 2007 at 04:22:58PM +0400, Valentine Barshak wrote:
>> David Gibson wrote:
>>> On Tue, Aug 14, 2007 at 10:53:55PM +0400, Valentine Barshak wrote:
>>>> Bootwrapper code for AMCC 440EPx Sequoia board.
>>>> The DDR2 Denali controller support has been moved to
>>>> arch/powerpc/boot/4xx.c
>>>> The code also uses 440EP clocking fixups
>>>> initially provided for 440EP Bamboo.
>>>>
>>>> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
>>> [snip]
>>>> diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
>>>> --- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
>>>> +++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-14 17:25:37.000000000 +0400
>>>> @@ -0,0 +1,31 @@
>>>> +/*
>>>> + * Old U-boot compatibility for Sequoia
>>>> + *
>>>> + * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
>>>> + *
>>>> + * Copyright 2007 David Gibson, IBM Corporatio.
>>>> + * Based on cuboot-83xx.c, which is:
>>>> + * Copyright (c) 2007 Freescale Semiconductor, Inc.
>>>> + *
>>>> + * This program is free software; you can redistribute it and/or modify it
>>>> + * under the terms of the GNU General Public License version 2 as published
>>>> + * by the Free Software Foundation.
>>>> + */
>>>> +
>>>> +#include "ops.h"
>>>> +#include "stdio.h"
>>>> +#include "44x.h"
>>>> +#include "cuboot.h"
>>>> +
>>>> +#define TARGET_4xx
>>>> +#define TARGET_44x
>>> Surely you need to be more specific than that to select the correct
>>> bd_t structure?
>> Both TARGET_4xx and TARGET_44x should be selected for 44x. Otherwise I
>> get wrong bd_t structure (wrong offsets to the eth0/eth1 MAC addresses).
>> In the older arch/ppc code it used to be CONFIG_4xx and it was selected
>> for CONFIG_40x and CONFIG_44x as well.
>
> Yes, I'm not objecting to those TARGET macros, but I'd be very
> surprised if you don't need more to really get the correct bd_t
> structure.
Sorry, I don't quite follow.
As far as I can tell the bd_t structure looks OK.
Could you be more specific, please?
What exactly do you think I need to get the correct bd_t?
Thanks,
Valentine.
>
> [snip]
>>>> diff -ruN linux-2.6.orig/arch/powerpc/boot/sequoia.c linux-2.6/arch/powerpc/boot/sequoia.c
>>>> --- linux-2.6.orig/arch/powerpc/boot/sequoia.c 1970-01-01 03:00:00.000000000 +0300
>>>> +++ linux-2.6/arch/powerpc/boot/sequoia.c 2007-08-14 20:52:10.000000000 +0400
>>> Unless another bootloader is expected to come along for Sequoia,
>>> there's no reason to separate sequoia.c from cuboot-sequoia.c
>> The previous version of Sequoia series had treeboot-sequoia.c, but I've
>> removed it since only u-boot is used now.
>> I'm not sure if there are any other bootloaders expected, but is it OK
>> if I leave 2 separate files just in case? :)
>
> Not unless you have a particular reason to expect another bootloader
> will come along, which doesn't seem that likely to me. Or rather the
> only likely future bootloader I'd see is newer versions of u-boot
> which are device tree aware and handled separately anyway.
>
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2007-08-28 12:55 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-14 18:41 [PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 2 Valentine Barshak
2007-08-14 18:45 ` [PATCH 1/4] PowerPC 440EPx: Sequoia defconfig Valentine Barshak
2007-08-14 19:21 ` Josh Boyer
2007-08-15 12:11 ` Valentine Barshak
2007-08-14 18:48 ` [PATCH 2/4] PowerPC 440EPx: Sequoia DTS Valentine Barshak
2007-08-15 3:43 ` David Gibson
2007-08-15 16:56 ` Valentine Barshak
2007-08-15 6:39 ` Stefan Roese
2007-08-15 12:09 ` Valentine Barshak
2007-08-14 18:53 ` [PATCH 3/4] PowerPC 440EPx: Sequoia bootwrapper Valentine Barshak
2007-08-15 3:46 ` David Gibson
2007-08-15 12:22 ` Valentine Barshak
2007-08-16 5:51 ` David Gibson
2007-08-28 12:54 ` Valentine Barshak
2007-08-15 17:37 ` Jerone Young
2007-08-15 18:23 ` Valentine Barshak
2007-08-14 19:04 ` [PATCH 4/4] PowerPC 440EPx: Sequoia board support Valentine Barshak
2007-08-15 3:48 ` David Gibson
2007-08-15 13:53 ` Valentine Barshak
2007-08-15 18:43 ` Josh Boyer
2007-08-16 5:48 ` David Gibson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).