請問...
因為之前在AM335X SDK6 平台已經對UBOOT做過優化 (開機加速,LCD畫面顯示,客製化板子元件修改..等)
如今希望能升級kernel 4.1(Process SDK2.0.1),但Uboot 仍使用SDK6 版本
是否有可能?? ,需要修改什麼呢??
以下是SDK6 UBOOT + Process SDK2.0.1 KERNLE 開機訊息
到了後方全數都是亂碼,看起來是UART baudrate 錯誤,請問是什麼問題??
U-Boot SPL 2013.01.01 (Oct 13 2016 - 08:44:37)
<<< ddr >>>
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img
U-Boot 2013.01.01 (Oct 13 2016 - 08:44:37)
DRAM: 256 MiB
Configurou interrupcao
>>>>>>>> LCDPinMuxSetup
Configurou LCD
>>>>>>>>>>>>>>>>>> Lcd_Init()
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Using default environment
Hit any key to stop autoboot: 0
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
269 bytes read in 3 ms (86.9 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
Running uenvcmd ...
reading am335x-evmsk.dtb
37154 bytes read in 10 ms (3.5 MiB/s)
reading zImage
3304456 bytes read in 435 ms (7.2 MiB/s)
reading ramdisk.img
30747560 bytes read in 4016 ms (7.3 MiB/s)
## Loading init Ramdisk from Legacy Image at 81000000 ...
Image Name: ramdisk
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 30747496 Bytes = 29.3 MiB
Load Address: 88080000
Entry Point: 88080000
## Flattened Device Tree blob at 80f80000
Booting using the fdt blob at 0x80f80000
Loading Ramdisk to 8dbaa000, end 8f8fcb68 ... OK
Using Device Tree in place at 80f80000, end 80f8c121
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.1.13-g8dc6617 (root@adminuser-VirtualBox) (gcc version 4.9.3 20150413 (prerelease) (Linaro GCC 4.9-2015.05) ) #3 PREEMPT Fri Apr 15 09:57:57 EEST 2016
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: TI AM335x EVM-SK
[ 0.000000] cma: Reserved 24 MiB at 0x8c000000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64960
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/ram0 rw rootfstype=ext2 initrd=$rdaddr,96M
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 195408K/262144K available (6391K kernel code, 261K rwdata, 2172K rodata, 264K init, 230K bss, 42160K reserved, 24576K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc086505c (8565 kB)
[ 0.000000] .init : 0xc0866000 - 0xc08a8000 ( 264 kB)
[ 0.000000] .data : 0xc08a8000 - 0xc08e9668 ( 262 kB)
[ 0.000000] .bss : 0xc08ec000 - 0xc0925808 ( 231 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Additional per-CPU info printed with stalls.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000035] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000083] clocksource timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000107] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000480] Console: colour dummy device 80x30
[ 0.000534] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[ 0.000550] This ensures that you still see kernel messages. Please
[ 0.000564] update your kernel commandline.
[ 0.000602] Calibrating delay loop... 298.59 BogoMIPS (lpj=1492992)
[ 0.067835] pid_max: default: 32768 minimum: 301
[ 0.068086] Security Framework initialized
[ 0.068200] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.068226] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.069793] Initializing cgroup subsys blkio
[ 0.069852] Initializing cgroup subsys memory
[ 0.069949] Initializing cgroup subsys devices
[ 0.069986] Initializing cgroup subsys freezer
[ 0.070019] Initializing cgroup subsys perf_event
[ 0.070082] CPU: Testing write buffer coherency: ok
[ 0.070843] Setting up static identity map for 0x80008200 - 0x80008270
[ 0.074341] devtmpfs: initialized
[ 0.102846] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.110747] omap_hwmod: rtc: no dt node
[ 0.110790] ------------[ cut here ]------------
[ 0.110843] WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2526 _init+0x1d8/0x420()
[ 0.110862] omap_hwmod: rtc: doesn't have mpu register target base
[ 0.110879] Modules linked in:
[ 0.110920] CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.13-g8dc6617 #3
[ 0.110940] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 0.110956] Backtrace:
[ 0.111028] [<c0012b18>] (dump_backtrace) from [<c0012d38>] (show_stack+0x18/0x1c)
[ 0.111048] r7:c07b2c68 r6:000009de r5:00000009 r4:00000000
[ 0.111129] [<c0012d20>] (show_stack) from [<c063daf0>] (dump_stack+0x20/0x28)
[ 0.111171] [<c063dad0>] (dump_stack) from [<c0037dc0>] (warn_slowpath_common+0x7c/0xb4)
[ 0.111202] [<c0037d44>] (warn_slowpath_common) from [<c0037e30>] (warn_slowpath_fmt+0x38/0x40)
[ 0.111219] r8:c08ec000 r7:00000000 r6:00000000 r5:00000000 r4:c07b3268
[ 0.111278] [<c0037dfc>] (warn_slowpath_fmt) from [<c0872b5c>] (_init+0x1d8/0x420)
[ 0.111297] r3:c07b3764 r2:c07b3268
[ 0.111321] r4:c08b2228
[ 0.111362] [<c0872984>] (_init) from [<c002732c>] (omap_hwmod_for_each+0x38/0x64)
[ 0.111379] r9:c089bb98 r8:c08ec000 r7:00000000 r6:c0872984 r5:c08aec18 r4:c08b2228
[ 0.111444] [<c00272f4>] (omap_hwmod_for_each) from [<c087310c>] (__omap_hwmod_setup_all+0x2c/0x48)
[ 0.111462] r7:cb8b7080 r6:c08ac6a0 r5:c08730e0 r4:c08ac6a0
[ 0.111517] [<c08730e0>] (__omap_hwmod_setup_all) from [<c0009674>] (do_one_initcall+0x88/0x1e0)
[ 0.111558] [<c00095ec>] (do_one_initcall) from [<c0866e78>] (kernel_init_freeable+0x178/0x240)
[ 0.111575] r10:c08665e8 r9:c089bb98 r8:c08ec000 r7:c08a7194 r6:c08ec000 r5:c089bb7c
[ 0.111622] r4:00000001
[ 0.111661] [<c0866d00>] (kernel_init_freeable) from [<c063a970>] (kernel_init+0x10/0xf4)
[ 0.111678] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c063a960
[ 0.111723] r4:00000000
[ 0.111761] [<c063a960>] (kernel_init) from [<c000f928>] (ret_from_fork+0x14/0x2c)
[ 0.111778] r5:c063a960 r4:00000000
[ 0.111876] ---[ end trace 9bdfcae5fc1fa879 ]---
[ 0.129204] omap_hwmod: tptc0 using broken dt data from edma
[ 0.129501] omap_hwmod: tptc1 using broken dt data from edma
[ 0.129765] omap_hwmod: tptc2 using broken dt data from edma
[ 0.137025] omap_hwmod: debugss: _wait_target_disable failed
[ 0.206970] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.211798] pinctrl core: initialized pinctrl subsystem
[ 0.214727] NET: Registered protocol family 16
[ 0.220400] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.247918] cpuidle: using governor ladder
[ 0.277898] cpuidle: using governor menu
[ 0.286836] OMAP GPIO hardware version 0.1
[ 0.312875] No ATAGs?
[ 0.312939] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.379321] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.381758] reg-fixed-voltage fixedregulator@2: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_wl12xx_gpio, deferring probe
[ 0.388902] vgaarb: loaded
[ 0.390094] SCSI subsystem initialized
[ 0.391203] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[ 0.391558] media: Linux media interface: v0.10
[ 0.391717] Linux video capture interface: v2.00
[ 0.391846] pps_core: LinuxPPS API ver. 1 registered
[ 0.391867] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.391941] PTP clock support registered
[ 0.393931] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[ 0.394483] Advanced Linux Sound Architecture Driver Initialized.
[ 0.396475] Switched to clocksource timer1
[ 0.424106] NET: Registered protocol family 2
[ 0.426028] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.426118] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.426191] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.426354] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.426404] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.426925] NET: Registered protocol family 1
[ 0.427732] RPC: Registered named UNIX socket transport module.
[ 0.427765] RPC: Registered udp transport module.
[ 0.427782] RPC: Registered tcp transport module.
[ 0.427799] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.429076] Trying to unpack rootfs image as initramfs...
[ 0.430937] rootfs image is not initramfs (no cpio magic); looks like an initrd
[ 0.807301] Freeing initrd memory: 30028K (cdbaa000 - cf8fd000)
[ 0.808110] CPU PMU: Failed to parse /pmu/interrupt-affinity[0]
[ 0.808222] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 0.813077] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.813270] audit: initializing netlink subsys (disabled)
[ 0.813423] audit: type=2000 audit(0.800:1): initialized
[ 0.833094] VFS: Disk quotas dquot_6.6.0
[ 0.833621] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.839697] NFS: Registering the id_resolver key type
[ 0.839839] Key type id_resolver registered
[ 0.839860] Key type id_legacy registered
[ 0.840031] jffs2: version 2.2. (NAND) (SUMMARY) ? 2001-2006 Red Hat, Inc.
[ 0.846192] NET: Registered protocol family 38
[ 0.846349] io scheduler noop registered
[ 0.846383] io scheduler deadline registered
[ 0.846696] io scheduler cfq registered (default)
[ 0.849251] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.854524] backlight supply power not found, using dummy regulator
[ 0.858422] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[ 0.860749] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[ 0.869852] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 155, base_baud = 3000000) is a 8250
[ 1.749154] console [ttyS0] enabled
[ 1.755139] [drm] Initialized drm 1.1.0 20060810
[ 1.764044] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.770939] [drm] No driver support for vblank timestamp query.
頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎頎?