diff options
| -rw-r--r-- | target/linux/olpc/Makefile | 23 | ||||
| -rw-r--r-- | target/linux/olpc/base-files/etc/X11/xorg.conf | 71 | ||||
| -rw-r--r-- | target/linux/olpc/base-files/etc/config/network | 11 | ||||
| -rw-r--r-- | target/linux/olpc/base-files/etc/preinit.arch | 2 | ||||
| -rw-r--r-- | target/linux/olpc/base-files/lib/upgrade/platform.sh | 27 | ||||
| -rw-r--r-- | target/linux/olpc/config-2.6.30 | 522 | ||||
| -rw-r--r-- | target/linux/olpc/generic/profiles/000-Generic.mk | 16 | ||||
| -rw-r--r-- | target/linux/olpc/generic/target.mk | 6 | ||||
| -rw-r--r-- | target/linux/olpc/image/Config.in | 23 | ||||
| -rw-r--r-- | target/linux/olpc/image/Makefile | 64 | ||||
| -rwxr-xr-x | target/linux/olpc/image/gen_image.sh | 35 | ||||
| -rw-r--r-- | target/linux/olpc/image/olpc.fth | 5 | ||||
| -rw-r--r-- | target/linux/olpc/patches-2.6.30/300-block2mtd_init.patch | 210 | 
13 files changed, 0 insertions, 1015 deletions
diff --git a/target/linux/olpc/Makefile b/target/linux/olpc/Makefile deleted file mode 100644 index 2f756290c..000000000 --- a/target/linux/olpc/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -# -# Copyright (C) 2006-2009 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -include $(TOPDIR)/rules.mk - -ARCH:=i386 -BOARD:=olpc -BOARDNAME:=OLPC XO-1 -FEATURES:=squashfs ext2 - -LINUX_VERSION:=2.6.30.10 - -include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += kmod-natsemi kmod-ne2k-pci kmod-libertas - -$(eval $(call Target,generic)) -$(eval $(call BuildTarget)) -$(eval $(call $(if $(CONFIG_TARGET_ROOTFS_ISO),RequireCommand,Ignore),mkisofs, \ -   	Please install mkisofs. \ -)) diff --git a/target/linux/olpc/base-files/etc/X11/xorg.conf b/target/linux/olpc/base-files/etc/X11/xorg.conf deleted file mode 100644 index d98a8f87a..000000000 --- a/target/linux/olpc/base-files/etc/X11/xorg.conf +++ /dev/null @@ -1,71 +0,0 @@ -# xorg configuration - -Section "ServerLayout" -	Identifier     "Default Layout" -	Screen      0  "Screen0" 0 0 -	InputDevice    "Mouse0" "CorePointer" -	InputDevice    "Keyboard0" "CoreKeyboard" -EndSection - -Section "Files" -	FontPath     "/usr/lib/X11/fonts/misc" -EndSection - -Section "Module" -	Load  "dbe" -	Load  "extmod" -	Load  "fbdevhw" -#	Load  "glx" -	Load  "record" -	Load  "freetype" -	Load  "type1" -EndSection - -Section "InputDevice" -	Identifier  "Keyboard0" -	Driver      "keyboard" -	Option	    "XkbModel" "pc105" -	Option	    "XkbLayout" "us" -EndSection - -Section "InputDevice" -	Identifier  "Mouse0" -	Driver      "mouse" -	Option	    "Protocol" "PS/2" -	Option	    "Device" "/dev/psaux" -	Option	    "ZAxisMapping" "4 5" -	Option	    "Emulate3Buttons" "yes" -EndSection - -Section "Monitor" -	Identifier   "Monitor0" -	VendorName   "Monitor Vendor" -	ModelName    "OWRT" -	Option	     "dpms" -EndSection - -Section "Device" -	Identifier  "FBDev" -	Driver      "fbdev" -	#Option     "shadowfb" "off" -	VideoRam    4096 -EndSection - -Section "Screen" -    Identifier	"Screen0" -    Device	"FBDev" -    Monitor	"Monitor0" -    DefaultDepth 16 - -    SubSection "Display" -        Depth		16 -        Modes		"1200x900-75" -    EndSubsection - -EndSection - -Section "DRI" -	Group        0 -	Mode         0666 -EndSection - diff --git a/target/linux/olpc/base-files/etc/config/network b/target/linux/olpc/base-files/etc/config/network deleted file mode 100644 index faa8f0e78..000000000 --- a/target/linux/olpc/base-files/etc/config/network +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (C) 2006 OpenWrt.org - -config interface loopback -        option ifname   lo -        option proto    static -        option ipaddr   127.0.0.1 -        option netmask  255.0.0.0 - -config interface wlan -        option ifname   eth0 -        option proto    dhcp diff --git a/target/linux/olpc/base-files/etc/preinit.arch b/target/linux/olpc/base-files/etc/preinit.arch deleted file mode 100644 index f29f0d448..000000000 --- a/target/linux/olpc/base-files/etc/preinit.arch +++ /dev/null @@ -1,2 +0,0 @@ -mount -t proc none /proc -grep 'failsafe=' /proc/cmdline && export FAILSAFE=true diff --git a/target/linux/olpc/base-files/lib/upgrade/platform.sh b/target/linux/olpc/base-files/lib/upgrade/platform.sh deleted file mode 100644 index ffd0b93ab..000000000 --- a/target/linux/olpc/base-files/lib/upgrade/platform.sh +++ /dev/null @@ -1,27 +0,0 @@ -platform_check_image() { -	[ "$ARGC" -gt 1 ] && return 1 - -	case "$(get_magic_word "$1")" in -		48eb) return 0;; -		*) -			echo "Invalid image type" -			return 1 -		;; -	esac -} - -platform_do_upgrade() { -	get_image "$1" > /dev/hda -	sync -} - -x86_prepare_ext2() { -	# if we're running from ext2, we need to make sure that we have a mtd  -	# partition that points to the active rootfs partition. -	# however this only matters if we actually need to preserve the config files -	[ "$SAVE_CONFIG" -eq 1 ] && return 0 -	grep rootfs /proc/mtd >/dev/null || { -		echo /dev/hda2,65536,rootfs > /sys/module/block2mtd/parameters/block2mtd -	} -} -append sysupgrade_pre_upgrade x86_prepare_ext2 diff --git a/target/linux/olpc/config-2.6.30 b/target/linux/olpc/config-2.6.30 deleted file mode 100644 index 808d8ee7b..000000000 --- a/target/linux/olpc/config-2.6.30 +++ /dev/null @@ -1,522 +0,0 @@ -CONFIG_4KSTACKS=y -# CONFIG_64BIT is not set -CONFIG_ACPI_AC=y -# CONFIG_ACPI_ASUS is not set -CONFIG_ACPI_BATTERY=y -CONFIG_ACPI_BLACKLIST_YEAR=0 -CONFIG_ACPI_BUTTON=y -# CONFIG_ACPI_CONTAINER is not set -# CONFIG_ACPI_CUSTOM_DSDT is not set -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_DOCK is not set -CONFIG_ACPI_FAN=y -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_PROCESSOR=y -CONFIG_ACPI_PROC_EVENT=y -# CONFIG_ACPI_PROCFS is not set -CONFIG_ACPI_PROCFS_POWER=y -# CONFIG_ACPI_SBS is not set -CONFIG_ACPI_SLEEP=y -CONFIG_ACPI_SYSFS_POWER=y -CONFIG_ACPI_THERMAL=y -# CONFIG_ACPI_TOSHIBA is not set -# CONFIG_ACPI_WMI is not set -CONFIG_ACPI=y -# CONFIG_AGP is not set -# CONFIG_APM is not set -CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_DEFAULT_IDLE=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_SUPPORTS_MSI=y -CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_WANT_FRAME_POINTERS=y -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_ASUS_LAPTOP is not set -# CONFIG_AUDIT_ARCH is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -# CONFIG_BACKLIGHT_MBP_NVIDIA is not set -# CONFIG_BACKLIGHT_PROGEAR is not set -# CONFIG_BACKLIGHT_SAHARA is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -CONFIG_BATTERY_OLPC=y -CONFIG_BINARY_PRINTF=y -CONFIG_BINFMT_MISC=y -CONFIG_BITREVERSE=y -# CONFIG_BLK_DEV is not set -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_BLK_DEV_SR=y -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_BOUNCE=y -CONFIG_CAN_PM_TRACE=y -# CONFIG_CC_STACKPROTECTOR is not set -CONFIG_CHR_DEV_SG=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -# CONFIG_CMDLINE_BOOL is not set -# CONFIG_COMPAL_LAPTOP is not set -CONFIG_COMPAT_VDSO=y -CONFIG_CONSOLE_TRANSLATIONS=y -# CONFIG_CPA_DEBUG is not set -# CONFIG_CPU_FREQ_DEBUG is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set -# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_GOV_USERSPACE is not set -# CONFIG_CPU_FREQ_STAT_DETAILS is not set -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_SUP_AMD=y -# CONFIG_CPU_SUP_CENTAUR is not set -# CONFIG_CPU_SUP_CYRIX_32 is not set -# CONFIG_CPU_SUP_INTEL is not set -# CONFIG_CPU_SUP_TRANSMETA_32 is not set -# CONFIG_CPU_SUP_UMC_32 is not set -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_WORKQUEUE=y -# CONFIG_CS5535_GPIO is not set -# CONFIG_DCDBAS is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_DEBUG_BOOT_PARAMS is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_INFO is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_NX_TEST is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_RODATA is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_WRITECOUNT is not set -CONFIG_DECOMPRESS_LZMA=y -CONFIG_DEFAULT_IO_DELAY_TYPE=0 -# CONFIG_DELL_RBU is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DETECT_SOFTLOCKUP=y -CONFIG_DEVPORT=y -CONFIG_DISPLAY_SUPPORT=y -# CONFIG_DMA_API_DEBUG is not set -CONFIG_DMIID=y -CONFIG_DMI=y -CONFIG_DOUBLEFAULT=y -CONFIG_DUMMY_CONSOLE=y -# CONFIG_EARLY_PRINTK_DBGP is not set -CONFIG_EARLY_PRINTK=y -# CONFIG_EDAC is not set -# CONFIG_EDD is not set -# CONFIG_EEEPC_LAPTOP is not set -# CONFIG_EFI is not set -CONFIG_ELF_CORE=y -CONFIG_EXT2_FS=y -CONFIG_FAST_CMPXCHG_LOCAL=y -# CONFIG_FAULT_INJECTION is not set -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_GEODE_GX1 is not set -# CONFIG_FB_GEODE_GX is not set -CONFIG_FB_GEODE_LX=y -CONFIG_FB_GEODE=y -CONFIG_FB=y -# CONFIG_FCOE_FNIC is not set -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FIRMWARE_MEMMAP is not set -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -# CONFIG_FONTS is not set -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAME_POINTER is not set -CONFIG_FREEZER=y -# CONFIG_FTRACE_STARTUP_TEST is not set -# CONFIG_FTRACE_SYSCALLS is not set -# CONFIG_FUJITSU_LAPTOP is not set -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CMOS_UPDATE=y -# CONFIG_GENERIC_CPU is not set -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_ISA_DMA=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set -CONFIG_GEODE_MFGPT_TIMER=y -# CONFIG_HAMRADIO is not set -# CONFIG_HANGCHECK_TIMER is not set -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAVE_AOUT=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_ATOMIC_IOMAP=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_FTRACE_SYSCALLS=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KERNEL_BZIP2=y -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_KVM_IRQCHIP=y -CONFIG_HAVE_KVM=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y -CONFIG_HIBERNATION=y -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIGHMEM4G is not set -# CONFIG_HIGHMEM64G is not set -CONFIG_HPET_EMULATE_RTC=y -# CONFIG_HPET is not set -CONFIG_HPET_TIMER=y -CONFIG_HT_IRQ=y -# CONFIG_HUGETLBFS is not set -CONFIG_HW_CONSOLE=y -# CONFIG_HW_RANDOM_AMD is not set -CONFIG_HW_RANDOM_GEODE=y -# CONFIG_HW_RANDOM_INTEL is not set -CONFIG_HW_RANDOM_VIA=y -CONFIG_HW_RANDOM=y -# CONFIG_I8K is not set -# CONFIG_IMA is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_KEYBOARD=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1200 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=900 -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSE=y -CONFIG_INPUT=y -# CONFIG_INPUT_YEALINK is not set -# CONFIG_INTEL_MENLOW is not set -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_IO_DELAY_TYPE_0X80=0 -CONFIG_IO_DELAY_TYPE_0XED=1 -CONFIG_IO_DELAY_TYPE_NONE=3 -CONFIG_IO_DELAY_TYPE_UDELAY=2 -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IOMMU_API is not set -# CONFIG_IOMMU_HELPER is not set -CONFIG_ISA_DMA_API=y -# CONFIG_ISA is not set -# CONFIG_ISCSI_IBFT_FIND is not set -# CONFIG_ISDN is not set -# CONFIG_KALLSYMS_ALL is not set -CONFIG_KALLSYMS=y -# CONFIG_KERNEL_BZIP2 is not set -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_LZMA is not set -# CONFIG_KEXEC_JUMP is not set -CONFIG_KEXEC=y -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KGDB is not set -CONFIG_KTIME_SCALAR=y -CONFIG_LCD_CLASS_DEVICE=y -# CONFIG_LCD_ILI9320 is not set -# CONFIG_LCD_PLATFORM is not set -# CONFIG_LEDS_ALIX2 is not set -# CONFIG_LEDS_CLEVO_MAIL is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_LOGO is not set -# CONFIG_M386 is not set -# CONFIG_M486 is not set -# CONFIG_M586 is not set -# CONFIG_M586MMX is not set -# CONFIG_M586TSC is not set -# CONFIG_M686 is not set -# CONFIG_MACINTOSH_DRIVERS is not set -CONFIG_MARKERS=y -# CONFIG_MATH_EMULATION is not set -# CONFIG_MCA is not set -# CONFIG_MCORE2 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MEMTEST is not set -# CONFIG_MGEODEGX1 is not set -CONFIG_MGEODE_LX=y -# CONFIG_MICROCODE is not set -# CONFIG_MISC_DEVICES is not set -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -CONFIG_MMC_BLOCK=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC=y -# CONFIG_MMIOTRACE is not set -# CONFIG_MOUSE_BCM5974 is not set -CONFIG_MOUSE_PS2_ALPS=y -# CONFIG_MOUSE_PS2_ELANTECH is not set -CONFIG_MOUSE_PS2_LIFEBOOK=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_OLPC=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2_TRACKPOINT=y -CONFIG_MOUSE_PS2=y -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_MPENTIUM4 is not set -# CONFIG_MPENTIUMIII is not set -# CONFIG_MPENTIUMII is not set -# CONFIG_MPENTIUMM is not set -# CONFIG_MPSC is not set -# CONFIG_MSI_LAPTOP is not set -CONFIG_MTD_BLOCK2MTD=y -# CONFIG_MTD_CFI is not set -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_PCI=y -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTRR is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_NETDEV_1000 is not set -# CONFIG_NET_DROP_MONITOR is not set -# CONFIG_NET_ETHERNET is not set -# CONFIG_NETWORK_FILESYSTEMS is not set -CONFIG_NOHIGHMEM=y -CONFIG_NO_HZ=y -CONFIG_NOP_TRACER=y -CONFIG_NR_CPUS=1 -# CONFIG_NSC_GPIO is not set -CONFIG_NVRAM=y -CONFIG_OLPC=y -CONFIG_OPROFILE=y -# CONFIG_OPTIMIZE_INLINING is not set -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_PAGE_OFFSET=0xC0000000 -# CONFIG_PANASONIC_LAPTOP is not set -# CONFIG_PARAVIRT_GUEST is not set -# CONFIG_PARTITION_ADVANCED is not set -# CONFIG_PC8736x_GPIO is not set -# CONFIG_PCI_DEBUG is not set -CONFIG_PCI_DIRECT=y -CONFIG_PCI_DOMAINS=y -# CONFIG_PCIEPORTBUS is not set -# CONFIG_PCI_GOANY is not set -# CONFIG_PCI_GOBIOS is not set -# CONFIG_PCI_GODIRECT is not set -# CONFIG_PCI_GOMMCONFIG is not set -CONFIG_PCI_GOOLPC=y -CONFIG_PCI_OLPC=y -CONFIG_PCSPKR_PLATFORM=y -# CONFIG_PDA_POWER is not set -CONFIG_PHYSICAL_ALIGN=0x100000 -CONFIG_PHYSICAL_START=0x100000 -CONFIG_PM_DEBUG=y -CONFIG_PM_SLEEP=y -CONFIG_PM_STD_PARTITION="" -# CONFIG_PM_TRACE_RTC is not set -# CONFIG_PM_VERBOSE is not set -CONFIG_PM=y -CONFIG_PNPACPI=y -CONFIG_PNP_DEBUG_MESSAGES=y -CONFIG_PNP=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_TRACER is not set -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y -CONFIG_PROCESSOR_SELECT=y -CONFIG_PROFILING=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_RELAY=y -# CONFIG_RELOCATABLE is not set -CONFIG_RING_BUFFER=y -CONFIG_RTC=y -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_RWSEM_GENERIC_SPINLOCK is not set -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_SCHED_DEBUG=y -CONFIG_SCHED_HRTICK=y -CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_SCHEDSTATS=y -CONFIG_SCSI=y -# CONFIG_SCx200 is not set -# CONFIG_SDIO_UART is not set -# CONFIG_SERIAL_8250_EXTENDED is not set -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_PNP=y -# CONFIG_SERIO_CT82C710 is not set -CONFIG_SERIO_I8042=y -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_PCIPS2 is not set -# CONFIG_SERIO_RAW is not set -CONFIG_SERIO_SERPORT=y -CONFIG_SERIO=y -# CONFIG_SLOW_WORK is not set -# CONFIG_SONYPI is not set -# CONFIG_SPARSE_IRQ is not set -CONFIG_SPARSEMEM_STATIC=y -CONFIG_STACKTRACE=y -CONFIG_STRICT_DEVMEM=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_SUSPEND=y -# CONFIG_SYSPROF_TRACER is not set -# CONFIG_TC1100_WMI is not set -# CONFIG_TELCLOCK is not set -CONFIG_THERMAL=y -# CONFIG_THINKPAD_ACPI is not set -CONFIG_TIMER_STATS=y -# CONFIG_TOSHIBA is not set -CONFIG_TRACEPOINTS=y -CONFIG_TRACING_SUPPORT=y -CONFIG_TRACING=y -CONFIG_UID16=y -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_SUSPEND=y -CONFIG_USB_UHCI_HCD=y -CONFIG_USB=y -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 -CONFIG_VGACON_SOFT_SCROLLBACK=y -CONFIG_VGA_CONSOLE=y -CONFIG_VM86=y -CONFIG_VM_EVENT_COUNTERS=y -# CONFIG_VMSPLIT_2G_OPT is not set -# CONFIG_VMSPLIT_3G_OPT is not set -CONFIG_VT_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_VT=y -# CONFIG_WATCHDOG is not set -CONFIG_X86_32_LAZY_GS=y -CONFIG_X86_32=y -# CONFIG_X86_64 is not set -# CONFIG_X86_ACPI_CPUFREQ is not set -CONFIG_X86_BSWAP=y -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_CMPXCHG=y -# CONFIG_X86_CPU_DEBUG is not set -# CONFIG_X86_CPUFREQ_NFORCE2 is not set -# CONFIG_X86_CPUID is not set -CONFIG_X86_CPU=y -CONFIG_X86_DEBUGCTLMSR=y -# CONFIG_X86_DS is not set -# CONFIG_X86_ELAN is not set -# CONFIG_X86_E_POWERSAVER is not set -CONFIG_X86_EXTENDED_PLATFORM=y -CONFIG_X86_GENERIC=y -# CONFIG_X86_GX_SUSPMOD is not set -CONFIG_X86_INTEL_USERCOPY=y -CONFIG_X86_INTERNODE_CACHE_BYTES=64 -CONFIG_X86_INVLPG=y -CONFIG_X86_IO_APIC=y -CONFIG_X86_L1_CACHE_BYTES=64 -CONFIG_X86_L1_CACHE_SHIFT=5 -CONFIG_X86_LOCAL_APIC=y -# CONFIG_X86_LONGHAUL is not set -# CONFIG_X86_LONGRUN is not set -# CONFIG_X86_MCE is not set -CONFIG_X86_MINIMUM_CPU_FAMILY=4 -CONFIG_X86_MPPARSE=y -# CONFIG_X86_MSR is not set -# CONFIG_X86_P4_CLOCKMOD is not set -# CONFIG_X86_PAE is not set -CONFIG_X86_PLATFORM_DEVICES=y -CONFIG_X86_PM_TIMER=y -CONFIG_X86_POPAD_OK=y -# CONFIG_X86_POWERNOW_K6 is not set -# CONFIG_X86_POWERNOW_K7 is not set -# CONFIG_X86_POWERNOW_K8 is not set -# CONFIG_X86_PTDUMP is not set -# CONFIG_X86_RDC321X is not set -# CONFIG_X86_REBOOTFIXUPS is not set -# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set -# CONFIG_X86_RESERVE_LOW_64K is not set -# CONFIG_X86_SPEEDSTEP_CENTRINO is not set -# CONFIG_X86_SPEEDSTEP_ICH is not set -# CONFIG_X86_SPEEDSTEP_LIB is not set -# CONFIG_X86_SPEEDSTEP_SMI is not set -CONFIG_X86_TSC=y -CONFIG_X86_UP_APIC=y -CONFIG_X86_UP_IOAPIC=y -CONFIG_X86_USE_3DNOW=y -CONFIG_X86_USE_PPRO_CHECKSUM=y -CONFIG_X86_VERBOSE_BOOTUP=y -CONFIG_X86_WP_WORKS_OK=y -CONFIG_X86_XADD=y -CONFIG_X86=y -# CONFIG_ZONE_DMA32 is not set diff --git a/target/linux/olpc/generic/profiles/000-Generic.mk b/target/linux/olpc/generic/profiles/000-Generic.mk deleted file mode 100644 index d7e6b7eb1..000000000 --- a/target/linux/olpc/generic/profiles/000-Generic.mk +++ /dev/null @@ -1,16 +0,0 @@ -# -# Copyright (C) 2006 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -define Profile/Generic -  NAME:=Generic -  PACKAGES:= -endef - -define Profile/Generic/Description -	Generic Profile -endef -$(eval $(call Profile,Generic)) diff --git a/target/linux/olpc/generic/target.mk b/target/linux/olpc/generic/target.mk deleted file mode 100644 index ea16d6379..000000000 --- a/target/linux/olpc/generic/target.mk +++ /dev/null @@ -1,6 +0,0 @@ -SUBTARGET:=generic - -define Target/Description -	Build firmware images for OLPC -endef - diff --git a/target/linux/olpc/image/Config.in b/target/linux/olpc/image/Config.in deleted file mode 100644 index 27bbb961a..000000000 --- a/target/linux/olpc/image/Config.in +++ /dev/null @@ -1,23 +0,0 @@ -config OLPC_BOOTSCRIPT_IMAGES -    bool "Build images with bootscript" -    depends TARGET_olpc -    depends TARGET_ROOTFS_EXT2FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS || TARGET_ROOTFS_ISO -    default y - -config OLPC_BOOTSCRIPT_IMAGES_PAD -	bool "Pad bootscript images to filesystem size (for JFFS2)" -	depends OLPC_BOOTSCRIPT_IMAGES - -config OLPC_BOOTSCRIPT_KERNELPART -    int "Kernel partition size (in MB)" -    depends OLPC_BOOTSCRIPT_IMAGES -    default 4 - -config OLPC_BOOTSCRIPT_ROOTPART -    string -    prompt "Root partition on target device" if OLPC_BOOTSCRIPT_IMAGES -    default "/dev/sda2" -    help -        The root partition on the final device.  If you don't know, -        you probably want the default (/dev/sda2). - diff --git a/target/linux/olpc/image/Makefile b/target/linux/olpc/image/Makefile deleted file mode 100644 index 7ba712da6..000000000 --- a/target/linux/olpc/image/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# -# Copyright (C) 2007-2008 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/image.mk - -export PATH=$(TARGET_PATH):/sbin -ROOTPART=$(strip $(subst ",, $(CONFIG_OLPC_BOOTSCRIPT_ROOTPART))) -#"))")) # fix vim's broken syntax highlighting - -ROOTDELAY=10 - -ifeq ($(CONFIG_OLPC_BOOTSCRIPT_IMAGES),y) -  define Image/cmdline/squashfs -    block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootdelay=$(ROOTDELAY) -  endef - -  define Image/cmdline/jffs2-64k -    block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=jffs2 rootdelay=$(ROOTDELAY) -  endef - -  define Image/cmdline/jffs2-128k -    block2mtd.block2mtd=$(ROOTPART),131072,rootfs root=/dev/mtdblock0 rootfstype=jffs2 rootdelay=$(ROOTDELAY) -  endef - -  define Image/cmdline/ext2 -    root=$(ROOTPART) rootfstype=ext2 rootwait -  endef - -  define Image/Build/bootscript -	# left here because the image builder doesnt need these -	$(INSTALL_DIR) $(KDIR)/root.bootscript/boot -	$(CP) $(KDIR)/bzImage $(KDIR)/root.bootscript/boot/vmlinuz -	sed -e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1))) $(BOOTOPTS)#g' \ -		./olpc.fth > $(KDIR)/root.bootscript/boot/olpc.fth -	PADDING="$(CONFIG_OLPC_BOOTSCRIPT_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image.sh $(BIN_DIR)/openwrt-$(BOARD)-$(1).image $(CONFIG_OLPC_BOOTSCRIPT_KERNELPART) $(KDIR)/root.bootscript $(CONFIG_TARGET_ROOTFS_FSPART) $(KDIR)/root.$(1) -  endef -endif - -define Image/Prepare -	cp $(LINUX_DIR)/arch/x86/boot/bzImage $(KDIR)/bzImage -	$(call Image/Prepare/bootscript) -endef - -define Image/Build/squashfs -    $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) -endef - -define Image/BuildKernel -	$(CP) $(KDIR)/bzImage $(BIN_DIR)/openwrt-$(BOARD)-vmlinuz -endef - -define Image/Build -	$(call Image/Build/$(1)) -	$(call Image/Build/bootscript,$(1)) -	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/openwrt-$(BOARD)-$(1).fs -	$(CP) $(KDIR)/bzImage $(BIN_DIR)/openwrt-$(BOARD)-vmlinuz -endef - -$(eval $(call BuildImage)) - diff --git a/target/linux/olpc/image/gen_image.sh b/target/linux/olpc/image/gen_image.sh deleted file mode 100755 index 4fd6e377e..000000000 --- a/target/linux/olpc/image/gen_image.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2006 - 2007 OpenWrt.org -set -x  -[ $# == 5 ] || { -    echo "SYNTAX: $0 <file> <kernel size> <kernel directory> <rootfs size> <rootfs image>" -    exit 1 -} - -OUTPUT="$1" -KERNELSIZE="$2" -KERNELDIR="$3" -ROOTFSSIZE="$4" -ROOTFSIMAGE="$5" - -rm -f "$OUTPUT" - -head=16 -sect=63 -cyl=$(( ($KERNELSIZE + $ROOTFSSIZE) * 1024 * 1024 / ($head * $sect * 512))) - -# create partition table -set `ptgen -o "$OUTPUT" -h $head -s $sect -p ${KERNELSIZE}m -p ${ROOTFSSIZE}m` - -KERNELOFFSET="$(($1 / 512))" -KERNELSIZE="$(($2 / 512))" -ROOTFSOFFSET="$(($3 / 512))" -ROOTFSSIZE="$(($4 / 512))" - -BLOCKS="$((($KERNELSIZE / 2) - 1))" - -genext2fs -d "$KERNELDIR" -b "$BLOCKS" "$OUTPUT.kernel" -dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc -[ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc count="$ROOTFSSIZE" -dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc -#rm -f "$OUTPUT.kernel" diff --git a/target/linux/olpc/image/olpc.fth b/target/linux/olpc/image/olpc.fth deleted file mode 100644 index 5914be660..000000000 --- a/target/linux/olpc/image/olpc.fth +++ /dev/null @@ -1,5 +0,0 @@ -\ Boot script -" u:\boot\vmlinuz" to boot-device -" @CMDLINE@ noinitrd console=ttyS0,115200 console=tty0" to boot-file -unfreeze -boot diff --git a/target/linux/olpc/patches-2.6.30/300-block2mtd_init.patch b/target/linux/olpc/patches-2.6.30/300-block2mtd_init.patch deleted file mode 100644 index 12165b52b..000000000 --- a/target/linux/olpc/patches-2.6.30/300-block2mtd_init.patch +++ /dev/null @@ -1,210 +0,0 @@ ---- a/arch/x86/kernel/vmlinux_32.lds.S -+++ b/arch/x86/kernel/vmlinux_32.lds.S -@@ -136,6 +136,12 @@ SECTIONS - 	INITCALLS -   	__initcall_end = .; -   } -+  .root_initcall.init : AT(ADDR(.root_initcall.init) - LOAD_OFFSET) { -+    __root_initcall_start = .; -+    INITCALLS_ROOT -+    __root_initcall_end = .; -+  } -+    -   .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { -   	__con_initcall_start = .; - 	*(.con_initcall.init) ---- a/drivers/mtd/devices/block2mtd.c -+++ b/drivers/mtd/devices/block2mtd.c -@@ -18,10 +18,18 @@ - #include <linux/buffer_head.h> - #include <linux/mutex.h> - #include <linux/mount.h> -+#include <linux/list.h> -+#include <linux/delay.h> -  - #define ERROR(fmt, args...) printk(KERN_ERR "block2mtd: " fmt "\n" , ## args) - #define INFO(fmt, args...) printk(KERN_INFO "block2mtd: " fmt "\n" , ## args) -  -+struct retry { -+    struct list_head list; -+    const char *val; -+}; -+ -+static LIST_HEAD(retry_list); -  - /* Info for the block device */ - struct block2mtd_dev { -@@ -33,10 +41,34 @@ struct block2mtd_dev { - 	char devname[0]; - }; -  -+static int block2mtd_setup2(const char *val); -  - /* Static info about the MTD, used in cleanup_module */ - static LIST_HEAD(blkmtd_device_list); -  -+static int add_retry(const char *val) { -+    struct retry *r = kmalloc(sizeof(struct retry), GFP_KERNEL); -+ -+    INIT_LIST_HEAD(&r->list); -+    r->val = val; -+    list_add(&r->list, &retry_list); -+ -+    return 0; -+} -+ -+static int __init process_retries(void) { -+    struct list_head *p, *tmp; -+ -+    list_for_each_safe(p, tmp, &retry_list) { -+        struct retry *r = list_entry(p, struct retry, list); -+        block2mtd_setup2(r->val); -+        msleep(100); -+        list_del(p); -+        kfree(r); -+    } -+    return 0; -+} -+rootfs_initcall(process_retries); -  - static struct page *page_read(struct address_space *mapping, int index) - { -@@ -510,7 +542,9 @@ static int block2mtd_setup2(const char * - 	if (token[2] && (strlen(token[2]) + 1 > 80)) - 		parse_err("mtd device name too long"); -  --	add_device(name, erase_size, token[2]); -+	if (add_device(name, erase_size, token[2]) == NULL) { -+        add_retry(val); -+    }    -  - 	return 0; - } ---- a/include/asm-generic/vmlinux.lds.h -+++ b/include/asm-generic/vmlinux.lds.h -@@ -447,12 +447,14 @@ -   	*(.initcall4s.init)						\ -   	*(.initcall5.init)						\ -   	*(.initcall5s.init)						\ --	*(.initcallrootfs.init)						\ -   	*(.initcall6.init)						\ -   	*(.initcall6s.init)						\ -   	*(.initcall7.init)						\ -   	*(.initcall7s.init) -  -+#define INITCALLS_ROOT							\ -+	*(.initcallrootfs.init) -+ - /** -  * PERCPU_VADDR - define output section for percpu area -  * @vaddr: explicit base address (optional) ---- a/init/do_mounts.c -+++ b/init/do_mounts.c -@@ -176,16 +176,8 @@ static int __init fs_names_setup(char *s - 	return 1; - } -  --static unsigned int __initdata root_delay; --static int __init root_delay_setup(char *str) --{ --	root_delay = simple_strtoul(str, NULL, 0); --	return 1; --} -- - __setup("rootflags=", root_data_setup); - __setup("rootfstype=", fs_names_setup); --__setup("rootdelay=", root_delay_setup); -  - static void __init get_fs_names(char *page) - { -@@ -365,23 +357,6 @@ void __init prepare_namespace(void) - { - 	int is_floppy; -  --	if (root_delay) { --		printk(KERN_INFO "Waiting %dsec before mounting root device...\n", --		       root_delay); --		ssleep(root_delay); --	} -- --	/* --	 * wait for the known devices to complete their probing --	 * --	 * Note: this is a potential source of long boot delays. --	 * For example, it is not atypical to wait 5 seconds here --	 * for the touchpad of a laptop to initialize. --	 */ --	wait_for_device_probe(); -- --	md_run_setup(); -- - 	if (saved_root_name[0]) { - 		root_device_name = saved_root_name; - 		if (!strncmp(root_device_name, "mtd", 3) || ---- a/init/main.c -+++ b/init/main.c -@@ -76,6 +76,7 @@ - #ifdef CONFIG_X86_LOCAL_APIC - #include <asm/smp.h> - #endif -+#include "do_mounts.h" -  - static int kernel_init(void *); -  -@@ -752,12 +753,13 @@ int do_one_initcall(initcall_t fn) -  -  - extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; -+extern initcall_t __root_initcall_start[], __root_initcall_end[]; -  --static void __init do_initcalls(void) -+static void __init do_initcalls(initcall_t *start, initcall_t *end) - { - 	initcall_t *call; -  --	for (call = __early_initcall_end; call < __initcall_end; call++) -+	for (call = start; call < end; call++) - 		do_one_initcall(*call); -  - 	/* Make sure there is no pending stuff from the initcall sequence */ -@@ -779,7 +781,7 @@ static void __init do_basic_setup(void) - 	usermodehelper_init(); - 	driver_init(); - 	init_irq_proc(); --	do_initcalls(); -+	do_initcalls(__early_initcall_end, __initcall_end); - } -  - static void __init do_pre_smp_initcalls(void) -@@ -840,6 +842,13 @@ static noinline int init_post(void) - 	panic("No init found.  Try passing init= option to kernel."); - } -  -+static unsigned int __initdata root_delay; -+static int __init root_delay_setup(char *str) -+{ -+    root_delay = simple_strtoul(str, NULL, 0); -+    return 1; -+} -+__setup("rootdelay=", root_delay_setup); - static int __init kernel_init(void * unused) - { - 	lock_kernel(); -@@ -879,7 +888,16 @@ static int __init kernel_init(void * unu -  - 	if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) { - 		ramdisk_execute_command = NULL; --		prepare_namespace(); -+		if (root_delay) { -+            printk(KERN_INFO "Waiting %desc before mounting root device...\n",  -+                root_delay); -+            ssleep(root_delay); -+        } -+        while (driver_probe_done() != 0) -+            msleep(100); -+        md_run_setup(); -+        do_initcalls(__root_initcall_start, __root_initcall_end); -+        prepare_namespace(); - 	} -  - 	/*  | 
