mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Compare commits
69 Commits
LABEL_2004
...
LABEL_2005
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5c5ef4a1f | ||
|
|
3dd7f0f0ca | ||
|
|
8aa1a2d115 | ||
|
|
986ef4340e | ||
|
|
ba83a30765 | ||
|
|
101e8dfa2a | ||
|
|
50712ba16e | ||
|
|
901787d6e8 | ||
|
|
8b0bfc6804 | ||
|
|
384cc68744 | ||
|
|
c1a11c19ec | ||
|
|
6315349202 | ||
|
|
3ec924a3cb | ||
|
|
756f586a73 | ||
|
|
b1bf6f2c9b | ||
|
|
86c9888207 | ||
|
|
59acc296d9 | ||
|
|
400558b561 | ||
|
|
414eec35e3 | ||
|
|
be6b6e4e2d | ||
|
|
e6ba3c92ce | ||
|
|
f50cc09b61 | ||
|
|
ea287debe1 | ||
|
|
ef2807c667 | ||
|
|
83e40ba75d | ||
|
|
0c1c117cf1 | ||
|
|
8f0b7cbe80 | ||
|
|
256d31c046 | ||
|
|
e632515387 | ||
|
|
4d00eb0290 | ||
|
|
acdcd10c9a | ||
|
|
89c02e2c57 | ||
|
|
6c9e789e9e | ||
|
|
911d08f6ae | ||
|
|
bf7019c570 | ||
|
|
9d46ea4a55 | ||
|
|
c3fafecff1 | ||
|
|
a0bdf49e39 | ||
|
|
e9684a536a | ||
|
|
f4733a0764 | ||
|
|
b05dcb58fe | ||
|
|
47b1e3d77f | ||
|
|
e58cf2a0cf | ||
|
|
1968e615d4 | ||
|
|
151ab83a93 | ||
|
|
b9649854f6 | ||
|
|
e799d3755e | ||
|
|
2f916943c9 | ||
|
|
f8883cb101 | ||
|
|
20a80418f9 | ||
|
|
1a344f298d | ||
|
|
436be29cad | ||
|
|
cd172b7108 | ||
|
|
c3d2b4b48a | ||
|
|
5a95f6fbd2 | ||
|
|
289f932c5f | ||
|
|
082acfd484 | ||
|
|
652a10c096 | ||
|
|
6225c5db6c | ||
|
|
8ed9604613 | ||
|
|
ff36fd8591 | ||
|
|
6310eb9da7 | ||
|
|
a562e1bd9d | ||
|
|
30ce5ab043 | ||
|
|
9dd611b8c1 | ||
|
|
a1191902ca | ||
|
|
15c7a8efd2 | ||
|
|
e2ffd59b4d | ||
|
|
400ab719c6 |
322
CHANGELOG
322
CHANGELOG
@@ -1,7 +1,327 @@
|
||||
======================================================================
|
||||
Changes since U-Boot 1.1.1:
|
||||
Changes for U-Boot 1.1.3:
|
||||
======================================================================
|
||||
|
||||
* Add support for TQM8560 board
|
||||
|
||||
* Add FEC support for TQM8540 board.
|
||||
Interfaces are named as follows: "ENET1" - TSEC2, "ENET2" - FEC
|
||||
|
||||
* Patch by Martin Krause, 04 Apr 2005:
|
||||
Update default configuration for CMC_PU2 board.
|
||||
|
||||
* Patch by Steven Scholz, 04 Apr 2005:
|
||||
- remove all references to CONFIG_INIT_CRITICAL for ARM based boards
|
||||
- introduce two new configuration options instead:
|
||||
CONFIG_SKIP_LOWLEVEL_INIT and CONFIG_SKIP_RELOCATE_UBOOT
|
||||
|
||||
* Patch by Steven Scholz, 04 Apr 2005:
|
||||
Make sure that MDIO clock does not exceed 2.5 MHz on AT91
|
||||
|
||||
* Fix timer code for ARM systems: make sure that udelay() does not
|
||||
reset timers so it's save to use udelay() in timeout code.
|
||||
|
||||
* Patch by Mathias Küster, 23 Nov 2004:
|
||||
add udelay support for the mcf5282 cpu
|
||||
|
||||
* Patch by Tolunay Orkun, 16 November 2004:
|
||||
fix incorrect onboard Xilinx CPLD base address
|
||||
|
||||
* Patch by Jerry Van Baren, 08 Nov 2004:
|
||||
- Add low-boot option for MPC8260ADS board (if lowboot is selected,
|
||||
the jumper for the HRCW source should select flash. If lowboot is
|
||||
not selected, the jumper for the HRCW source should select the
|
||||
BCSR.
|
||||
- change default load base address to 0x00400000
|
||||
|
||||
* Patch by Yuli Barcohen, 08 Nov 2004:
|
||||
Add support for Analogue & Micro Rattler boards.
|
||||
Tested on Rattler8248.
|
||||
|
||||
* Patch by Andre Renaud, 08 Nov 2004:
|
||||
Fix watchdog support in common/lcd.c
|
||||
|
||||
* Patch by Marc Leeman, 05 Nov 2003:
|
||||
Enable all 4 PCMBRW buffers for the MPC8245 processor since the CPU
|
||||
bug only affects the XPC8245 processors
|
||||
|
||||
* Patches by Josef Wagner, 29 Oct 2004:
|
||||
- Add support for MicroSys CPU87 board
|
||||
- Add support for MicroSys PM854 board
|
||||
|
||||
* Patch by Jian Zhang, 02 Nov 2004:
|
||||
Add 16-bit NAND support
|
||||
|
||||
* Patch by Scott McNutt, 01 Nov 2004:
|
||||
Add missing NIOS/NIOS2 support for "iminfo" command
|
||||
|
||||
* Patch by Detlev Zundel, 29 Oct 2004:
|
||||
Add missing NIOS/NIOS2 support for "mkimage" tool.
|
||||
|
||||
* Patch by David Adair, 27 Oct 2004:
|
||||
Add missing 440GX SDRAM Controller reset
|
||||
|
||||
* Patch by Steven Scholz, 25 Oct 2004:
|
||||
Declare reset_cpu() in include/common.h instead locally
|
||||
|
||||
* Patch by Yusdi Santoso, 22 Oct 2004:
|
||||
- Add support for HIDDEN_DRAGON board
|
||||
- fix endianess problem in driver/rtl1839.c
|
||||
|
||||
* Patch by Allen Curtis, 21 Oct 2004:
|
||||
support multiple serial ports
|
||||
|
||||
* Patch by Richard Klingler, 03 Apr 2005:
|
||||
Add call to eth_halt() in net/net.c when called functions fail
|
||||
after eth_init() has been called.
|
||||
|
||||
* Patch by Sam Song, 3 April 2005:
|
||||
- Update README.Netconsole
|
||||
- Update README
|
||||
|
||||
* Prepare for SoC rework of ARM code:
|
||||
- rename CONFIG_BOOTBINFUNC into CONFIG_INIT_CRITICAL
|
||||
- rename memsetup into lowlevel_init (function name and source files)
|
||||
Patch by Steven Scholz, 03 Apr 2005:
|
||||
- create SoC specific directories include/asm-arm/arch-imx and
|
||||
include/asm-arm/arch-s3c24x0
|
||||
|
||||
* Fix problems with SNTP support;
|
||||
enable SNTP support in some boards.
|
||||
|
||||
* Patches by Martin Krause, 01 Apr 2005:
|
||||
- Fix flash erase timeout on CMC_PU2
|
||||
- Add automatic HW detection for CMC_PU2 and CMC_BASIC
|
||||
|
||||
* Patch by Steven Scholz, 13 March 2005:
|
||||
fix cache enabling for AT91RM9200
|
||||
|
||||
* Patch by Masami Komiya, 30 Mar 2005:
|
||||
add SNTP support and expand time server and time offset fields of
|
||||
DHCP support. See doc/README.SNTP
|
||||
|
||||
* Patch by Steven Scholz, 13 Dec 2004:
|
||||
Fix bug in at91rm920 ethernet driver
|
||||
|
||||
* Patch by Steven Scholz, 13 Dec 2004:
|
||||
Remove duplicated code by merging memsetup.S files for
|
||||
at91rm9200 boards into one cpu/at91rm9200/lowlevel.S
|
||||
|
||||
* Patch by Detlev Zundel, 31 Mar 2005:
|
||||
Cleanup duplicate definition of overwrite_console()
|
||||
|
||||
* Update TQM5200 configuration;
|
||||
prepare for Rev. 200 starter kit boards
|
||||
|
||||
* Patch by Scott McNutt, 21 Oct 2004:
|
||||
Add support for Nios-II EPCS Controller core.
|
||||
|
||||
* Patch by Scott McNutt, 20 Oct 2004:
|
||||
Nios-II cleanups:
|
||||
- Add sysid command (Nios-II only).
|
||||
- Locate default exception trampoline at proper offset.
|
||||
- Implement I/O routines (readb, writeb, etc)
|
||||
- Implement do_bootm_linux
|
||||
|
||||
* Patches by Martin Krause, 22 Mar 2005:
|
||||
- use TQM5200_auto as MAKEALL target for TQM5200 systems
|
||||
- add support for SM501 graphics controller
|
||||
- add support for graphic console on TQM5200
|
||||
- add support for TQM5200 Rev 200
|
||||
- cleanup, fix typo in include/configs/TQM5200.h
|
||||
|
||||
* Patch by Manfred Baral, 17 Mar 2005:
|
||||
Fix typo
|
||||
|
||||
* Fix RTC configuration for PPChameleon board
|
||||
|
||||
* Cleanup, fix typo in include/configs/TQM5200.h
|
||||
|
||||
* Patch by Stefan Roese, 16 Mar 2005:
|
||||
Update for esd auto_update and hh405 board
|
||||
|
||||
* Adapt for U-Boot image size (new features enabled) on TQM5200
|
||||
|
||||
* Update code for TQM8540 board (and 85xx in general):
|
||||
- Change the name of the Ethernet driver: MOTO ENET -> ENET
|
||||
- Reformat boot messages
|
||||
- Enable redundant environment
|
||||
- Replace the -O2 optimization flag with -mno-string
|
||||
|
||||
* Patch by David Brownell, 10 Mar 2005:
|
||||
Restore copyright statements in OHCI drivers.
|
||||
|
||||
* Add support for TQM8540 board
|
||||
|
||||
* Patch by Detlev Zundel, 14 Mar 2005:
|
||||
NC650: changed NAND flash addressing to using UPMB
|
||||
|
||||
* Patch by Stefan Roese, 14 Mar 2005:
|
||||
Update for esd voh405 fpga image
|
||||
|
||||
* INKA4x0: Allow initialization of LCD backlight dimming from
|
||||
"brightness" environment variable.
|
||||
|
||||
* Add port initialization for digital I/O on INKA4x0
|
||||
|
||||
* Patch by Stefan Roese, 01 Mar 2005:
|
||||
Update for esd boards dp405 and hub405
|
||||
|
||||
* Fix get_partition_info() parameter error in all other calls
|
||||
(common/cmd_ide.c, common/cmd_reiser.c, common/cmd_scsi.c).
|
||||
|
||||
* Enable USB and IDE support for INKA4x0 board
|
||||
|
||||
* Patch by Andrew Dyer, 28 Feb 2005:
|
||||
fix ext2load passing an incorrect pointer to get_partition_info()
|
||||
resulting in load failure for devices other than 0
|
||||
|
||||
* Add support for SRAM and 2 x Quad UARTs on INKA4x0 board
|
||||
|
||||
* Cleanup USB and partition defines
|
||||
|
||||
* Add support for ext2 filesystems and image timestamps to TQM5200 board
|
||||
|
||||
* Add reset code for Coral-P on INKA4x0 board
|
||||
|
||||
* Patch by Martin Krause, 28 Jun 2004:
|
||||
Update for TRAB board.
|
||||
|
||||
* Fix some missing "volatile"s in MPC5xxx FEC driver
|
||||
|
||||
* Fix cirrus voltage detection (for CPC45)
|
||||
|
||||
* Fix byteorder problem in usbboot and scsiboot commands.
|
||||
|
||||
* Patch by Cajus Hahn, 04 Feb 2005:
|
||||
- don't insist on leading '/' for filename in ext2load
|
||||
- set default partition to useful value (1) in ext2load
|
||||
|
||||
* Patch by Andrew Dyer, 08 Jan 2005:
|
||||
fix wrong return codes in ext2 code
|
||||
|
||||
* Removed '--no-warn-mismatch' option from Makefile. This option
|
||||
makes 'ld' to overlook binary objects compatibility.
|
||||
|
||||
* Moved $(PLATFORM_LIBS) from the library group (--start-group ...
|
||||
--end-group) outside of the group. This will make 'ld' to do
|
||||
_multiple_ search in the library group when resolving symbol
|
||||
references and do only a _single_ seach in libgcc.a after the group
|
||||
search.
|
||||
|
||||
* Fix stability problems on CPC45 board again.
|
||||
|
||||
* Make image detection for diskboot / usbboot / scsiboot more robust
|
||||
(also check header checksum)
|
||||
|
||||
* Update CPC45 board configuration.
|
||||
|
||||
* Add USB and PCI support for INKA4x0 board
|
||||
|
||||
* Fix IDE stability problems on CPC45 board (needs 2 x EIEIO).
|
||||
|
||||
* Code cleanup
|
||||
|
||||
* Patch by Robin Getz, 13 Oct 2004:
|
||||
Add standalone application to change SMC91C111 MAC addresses,
|
||||
see examples/README.smc91111_eeprom
|
||||
|
||||
* Patch by Xiaogeng (Shawn) Jin, 12 Oct 2004:
|
||||
Fix Flash support for ARM Integrator CP.
|
||||
|
||||
* Patch by Richard Woodruff, 10 Jan 2005:
|
||||
Update support for OMAP2420 (ARM11) and H4 board:
|
||||
o clean up and add new types to H4 memory probe code.
|
||||
o fix to work with internal boot.
|
||||
o added PRCM config III operation.
|
||||
o fix marginal flash timings.
|
||||
o add revison ATAG usage.
|
||||
o enable voltage scaling at power chip.
|
||||
o fix compile error for i2c.
|
||||
|
||||
* Fix network problem (error when receiving multiple ARP packets)
|
||||
|
||||
* Patch by Daniel Poirot, 12 Oct 2004:
|
||||
Add support for Wind River sbc405 board
|
||||
|
||||
* Patch by Rainer Brestan, 12 Oct 2004:
|
||||
Make examples/Makefile more robust
|
||||
|
||||
* Patch by Sam Song, 11 October 2004:
|
||||
- Add RESET/PREBOOT/AUTOBOOT support for RPXlite_DW board
|
||||
- Adjust CPU:BUS frequency ratio 1:1 when core frequency
|
||||
less than 50MHz
|
||||
|
||||
* Patch by Sam Song, 10 Oct 2004:
|
||||
Fix a parameter error in run_command() in main.c
|
||||
|
||||
* Patch by Richard Woodruff, 01 Oct 2004:
|
||||
add support for the TI OMAP2420 processor and its H4 reference
|
||||
board
|
||||
|
||||
* Patch by Christian Pellegrin, 24 Sep 2004:
|
||||
Added support for NE2000 compatible (DP8390, DP83902) NICs.
|
||||
|
||||
* Patch by Leif Lindholm, 23 Sep 2004:
|
||||
add support for the AMD db1550 board
|
||||
|
||||
* Patch by Travis Sawyer, 15 Sep 2004:
|
||||
Add CONFIG_SERIAL_MULTI support for ppc4xx,
|
||||
update README.serial_multi
|
||||
|
||||
* Patches by David Snowdon, 07 Sep 2004:
|
||||
- add u-boot.hex target in the top level Makefile
|
||||
- add support for the UNSW/NICTA PLEB 2 board (pleb2)
|
||||
- use -mtune=xscale and -march=armv5 options for PXA
|
||||
|
||||
* Patch by Florian Schlote, 08 Sep 2004:
|
||||
Add support for SenTec-COBRA5272-board (Coldfire).
|
||||
|
||||
* Patch by Gleb Natapov, 07 Sep 2004:
|
||||
mpc824x: set PCI latency timer to a sane value
|
||||
(is 0 after reset).
|
||||
|
||||
* Patch by Kurt Stremerch, 03 Sep 2004:
|
||||
Add bitstream configuration option for fpga command (Xilinx only).
|
||||
|
||||
* Patch by Kurt Stremerch, 03 Sep 2004:
|
||||
Add Xilinx Spartan2E family FPGA support
|
||||
|
||||
* Patch by Jeff Angielski, 02 Sep 2004:
|
||||
Add Added support for H2 revision of the EP8260 board.
|
||||
Fixed formatting for some of the EP8260 related source files.
|
||||
|
||||
* Patch by Jon Loeliger, 02 Sep 2004:
|
||||
Reset monitor size back to 256 so environment can be written
|
||||
to flash on MPC85xx ADS and CDS releases.
|
||||
|
||||
* Patch by Paolo Broggini, 02 Sep 2004:
|
||||
Make BSS clearing on ARM systems more robust
|
||||
|
||||
* Patch by Yue Hu and Joe, 01 Sep 2004:
|
||||
- add PCI support for ixp425;
|
||||
- add EEPRO100 suppor tfor ixdp425 board.
|
||||
|
||||
* Fix problem with protected sector detection in driver/cfi_flash.c
|
||||
|
||||
======================================================================
|
||||
Changes for U-Boot 1.1.2:
|
||||
======================================================================
|
||||
|
||||
* Code cleanup, mostly for GCC-3.3.x
|
||||
|
||||
* Cleanup confusing use of CONFIG_ETH*ADDR - ust his only to
|
||||
pre-define a MAC address; use CONFIG_HAS_ETH* to enable support for
|
||||
additional ethernet addresses.
|
||||
|
||||
* Cleanup drivers/i82365.c - avoid duplication of code
|
||||
|
||||
* Fix bogus "cannot span across banks" flash error message
|
||||
|
||||
* Code cleanup
|
||||
|
||||
* Add support for CompactFlash for the CPC45 Board.
|
||||
|
||||
* Fix problems with CMC_PU2 flash driver.
|
||||
|
||||
* Cleanup:
|
||||
|
||||
7
CREDITS
7
CREDITS
@@ -40,6 +40,7 @@ D: Unified support for Motorola MPC826xADS/MPC8272ADS/PQ2FADS boards.
|
||||
D: Support for Zephyr Engineering ZPC.1900 board.
|
||||
D: Support for Interphase iSPAN boards.
|
||||
D: Support for Analogue&Micro Adder boards.
|
||||
D: Support for Analogue&Micro Rattler boards.
|
||||
W: http://www.arabellasw.com
|
||||
|
||||
N: Jerry van Baren
|
||||
@@ -253,6 +254,10 @@ E: team@leox.org
|
||||
D: Support for LEOX boards, DS164x RTC
|
||||
W: http://www.leox.org
|
||||
|
||||
N: Leif Lindholm
|
||||
E: leif.lindholm@i3micro.com
|
||||
D: Support for AMD dbau1550 board.
|
||||
|
||||
N: Stephan Linz
|
||||
E: linz@li-pro.net
|
||||
D: Support for Nios Stratix Development Kit (DK-1S10)
|
||||
@@ -329,7 +334,7 @@ D: BedBug embedded debugger code
|
||||
|
||||
N: Daniel Poirot
|
||||
E: dan.poirot@windriver.com
|
||||
D: Support for the sbc8240 board
|
||||
D: Support for the Wind River sbc405, sbc8240 board
|
||||
W: http://www.windriver.com
|
||||
|
||||
N: Stefan Roese
|
||||
|
||||
13
MAINTAINERS
13
MAINTAINERS
@@ -34,6 +34,7 @@ Yuli Barcohen <yuli@arabellasw.com>
|
||||
Adder MPC87x/MPC852T
|
||||
ISPAN MPC8260
|
||||
MPC8260ADS MPC826x/MPC827x/MPC8280
|
||||
Rattler MPC8248
|
||||
ZPC1900 MPC8265
|
||||
|
||||
Jerry Van Baren <gerald.vanbaren@smiths-aerospace.com>
|
||||
@@ -225,6 +226,10 @@ Denis Peter <d.peter@mpl.ch>
|
||||
MIP405 PPC4xx
|
||||
PIP405 PPC4xx
|
||||
|
||||
Daniel Poirot <dan.poirot@windriver.com>
|
||||
sbc8240 MPC8240
|
||||
sbc405 PPC405GP
|
||||
|
||||
Stefan Roese <stefan.roese@esd-electronics.com>
|
||||
|
||||
ADCIOP IOP480 (PPC401)
|
||||
@@ -298,6 +303,10 @@ Dan Malek <dan@embeddededge.com>
|
||||
|
||||
STxGP3 MPC85xx
|
||||
|
||||
Yusdi Santoso <yusdi_santoso@adaptec.com>
|
||||
|
||||
HIDDEN_DRAGON MPC8241/MPC8245
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Unknown / orphaned boards:
|
||||
@@ -382,6 +391,10 @@ Rishi Bhattacharya <rishi@ti.com>
|
||||
|
||||
omap5912osk ARM926EJS
|
||||
|
||||
Richard Woodruff <r-woodruff2@ti.com>
|
||||
|
||||
omap2420h4 ARM1136EJS
|
||||
|
||||
David Müller <d.mueller@elsoft.ch>
|
||||
|
||||
smdk2410 ARM920T
|
||||
|
||||
42
MAKEALL
42
MAKEALL
@@ -26,7 +26,7 @@ LIST_5xx=" \
|
||||
|
||||
LIST_5xxx=" \
|
||||
icecube_5100 icecube_5200 EVAL5200 PM520 \
|
||||
Total5100 Total5200 Total5200_Rev2 TQM5200_AA \
|
||||
Total5100 Total5200 Total5200_Rev2 TQM5200_auto \
|
||||
"
|
||||
|
||||
#########################################################################
|
||||
@@ -86,9 +86,10 @@ LIST_8220=" \
|
||||
|
||||
LIST_824x=" \
|
||||
A3000 BMW CPC45 CU824 \
|
||||
debris eXalion MOUSSE MUSENKI \
|
||||
MVBLUE OXC PN62 Sandpoint8240 \
|
||||
Sandpoint8245 SL8245 utx8245 sbc8240 \
|
||||
debris eXalion HIDDEN_DRAGON MOUSSE \
|
||||
MUSENKI MVBLUE OXC PN62 \
|
||||
Sandpoint8240 Sandpoint8245 SL8245 utx8245 \
|
||||
sbc8240 \
|
||||
"
|
||||
|
||||
#########################################################################
|
||||
@@ -96,12 +97,13 @@ LIST_824x=" \
|
||||
#########################################################################
|
||||
|
||||
LIST_8260=" \
|
||||
atc cogent_mpc8260 CPU86 ep8260 \
|
||||
gw8260 hymod IPHASE4539 ISPAN \
|
||||
MPC8260ADS MPC8266ADS MPC8272ADS PM826 \
|
||||
PM828 ppmc8260 PQ2FADS RPXsuper \
|
||||
rsdproto sacsng sbc8260 SCM \
|
||||
TQM8260_AC TQM8260_AD TQM8260_AE ZPC1900 \
|
||||
atc cogent_mpc8260 CPU86 CPU87 \
|
||||
ep8260 gw8260 hymod IPHASE4539 \
|
||||
ISPAN MPC8260ADS MPC8266ADS MPC8272ADS \
|
||||
PM826 PM828 ppmc8260 Rattler8248 \
|
||||
RPXsuper rsdproto sacsng sbc8260 \
|
||||
SCM TQM8260_AC TQM8260_AD TQM8260_AE \
|
||||
ZPC1900 \
|
||||
"
|
||||
|
||||
#########################################################################
|
||||
@@ -110,7 +112,8 @@ LIST_8260=" \
|
||||
|
||||
LIST_85xx=" \
|
||||
MPC8540ADS MPC8541CDS MPC8555CDS MPC8560ADS \
|
||||
sbc8540 sbc8560 stxgp3 \
|
||||
PM854 sbc8540 sbc8560 stxgp3 \
|
||||
TQM8540 \
|
||||
"
|
||||
|
||||
#########################################################################
|
||||
@@ -157,6 +160,11 @@ LIST_ARM9=" \
|
||||
versatile \
|
||||
"
|
||||
|
||||
#########################################################################
|
||||
## ARM11 Systems
|
||||
#########################################################################
|
||||
LIST_ARM11="omap2420h4"
|
||||
|
||||
#########################################################################
|
||||
## Xscale Systems
|
||||
#########################################################################
|
||||
@@ -170,7 +178,11 @@ LIST_pxa=" \
|
||||
LIST_ixp="ixdp425"
|
||||
|
||||
|
||||
LIST_arm="${LIST_SA} ${LIST_ARM7} ${LIST_ARM9} ${LIST_pxa} ${LIST_ixp}"
|
||||
LIST_arm=" \
|
||||
${LIST_SA} \
|
||||
${LIST_ARM7} ${LIST_ARM9} ${LIST_ARM11} \
|
||||
${LIST_pxa} ${LIST_ixp} \
|
||||
"
|
||||
|
||||
#########################################################################
|
||||
## MIPS Systems
|
||||
@@ -180,9 +192,9 @@ LIST_mips4kc="incaip"
|
||||
|
||||
LIST_mips5kc="purple"
|
||||
|
||||
LIST_au1x00="dbau1000 dbau1100 dbau1500"
|
||||
LIST_au1xx0="dbau1000 dbau1100 dbau1500 dbau1550 dbau1550_el"
|
||||
|
||||
LIST_mips="${LIST_mips4kc} ${LIST_mips5kc} ${LIST_au1x00}"
|
||||
LIST_mips="${LIST_mips4kc} ${LIST_mips5kc} ${LIST_au1xx0}"
|
||||
|
||||
#########################################################################
|
||||
## i386 Systems
|
||||
@@ -238,7 +250,7 @@ for arg in $@
|
||||
do
|
||||
case "$arg" in
|
||||
ppc|5xx|5xxx|8xx|8220|824x|8260|85xx|4xx|7xx|74xx| \
|
||||
arm|SA|ARM7|ARM9|pxa|ixp| \
|
||||
arm|SA|ARM7|ARM9|ARM11|pxa|ixp| \
|
||||
microblaze| \
|
||||
mips| \
|
||||
nios|nios2| \
|
||||
|
||||
74
Makefile
74
Makefile
@@ -121,7 +121,7 @@ LIBS += common/libcommon.a
|
||||
.PHONY : $(LIBS)
|
||||
|
||||
# Add GCC lib
|
||||
PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
|
||||
PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
|
||||
|
||||
|
||||
# The "tools" are needed early, so put this first
|
||||
@@ -139,6 +139,9 @@ ALL = u-boot.srec u-boot.bin System.map
|
||||
|
||||
all: $(ALL)
|
||||
|
||||
u-boot.hex: u-boot
|
||||
$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
|
||||
|
||||
u-boot.srec: u-boot
|
||||
$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@
|
||||
|
||||
@@ -158,7 +161,7 @@ u-boot.dis: u-boot
|
||||
u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
|
||||
UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
|
||||
$(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \
|
||||
--start-group $(LIBS) $(PLATFORM_LIBS) --end-group \
|
||||
--start-group $(LIBS) --end-group $(PLATFORM_LIBS) \
|
||||
-Map u-boot.map -o u-boot
|
||||
|
||||
$(LIBS):
|
||||
@@ -833,6 +836,9 @@ PPChameleonEVB_HI_33_config: unconfig
|
||||
}
|
||||
@./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave
|
||||
|
||||
sbc405_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc ppc4xx sbc405
|
||||
|
||||
VOH405_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc ppc4xx voh405 esd
|
||||
|
||||
@@ -894,6 +900,9 @@ debris_config: unconfig
|
||||
eXalion_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc824x eXalion
|
||||
|
||||
HIDDEN_DRAGON_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc824x hidden_dragon
|
||||
|
||||
MOUSSE_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc824x mousse
|
||||
|
||||
@@ -924,6 +933,9 @@ SL8245_config: unconfig
|
||||
utx8245_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc824x utx8245
|
||||
|
||||
cobra5272_config : unconfig
|
||||
@./mkconfig $(@:_config=) m68k mcf52x2 cobra5272
|
||||
|
||||
#########################################################################
|
||||
## MPC8260 Systems
|
||||
#########################################################################
|
||||
@@ -947,6 +959,19 @@ CPU86_ROMBOOT_config: unconfig
|
||||
fi; \
|
||||
echo "export CONFIG_BOOT_ROM" >> config.mk;
|
||||
|
||||
CPU87_config \
|
||||
CPU87_ROMBOOT_config: unconfig
|
||||
@./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu87
|
||||
@cd ./include ; \
|
||||
if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
|
||||
echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
|
||||
echo "... booting from 8-bit flash" ; \
|
||||
else \
|
||||
echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
|
||||
echo "... booting from 64-bit flash" ; \
|
||||
fi; \
|
||||
echo "export CONFIG_BOOT_ROM" >> config.mk;
|
||||
|
||||
ep8260_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc8260 ep8260
|
||||
|
||||
@@ -967,13 +992,21 @@ ISPAN_REVB_config: unconfig
|
||||
@./mkconfig -a ISPAN ppc mpc8260 ispan
|
||||
|
||||
MPC8260ADS_config \
|
||||
MPC8260ADS_lowboot_config \
|
||||
MPC8260ADS_33MHz_config \
|
||||
MPC8260ADS_33MHz_lowboot_config \
|
||||
MPC8260ADS_40MHz_config \
|
||||
MPC8260ADS_40MHz_lowboot_config \
|
||||
MPC8272ADS_config \
|
||||
MPC8272ADS_lowboot_config \
|
||||
PQ2FADS_config \
|
||||
PQ2FADS_lowboot_config \
|
||||
PQ2FADS-VR_config \
|
||||
PQ2FADS-VR_lowboot_config \
|
||||
PQ2FADS-ZU_config \
|
||||
PQ2FADS-ZU_lowboot_config \
|
||||
PQ2FADS-ZU_66MHz_config \
|
||||
PQ2FADS-ZU_66MHz_lowboot_config \
|
||||
: unconfig
|
||||
$(if $(findstring PQ2FADS,$@), \
|
||||
@echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > include/config.h, \
|
||||
@@ -982,6 +1015,10 @@ PQ2FADS-ZU_66MHz_config \
|
||||
@echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> include/config.h, \
|
||||
$(if $(findstring VR,$@), \
|
||||
@echo "#define CONFIG_8260_CLKIN 66000000" >> include/config.h))
|
||||
@[ -z "$(findstring lowboot_,$@)" ] || \
|
||||
{ echo "TEXT_BASE = 0xFF800000" >board/mpc8260ads/config.tmp ; \
|
||||
echo "... with lowboot configuration" ; \
|
||||
}
|
||||
@./mkconfig -a MPC8260ADS ppc mpc8260 mpc8260ads
|
||||
|
||||
MPC8266ADS_config: unconfig
|
||||
@@ -1041,6 +1078,12 @@ PM828_ROMBOOT_PCI_config: unconfig
|
||||
ppmc8260_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc8260 ppmc8260
|
||||
|
||||
Rattler8248_config \
|
||||
Rattler_config: unconfig
|
||||
$(if $(findstring 8248,$@), \
|
||||
@echo "#define CONFIG_MPC8248" > include/config.h)
|
||||
@./mkconfig -a Rattler ppc mpc8260 rattler
|
||||
|
||||
RPXsuper_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc8260 rpxsuper
|
||||
|
||||
@@ -1135,6 +1178,9 @@ MPC8541CDS_config: unconfig
|
||||
MPC8555CDS_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc85xx mpc8555cds cds
|
||||
|
||||
PM854_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc85xx pm854
|
||||
|
||||
sbc8540_config \
|
||||
sbc8540_33_config \
|
||||
sbc8540_66_config: unconfig
|
||||
@@ -1162,6 +1208,12 @@ sbc8560_66_config: unconfig
|
||||
stxgp3_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc85xx stxgp3
|
||||
|
||||
TQM8540_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc85xx tqm8540
|
||||
|
||||
TQM8560_config: unconfig
|
||||
@./mkconfig $(@:_config=) ppc mpc85xx tqm8560
|
||||
|
||||
#########################################################################
|
||||
## 74xx/7xx Systems
|
||||
#########################################################################
|
||||
@@ -1397,6 +1449,12 @@ xm250_config : unconfig
|
||||
xsengine_config : unconfig
|
||||
@./mkconfig $(@:_config=) arm pxa xsengine
|
||||
|
||||
#########################################################################
|
||||
## ARM1136 Systems
|
||||
#########################################################################
|
||||
omap2420h4_config : unconfig
|
||||
@./mkconfig $(@:_config=) arm arm1136 omap2420h4
|
||||
|
||||
#========================================================================
|
||||
# i386
|
||||
#========================================================================
|
||||
@@ -1461,6 +1519,16 @@ dbau1500_config : unconfig
|
||||
@echo "#define CONFIG_DBAU1500 1" >>include/config.h
|
||||
@./mkconfig -a dbau1x00 mips mips dbau1x00
|
||||
|
||||
dbau1550_config : unconfig
|
||||
@ >include/config.h
|
||||
@echo "#define CONFIG_DBAU1550 1" >>include/config.h
|
||||
@./mkconfig -a dbau1x00 mips mips dbau1x00
|
||||
|
||||
dbau1550_el_config : unconfig
|
||||
@ >include/config.h
|
||||
@echo "#define CONFIG_DBAU1550 1" >>include/config.h
|
||||
@./mkconfig -a dbau1x00 mips mips dbau1x00 "" little
|
||||
|
||||
#########################################################################
|
||||
## MIPS64 5Kc
|
||||
#########################################################################
|
||||
@@ -1581,7 +1649,7 @@ clobber: clean
|
||||
| xargs -0 rm -f
|
||||
rm -f $(OBJS) *.bak tags TAGS
|
||||
rm -fr *.*~
|
||||
rm -f u-boot u-boot.map $(ALL)
|
||||
rm -f u-boot u-boot.map u-boot.hex $(ALL)
|
||||
rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
|
||||
rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
|
||||
rm -f include/asm/proc include/asm/arch include/asm
|
||||
|
||||
33
README
33
README
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# (C) Copyright 2000 - 2004
|
||||
# (C) Copyright 2000 - 2005
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
@@ -130,6 +130,7 @@ Directory Hierarchy:
|
||||
- s3c24x0 Files specific to Samsung S3C24X0 CPUs
|
||||
- arm925t Files specific to ARM 925 CPUs
|
||||
- arm926ejs Files specific to ARM 926 CPUs
|
||||
- arm1136 Files specific to ARM 1136 CPUs
|
||||
- at91rm9200 Files specific to Atmel AT91RM9200 CPUs
|
||||
- i386 Files specific to i386 CPUs
|
||||
- ixp Files specific to Intel XScale IXP CPUs
|
||||
@@ -301,13 +302,13 @@ The following options need to be configured:
|
||||
ARM based boards:
|
||||
-----------------
|
||||
|
||||
CONFIG_AT91RM9200DK, CONFIG_CERF250, CONFIG_DNP1110,
|
||||
CONFIG_EP7312, CONFIG_H2_OMAP1610, CONFIG_HHP_CRADLE,
|
||||
CONFIG_IMPA7, CONFIG_INNOVATOROMAP1510, CONFIG_INNOVATOROMAP1610,
|
||||
CONFIG_LART, CONFIG_LPD7A400 CONFIG_LUBBOCK,
|
||||
CONFIG_OSK_OMAP5912, CONFIG_SHANNON, CONFIG_P2_OMAP730,
|
||||
CONFIG_SMDK2400, CONFIG_SMDK2410, CONFIG_TRAB,
|
||||
CONFIG_VCMA9
|
||||
CONFIG_AT91RM9200DK, CONFIG_CERF250, CONFIG_DNP1110,
|
||||
CONFIG_EP7312, CONFIG_H2_OMAP1610, CONFIG_HHP_CRADLE,
|
||||
CONFIG_IMPA7, CONFIG_INNOVATOROMAP1510, CONFIG_INNOVATOROMAP1610,
|
||||
CONFIG_LART, CONFIG_LPD7A400 CONFIG_LUBBOCK,
|
||||
CONFIG_OSK_OMAP5912, CONFIG_OMAP2420H4, CONFIG_SHANNON,
|
||||
CONFIG_P2_OMAP730, CONFIG_SMDK2400, CONFIG_SMDK2410,
|
||||
CONFIG_TRAB, CONFIG_VCMA9
|
||||
|
||||
MicroBlaze based boards:
|
||||
------------------------
|
||||
@@ -626,6 +627,7 @@ The following options need to be configured:
|
||||
CFG_CMD_SAVES * save S record dump
|
||||
CFG_CMD_SCSI * SCSI Support
|
||||
CFG_CMD_SDRAM * print SDRAM configuration information
|
||||
(requires CFG_CMD_I2C)
|
||||
CFG_CMD_SETGETDCR Support for DCR Register access (4xx only)
|
||||
CFG_CMD_SPI * SPI serial bus support
|
||||
CFG_CMD_USB * USB support
|
||||
@@ -2127,6 +2129,19 @@ Low Level (hardware related) configuration options:
|
||||
This only takes effect if the memory commands are activated
|
||||
globally (CFG_CMD_MEM).
|
||||
|
||||
- CONFIG_SKIP_LOWLEVEL_INIT
|
||||
- CONFIG_SKIP_RELOCATE_UBOOT
|
||||
|
||||
[ARM only] If these variables are defined, then
|
||||
certain low level initializations (like setting up
|
||||
the memory controller) are omitted and/or U-Boot does
|
||||
not relocate itself into RAM.
|
||||
Normally these variables MUST NOT be defined. The
|
||||
only exception is when U-Boot is loaded (to RAM) by
|
||||
some other boot loader or by a debugger which
|
||||
performs these intializations itself.
|
||||
|
||||
|
||||
Building the Software:
|
||||
======================
|
||||
|
||||
@@ -2177,7 +2192,7 @@ configurations; the following names are supported:
|
||||
FADS850SAR_config omap1610h2_config TQM850L_config
|
||||
FADS860T_config omap1610inn_config TQM855L_config
|
||||
FPS850L_config omap5912osk_config TQM860L_config
|
||||
WALNUT405_config
|
||||
omap2420h4_config WALNUT405_config
|
||||
Yukon8220_config
|
||||
ZPC1900_config
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
indent: Standard input:49: Warning:old style assignment ambiguity in "=*". Assuming "= *"
|
||||
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
*
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
After following the step of Yoo. Jonghoon and Wolfgang Denk,
|
||||
I ported u-boot on RPXlite DW version board: RPXlite_DW or LITE_DW.
|
||||
|
||||
There are three differences between the Yoo-ported RPXlite and the RPXlite_DW.
|
||||
There are at least three differences between the Yoo-ported RPXlite and the RPXlite_DW.
|
||||
|
||||
Board(in U-BOOT) version(in EmbeddedPlanet) CPU SDRAM FLASH
|
||||
Board(in U-Boot) version(in EmbeddedPlanet) CPU SDRAM FLASH
|
||||
RPXlite RPXlite CW 850 16MB 4MB
|
||||
RPXlite_DW RPXlite DW 823e 64MB 16MB
|
||||
RPXlite_DW RPXlite DW(EP 823 H1 DW) 823e 64MB 16MB
|
||||
|
||||
This fireware is specially coded for EmbeddedPlanet Co. Software Development
|
||||
Platform(RPXlite DW),which has a NEC NL6448BC20-08 LCD panel.
|
||||
@@ -17,6 +17,7 @@ It has the following three features:
|
||||
The default setting is 48MHz.To get a 64MHz u-boot,just add
|
||||
'64' in make command,like
|
||||
|
||||
make distclean
|
||||
make RPXlite_DW_64_config
|
||||
make all
|
||||
|
||||
@@ -28,19 +29,21 @@ didn't use EEPROM for ENV is that PlanetCore V2.0 use EEPROM as environment para
|
||||
home.Because of the possibility of using two firewares on this board,I didn't
|
||||
'disturb' EEPROM.To get NVRAM support,you may use the following build command:
|
||||
|
||||
make distclean
|
||||
make RPXlite_DW_NVRAM_config
|
||||
make all
|
||||
|
||||
3. LCD panel support
|
||||
|
||||
To support the Platform better,I added LCD panel(NL6448BC20-08) function.But bewear of
|
||||
the fact that once you build this support and program it to FLASH,you should make sure
|
||||
you put workable kernel and ramdisk at the right place in FLASH or through NFS.
|
||||
Otherwise, you must erase this fireware manually via BDI2000 or ICE tools.So this
|
||||
function is used for deployment and demo only.Pls look before you leap.
|
||||
To support the Platform better,I added LCD panel(NL6448BC20-08) function.
|
||||
For the convenience of debug, CONFIG_PERBOOT was supported. So you just
|
||||
perss ENTER if you want to get a serial console in boot downcounting.
|
||||
Then you can switch to LCD and serial console freely just typing
|
||||
'run lcd' or 'run ser'. They are only vaild when CONFIG_LCD was enabled.
|
||||
|
||||
To get a LCD support u-boot,you can do the following:
|
||||
|
||||
make distclean
|
||||
make RPXlite_DW_LCD_config
|
||||
make all
|
||||
|
||||
@@ -68,7 +71,7 @@ make RPXlite_DW_64_LCD_config
|
||||
|
||||
The boot process by "make RPXlite_DW_config" could be:
|
||||
|
||||
U-Boot 1.1.1 (Jun 8 2004 - 11:16:30)
|
||||
U-Boot 1.1.2 (Aug 29 2004 - 15:11:27)
|
||||
|
||||
CPU: PPC823EZTnnB2 at 48 MHz: 16 kB I-Cache 8 kB D-Cache
|
||||
Board: RPXlite_DW
|
||||
@@ -84,6 +87,68 @@ u-boot>
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A word on the U-Boot enviroment variable setting and usage :
|
||||
|
||||
In the beginning, you could just need very simple defult environment variable setting,
|
||||
like[include/configs/RPXlite.h] :
|
||||
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"bootp; " \
|
||||
"setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " \
|
||||
"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; " \
|
||||
"bootm"
|
||||
|
||||
This is enough for kernel NFS test. But as debug process goes on, you would expect
|
||||
to save some time on environment variable setting and u-boot/kernel updating.
|
||||
So the default environment variable setting would become more complicated. Just like
|
||||
the one I did in include/configs/RPXlite_DW.h.
|
||||
|
||||
Two u-boot commands, ku and uu, should be careful to use. They were designed to update
|
||||
kernel and u-boot image file respectively. You must tftp your image to default address
|
||||
'100000' and then use them correctly. Yeah, you can create your own command to do this
|
||||
job. :-) The example u-boot image updating process could be :
|
||||
|
||||
u-boot>t 100000 RPXlite_DW_LCD.bin
|
||||
Using SCC ETHERNET device
|
||||
TFTP from server 172.16.115.6; our IP address is 172.16.115.7
|
||||
Filename 'RPXlite_DW_LCD.bin'.
|
||||
Load address: 0x100000
|
||||
Loading: #############################
|
||||
done
|
||||
Bytes transferred = 144700 (2353c hex)
|
||||
u-boot>run uu
|
||||
Un-Protect Flash Sectors 0-4 in Bank # 1
|
||||
Erase Flash Sectors 0-4 in Bank # 1
|
||||
.... done
|
||||
Copy to Flash... done
|
||||
ff000000: 27051956 552d426f 6f742031 2e312e32 '..VU-Boot 1.1.2
|
||||
ff000010: 20284175 67203239 20323030 34202d20 (Aug 29 2004 -
|
||||
ff000020: 31353a32 303a3238 29000000 00000000 15:20:28).......
|
||||
ff000030: 00000000 00000000 00000000 00000000 ................
|
||||
ff000040: 00000000 00000000 00000000 00000000 ................
|
||||
ff000050: 00000000 00000000 00000000 00000000 ................
|
||||
ff000060: 00000000 00000000 00000000 00000000 ................
|
||||
ff000070: 00000000 00000000 00000000 00000000 ................
|
||||
ff000080: 00000000 00000000 00000000 00000000 ................
|
||||
ff000090: 00000000 00000000 00000000 00000000 ................
|
||||
ff0000a0: 00000000 00000000 00000000 00000000 ................
|
||||
ff0000b0: 00000000 00000000 00000000 00000000 ................
|
||||
ff0000c0: 00000000 00000000 00000000 00000000 ................
|
||||
ff0000d0: 00000000 00000000 00000000 00000000 ................
|
||||
ff0000e0: 00000000 00000000 00000000 00000000 ................
|
||||
ff0000f0: 00000000 00000000 00000000 00000000 ................
|
||||
u-boot updating finished
|
||||
u-boot>
|
||||
|
||||
Also for environment updating, 'run eu' could let you erase OLD default environment variable
|
||||
and then use the working u-boot environment setting.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Finally, if you want to keep the serial port to possible debug on spot for deployment, you
|
||||
just need to enable 'DEPLOYMENT' in RPXlite_DW.h as 'DEBUG' does. Only the special string
|
||||
defined by CONFIG_AUTOBOOT_STOP_STR like 'st' can stop the autoboot.
|
||||
|
||||
I'd like to extend my heartfelt gratitute to kind people for helping me work it out.
|
||||
I would particually thank Wolfgang Denk for his nice help.
|
||||
|
||||
@@ -93,4 +158,4 @@ Sam Song, samsongshu@yahoo.com.cn
|
||||
Institute of Electrical Machinery and Controls
|
||||
Shanghai University
|
||||
|
||||
June 8,2004
|
||||
Oct. 11, 2004
|
||||
|
||||
@@ -80,8 +80,8 @@ BCR_DB1110: .long ASSABET_BCR_DB1110
|
||||
LEDS: .long NEPONSET_LEDS
|
||||
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
/* Setting up the memory and stuff */
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := at91rm9200dk.o at45.o dm9161.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
/*
|
||||
* Memory Setup stuff - taken from blob memsetup.S
|
||||
*
|
||||
* Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and
|
||||
* Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
|
||||
*
|
||||
* Modified for the at91rm9200dk board by
|
||||
* (C) Copyright 2004
|
||||
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <version.h>
|
||||
|
||||
#ifdef CONFIG_BOOTBINFUNC
|
||||
/*
|
||||
* some parameters for the board
|
||||
*
|
||||
* This is based on rm9200dk.cfg for the BDI2000 from ABATRON which in
|
||||
* turn is based on the boot.bin code from ATMEL
|
||||
*
|
||||
*/
|
||||
|
||||
/* flash */
|
||||
#define MC_PUIA 0xFFFFFF10
|
||||
#define MC_PUIA_VAL 0x00000000
|
||||
#define MC_PUP 0xFFFFFF50
|
||||
#define MC_PUP_VAL 0x00000000
|
||||
#define MC_PUER 0xFFFFFF54
|
||||
#define MC_PUER_VAL 0x00000000
|
||||
#define MC_ASR 0xFFFFFF04
|
||||
#define MC_ASR_VAL 0x00000000
|
||||
#define MC_AASR 0xFFFFFF08
|
||||
#define MC_AASR_VAL 0x00000000
|
||||
#define EBI_CFGR 0xFFFFFF64
|
||||
#define EBI_CFGR_VAL 0x00000000
|
||||
#define SMC2_CSR 0xFFFFFF70
|
||||
#define SMC2_CSR_VAL 0x00003284 /* 16bit, 2 TDF, 4 WS */
|
||||
|
||||
/* clocks */
|
||||
#define PLLAR 0xFFFFFC28
|
||||
#define PLLAR_VAL 0x20263E04 /* 179.712000 MHz for PCK */
|
||||
#define PLLBR 0xFFFFFC2C
|
||||
#define PLLBR_VAL 0x10483E0E /* 48.054857 MHz (divider by 2 for USB) */
|
||||
#define MCKR 0xFFFFFC30
|
||||
#define MCKR_VAL 0x00000202 /* PCK/3 = MCK Master Clock = 59.904000MHz from PLLA */
|
||||
|
||||
/* sdram */
|
||||
#define PIOC_ASR 0xFFFFF870
|
||||
#define PIOC_ASR_VAL 0xFFFF0000 /* Configure PIOC as peripheral (D16/D31) */
|
||||
#define PIOC_BSR 0xFFFFF874
|
||||
#define PIOC_BSR_VAL 0x00000000
|
||||
#define PIOC_PDR 0xFFFFF804
|
||||
#define PIOC_PDR_VAL 0xFFFF0000
|
||||
#define EBI_CSA 0xFFFFFF60
|
||||
#define EBI_CSA_VAL 0x00000002 /* CS1=SDRAM */
|
||||
#define SDRC_CR 0xFFFFFF98
|
||||
#define SDRC_CR_VAL 0x2188c155 /* set up the SDRAM */
|
||||
#define SDRAM 0x20000000 /* address of the SDRAM */
|
||||
#define SDRAM1 0x20000080 /* address of the SDRAM */
|
||||
#define SDRAM_VAL 0x00000000 /* value written to SDRAM */
|
||||
#define SDRC_MR 0xFFFFFF90
|
||||
#define SDRC_MR_VAL 0x00000002 /* Precharge All */
|
||||
#define SDRC_MR_VAL1 0x00000004 /* refresh */
|
||||
#define SDRC_MR_VAL2 0x00000003 /* Load Mode Register */
|
||||
#define SDRC_MR_VAL3 0x00000000 /* Normal Mode */
|
||||
#define SDRC_TR 0xFFFFFF94
|
||||
#define SDRC_TR_VAL 0x000002E0 /* Write refresh rate */
|
||||
|
||||
|
||||
_TEXT_BASE:
|
||||
.word TEXT_BASE
|
||||
|
||||
.globl lowlevelinit
|
||||
lowlevelinit:
|
||||
/* memory control configuration */
|
||||
/* this isn't very elegant, but what the heck */
|
||||
ldr r0, =SMRDATA
|
||||
ldr r1, _TEXT_BASE
|
||||
sub r0, r0, r1
|
||||
add r2, r0, #80
|
||||
0:
|
||||
/* the address */
|
||||
ldr r1, [r0], #4
|
||||
/* the value */
|
||||
ldr r3, [r0], #4
|
||||
str r3, [r1]
|
||||
cmp r2, r0
|
||||
bne 0b
|
||||
/* delay - this is all done by guess */
|
||||
ldr r0, =0x00010000
|
||||
1:
|
||||
subs r0, r0, #1
|
||||
bhi 1b
|
||||
ldr r0, =SMRDATA1
|
||||
ldr r1, _TEXT_BASE
|
||||
sub r0, r0, r1
|
||||
add r2, r0, #176
|
||||
2:
|
||||
/* the address */
|
||||
ldr r1, [r0], #4
|
||||
/* the value */
|
||||
ldr r3, [r0], #4
|
||||
str r3, [r1]
|
||||
cmp r2, r0
|
||||
bne 2b
|
||||
|
||||
/* everything is fine now */
|
||||
mov pc, lr
|
||||
|
||||
.ltorg
|
||||
|
||||
SMRDATA:
|
||||
.word MC_PUIA
|
||||
.word MC_PUIA_VAL
|
||||
.word MC_PUP
|
||||
.word MC_PUP_VAL
|
||||
.word MC_PUER
|
||||
.word MC_PUER_VAL
|
||||
.word MC_ASR
|
||||
.word MC_ASR_VAL
|
||||
.word MC_AASR
|
||||
.word MC_AASR_VAL
|
||||
.word EBI_CFGR
|
||||
.word EBI_CFGR_VAL
|
||||
.word SMC2_CSR
|
||||
.word SMC2_CSR_VAL
|
||||
.word PLLAR
|
||||
.word PLLAR_VAL
|
||||
.word PLLBR
|
||||
.word PLLBR_VAL
|
||||
.word MCKR
|
||||
.word MCKR_VAL
|
||||
/* SMRDATA is 80 bytes long */
|
||||
/* here there's a delay of 100 */
|
||||
SMRDATA1:
|
||||
.word PIOC_ASR
|
||||
.word PIOC_ASR_VAL
|
||||
.word PIOC_BSR
|
||||
.word PIOC_BSR_VAL
|
||||
.word PIOC_PDR
|
||||
.word PIOC_PDR_VAL
|
||||
.word EBI_CSA
|
||||
.word EBI_CSA_VAL
|
||||
.word SDRC_CR
|
||||
.word SDRC_CR_VAL
|
||||
.word SDRC_MR
|
||||
.word SDRC_MR_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRC_MR
|
||||
.word SDRC_MR_VAL1
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRC_MR
|
||||
.word SDRC_MR_VAL2
|
||||
.word SDRAM1
|
||||
.word SDRAM_VAL
|
||||
.word SDRC_TR
|
||||
.word SDRC_TR_VAL
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
.word SDRC_MR
|
||||
.word SDRC_MR_VAL3
|
||||
.word SDRAM
|
||||
.word SDRAM_VAL
|
||||
/* SMRDATA1 is 176 bytes long */
|
||||
#endif /* CONFIG_BOOTBINFUNC */
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := cerf250.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* NOTE: I haven't clean this up considerably, just enough to get it
|
||||
* running. See hal_platform_setup.h for the source. See
|
||||
* board/cradle/memsetup.S for another PXA250 setup that is
|
||||
* board/cradle/lowlevel_init.S for another PXA250 setup that is
|
||||
* much cleaner.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
@@ -43,8 +43,8 @@ DRAM_SIZE: .long CFG_DRAM_SIZE
|
||||
* Memory setup
|
||||
*/
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
/* Set up GPIO pins first ----------------------------------------- */
|
||||
|
||||
@@ -403,9 +403,9 @@ initclks:
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------- */
|
||||
/* End memsetup */
|
||||
/* End lowlevel_init */
|
||||
/* ---------------------------------------------------------------- */
|
||||
|
||||
endmemsetup:
|
||||
endlowlevel_init:
|
||||
|
||||
mov pc, lr
|
||||
@@ -26,7 +26,6 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := cmc_pu2.o at45.o dm9161.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
* Modified for CMC_PU2 (removed Smart Media support) by Gary Jennejohn
|
||||
* (2004) garyj@denx.de
|
||||
*
|
||||
* Modified for CMC_BASIC by Martin Krause (2005), TQ-Systems GmbH
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
@@ -33,22 +35,67 @@
|
||||
/*
|
||||
* Miscelaneous platform dependent initialisations
|
||||
*/
|
||||
#define CMC_BASIC 1
|
||||
#define CMC_PU2 2
|
||||
|
||||
int hw_detect (void);
|
||||
|
||||
int board_init (void)
|
||||
{
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
AT91PS_PIO piob = AT91C_BASE_PIOB;
|
||||
AT91PS_PIO pioc = AT91C_BASE_PIOC;
|
||||
|
||||
/* Enable Ctrlc */
|
||||
console_init_f ();
|
||||
|
||||
/* Correct IRDA resistor problem */
|
||||
/* Set PA23_TXD in Output */
|
||||
(AT91PS_PIO) AT91C_BASE_PIOA->PIO_OER = AT91C_PA23_TXD2;
|
||||
/* (AT91PS_PIO) AT91C_BASE_PIOA->PIO_OER = AT91C_PA23_TXD2; */
|
||||
|
||||
/* memory and cpu-speed are setup before relocation */
|
||||
/* so we do _nothing_ here */
|
||||
|
||||
/* arch number of CMC_PU2-Board */
|
||||
/* PIOB and PIOC clock enabling */
|
||||
*AT91C_PMC_PCER = 1 << AT91C_ID_PIOB;
|
||||
*AT91C_PMC_PCER = 1 << AT91C_ID_PIOC;
|
||||
|
||||
/*
|
||||
* configure PC0-PC3 as input without pull ups, so RS485 driver enable
|
||||
* (CMC-PU2) and digital outputs (CMC-BASIC) are deactivated.
|
||||
*/
|
||||
pioc->PIO_ODR = AT91C_PIO_PC0 | AT91C_PIO_PC1 |
|
||||
AT91C_PIO_PC2 | AT91C_PIO_PC3;
|
||||
pioc->PIO_PPUDR = AT91C_PIO_PC0 | AT91C_PIO_PC1 |
|
||||
AT91C_PIO_PC2 | AT91C_PIO_PC3;
|
||||
pioc->PIO_PER = AT91C_PIO_PC0 | AT91C_PIO_PC1 |
|
||||
AT91C_PIO_PC2 | AT91C_PIO_PC3;
|
||||
|
||||
/*
|
||||
* On CMC-PU2 board configure PB3-PB6 to input without pull ups to
|
||||
* clear the duo LEDs (the external pull downs assure a proper
|
||||
* signal). On CMC-BASIC set PB3-PB6 to output and drive it
|
||||
* high, to configure current meassurement on AINx.
|
||||
*/
|
||||
if (hw_detect() & CMC_PU2) {
|
||||
piob->PIO_ODR = AT91C_PIO_PB3 | AT91C_PIO_PB4 |
|
||||
AT91C_PIO_PB5 | AT91C_PIO_PB6;
|
||||
}
|
||||
else if (hw_detect() & CMC_BASIC) {
|
||||
piob->PIO_SODR = AT91C_PIO_PB3 | AT91C_PIO_PB4 |
|
||||
AT91C_PIO_PB5 | AT91C_PIO_PB6;
|
||||
piob->PIO_OER = AT91C_PIO_PB3 | AT91C_PIO_PB4 |
|
||||
AT91C_PIO_PB5 | AT91C_PIO_PB6;
|
||||
}
|
||||
piob->PIO_PPUDR = AT91C_PIO_PB3 | AT91C_PIO_PB4 |
|
||||
AT91C_PIO_PB5 | AT91C_PIO_PB6;
|
||||
piob->PIO_PER = AT91C_PIO_PB3 | AT91C_PIO_PB4 |
|
||||
AT91C_PIO_PB5 | AT91C_PIO_PB6;
|
||||
|
||||
/*
|
||||
* arch number of CMC_PU2-Board. MACH_TYPE_CMC_PU2 is not supported in
|
||||
* the linuxarm kernel, yet.
|
||||
*/
|
||||
/* gd->bd->bi_arch_number = MACH_TYPE_CMC_PU2; */
|
||||
gd->bd->bi_arch_number = 251;
|
||||
/* adress of boot parameters */
|
||||
@@ -65,3 +112,30 @@ int dram_init (void)
|
||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int checkboard (void)
|
||||
{
|
||||
if (hw_detect() & CMC_PU2)
|
||||
puts ("Board: CMC-PU2 (Rittal GmbH)\n");
|
||||
else if (hw_detect() & CMC_BASIC)
|
||||
puts ("Board: CMC-BASIC (Rittal GmbH)\n");
|
||||
else
|
||||
puts ("Board: unknown\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hw_detect (void)
|
||||
{
|
||||
AT91PS_PIO pio = AT91C_BASE_PIOB;
|
||||
|
||||
/* PIOB clock enabling */
|
||||
*AT91C_PMC_PCER = 1 << AT91C_ID_PIOB;
|
||||
|
||||
/* configure PB12 as input without pull up */
|
||||
pio->PIO_ODR = AT91C_PIO_PB12;
|
||||
pio->PIO_PPUDR = AT91C_PIO_PB12;
|
||||
pio->PIO_PER = AT91C_PIO_PB12;
|
||||
|
||||
/* read board identification pin */
|
||||
return ((pio->PIO_PDSR & AT91C_PIO_PB12) ? CMC_PU2 : CMC_BASIC);
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
|
||||
{
|
||||
vu_short *addr = (vu_short *)(info->start[0]);
|
||||
int flag, prot, sect, ssect, l_sect;
|
||||
ulong start, now, last;
|
||||
ulong now, last;
|
||||
|
||||
debug ("flash_erase: first: %d last: %d\n", s_first, s_last);
|
||||
|
||||
@@ -335,11 +335,11 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
|
||||
if (l_sect < 0)
|
||||
goto DONE;
|
||||
|
||||
start = get_timer (0);
|
||||
last = start;
|
||||
reset_timer_masked ();
|
||||
last = 0;
|
||||
addr = (vu_short *)(info->start[l_sect]);
|
||||
while ((addr[0] & 0x0080) != 0x0080) {
|
||||
if ((now = get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
|
||||
if ((now = get_timer_masked ()) > CFG_FLASH_ERASE_TOUT) {
|
||||
printf ("Timeout\n");
|
||||
return 1;
|
||||
}
|
||||
@@ -394,6 +394,7 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
||||
while (cnt >= 2) {
|
||||
data = *((vu_short *)src);
|
||||
if ((rc = write_word_amd(info, (vu_short *)wp, data)) != 0) {
|
||||
printf ("write_buff 1: write_word_amd() rc=%d\n", rc);
|
||||
return (rc);
|
||||
}
|
||||
src += 2;
|
||||
@@ -402,13 +403,13 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
||||
}
|
||||
|
||||
if (cnt == 0) {
|
||||
return (0);
|
||||
return (ERR_OK);
|
||||
}
|
||||
|
||||
if (cnt == 1) {
|
||||
data = (*((volatile u8 *) src)) | (*((volatile u8 *) (wp + 1))
|
||||
<< 8);
|
||||
data = (*((volatile u8 *) src)) | (*((volatile u8 *) (wp + 1)) << 8);
|
||||
if ((rc = write_word_amd(info, (vu_short *)wp, data)) != 0) {
|
||||
printf ("write_buff 1: write_word_amd() rc=%d\n", rc);
|
||||
return (rc);
|
||||
}
|
||||
src += 1;
|
||||
@@ -431,7 +432,6 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
||||
*/
|
||||
static int write_word_amd (flash_info_t *info, vu_short *dest, ushort data)
|
||||
{
|
||||
ulong start;
|
||||
int flag;
|
||||
vu_short *base; /* first address in flash bank */
|
||||
|
||||
@@ -455,11 +455,11 @@ static int write_word_amd (flash_info_t *info, vu_short *dest, ushort data)
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
start = get_timer (0);
|
||||
reset_timer_masked ();
|
||||
|
||||
/* data polling for D7 */
|
||||
while ((*dest & 0x0080) != (data & 0x0080)) {
|
||||
if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
|
||||
if (get_timer_masked () > CFG_FLASH_WRITE_TOUT) {
|
||||
*dest = 0x00F0; /* reset bank */
|
||||
return (1);
|
||||
}
|
||||
|
||||
40
board/cobra5272/Makefile
Normal file
40
board/cobra5272/Makefile
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# (C) Copyright 2000-2003
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS = $(BOARD).o flash.o
|
||||
|
||||
$(LIB): .depend $(OBJS)
|
||||
$(AR) crv $@ $(OBJS)
|
||||
|
||||
#########################################################################
|
||||
|
||||
.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
|
||||
$(CC) -M $(CFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
|
||||
|
||||
sinclude .depend
|
||||
|
||||
#########################################################################
|
||||
169
board/cobra5272/bdm/cobra5272_uboot.gdb
Normal file
169
board/cobra5272/bdm/cobra5272_uboot.gdb
Normal file
@@ -0,0 +1,169 @@
|
||||
#
|
||||
# GDB Init script for the Coldfire 5272 processor.
|
||||
#
|
||||
# The main purpose of this script is to configure the
|
||||
# DRAM controller so code can be loaded.
|
||||
#
|
||||
# This file was changed to suite the senTec COBRA5272 board.
|
||||
#
|
||||
|
||||
define addresses
|
||||
|
||||
set $mbar = 0x10000001
|
||||
set $scr = $mbar - 1 + 0x004
|
||||
set $spr = $mbar - 1 + 0x006
|
||||
set $pmr = $mbar - 1 + 0x008
|
||||
set $apmr = $mbar - 1 + 0x00e
|
||||
set $dir = $mbar - 1 + 0x010
|
||||
set $icr1 = $mbar - 1 + 0x020
|
||||
set $icr2 = $mbar - 1 + 0x024
|
||||
set $icr3 = $mbar - 1 + 0x028
|
||||
set $icr4 = $mbar - 1 + 0x02c
|
||||
set $isr = $mbar - 1 + 0x030
|
||||
set $pitr = $mbar - 1 + 0x034
|
||||
set $piwr = $mbar - 1 + 0x038
|
||||
set $pivr = $mbar - 1 + 0x03f
|
||||
set $csbr0 = $mbar - 1 + 0x040
|
||||
set $csor0 = $mbar - 1 + 0x044
|
||||
set $csbr1 = $mbar - 1 + 0x048
|
||||
set $csor1 = $mbar - 1 + 0x04c
|
||||
set $csbr2 = $mbar - 1 + 0x050
|
||||
set $csor2 = $mbar - 1 + 0x054
|
||||
set $csbr3 = $mbar - 1 + 0x058
|
||||
set $csor3 = $mbar - 1 + 0x05c
|
||||
set $csbr4 = $mbar - 1 + 0x060
|
||||
set $csor4 = $mbar - 1 + 0x064
|
||||
set $csbr5 = $mbar - 1 + 0x068
|
||||
set $csor5 = $mbar - 1 + 0x06c
|
||||
set $csbr6 = $mbar - 1 + 0x070
|
||||
set $csor6 = $mbar - 1 + 0x074
|
||||
set $csbr7 = $mbar - 1 + 0x078
|
||||
set $csor7 = $mbar - 1 + 0x07c
|
||||
set $pacnt = $mbar - 1 + 0x080
|
||||
set $paddr = $mbar - 1 + 0x084
|
||||
set $padat = $mbar - 1 + 0x086
|
||||
set $pbcnt = $mbar - 1 + 0x088
|
||||
set $pbddr = $mbar - 1 + 0x08c
|
||||
set $pbdat = $mbar - 1 + 0x08e
|
||||
set $pcddr = $mbar - 1 + 0x094
|
||||
set $pcdat = $mbar - 1 + 0x096
|
||||
set $pdcnt = $mbar - 1 + 0x098
|
||||
set $sdcr = $mbar - 1 + 0x180
|
||||
set $sdtr = $mbar - 1 + 0x184
|
||||
set $wrrr = $mbar - 1 + 0x280
|
||||
set $wirr = $mbar - 1 + 0x283
|
||||
set $wcr = $mbar - 1 + 0x288
|
||||
set $wer = $mbar - 1 + 0x28c
|
||||
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# Setup system configuration
|
||||
#
|
||||
define setup-sys
|
||||
set *((unsigned short *) $scr) = 0x0003
|
||||
set *((unsigned short *) $spr) = 0xffff
|
||||
set *((unsigned char *) $pivr) = 0x4f
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# Setup Chip Selects (as per Motorola M5272C3 board)
|
||||
#
|
||||
define setup-cs
|
||||
|
||||
# CS0 -- FLASH
|
||||
set *((unsigned long *) $csbr0) = 0xffe00201
|
||||
set *((unsigned long *) $csor0) = 0xffe00014
|
||||
|
||||
# CS1 -- external bus test
|
||||
set *((unsigned long *) $csbr1) = 0x0
|
||||
set *((unsigned long *) $csor1) = 0x0
|
||||
|
||||
# CS2 -- Optional FSRAM
|
||||
set *((unsigned long *) $csbr2) = 0x30000001
|
||||
set *((unsigned long *) $csor2) = 0xfff80000
|
||||
|
||||
# CS3 -- not used
|
||||
set *((unsigned long *) $csbr3) = 0x0
|
||||
set *((unsigned long *) $csor3) = 0x0
|
||||
|
||||
# CS4 -- not used
|
||||
set *((unsigned long *) $csbr4) = 0x0
|
||||
set *((unsigned long *) $csor4) = 0x0
|
||||
|
||||
# CS5 -- PLI socket0
|
||||
set *((unsigned long *) $csbr5) = 0x0
|
||||
set *((unsigned long *) $csor5) = 0x0
|
||||
|
||||
# CS6 -- PLI socket1
|
||||
set *((unsigned long *) $csbr6) = 0x0
|
||||
set *((unsigned long *) $csor6) = 0x0
|
||||
|
||||
# CS7 -- SDRAM
|
||||
set *((unsigned long *) $csbr7) = 0x00000701
|
||||
set *((unsigned long *) $csor7) = 0xff00007c
|
||||
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# Setup the DRAM controller.
|
||||
#
|
||||
|
||||
define setup-dram
|
||||
set *((unsigned long *) $sdtr) = 0x0000f539
|
||||
set *((unsigned long *) $sdcr) = 0x00004211
|
||||
|
||||
# Dummy write to start SDRAM
|
||||
set *((unsigned long *) 0) = 0
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# Setup for GPIO pins
|
||||
#
|
||||
define setup-ppio
|
||||
|
||||
# PORT A -- the LED's
|
||||
set *((unsigned long *) $pacnt) = 0x00000000
|
||||
# lower 8 bits for output:
|
||||
set *((unsigned short *) $paddr) = 0xff
|
||||
# LED's off:
|
||||
set *((unsigned short *) $padat) = 0xff
|
||||
|
||||
# PORT B
|
||||
set *((unsigned long *) $pbcnt) = 0x55554155
|
||||
set *((unsigned short *) $pbddr) = 0x0000
|
||||
set *((unsigned short *) $pbdat) = 0x17ea
|
||||
|
||||
# PORT C
|
||||
#set *((unsigned short *) $pcddr) = 0x0000
|
||||
#set *((unsigned short *) $pcdat) = 0x1898
|
||||
|
||||
# PORT D
|
||||
set *((unsigned long *) $pdcnt) = 0x00000000
|
||||
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# Added for uClinux-coldfire target...
|
||||
#
|
||||
target bdm /dev/bdm
|
||||
|
||||
addresses
|
||||
setup-sys
|
||||
setup-cs
|
||||
setup-dram
|
||||
setup-ppio
|
||||
set print pretty
|
||||
set print asm-demangle
|
||||
display/i $pc
|
||||
|
||||
|
||||
#
|
||||
load u-boot
|
||||
set $pc=0x20000
|
||||
c
|
||||
2
board/cobra5272/bdm/gdbinit.reset
Normal file
2
board/cobra5272/bdm/gdbinit.reset
Normal file
@@ -0,0 +1,2 @@
|
||||
target bdm /dev/bdmcf0
|
||||
q
|
||||
2
board/cobra5272/bdm/load-cobra_uboot
Normal file
2
board/cobra5272/bdm/load-cobra_uboot
Normal file
@@ -0,0 +1,2 @@
|
||||
m68k-bdm-elf-gdb -n -x board/cobra5272/bdm/cobra5272_uboot.gdb u-boot
|
||||
|
||||
2
board/cobra5272/bdm/reset
Normal file
2
board/cobra5272/bdm/reset
Normal file
@@ -0,0 +1,2 @@
|
||||
m68k-bdm-elf-gdb -n -x bdm/gdbinit.reset
|
||||
|
||||
55
board/cobra5272/cobra5272.c
Normal file
55
board/cobra5272/cobra5272.c
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* (C) Copyright 2000-2003
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/m5272.h>
|
||||
#include <asm/immap_5272.h>
|
||||
|
||||
|
||||
int checkboard (void)
|
||||
{
|
||||
puts ("Board: ");
|
||||
puts ("senTec COBRA5272 Board\n");
|
||||
return 0;
|
||||
};
|
||||
|
||||
long int initdram (int board_type)
|
||||
{
|
||||
volatile sdramctrl_t *sdp = (sdramctrl_t *) (CFG_MBAR + MCFSIM_SDCR);
|
||||
|
||||
sdp->sdram_sdtr = 0xf539;
|
||||
sdp->sdram_sdcr = 0x4211;
|
||||
|
||||
/* Dummy write to start SDRAM */
|
||||
*((volatile unsigned long *) 0) = 0;
|
||||
|
||||
return CFG_SDRAM_SIZE * 1024 * 1024;
|
||||
};
|
||||
|
||||
int testdram (void)
|
||||
{
|
||||
/* TODO: XXX XXX XXX */
|
||||
printf ("DRAM test not implemented!\n");
|
||||
|
||||
return (0);
|
||||
}
|
||||
25
board/cobra5272/config.mk
Normal file
25
board/cobra5272/config.mk
Normal file
@@ -0,0 +1,25 @@
|
||||
#
|
||||
# (C) Copyright 2000-2003
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
# Coldfire contribution by Bernhard Kuhn <bkuhn@metrowerks.com>
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
TEXT_BASE = 0xffe00000
|
||||
378
board/cobra5272/flash.c
Normal file
378
board/cobra5272/flash.c
Normal file
@@ -0,0 +1,378 @@
|
||||
/*
|
||||
* (C) Copyright 2000-2003
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
|
||||
#define PHYS_FLASH_1 CFG_FLASH_BASE
|
||||
#define FLASH_BANK_SIZE 0x200000
|
||||
|
||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
||||
|
||||
void flash_print_info (flash_info_t * info)
|
||||
{
|
||||
int i;
|
||||
|
||||
switch (info->flash_id & FLASH_VENDMASK) {
|
||||
case (AMD_MANUFACT & FLASH_VENDMASK):
|
||||
printf ("AMD: ");
|
||||
break;
|
||||
default:
|
||||
printf ("Unknown Vendor ");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (info->flash_id & FLASH_TYPEMASK) {
|
||||
case (AMD_ID_PL160CB & FLASH_TYPEMASK):
|
||||
printf ("AM29PL160CB (16Mbit)\n");
|
||||
break;
|
||||
default:
|
||||
printf ("Unknown Chip Type\n");
|
||||
goto Done;
|
||||
break;
|
||||
}
|
||||
|
||||
printf (" Size: %ld MB in %d Sectors\n",
|
||||
info->size >> 20, info->sector_count);
|
||||
|
||||
printf (" Sector Start Addresses:");
|
||||
for (i = 0; i < info->sector_count; i++) {
|
||||
if ((i % 5) == 0) {
|
||||
printf ("\n ");
|
||||
}
|
||||
printf (" %08lX%s", info->start[i],
|
||||
info->protect[i] ? " (RO)" : " ");
|
||||
}
|
||||
printf ("\n");
|
||||
|
||||
Done:
|
||||
}
|
||||
|
||||
|
||||
unsigned long flash_init (void)
|
||||
{
|
||||
int i, j;
|
||||
ulong size = 0;
|
||||
|
||||
for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
|
||||
ulong flashbase = 0;
|
||||
|
||||
flash_info[i].flash_id =
|
||||
(AMD_MANUFACT & FLASH_VENDMASK) |
|
||||
(AMD_ID_PL160CB & FLASH_TYPEMASK);
|
||||
flash_info[i].size = FLASH_BANK_SIZE;
|
||||
flash_info[i].sector_count = CFG_MAX_FLASH_SECT;
|
||||
memset (flash_info[i].protect, 0, CFG_MAX_FLASH_SECT);
|
||||
if (i == 0)
|
||||
flashbase = PHYS_FLASH_1;
|
||||
else
|
||||
panic ("configured to many flash banks!\n");
|
||||
|
||||
for (j = 0; j < flash_info[i].sector_count; j++) {
|
||||
if (j == 0) {
|
||||
/* 1st is 16 KiB */
|
||||
flash_info[i].start[j] = flashbase;
|
||||
}
|
||||
if ((j >= 1) && (j <= 2)) {
|
||||
/* 2nd and 3rd are 8 KiB */
|
||||
flash_info[i].start[j] =
|
||||
flashbase + 0x4000 + 0x2000 * (j - 1);
|
||||
}
|
||||
if (j == 3) {
|
||||
/* 4th is 224 KiB */
|
||||
flash_info[i].start[j] = flashbase + 0x8000;
|
||||
}
|
||||
if ((j >= 4) && (j <= 10)) {
|
||||
/* rest is 256 KiB */
|
||||
flash_info[i].start[j] =
|
||||
flashbase + 0x40000 + 0x40000 * (j -
|
||||
4);
|
||||
}
|
||||
}
|
||||
size += flash_info[i].size;
|
||||
}
|
||||
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_FLASH_BASE,
|
||||
CFG_FLASH_BASE + 0x3ffff, &flash_info[0]);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
#define CMD_READ_ARRAY 0x00F0
|
||||
#define CMD_UNLOCK1 0x00AA
|
||||
#define CMD_UNLOCK2 0x0055
|
||||
#define CMD_ERASE_SETUP 0x0080
|
||||
#define CMD_ERASE_CONFIRM 0x0030
|
||||
#define CMD_PROGRAM 0x00A0
|
||||
#define CMD_UNLOCK_BYPASS 0x0020
|
||||
|
||||
#define MEM_FLASH_ADDR1 (*(volatile u16 *)(CFG_FLASH_BASE + (0x00000555<<1)))
|
||||
#define MEM_FLASH_ADDR2 (*(volatile u16 *)(CFG_FLASH_BASE + (0x000002AA<<1)))
|
||||
|
||||
#define BIT_ERASE_DONE 0x0080
|
||||
#define BIT_RDY_MASK 0x0080
|
||||
#define BIT_PROGRAM_ERROR 0x0020
|
||||
#define BIT_TIMEOUT 0x80000000 /* our flag */
|
||||
|
||||
#define READY 1
|
||||
#define ERR 2
|
||||
#define TMO 4
|
||||
|
||||
|
||||
int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||
{
|
||||
ulong result;
|
||||
int iflag, cflag, prot, sect;
|
||||
int rc = ERR_OK;
|
||||
int chip1;
|
||||
|
||||
/* first look for protection bits */
|
||||
|
||||
if (info->flash_id == FLASH_UNKNOWN)
|
||||
return ERR_UNKNOWN_FLASH_TYPE;
|
||||
|
||||
if ((s_first < 0) || (s_first > s_last)) {
|
||||
return ERR_INVAL;
|
||||
}
|
||||
|
||||
if ((info->flash_id & FLASH_VENDMASK) !=
|
||||
(AMD_MANUFACT & FLASH_VENDMASK)) {
|
||||
return ERR_UNKNOWN_FLASH_VENDOR;
|
||||
}
|
||||
|
||||
prot = 0;
|
||||
for (sect = s_first; sect <= s_last; ++sect) {
|
||||
if (info->protect[sect]) {
|
||||
prot++;
|
||||
}
|
||||
}
|
||||
if (prot)
|
||||
return ERR_PROTECTED;
|
||||
|
||||
/*
|
||||
* Disable interrupts which might cause a timeout
|
||||
* here. Remember that our exception vectors are
|
||||
* at address 0 in the flash, and we don't want a
|
||||
* (ticker) exception to happen while the flash
|
||||
* chip is in programming mode.
|
||||
*/
|
||||
|
||||
cflag = icache_status ();
|
||||
icache_disable ();
|
||||
iflag = disable_interrupts ();
|
||||
|
||||
printf ("\n");
|
||||
|
||||
/* Start erase on unprotected sectors */
|
||||
for (sect = s_first; sect <= s_last && !ctrlc (); sect++) {
|
||||
printf ("Erasing sector %2d ... ", sect);
|
||||
|
||||
/* arm simple, non interrupt dependent timer */
|
||||
set_timer (0);
|
||||
|
||||
if (info->protect[sect] == 0) { /* not protected */
|
||||
volatile u16 *addr =
|
||||
(volatile u16 *) (info->start[sect]);
|
||||
|
||||
MEM_FLASH_ADDR1 = CMD_UNLOCK1;
|
||||
MEM_FLASH_ADDR2 = CMD_UNLOCK2;
|
||||
MEM_FLASH_ADDR1 = CMD_ERASE_SETUP;
|
||||
|
||||
MEM_FLASH_ADDR1 = CMD_UNLOCK1;
|
||||
MEM_FLASH_ADDR2 = CMD_UNLOCK2;
|
||||
*addr = CMD_ERASE_CONFIRM;
|
||||
|
||||
/* wait until flash is ready */
|
||||
chip1 = 0;
|
||||
|
||||
do {
|
||||
result = *addr;
|
||||
|
||||
/* check timeout */
|
||||
if (get_timer (0) > CFG_FLASH_ERASE_TOUT) {
|
||||
MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
|
||||
chip1 = TMO;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!chip1
|
||||
&& (result & 0xFFFF) & BIT_ERASE_DONE)
|
||||
chip1 = READY;
|
||||
|
||||
} while (!chip1);
|
||||
|
||||
MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
|
||||
|
||||
if (chip1 == ERR) {
|
||||
rc = ERR_PROG_ERROR;
|
||||
goto outahere;
|
||||
}
|
||||
if (chip1 == TMO) {
|
||||
rc = ERR_TIMOUT;
|
||||
goto outahere;
|
||||
}
|
||||
|
||||
printf ("ok.\n");
|
||||
} else { /* it was protected */
|
||||
|
||||
printf ("protected!\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (ctrlc ())
|
||||
printf ("User Interrupt!\n");
|
||||
|
||||
outahere:
|
||||
/* allow flash to settle - wait 10 ms */
|
||||
udelay (10000);
|
||||
|
||||
if (iflag)
|
||||
enable_interrupts ();
|
||||
|
||||
if (cflag)
|
||||
icache_enable ();
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
volatile static int write_word (flash_info_t * info, ulong dest, ulong data)
|
||||
{
|
||||
volatile u16 *addr = (volatile u16 *) dest;
|
||||
ulong result;
|
||||
int rc = ERR_OK;
|
||||
int cflag, iflag;
|
||||
int chip1;
|
||||
|
||||
/*
|
||||
* Check if Flash is (sufficiently) erased
|
||||
*/
|
||||
result = *addr;
|
||||
if ((result & data) != data)
|
||||
return ERR_NOT_ERASED;
|
||||
|
||||
|
||||
/*
|
||||
* Disable interrupts which might cause a timeout
|
||||
* here. Remember that our exception vectors are
|
||||
* at address 0 in the flash, and we don't want a
|
||||
* (ticker) exception to happen while the flash
|
||||
* chip is in programming mode.
|
||||
*/
|
||||
|
||||
cflag = icache_status ();
|
||||
icache_disable ();
|
||||
iflag = disable_interrupts ();
|
||||
|
||||
MEM_FLASH_ADDR1 = CMD_UNLOCK1;
|
||||
MEM_FLASH_ADDR2 = CMD_UNLOCK2;
|
||||
MEM_FLASH_ADDR1 = CMD_PROGRAM;
|
||||
*addr = data;
|
||||
|
||||
/* arm simple, non interrupt dependent timer */
|
||||
set_timer (0);
|
||||
|
||||
/* wait until flash is ready */
|
||||
chip1 = 0;
|
||||
do {
|
||||
result = *addr;
|
||||
|
||||
/* check timeout */
|
||||
if (get_timer (0) > CFG_FLASH_ERASE_TOUT) {
|
||||
chip1 = ERR | TMO;
|
||||
break;
|
||||
}
|
||||
if (!chip1 && ((result & 0x80) == (data & 0x80)))
|
||||
chip1 = READY;
|
||||
|
||||
} while (!chip1);
|
||||
|
||||
*addr = CMD_READ_ARRAY;
|
||||
|
||||
if (chip1 == ERR || *addr != data)
|
||||
rc = ERR_PROG_ERROR;
|
||||
|
||||
if (iflag)
|
||||
enable_interrupts ();
|
||||
|
||||
if (cflag)
|
||||
icache_enable ();
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||
{
|
||||
ulong wp, data;
|
||||
int rc;
|
||||
|
||||
if (addr & 1) {
|
||||
printf ("unaligned destination not supported\n");
|
||||
return ERR_ALIGN;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (cnt & 1) {
|
||||
printf ("odd transfer sizes not supported\n");
|
||||
return ERR_ALIGN;
|
||||
}
|
||||
#endif
|
||||
|
||||
wp = addr;
|
||||
|
||||
if (addr & 1) {
|
||||
data = (*((volatile u8 *) addr) << 8) | *((volatile u8 *)
|
||||
src);
|
||||
if ((rc = write_word (info, wp - 1, data)) != 0) {
|
||||
return (rc);
|
||||
}
|
||||
src += 1;
|
||||
wp += 1;
|
||||
cnt -= 1;
|
||||
}
|
||||
|
||||
while (cnt >= 2) {
|
||||
data = *((volatile u16 *) src);
|
||||
if ((rc = write_word (info, wp, data)) != 0) {
|
||||
return (rc);
|
||||
}
|
||||
src += 2;
|
||||
wp += 2;
|
||||
cnt -= 2;
|
||||
}
|
||||
|
||||
if (cnt == 1) {
|
||||
data = (*((volatile u8 *) src) << 8) |
|
||||
*((volatile u8 *) (wp + 1));
|
||||
if ((rc = write_word (info, wp, data)) != 0) {
|
||||
return (rc);
|
||||
}
|
||||
src += 1;
|
||||
wp += 1;
|
||||
cnt -= 1;
|
||||
}
|
||||
|
||||
return ERR_OK;
|
||||
}
|
||||
142
board/cobra5272/u-boot.lds
Normal file
142
board/cobra5272/u-boot.lds
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* (C) Copyright 2000
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
OUTPUT_ARCH(m68k)
|
||||
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = + SIZEOF_HEADERS;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.rel.text : { *(.rel.text) }
|
||||
.rela.text : { *(.rela.text) }
|
||||
.rel.data : { *(.rel.data) }
|
||||
.rela.data : { *(.rela.data) }
|
||||
.rel.rodata : { *(.rel.rodata) }
|
||||
.rela.rodata : { *(.rela.rodata) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.bss : { *(.rel.bss) }
|
||||
.rela.bss : { *(.rela.bss) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.init : { *(.init) }
|
||||
.plt : { *(.plt) }
|
||||
.text :
|
||||
{
|
||||
/* WARNING - the following is hand-optimized to fit within */
|
||||
/* the sector layout of our flash chips! XXX FIXME XXX */
|
||||
cpu/mcf52x2/start.o (.text)
|
||||
cpu/mcf52x2/cpu_init.o (.text)
|
||||
lib_m68k/traps.o (.text)
|
||||
cpu/mcf52x2/interrupts.o (.text)
|
||||
common/dlmalloc.o (.text)
|
||||
lib_generic/zlib.o (.text)
|
||||
|
||||
. = DEFINED(env_offset) ? env_offset : .;
|
||||
common/environment.o (.text)
|
||||
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
}
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata)
|
||||
*(.rodata1)
|
||||
}
|
||||
.fini : { *(.fini) } =0
|
||||
.ctors : { *(.ctors) }
|
||||
.dtors : { *(.dtors) }
|
||||
|
||||
/* Read-write section, merged into data segment: */
|
||||
. = (. + 0x00FF) & 0xFFFFFF00;
|
||||
_erotext = .;
|
||||
PROVIDE (erotext = .);
|
||||
|
||||
.reloc :
|
||||
{
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
_GOT2_TABLE_ = .;
|
||||
*(.got2)
|
||||
_FIXUP_TABLE_ = .;
|
||||
*(.fixup)
|
||||
}
|
||||
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
|
||||
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
|
||||
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.data1)
|
||||
*(.sdata)
|
||||
*(.sdata2)
|
||||
*(.dynamic)
|
||||
CONSTRUCTORS
|
||||
}
|
||||
_edata = .;
|
||||
PROVIDE (edata = .);
|
||||
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
|
||||
|
||||
__start___ex_table = .;
|
||||
__ex_table : { *(__ex_table) }
|
||||
__stop___ex_table = .;
|
||||
|
||||
. = ALIGN(256);
|
||||
__init_begin = .;
|
||||
.text.init : { *(.text.init) }
|
||||
.data.init : { *(.data.init) }
|
||||
. = ALIGN(256);
|
||||
__init_end = .;
|
||||
|
||||
__bss_start = .;
|
||||
.bss :
|
||||
{
|
||||
_sbss = .;
|
||||
*(.sbss) *(.scommon)
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
_ebss = .;
|
||||
}
|
||||
_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS = $(BOARD).o flash.o plx9030.o
|
||||
OBJS = $(BOARD).o flash.o plx9030.o pd67290.o
|
||||
|
||||
$(LIB): .depend $(OBJS)
|
||||
$(AR) crv $@ $(OBJS)
|
||||
|
||||
@@ -24,11 +24,13 @@
|
||||
#include <common.h>
|
||||
#include <mpc824x.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/io.h>
|
||||
#include <pci.h>
|
||||
#include <i2c.h>
|
||||
|
||||
int sysControlDisplay(int digit, uchar ascii_code);
|
||||
extern void Plx9030Init(void);
|
||||
extern void SPD67290Init(void);
|
||||
|
||||
/* We have to clear the initial data area here. Couldn't have done it
|
||||
* earlier because DRAM had not been initialized.
|
||||
@@ -180,6 +182,10 @@ static struct pci_config_table pci_cpc45_config_table[] = {
|
||||
pci_cfgfunc_config_device, { PCI_PLX9030_IOADDR,
|
||||
PCI_PLX9030_MEMADDR,
|
||||
PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER }},
|
||||
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x0E, PCI_ANY_ID,
|
||||
pci_cfgfunc_config_device, { PCMCIA_IO_BASE,
|
||||
PCMCIA_IO_BASE,
|
||||
PCI_COMMAND_MEMORY | PCI_COMMAND_IO }},
|
||||
#endif /*CONFIG_PCI_PNP*/
|
||||
{ }
|
||||
};
|
||||
@@ -233,3 +239,37 @@ int sysControlDisplay (int digit, /* number of digit 0..7 */
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_PCMCIA)
|
||||
|
||||
#ifdef CFG_PCMCIA_MEM_ADDR
|
||||
volatile unsigned char *pcmcia_mem = (unsigned char*)CFG_PCMCIA_MEM_ADDR;
|
||||
#endif
|
||||
|
||||
int pcmcia_init(void)
|
||||
{
|
||||
u_int rc;
|
||||
|
||||
debug ("Enable PCMCIA " PCMCIA_SLOT_MSG "\n");
|
||||
|
||||
rc = i82365_init();
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
#endif /* CFG_CMD_PCMCIA */
|
||||
|
||||
# ifdef CONFIG_IDE_LED
|
||||
void ide_led (uchar led, uchar status)
|
||||
{
|
||||
u_char val;
|
||||
/* We have one PCMCIA slot and use LED H4 for the IDE Interface */
|
||||
val = readb(BCSR_BASE + 0x04);
|
||||
if (status) { /* led on */
|
||||
val |= B_CTRL_LED0;
|
||||
} else {
|
||||
val &= ~B_CTRL_LED0;
|
||||
}
|
||||
writeb(val, BCSR_BASE + 0x04);
|
||||
}
|
||||
# endif
|
||||
|
||||
68
board/cpc45/pd67290.c
Normal file
68
board/cpc45/pd67290.c
Normal file
@@ -0,0 +1,68 @@
|
||||
/* pd67290.c - system configuration module for SPD67290
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*
|
||||
* (C) 2004 DENX Software Engineering, Heiko Schocher <hs@denx.de>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <malloc.h>
|
||||
#include <net.h>
|
||||
#include <asm/io.h>
|
||||
#include <pci.h>
|
||||
|
||||
/* imports */
|
||||
#include <mpc824x.h>
|
||||
|
||||
static struct pci_device_id supported[] = {
|
||||
{PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_6729},
|
||||
{}
|
||||
};
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* SPD67290Init -
|
||||
*
|
||||
* RETURNS: -1 on error, 0 if OK
|
||||
*/
|
||||
|
||||
int SPD67290Init (void)
|
||||
{
|
||||
pci_dev_t devno;
|
||||
int idx = 0; /* general index */
|
||||
ulong membaseCsr; /* base address of device memory space */
|
||||
|
||||
/* find PD67290 device */
|
||||
if ((devno = pci_find_devices (supported, idx++)) < 0) {
|
||||
printf ("No PD67290 device found !!\n");
|
||||
return -1;
|
||||
}
|
||||
/* - 0xfe000000 see MPC 8245 Users Manual Adress Map B */
|
||||
membaseCsr = PCMCIA_IO_BASE - 0xfe000000;
|
||||
|
||||
/* set base address */
|
||||
pci_write_config_dword (devno, PCI_BASE_ADDRESS_0, membaseCsr);
|
||||
|
||||
/* enable mapped memory and IO addresses */
|
||||
pci_write_config_dword (devno,
|
||||
PCI_COMMAND,
|
||||
PCI_COMMAND_MEMORY |
|
||||
PCI_COMMAND_IO | PCI_COMMAND_WAIT);
|
||||
return 0;
|
||||
}
|
||||
40
board/cpu87/Makefile
Normal file
40
board/cpu87/Makefile
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# (C) Copyright 2001-2005
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS = $(BOARD).o flash.o
|
||||
|
||||
$(LIB): .depend $(OBJS)
|
||||
$(AR) crv $@ $(OBJS)
|
||||
|
||||
#########################################################################
|
||||
|
||||
.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
|
||||
$(CC) -M $(CFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
|
||||
|
||||
sinclude .depend
|
||||
|
||||
#########################################################################
|
||||
40
board/cpu87/config.mk
Normal file
40
board/cpu87/config.mk
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# (C) Copyright 2001-2005
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
#
|
||||
# CPU87 board
|
||||
#
|
||||
|
||||
# This should be equal to the CFG_FLASH_BASE define in configs/cpu87.h
|
||||
# for the "final" configuration, with U-Boot in flash, or the address
|
||||
# in RAM where U-Boot is loaded at for debugging.
|
||||
#
|
||||
|
||||
ifeq ($(CONFIG_BOOT_ROM),y)
|
||||
TEXT_BASE := 0xFF800000
|
||||
PLATFORM_CPPFLAGS += -DCONFIG_BOOT_ROM
|
||||
else
|
||||
TEXT_BASE := 0xFF000000
|
||||
endif
|
||||
|
||||
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -I$(TOPDIR)
|
||||
333
board/cpu87/cpu87.c
Normal file
333
board/cpu87/cpu87.c
Normal file
@@ -0,0 +1,333 @@
|
||||
/*
|
||||
* (C) Copyright 2001-2005
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <ioports.h>
|
||||
#include <mpc8260.h>
|
||||
#include "cpu87.h"
|
||||
#include <pci.h>
|
||||
|
||||
/*
|
||||
* I/O Port configuration table
|
||||
*
|
||||
* if conf is 1, then that port pin will be configured at boot time
|
||||
* according to the five values podr/pdir/ppar/psor/pdat for that entry
|
||||
*/
|
||||
|
||||
const iop_conf_t iop_conf_tab[4][32] = {
|
||||
|
||||
/* Port A configuration */
|
||||
{ /* conf ppar psor pdir podr pdat */
|
||||
/* PA31 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 MII COL */
|
||||
/* PA30 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 MII CRS */
|
||||
/* PA29 */ { 1, 1, 1, 1, 0, 0 }, /* FCC1 MII TX_ER */
|
||||
/* PA28 */ { 1, 1, 1, 1, 0, 0 }, /* FCC1 MII TX_EN */
|
||||
/* PA27 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 MII RX_DV */
|
||||
/* PA26 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 MII RX_ER */
|
||||
/* PA25 */ { 1, 0, 0, 1, 0, 0 }, /* FCC2 MII MDIO */
|
||||
/* PA24 */ { 1, 0, 0, 1, 0, 0 }, /* FCC2 MII MDC */
|
||||
/* PA23 */ { 1, 0, 0, 1, 0, 0 }, /* FCC1 MII MDIO */
|
||||
/* PA22 */ { 1, 0, 0, 1, 0, 0 }, /* FCC1 MII MDC */
|
||||
/* PA21 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[3] */
|
||||
/* PA20 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[2] */
|
||||
/* PA19 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[1] */
|
||||
/* PA18 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[0] */
|
||||
/* PA17 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[0] */
|
||||
/* PA16 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[1] */
|
||||
/* PA15 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[2] */
|
||||
/* PA14 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[3] */
|
||||
/* PA13 */ { 1, 0, 0, 1, 0, 0 }, /* FCC2 MII TXSL1 */
|
||||
/* PA12 */ { 1, 0, 0, 1, 0, 1 }, /* FCC2 MII TXSL0 */
|
||||
/* PA11 */ { 1, 0, 0, 1, 0, 0 }, /* FCC1 MII TXSL1 */
|
||||
/* PA10 */ { 1, 0, 0, 1, 0, 1 }, /* FCC1 MII TXSL0 */
|
||||
/* PA9 */ { 0, 1, 0, 1, 0, 0 }, /* SMC2 TXD */
|
||||
/* PA8 */ { 0, 1, 0, 0, 0, 0 }, /* SMC2 RXD */
|
||||
/* PA7 */ { 0, 0, 0, 0, 0, 0 }, /* PA7 */
|
||||
/* PA6 */ { 1, 0, 0, 1, 0, 1 }, /* FCC2 MII PAUSE */
|
||||
/* PA5 */ { 1, 0, 0, 1, 0, 1 }, /* FCC1 MII PAUSE */
|
||||
/* PA4 */ { 1, 0, 0, 1, 0, 0 }, /* FCC2 MII PWRDN */
|
||||
/* PA3 */ { 1, 0, 0, 1, 0, 0 }, /* FCC1 MII PWRDN */
|
||||
/* PA2 */ { 0, 0, 0, 0, 0, 0 }, /* PA2 */
|
||||
/* PA1 */ { 1, 0, 0, 0, 0, 0 }, /* FCC2 MII MDINT */
|
||||
/* PA0 */ { 1, 0, 0, 1, 0, 0 } /* FCC1 MII MDINT */
|
||||
},
|
||||
|
||||
/* Port B configuration */
|
||||
{ /* conf ppar psor pdir podr pdat */
|
||||
/* PB31 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TX_ER */
|
||||
/* PB30 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_DV */
|
||||
/* PB29 */ { 1, 1, 1, 1, 0, 0 }, /* FCC2 MII TX_EN */
|
||||
/* PB28 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_ER */
|
||||
/* PB27 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII COL */
|
||||
/* PB26 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII CRS */
|
||||
/* PB25 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[3] */
|
||||
/* PB24 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[2] */
|
||||
/* PB23 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[1] */
|
||||
/* PB22 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[0] */
|
||||
/* PB21 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[0] */
|
||||
/* PB20 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[1] */
|
||||
/* PB19 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[2] */
|
||||
/* PB18 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[3] */
|
||||
/* PB17 */ { 0, 0, 0, 0, 0, 0 }, /* PB17 */
|
||||
/* PB16 */ { 0, 0, 0, 0, 0, 0 }, /* PB16 */
|
||||
/* PB15 */ { 0, 0, 0, 0, 0, 0 }, /* PB15 */
|
||||
/* PB14 */ { 0, 0, 0, 0, 0, 0 }, /* PB14 */
|
||||
/* PB13 */ { 0, 0, 0, 0, 0, 0 }, /* PB13 */
|
||||
/* PB12 */ { 0, 0, 0, 0, 0, 0 }, /* PB12 */
|
||||
/* PB11 */ { 0, 0, 0, 0, 0, 0 }, /* PB11 */
|
||||
/* PB10 */ { 0, 0, 0, 0, 0, 0 }, /* PB10 */
|
||||
/* PB9 */ { 0, 0, 0, 0, 0, 0 }, /* PB9 */
|
||||
/* PB8 */ { 0, 0, 0, 0, 0, 0 }, /* PB8 */
|
||||
/* PB7 */ { 0, 0, 0, 0, 0, 0 }, /* PB7 */
|
||||
/* PB6 */ { 0, 0, 0, 0, 0, 0 }, /* PB6 */
|
||||
/* PB5 */ { 0, 0, 0, 0, 0, 0 }, /* PB5 */
|
||||
/* PB4 */ { 0, 0, 0, 0, 0, 0 }, /* PB4 */
|
||||
/* PB3 */ { 0, 0, 0, 0, 0, 0 }, /* PB3 */
|
||||
/* PB2 */ { 0, 0, 0, 0, 0, 0 }, /* PB2 */
|
||||
/* PB1 */ { 0, 0, 0, 0, 0, 0 }, /* PB1 */
|
||||
/* PB0 */ { 0, 0, 0, 0, 0, 0 } /* PB0 */
|
||||
},
|
||||
|
||||
/* Port C */
|
||||
{ /* conf ppar psor pdir podr pdat */
|
||||
/* PC31 */ { 0, 0, 0, 0, 0, 0 }, /* PC31 */
|
||||
/* PC30 */ { 0, 0, 0, 0, 0, 0 }, /* PC30 */
|
||||
/* PC29 */ { 1, 0, 0, 0, 0, 0 }, /* SCC1 CTS */
|
||||
/* PC28 */ { 1, 0, 0, 0, 0, 0 }, /* SCC2 CTS */
|
||||
/* PC27 */ { 0, 0, 0, 0, 0, 0 }, /* PC27 */
|
||||
/* PC26 */ { 0, 0, 0, 0, 0, 0 }, /* PC26 */
|
||||
/* PC25 */ { 0, 0, 0, 0, 0, 0 }, /* PC25 */
|
||||
/* PC24 */ { 0, 0, 0, 0, 0, 0 }, /* PC24 */
|
||||
/* PC23 */ { 0, 0, 0, 0, 0, 0 }, /* FDC37C78 DACFD */
|
||||
/* PC22 */ { 0, 0, 0, 0, 0, 0 }, /* FDC37C78 DNFD */
|
||||
/* PC21 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII RX_CLK */
|
||||
/* PC20 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII TX_CLK */
|
||||
/* PC19 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_CLK */
|
||||
/* PC18 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII TX_CLK */
|
||||
/* PC17 */ { 0, 0, 0, 0, 0, 0 }, /* PC17 */
|
||||
/* PC16 */ { 0, 0, 0, 0, 0, 0 }, /* PC16 */
|
||||
/* PC15 */ { 0, 0, 0, 0, 0, 0 }, /* PC15 */
|
||||
/* PC14 */ { 0, 0, 0, 0, 0, 0 }, /* PC14 */
|
||||
/* PC13 */ { 0, 0, 0, 0, 0, 0 }, /* PC13 */
|
||||
/* PC12 */ { 0, 0, 0, 0, 0, 0 }, /* PC12 */
|
||||
/* PC11 */ { 0, 0, 0, 0, 0, 0 }, /* PC11 */
|
||||
/* PC10 */ { 0, 0, 0, 0, 0, 0 }, /* PC10 */
|
||||
/* PC9 */ { 0, 0, 0, 0, 0, 0 }, /* FC9 */
|
||||
/* PC8 */ { 0, 0, 0, 0, 0, 0 }, /* PC8 */
|
||||
/* PC7 */ { 0, 0, 0, 0, 0, 0 }, /* PC7 */
|
||||
/* PC6 */ { 0, 0, 0, 0, 0, 0 }, /* PC6 */
|
||||
/* PC5 */ { 0, 0, 0, 0, 0, 0 }, /* PC5 */
|
||||
/* PC4 */ { 0, 0, 0, 0, 0, 0 }, /* PC4 */
|
||||
/* PC3 */ { 0, 0, 0, 0, 0, 0 }, /* PC3 */
|
||||
/* PC2 */ { 0, 0, 0, 0, 0, 0 }, /* PC2 */
|
||||
/* PC1 */ { 0, 0, 0, 0, 0, 0 }, /* PC1 */
|
||||
/* PC0 */ { 0, 0, 0, 0, 0, 0 }, /* FDC37C78 DRQFD */
|
||||
},
|
||||
|
||||
/* Port D */
|
||||
{ /* conf ppar psor pdir podr pdat */
|
||||
/* PD31 */ { 1, 1, 0, 0, 0, 0 }, /* SCC1 RXD */
|
||||
/* PD30 */ { 1, 1, 1, 1, 0, 0 }, /* SCC1 TXD */
|
||||
/* PD29 */ { 1, 0, 0, 1, 0, 0 }, /* SCC1 RTS */
|
||||
/* PD28 */ { 1, 1, 0, 0, 0, 0 }, /* SCC2 RXD */
|
||||
/* PD27 */ { 1, 1, 0, 1, 0, 0 }, /* SCC2 TXD */
|
||||
/* PD26 */ { 1, 0, 0, 1, 0, 0 }, /* SCC2 RTS */
|
||||
/* PD25 */ { 0, 0, 0, 0, 0, 0 }, /* PD25 */
|
||||
/* PD24 */ { 0, 0, 0, 0, 0, 0 }, /* PD24 */
|
||||
/* PD23 */ { 0, 0, 0, 0, 0, 0 }, /* PD23 */
|
||||
/* PD22 */ { 0, 0, 0, 0, 0, 0 }, /* PD22 */
|
||||
/* PD21 */ { 0, 0, 0, 0, 0, 0 }, /* PD21 */
|
||||
/* PD20 */ { 0, 0, 0, 0, 0, 0 }, /* PD20 */
|
||||
/* PD19 */ { 0, 0, 0, 0, 0, 0 }, /* PD19 */
|
||||
/* PD18 */ { 0, 0, 0, 0, 0, 0 }, /* PD18 */
|
||||
/* PD17 */ { 0, 0, 0, 0, 0, 0 }, /* PD17 */
|
||||
/* PD16 */ { 0, 0, 0, 0, 0, 0 }, /* PD16 */
|
||||
#if defined(CONFIG_SOFT_I2C)
|
||||
/* PD15 */ { 1, 0, 0, 1, 1, 1 }, /* I2C SDA */
|
||||
/* PD14 */ { 1, 0, 0, 1, 1, 1 }, /* I2C SCL */
|
||||
#else
|
||||
#if defined(CONFIG_HARD_I2C)
|
||||
/* PD15 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SDA */
|
||||
/* PD14 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SCL */
|
||||
#else /* normal I/O port pins */
|
||||
/* PD15 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SDA */
|
||||
/* PD14 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SCL */
|
||||
#endif
|
||||
#endif
|
||||
/* PD13 */ { 0, 0, 0, 0, 0, 0 }, /* PD13 */
|
||||
/* PD12 */ { 0, 0, 0, 0, 0, 0 }, /* PD12 */
|
||||
/* PD11 */ { 0, 0, 0, 0, 0, 0 }, /* PD11 */
|
||||
/* PD10 */ { 0, 0, 0, 0, 0, 0 }, /* PD10 */
|
||||
/* PD9 */ { 1, 1, 0, 1, 0, 0 }, /* SMC1 TXD */
|
||||
/* PD8 */ { 1, 1, 0, 0, 0, 0 }, /* SMC1 RXD */
|
||||
/* PD7 */ { 0, 0, 0, 0, 0, 0 }, /* PD7 */
|
||||
/* PD6 */ { 0, 0, 0, 0, 0, 0 }, /* PD6 */
|
||||
/* PD5 */ { 0, 0, 0, 0, 0, 0 }, /* PD5 */
|
||||
/* PD4 */ { 0, 0, 0, 0, 0, 0 }, /* PD4 */
|
||||
/* PD3 */ { 0, 0, 0, 0, 0, 0 }, /* PD3 */
|
||||
/* PD2 */ { 0, 0, 0, 0, 0, 0 }, /* PD2 */
|
||||
/* PD1 */ { 0, 0, 0, 0, 0, 0 }, /* PD1 */
|
||||
/* PD0 */ { 0, 0, 0, 0, 0, 0 } /* PD0 */
|
||||
}
|
||||
};
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/* Check Board Identity:
|
||||
*/
|
||||
int checkboard (void)
|
||||
{
|
||||
printf ("Board: CPU87 (Rev %02x)\n", CPU86_REV);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/* Try SDRAM initialization with P/LSDMR=sdmr and ORx=orx
|
||||
*
|
||||
* This routine performs standard 8260 initialization sequence
|
||||
* and calculates the available memory size. It may be called
|
||||
* several times to try different SDRAM configurations on both
|
||||
* 60x and local buses.
|
||||
*/
|
||||
static long int try_init (volatile memctl8260_t * memctl, ulong sdmr,
|
||||
ulong orx, volatile uchar * base)
|
||||
{
|
||||
volatile uchar c = 0xff;
|
||||
volatile uint *sdmr_ptr;
|
||||
volatile uint *orx_ptr;
|
||||
ulong maxsize, size;
|
||||
int i;
|
||||
|
||||
/* We must be able to test a location outsize the maximum legal size
|
||||
* to find out THAT we are outside; but this address still has to be
|
||||
* mapped by the controller. That means, that the initial mapping has
|
||||
* to be (at least) twice as large as the maximum expected size.
|
||||
*/
|
||||
maxsize = (1 + (~orx | 0x7fff)) / 2;
|
||||
|
||||
/* Since CFG_SDRAM_BASE is always 0 (??), we assume that
|
||||
* we are configuring CS1 if base != 0
|
||||
*/
|
||||
sdmr_ptr = &memctl->memc_psdmr;
|
||||
orx_ptr = &memctl->memc_or2;
|
||||
|
||||
*orx_ptr = orx;
|
||||
|
||||
/*
|
||||
* Quote from 8260 UM (10.4.2 SDRAM Power-On Initialization, 10-35):
|
||||
*
|
||||
* "At system reset, initialization software must set up the
|
||||
* programmable parameters in the memory controller banks registers
|
||||
* (ORx, BRx, P/LSDMR). After all memory parameters are configured,
|
||||
* system software should execute the following initialization sequence
|
||||
* for each SDRAM device.
|
||||
*
|
||||
* 1. Issue a PRECHARGE-ALL-BANKS command
|
||||
* 2. Issue eight CBR REFRESH commands
|
||||
* 3. Issue a MODE-SET command to initialize the mode register
|
||||
*
|
||||
* The initial commands are executed by setting P/LSDMR[OP] and
|
||||
* accessing the SDRAM with a single-byte transaction."
|
||||
*
|
||||
* The appropriate BRx/ORx registers have already been set when we
|
||||
* get here. The SDRAM can be accessed at the address CFG_SDRAM_BASE.
|
||||
*/
|
||||
|
||||
*sdmr_ptr = sdmr | PSDMR_OP_PREA;
|
||||
*base = c;
|
||||
|
||||
*sdmr_ptr = sdmr | PSDMR_OP_CBRR;
|
||||
for (i = 0; i < 8; i++)
|
||||
*base = c;
|
||||
|
||||
*sdmr_ptr = sdmr | PSDMR_OP_MRW;
|
||||
*(base + CFG_MRS_OFFS) = c; /* setting MR on address lines */
|
||||
|
||||
*sdmr_ptr = sdmr | PSDMR_OP_NORM | PSDMR_RFEN;
|
||||
*base = c;
|
||||
|
||||
size = get_ram_size((long *)base, maxsize);
|
||||
|
||||
*orx_ptr = orx | ~(size - 1);
|
||||
|
||||
return (size);
|
||||
}
|
||||
|
||||
long int initdram (int board_type)
|
||||
{
|
||||
volatile immap_t *immap = (immap_t *) CFG_IMMR;
|
||||
volatile memctl8260_t *memctl = &immap->im_memctl;
|
||||
|
||||
#ifndef CFG_RAMBOOT
|
||||
ulong size8, size9;
|
||||
#endif
|
||||
long psize;
|
||||
|
||||
psize = 32 * 1024 * 1024;
|
||||
|
||||
memctl->memc_mptpr = CFG_MPTPR;
|
||||
memctl->memc_psrt = CFG_PSRT;
|
||||
|
||||
#ifndef CFG_RAMBOOT
|
||||
/* 60x SDRAM setup:
|
||||
*/
|
||||
size8 = try_init (memctl, CFG_PSDMR_8COL, CFG_OR2_8COL,
|
||||
(uchar *) CFG_SDRAM_BASE);
|
||||
size9 = try_init (memctl, CFG_PSDMR_9COL, CFG_OR2_9COL,
|
||||
(uchar *) CFG_SDRAM_BASE);
|
||||
|
||||
if (size8 < size9) {
|
||||
psize = size9;
|
||||
printf ("(60x:9COL) ");
|
||||
} else {
|
||||
psize = try_init (memctl, CFG_PSDMR_8COL, CFG_OR2_8COL,
|
||||
(uchar *) CFG_SDRAM_BASE);
|
||||
printf ("(60x:8COL) ");
|
||||
}
|
||||
|
||||
#endif /* CFG_RAMBOOT */
|
||||
|
||||
icache_enable ();
|
||||
|
||||
return (psize);
|
||||
}
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_DOC)
|
||||
extern void doc_probe (ulong physadr);
|
||||
void doc_init (void)
|
||||
{
|
||||
doc_probe (CFG_DOC_BASE);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
struct pci_controller hose;
|
||||
|
||||
extern void pci_mpc8250_init(struct pci_controller *);
|
||||
|
||||
void pci_init_board(void)
|
||||
{
|
||||
pci_mpc8250_init(&hose);
|
||||
}
|
||||
#endif
|
||||
27
board/cpu87/cpu87.h
Normal file
27
board/cpu87/cpu87.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#ifndef __BOARD_CPU87__
|
||||
#define __BOARD_CPU87__
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#define REG8(x) (*(volatile unsigned char *)(x))
|
||||
|
||||
/* CPU86 register definitions */
|
||||
#define CPU86_VME_EAC REG8(CFG_BCRS_BASE + 0x00)
|
||||
#define CPU86_VME_SAC REG8(CFG_BCRS_BASE + 0x01)
|
||||
#define CPU86_VME_MAC REG8(CFG_BCRS_BASE + 0x02)
|
||||
#define CPU86_BCR REG8(CFG_BCRS_BASE + 0x03)
|
||||
#define CPU86_BSR REG8(CFG_BCRS_BASE + 0x04)
|
||||
#define CPU86_WDOG_RPORT REG8(CFG_BCRS_BASE + 0x05)
|
||||
#define CPU86_MBOX_IRQ REG8(CFG_BCRS_BASE + 0x04)
|
||||
#define CPU86_REV REG8(CFG_BCRS_BASE + 0x07)
|
||||
#define CPU86_VME_IRQMASK REG8(CFG_BCRS_BASE + 0x80)
|
||||
#define CPU86_VME_IRQSTATUS REG8(CFG_BCRS_BASE + 0x81)
|
||||
#define CPU86_LOCAL_IRQMASK REG8(CFG_BCRS_BASE + 0x82)
|
||||
#define CPU86_LOCAL_IRQSTATUS REG8(CFG_BCRS_BASE + 0x83)
|
||||
#define CPU86_PMCL_IRQSTATUS REG8(CFG_BCRS_BASE + 0x84)
|
||||
|
||||
/* Board Control Register bits */
|
||||
#define CPU86_BCR_FWPT 0x01
|
||||
#define CPU86_BCR_FWRE 0x02
|
||||
|
||||
#endif /* __BOARD_CPU87__ */
|
||||
624
board/cpu87/flash.c
Normal file
624
board/cpu87/flash.c
Normal file
@@ -0,0 +1,624 @@
|
||||
/*
|
||||
* (C) Copyright 2001-2005
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* Flash Routines for Intel devices
|
||||
*
|
||||
*--------------------------------------------------------------------
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <mpc8xx.h>
|
||||
#include "cpu87.h"
|
||||
|
||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
ulong flash_int_get_size (volatile unsigned long *baseaddr,
|
||||
flash_info_t * info)
|
||||
{
|
||||
short i;
|
||||
unsigned long flashtest_h, flashtest_l;
|
||||
|
||||
info->sector_count = info->size = 0;
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
|
||||
/* Write identify command sequence and test FLASH answer
|
||||
*/
|
||||
baseaddr[0] = 0x00900090;
|
||||
baseaddr[1] = 0x00900090;
|
||||
|
||||
flashtest_h = baseaddr[0]; /* manufacturer ID */
|
||||
flashtest_l = baseaddr[1];
|
||||
|
||||
if (flashtest_h != INTEL_MANUFACT || flashtest_l != INTEL_MANUFACT)
|
||||
return (0); /* no or unknown flash */
|
||||
|
||||
flashtest_h = baseaddr[2]; /* device ID */
|
||||
flashtest_l = baseaddr[3];
|
||||
|
||||
if (flashtest_h != flashtest_l)
|
||||
return (0);
|
||||
|
||||
switch (flashtest_h) {
|
||||
case INTEL_ID_28F160C3B:
|
||||
info->flash_id = FLASH_28F160C3B;
|
||||
info->sector_count = 39;
|
||||
info->size = 0x00800000; /* 4 * 2 MB = 8 MB */
|
||||
break;
|
||||
case INTEL_ID_28F160F3B:
|
||||
info->flash_id = FLASH_28F160F3B;
|
||||
info->sector_count = 39;
|
||||
info->size = 0x00800000; /* 4 * 2 MB = 8 MB */
|
||||
break;
|
||||
case INTEL_ID_28F640C3B:
|
||||
info->flash_id = FLASH_28F640C3B;
|
||||
info->sector_count = 135;
|
||||
info->size = 0x02000000; /* 16 * 2 MB = 32 MB */
|
||||
break;
|
||||
default:
|
||||
return (0); /* no or unknown flash */
|
||||
}
|
||||
|
||||
info->flash_id |= INTEL_MANUFACT << 16; /* set manufacturer offset */
|
||||
|
||||
if (info->flash_id & FLASH_BTYPE) {
|
||||
volatile unsigned long *tmp = baseaddr;
|
||||
|
||||
/* set up sector start adress table (bottom sector type)
|
||||
* AND unlock the sectors (if our chip is 160C3)
|
||||
*/
|
||||
for (i = 0; i < info->sector_count; i++) {
|
||||
if (((info->flash_id & FLASH_TYPEMASK) == FLASH_28F160C3B) ||
|
||||
((info->flash_id & FLASH_TYPEMASK) == FLASH_28F640C3B)) {
|
||||
tmp[0] = 0x00600060;
|
||||
tmp[1] = 0x00600060;
|
||||
tmp[0] = 0x00D000D0;
|
||||
tmp[1] = 0x00D000D0;
|
||||
}
|
||||
info->start[i] = (uint) tmp;
|
||||
tmp += i < 8 ? 0x2000 : 0x10000; /* pointer arith */
|
||||
}
|
||||
}
|
||||
|
||||
memset (info->protect, 0, info->sector_count);
|
||||
|
||||
baseaddr[0] = 0x00FF00FF;
|
||||
baseaddr[1] = 0x00FF00FF;
|
||||
|
||||
return (info->size);
|
||||
}
|
||||
|
||||
static ulong flash_amd_get_size (vu_char *addr, flash_info_t *info)
|
||||
{
|
||||
short i;
|
||||
uchar vendor, devid;
|
||||
ulong base = (ulong)addr;
|
||||
|
||||
/* Write auto select command: read Manufacturer ID */
|
||||
addr[0x0555] = 0xAA;
|
||||
addr[0x02AA] = 0x55;
|
||||
addr[0x0555] = 0x90;
|
||||
|
||||
udelay(1000);
|
||||
|
||||
vendor = addr[0];
|
||||
devid = addr[1] & 0xff;
|
||||
|
||||
/* only support AMD */
|
||||
if (vendor != 0x01) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
vendor &= 0xf;
|
||||
devid &= 0xff;
|
||||
|
||||
if (devid == AMD_ID_F040B) {
|
||||
info->flash_id = vendor << 16 | devid;
|
||||
info->sector_count = 8;
|
||||
info->size = info->sector_count * 0x10000;
|
||||
}
|
||||
else if (devid == AMD_ID_F080B) {
|
||||
info->flash_id = vendor << 16 | devid;
|
||||
info->sector_count = 16;
|
||||
info->size = 4 * info->sector_count * 0x10000;
|
||||
}
|
||||
else if (devid == AMD_ID_F016D) {
|
||||
info->flash_id = vendor << 16 | devid;
|
||||
info->sector_count = 32;
|
||||
info->size = 4 * info->sector_count * 0x10000;
|
||||
}
|
||||
else {
|
||||
printf ("## Unknown Flash Type: %02x\n", devid);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* check for protected sectors */
|
||||
for (i = 0; i < info->sector_count; i++) {
|
||||
/* sector base address */
|
||||
info->start[i] = base + i * (info->size / info->sector_count);
|
||||
/* read sector protection at sector address, (A7 .. A0) = 0x02 */
|
||||
/* D0 = 1 if protected */
|
||||
addr = (volatile unsigned char *)(info->start[i]);
|
||||
info->protect[i] = addr[2] & 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Prevent writes to uninitialized FLASH.
|
||||
*/
|
||||
if (info->flash_id != FLASH_UNKNOWN) {
|
||||
addr = (vu_char *)info->start[0];
|
||||
addr[0] = 0xF0; /* reset bank */
|
||||
}
|
||||
|
||||
return (info->size);
|
||||
}
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
unsigned long flash_init (void)
|
||||
{
|
||||
unsigned long size_b0 = 0;
|
||||
unsigned long size_b1 = 0;
|
||||
int i;
|
||||
|
||||
/* Init: no FLASHes known
|
||||
*/
|
||||
for (i = 0; i < CFG_MAX_FLASH_BANKS; ++i) {
|
||||
flash_info[i].flash_id = FLASH_UNKNOWN;
|
||||
}
|
||||
|
||||
/* Disable flash protection */
|
||||
CPU86_BCR |= (CPU86_BCR_FWPT | CPU86_BCR_FWRE);
|
||||
|
||||
/* Static FLASH Bank configuration here (only one bank) */
|
||||
|
||||
size_b0 = flash_int_get_size ((ulong *) CFG_FLASH_BASE, &flash_info[0]);
|
||||
size_b1 = flash_amd_get_size ((uchar *) CFG_BOOTROM_BASE, &flash_info[1]);
|
||||
|
||||
if (size_b0 > 0 || size_b1 > 0) {
|
||||
|
||||
printf("(");
|
||||
|
||||
if (size_b0 > 0) {
|
||||
puts ("Bank#1 - ");
|
||||
print_size (size_b0, (size_b1 > 0) ? ", " : ") ");
|
||||
}
|
||||
|
||||
if (size_b1 > 0) {
|
||||
puts ("Bank#2 - ");
|
||||
print_size (size_b1, ") ");
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf ("## No FLASH found.\n");
|
||||
return 0;
|
||||
}
|
||||
/* protect monitor and environment sectors
|
||||
*/
|
||||
|
||||
#if CFG_MONITOR_BASE >= CFG_BOOTROM_BASE
|
||||
if (size_b1) {
|
||||
/* If U-Boot is booted from ROM the CFG_MONITOR_BASE > CFG_FLASH_BASE
|
||||
* but we shouldn't protect it.
|
||||
*/
|
||||
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_MONITOR_BASE,
|
||||
CFG_MONITOR_BASE + monitor_flash_len - 1, &flash_info[1]
|
||||
);
|
||||
}
|
||||
#else
|
||||
#if CFG_MONITOR_BASE >= CFG_FLASH_BASE
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_MONITOR_BASE,
|
||||
CFG_MONITOR_BASE + monitor_flash_len - 1, &flash_info[0]
|
||||
);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (CFG_ENV_IS_IN_FLASH == 1) && defined(CFG_ENV_ADDR)
|
||||
# ifndef CFG_ENV_SIZE
|
||||
# define CFG_ENV_SIZE CFG_ENV_SECT_SIZE
|
||||
# endif
|
||||
# if CFG_ENV_ADDR >= CFG_BOOTROM_BASE
|
||||
if (size_b1) {
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_ENV_ADDR,
|
||||
CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[1]);
|
||||
}
|
||||
# else
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_ENV_ADDR,
|
||||
CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
return (size_b0 + size_b1);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
void flash_print_info (flash_info_t * info)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
printf ("missing or unknown FLASH type\n");
|
||||
return;
|
||||
}
|
||||
|
||||
switch ((info->flash_id >> 16) & 0xff) {
|
||||
case 0x89:
|
||||
printf ("INTEL ");
|
||||
break;
|
||||
case 0x1:
|
||||
printf ("AMD ");
|
||||
break;
|
||||
default:
|
||||
printf ("Unknown Vendor ");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (info->flash_id & FLASH_TYPEMASK) {
|
||||
case FLASH_28F160C3B:
|
||||
printf ("28F160C3B (16 Mbit, bottom sector)\n");
|
||||
break;
|
||||
case FLASH_28F160F3B:
|
||||
printf ("28F160F3B (16 Mbit, bottom sector)\n");
|
||||
break;
|
||||
case FLASH_28F640C3B:
|
||||
printf ("28F640C3B (64 M, bottom sector)\n");
|
||||
break;
|
||||
case AMD_ID_F040B:
|
||||
printf ("AM29F040B (4 Mbit)\n");
|
||||
break;
|
||||
default:
|
||||
printf ("Unknown Chip Type\n");
|
||||
break;
|
||||
}
|
||||
|
||||
if (info->size < 0x100000)
|
||||
printf (" Size: %ld KB in %d Sectors\n",
|
||||
info->size >> 10, info->sector_count);
|
||||
else
|
||||
printf (" Size: %ld MB in %d Sectors\n",
|
||||
info->size >> 20, info->sector_count);
|
||||
|
||||
printf (" Sector Start Addresses:");
|
||||
for (i = 0; i < info->sector_count; ++i) {
|
||||
if ((i % 5) == 0)
|
||||
printf ("\n ");
|
||||
printf (" %08lX%s",
|
||||
info->start[i],
|
||||
info->protect[i] ? " (RO)" : " "
|
||||
);
|
||||
}
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||
{
|
||||
vu_char *addr = (vu_char *)(info->start[0]);
|
||||
int flag, prot, sect, l_sect;
|
||||
ulong start, now, last;
|
||||
|
||||
if ((s_first < 0) || (s_first > s_last)) {
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
printf ("- missing\n");
|
||||
} else {
|
||||
printf ("- no sectors to erase\n");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
prot = 0;
|
||||
for (sect = s_first; sect <= s_last; sect++) {
|
||||
if (info->protect[sect])
|
||||
prot++;
|
||||
}
|
||||
|
||||
if (prot) {
|
||||
printf ("- Warning: %d protected sectors will not be erased!\n",
|
||||
prot);
|
||||
} else {
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
/* Check the type of erased flash
|
||||
*/
|
||||
if (info->flash_id >> 16 == 0x1) {
|
||||
/* Erase AMD flash
|
||||
*/
|
||||
l_sect = -1;
|
||||
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts();
|
||||
|
||||
addr[0x0555] = 0xAA;
|
||||
addr[0x02AA] = 0x55;
|
||||
addr[0x0555] = 0x80;
|
||||
addr[0x0555] = 0xAA;
|
||||
addr[0x02AA] = 0x55;
|
||||
|
||||
/* wait at least 80us - let's wait 1 ms */
|
||||
udelay (1000);
|
||||
|
||||
/* Start erase on unprotected sectors */
|
||||
for (sect = s_first; sect<=s_last; sect++) {
|
||||
if (info->protect[sect] == 0) { /* not protected */
|
||||
addr = (vu_char *)(info->start[sect]);
|
||||
addr[0] = 0x30;
|
||||
l_sect = sect;
|
||||
}
|
||||
}
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
/* wait at least 80us - let's wait 1 ms */
|
||||
udelay (1000);
|
||||
|
||||
/*
|
||||
* We wait for the last triggered sector
|
||||
*/
|
||||
if (l_sect < 0)
|
||||
goto AMD_DONE;
|
||||
|
||||
start = get_timer (0);
|
||||
last = start;
|
||||
addr = (vu_char *)(info->start[l_sect]);
|
||||
while ((addr[0] & 0x80) != 0x80) {
|
||||
if ((now = get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
|
||||
printf ("Timeout\n");
|
||||
return 1;
|
||||
}
|
||||
/* show that we're waiting */
|
||||
if ((now - last) > 1000) { /* every second */
|
||||
serial_putc ('.');
|
||||
last = now;
|
||||
}
|
||||
}
|
||||
|
||||
AMD_DONE:
|
||||
/* reset to read mode */
|
||||
addr = (volatile unsigned char *)info->start[0];
|
||||
addr[0] = 0xF0; /* reset bank */
|
||||
|
||||
} else {
|
||||
/* Erase Intel flash
|
||||
*/
|
||||
|
||||
/* Start erase on unprotected sectors
|
||||
*/
|
||||
for (sect = s_first; sect <= s_last; sect++) {
|
||||
volatile ulong *addr =
|
||||
(volatile unsigned long *) info->start[sect];
|
||||
|
||||
start = get_timer (0);
|
||||
last = start;
|
||||
if (info->protect[sect] == 0) {
|
||||
/* Disable interrupts which might cause a timeout here
|
||||
*/
|
||||
flag = disable_interrupts ();
|
||||
|
||||
/* Erase the block
|
||||
*/
|
||||
addr[0] = 0x00200020;
|
||||
addr[1] = 0x00200020;
|
||||
addr[0] = 0x00D000D0;
|
||||
addr[1] = 0x00D000D0;
|
||||
|
||||
/* re-enable interrupts if necessary
|
||||
*/
|
||||
if (flag)
|
||||
enable_interrupts ();
|
||||
|
||||
/* wait at least 80us - let's wait 1 ms
|
||||
*/
|
||||
udelay (1000);
|
||||
|
||||
last = start;
|
||||
while ((addr[0] & 0x00800080) != 0x00800080 ||
|
||||
(addr[1] & 0x00800080) != 0x00800080) {
|
||||
if ((now = get_timer (start)) > CFG_FLASH_ERASE_TOUT) {
|
||||
printf ("Timeout (erase suspended!)\n");
|
||||
/* Suspend erase
|
||||
*/
|
||||
addr[0] = 0x00B000B0;
|
||||
addr[1] = 0x00B000B0;
|
||||
goto DONE;
|
||||
}
|
||||
/* show that we're waiting
|
||||
*/
|
||||
if ((now - last) > 1000) { /* every second */
|
||||
serial_putc ('.');
|
||||
last = now;
|
||||
}
|
||||
}
|
||||
if (addr[0] & 0x00220022 || addr[1] & 0x00220022) {
|
||||
printf ("*** ERROR: erase failed!\n");
|
||||
goto DONE;
|
||||
}
|
||||
}
|
||||
/* Clear status register and reset to read mode
|
||||
*/
|
||||
addr[0] = 0x00500050;
|
||||
addr[1] = 0x00500050;
|
||||
addr[0] = 0x00FF00FF;
|
||||
addr[1] = 0x00FF00FF;
|
||||
}
|
||||
}
|
||||
|
||||
printf (" done\n");
|
||||
|
||||
DONE:
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int write_word (flash_info_t *, volatile unsigned long *, ulong);
|
||||
static int write_byte (flash_info_t *info, ulong dest, uchar data);
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Copy memory to flash, returns:
|
||||
* 0 - OK
|
||||
* 1 - write timeout
|
||||
* 2 - Flash not erased
|
||||
*/
|
||||
int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||
{
|
||||
ulong v;
|
||||
int i, l, rc, cc = cnt, res = 0;
|
||||
|
||||
if (info->flash_id >> 16 == 0x1) {
|
||||
|
||||
/* Write to AMD 8-bit flash
|
||||
*/
|
||||
while (cnt > 0) {
|
||||
if ((rc = write_byte(info, addr, *src)) != 0) {
|
||||
return (rc);
|
||||
}
|
||||
addr++;
|
||||
src++;
|
||||
cnt--;
|
||||
}
|
||||
|
||||
return (0);
|
||||
} else {
|
||||
|
||||
/* Write to Intel 64-bit flash
|
||||
*/
|
||||
for (v=0; cc > 0; addr += 4, cc -= 4 - l) {
|
||||
l = (addr & 3);
|
||||
addr &= ~3;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
v = (v << 8) + (i < l || i - l >= cc ?
|
||||
*((unsigned char *) addr + i) : *src++);
|
||||
}
|
||||
|
||||
if ((res = write_word (info, (volatile unsigned long *) addr, v)) != 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return (res);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Write a word to Flash, returns:
|
||||
* 0 - OK
|
||||
* 1 - write timeout
|
||||
* 2 - Flash not erased
|
||||
*/
|
||||
static int write_word (flash_info_t * info, volatile unsigned long *addr,
|
||||
ulong data)
|
||||
{
|
||||
int flag, res = 0;
|
||||
ulong start;
|
||||
|
||||
/* Check if Flash is (sufficiently) erased
|
||||
*/
|
||||
if ((*addr & data) != data)
|
||||
return (2);
|
||||
|
||||
/* Disable interrupts which might cause a timeout here
|
||||
*/
|
||||
flag = disable_interrupts ();
|
||||
|
||||
*addr = 0x00400040;
|
||||
*addr = data;
|
||||
|
||||
/* re-enable interrupts if necessary
|
||||
*/
|
||||
if (flag)
|
||||
enable_interrupts ();
|
||||
|
||||
start = get_timer (0);
|
||||
while ((*addr & 0x00800080) != 0x00800080) {
|
||||
if (get_timer (start) > CFG_FLASH_WRITE_TOUT) {
|
||||
/* Suspend program
|
||||
*/
|
||||
*addr = 0x00B000B0;
|
||||
res = 1;
|
||||
goto OUT;
|
||||
}
|
||||
}
|
||||
|
||||
if (*addr & 0x00220022) {
|
||||
printf ("*** ERROR: program failed!\n");
|
||||
res = 1;
|
||||
}
|
||||
|
||||
OUT:
|
||||
/* Clear status register and reset to read mode
|
||||
*/
|
||||
*addr = 0x00500050;
|
||||
*addr = 0x00FF00FF;
|
||||
|
||||
return (res);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Write a byte to Flash, returns:
|
||||
* 0 - OK
|
||||
* 1 - write timeout
|
||||
* 2 - Flash not erased
|
||||
*/
|
||||
static int write_byte (flash_info_t *info, ulong dest, uchar data)
|
||||
{
|
||||
vu_char *addr = (vu_char *)(info->start[0]);
|
||||
ulong start;
|
||||
int flag;
|
||||
|
||||
/* Check if Flash is (sufficiently) erased */
|
||||
if ((*((vu_char *)dest) & data) != data) {
|
||||
return (2);
|
||||
}
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts();
|
||||
|
||||
addr[0x0555] = 0xAA;
|
||||
addr[0x02AA] = 0x55;
|
||||
addr[0x0555] = 0xA0;
|
||||
|
||||
*((vu_char *)dest) = data;
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
/* data polling for D7 */
|
||||
start = get_timer (0);
|
||||
while ((*((vu_char *)dest) & 0x80) != (data & 0x80)) {
|
||||
if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
123
board/cpu87/u-boot.lds
Normal file
123
board/cpu87/u-boot.lds
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* (C) Copyright 2001-2005
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
OUTPUT_ARCH(powerpc)
|
||||
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = + SIZEOF_HEADERS;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.rel.text : { *(.rel.text) }
|
||||
.rela.text : { *(.rela.text) }
|
||||
.rel.data : { *(.rel.data) }
|
||||
.rela.data : { *(.rela.data) }
|
||||
.rel.rodata : { *(.rel.rodata) }
|
||||
.rela.rodata : { *(.rela.rodata) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.bss : { *(.rel.bss) }
|
||||
.rela.bss : { *(.rela.bss) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.init : { *(.init) }
|
||||
.plt : { *(.plt) }
|
||||
.text :
|
||||
{
|
||||
cpu/mpc8260/start.o (.text)
|
||||
*(.text)
|
||||
common/environment.o(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
. = ALIGN(16);
|
||||
*(.rodata)
|
||||
*(.rodata1)
|
||||
*(.rodata.str1.4)
|
||||
}
|
||||
.fini : { *(.fini) } =0
|
||||
.ctors : { *(.ctors) }
|
||||
.dtors : { *(.dtors) }
|
||||
|
||||
/* Read-write section, merged into data segment: */
|
||||
. = (. + 0x0FFF) & 0xFFFFF000;
|
||||
_erotext = .;
|
||||
PROVIDE (erotext = .);
|
||||
.reloc :
|
||||
{
|
||||
*(.got)
|
||||
_GOT2_TABLE_ = .;
|
||||
*(.got2)
|
||||
_FIXUP_TABLE_ = .;
|
||||
*(.fixup)
|
||||
}
|
||||
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
|
||||
__fixup_entries = (. - _FIXUP_TABLE_) >> 2;
|
||||
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.data1)
|
||||
*(.sdata)
|
||||
*(.sdata2)
|
||||
*(.dynamic)
|
||||
CONSTRUCTORS
|
||||
}
|
||||
_edata = .;
|
||||
PROVIDE (edata = .);
|
||||
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
|
||||
|
||||
__start___ex_table = .;
|
||||
__ex_table : { *(__ex_table) }
|
||||
__stop___ex_table = .;
|
||||
|
||||
. = ALIGN(4096);
|
||||
__init_begin = .;
|
||||
.text.init : { *(.text.init) }
|
||||
.data.init : { *(.data.init) }
|
||||
. = ALIGN(4096);
|
||||
__init_end = .;
|
||||
|
||||
__bss_start = .;
|
||||
.bss :
|
||||
{
|
||||
*(.sbss) *(.scommon)
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := cradle.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -43,8 +43,8 @@ DRAM_SIZE: .long CFG_DRAM_SIZE
|
||||
.endm
|
||||
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
mov r10, lr
|
||||
|
||||
@@ -512,4 +512,4 @@ mem_init:
|
||||
|
||||
mov pc, r10
|
||||
|
||||
@ End memsetup
|
||||
@ End lowlevel_init
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := csb226.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* NOTE: I haven't clean this up considerably, just enough to get it
|
||||
* running. See hal_platform_setup.h for the source. See
|
||||
* board/cradle/memsetup.S for another PXA250 setup that is
|
||||
* board/cradle/lowlevel_init.S for another PXA250 setup that is
|
||||
* much cleaner.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
@@ -46,8 +46,8 @@ _TEXT_BASE:
|
||||
* Memory setup
|
||||
*/
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
mov r10, lr
|
||||
|
||||
@@ -429,9 +429,9 @@ initclks:
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------- */
|
||||
/* End memsetup */
|
||||
/* End lowlevel_init */
|
||||
/* ---------------------------------------------------------------- */
|
||||
|
||||
endmemsetup:
|
||||
endlowlevel_init:
|
||||
|
||||
mov pc, lr
|
||||
@@ -129,7 +129,7 @@ ext_bus_cntlr_init:
|
||||
*******************************************************************/
|
||||
/*WDCR_EBC(pb3ap, 0x07869200)*/
|
||||
WDCR_EBC(pb3ap, 0x04055200)
|
||||
WDCR_EBC(pb3cr, 0xff01c000)
|
||||
WDCR_EBC(pb3cr, 0xf081c000)
|
||||
/********************************************************************
|
||||
* Memory Bank 1,2,4-7 (Unused) initialization
|
||||
*******************************************************************/
|
||||
|
||||
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := B2.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -149,8 +149,8 @@ MEMORY_CONFIG:
|
||||
.word 0x20 /*MRSR7*/
|
||||
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
/*
|
||||
the next instruction fail due memory relocation...
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS = $(BOARD).o flash.o
|
||||
SOBJS = memsetup.o
|
||||
SOBJS = lowlevel_init.o
|
||||
|
||||
$(LIB): .depend $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -30,7 +30,7 @@ long int initdram(int board_type)
|
||||
{
|
||||
/* Sdram is setup by assembler code */
|
||||
/* If memory could be changed, we should return the true value here */
|
||||
return 64*1024*1024;
|
||||
return MEM_SIZE*1024*1024;
|
||||
}
|
||||
|
||||
#define BCSR_PCMCIA_PC0DRVEN 0x0010
|
||||
@@ -41,9 +41,11 @@ void write_one_tlb( int index, u32 pagemask, u32 hi, u32 low0, u32 low1 );
|
||||
|
||||
int checkboard (void)
|
||||
{
|
||||
#ifdef CONFIG_IDE_PCMCIA
|
||||
u16 status;
|
||||
volatile u32 *pcmcia_bcsr = (u32*)(DB1000_BCSR_ADDR+0x10);
|
||||
volatile u32 *phy = (u32*)(DB1000_BCSR_ADDR+0xC);
|
||||
volatile u32 *pcmcia_bcsr = (u32*)(DB1XX0_BCSR_ADDR+0x10);
|
||||
#endif /* CONFIG_IDE_PCMCIA */
|
||||
volatile u32 *phy = (u32*)(DB1XX0_BCSR_ADDR+0xC);
|
||||
volatile u32 *sys_counter = (volatile u32*)SYS_COUNTER_CNTRL;
|
||||
u32 proc_id;
|
||||
|
||||
@@ -67,6 +69,11 @@ int checkboard (void)
|
||||
printf ("CPU: Au1100, id: 0x%02x, rev: 0x%02x\n",
|
||||
(proc_id >> 8) & 0xFF, proc_id & 0xFF);
|
||||
break;
|
||||
case 3:
|
||||
puts ("Board: DbAu1550\n");
|
||||
printf ("CPU: Au1550, id: 0x%02x, rev: 0x%02x\n",
|
||||
(proc_id >> 8) & 0xFF, proc_id & 0xFF);
|
||||
break;
|
||||
default:
|
||||
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
||||
}
|
||||
|
||||
@@ -9,20 +9,34 @@
|
||||
#define AU1500_SYS_ADDR 0xB1900000
|
||||
#define sys_endian 0x0038
|
||||
#define CP0_Config0 $16
|
||||
#define MEM_1MS ((396000000/1000000) * 1000)
|
||||
#define CPU_SCALE ((CFG_MHZ) / 12) /* CPU clock is a multiple of 12 MHz */
|
||||
#define MEM_1MS ((CFG_MHZ) * 1000)
|
||||
|
||||
.text
|
||||
.set noreorder
|
||||
.set mips32
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
/*
|
||||
* Step 1) Establish CPU endian mode.
|
||||
* Db1500-specific:
|
||||
* Switch S1.1 Off(bit7 reads 1) is Little Endian
|
||||
* Switch S1.1 On (bit7 reads 0) is Big Endian
|
||||
*/
|
||||
#ifdef CONFIG_DBAU1550
|
||||
li t0, MEM_STCFG2
|
||||
li t1, 0x00000040
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_STTIME2
|
||||
li t1, 0x22080a20
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_STADDR2
|
||||
li t1, 0x10c03f00
|
||||
sw t1, 0(t0)
|
||||
#else
|
||||
li t0, MEM_STCFG1
|
||||
li t1, 0x00000080
|
||||
sw t1, 0(t0)
|
||||
@@ -34,9 +48,10 @@ memsetup:
|
||||
li t0, MEM_STADDR1
|
||||
li t1, 0x10c03f00
|
||||
sw t1, 0(t0)
|
||||
#endif
|
||||
|
||||
li t0, 0xAE000008
|
||||
lw t1,0(t0)
|
||||
li t0, DB1XX0_BCSR_ADDR
|
||||
lw t1,8(t0)
|
||||
andi t1,t1,0x80
|
||||
beq zero,t1,big_endian
|
||||
nop
|
||||
@@ -98,10 +113,82 @@ big_endian:
|
||||
mtc0 zero, CP0_WIRED
|
||||
nop
|
||||
|
||||
#ifdef CONFIG_DBAU1550
|
||||
/* No workaround if running from ram */
|
||||
lui t0, 0xffc0
|
||||
lui t3, 0xbfc0
|
||||
and t1, ra, t0
|
||||
bne t1, t3, noCacheJump
|
||||
nop
|
||||
|
||||
/*** From AMD YAMON ***/
|
||||
/*
|
||||
* Step 8) Initialize the caches
|
||||
*/
|
||||
li t0, (16*1024)
|
||||
li t1, 32
|
||||
li t2, 0x80000000
|
||||
addu t3, t0, t2
|
||||
cacheloop:
|
||||
cache 0, 0(t2)
|
||||
cache 1, 0(t2)
|
||||
addu t2, t1
|
||||
bne t2, t3, cacheloop
|
||||
nop
|
||||
|
||||
/* Save return address */
|
||||
move t3, ra
|
||||
|
||||
/* Run from cacheable space now */
|
||||
bal cachehere
|
||||
nop
|
||||
cachehere:
|
||||
li t1, ~0x20000000 /* convert to KSEG0 */
|
||||
and t0, ra, t1
|
||||
addi t0, 5*4 /* 5 insns beyond cachehere */
|
||||
jr t0
|
||||
nop
|
||||
|
||||
/* Restore return address */
|
||||
move ra, t3
|
||||
|
||||
/*
|
||||
* Step 9) Initialize the TLB
|
||||
*/
|
||||
li t0, 0 # index value
|
||||
li t1, 0x00000000 # entryhi value
|
||||
li t2, 32 # 32 entries
|
||||
|
||||
tlbloop:
|
||||
/* Probe TLB for matching EntryHi */
|
||||
mtc0 t1, CP0_ENTRYHI
|
||||
tlbp
|
||||
nop
|
||||
|
||||
/* Examine Index[P], 1=no matching entry */
|
||||
mfc0 t3, CP0_INDEX
|
||||
li t4, 0x80000000
|
||||
and t3, t4, t3
|
||||
addiu t1, t1, 1 # increment t1 (asid)
|
||||
beq zero, t3, tlbloop
|
||||
nop
|
||||
|
||||
/* Initialize the TLB entry */
|
||||
mtc0 t0, CP0_INDEX
|
||||
mtc0 zero, CP0_ENTRYLO0
|
||||
mtc0 zero, CP0_ENTRYLO1
|
||||
mtc0 zero, CP0_PAGEMASK
|
||||
tlbwi
|
||||
|
||||
/* Do it again */
|
||||
addiu t0, t0, 1
|
||||
bne t0, t2, tlbloop
|
||||
nop
|
||||
|
||||
/* First setup pll:s to make serial work ok */
|
||||
/* We have a 12 MHz crystal */
|
||||
li t0, SYS_CPUPLL
|
||||
li t1, 0x21 /* 396 MHz */
|
||||
li t1, CPU_SCALE /* CPU clock */
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
nop
|
||||
@@ -119,19 +206,49 @@ big_endian:
|
||||
sync
|
||||
|
||||
/* Static memory controller */
|
||||
/* RCE0 - can not change while fetching, do so from icache */
|
||||
move t2, ra /* Store return address */
|
||||
bal getAddr
|
||||
nop
|
||||
|
||||
getAddr:
|
||||
move t1, ra
|
||||
move ra, t2 /* Move return addess back */
|
||||
|
||||
cache 0x14,0(t1)
|
||||
cache 0x14,32(t1)
|
||||
/*** /From YAMON ***/
|
||||
|
||||
noCacheJump:
|
||||
#endif /* CONFIG_DBAU1550 */
|
||||
|
||||
#ifdef CONFIG_DBAU1550
|
||||
li t0, MEM_STTIME0
|
||||
li t1, 0x040181D7
|
||||
sw t1, 0(t0)
|
||||
|
||||
/* RCE0 AMD MirrorBit Flash (?) */
|
||||
li t0, MEM_STCFG0
|
||||
li t1, 0x00000003
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_STADDR0
|
||||
li t1, 0x11803E00
|
||||
sw t1, 0(t0)
|
||||
#else /* CONFIG_DBAU1550 */
|
||||
li t0, MEM_STTIME0
|
||||
li t1, 0x00014C0F
|
||||
sw t1, 0(t0)
|
||||
|
||||
/* RCE0 AMD 29LV640M MirrorBit Flash */
|
||||
li t0, MEM_STCFG0
|
||||
li t1, 0x00000013
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_STTIME0
|
||||
li t1, 0x040181D7
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_STADDR0
|
||||
li t1, 0x11E03F80
|
||||
sw t1, 0(t0)
|
||||
#endif /* CONFIG_DBAU1550 */
|
||||
|
||||
/* RCE1 CPLD Board Logic */
|
||||
li t0, MEM_STCFG1
|
||||
@@ -146,7 +263,20 @@ big_endian:
|
||||
li t1, 0x10c03f00
|
||||
sw t1, 0(t0)
|
||||
|
||||
#ifdef CONFIG_DBAU1550
|
||||
/* RCE2 CPLD Board Logic */
|
||||
li t0, MEM_STCFG2
|
||||
li t1, 0x00000040
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_STTIME2
|
||||
li t1, 0x22080a20
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_STADDR2
|
||||
li t1, 0x10c03f00
|
||||
sw t1, 0(t0)
|
||||
#else
|
||||
li t0, MEM_STCFG2
|
||||
li t1, 0x00000000
|
||||
sw t1, 0(t0)
|
||||
@@ -158,6 +288,7 @@ big_endian:
|
||||
li t0, MEM_STADDR2
|
||||
li t1, 0x00000000
|
||||
sw t1, 0(t0)
|
||||
#endif
|
||||
|
||||
/* RCE3 PCMCIA 250ns */
|
||||
li t0, MEM_STCFG3
|
||||
@@ -281,6 +412,99 @@ big_endian:
|
||||
bne t1, zero, 1b
|
||||
nop
|
||||
|
||||
#ifdef CONFIG_DBAU1550
|
||||
/* SDCS 0,1,2 DDR SDRAM */
|
||||
li t0, MEM_SDMODE0
|
||||
li t1, 0x04276221
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_SDMODE1
|
||||
li t1, 0x04276221
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_SDMODE2
|
||||
li t1, 0x04276221
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_SDADDR0
|
||||
li t1, 0xe21003f0
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_SDADDR1
|
||||
li t1, 0xe21043f0
|
||||
sw t1, 0(t0)
|
||||
|
||||
li t0, MEM_SDADDR2
|
||||
li t1, 0xe21083f0
|
||||
sw t1, 0(t0)
|
||||
|
||||
sync
|
||||
|
||||
li t0, MEM_SDCONFIGA
|
||||
li t1, 0x9030060a /* Program refresh - disabled */
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDCONFIGB
|
||||
li t1, 0x00028000
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDPRECMD /* Precharge all */
|
||||
li t1, 0
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDWRMD0
|
||||
li t1, 0x40000000
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDWRMD1
|
||||
li t1, 0x40000000
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDWRMD2
|
||||
li t1, 0x40000000
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDWRMD0
|
||||
li t1, 0x00000063
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDWRMD1
|
||||
li t1, 0x00000063
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDWRMD2
|
||||
li t1, 0x00000063
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDPRECMD /* Precharge all */
|
||||
sw zero, 0(t0)
|
||||
sync
|
||||
|
||||
/* Issue 2 autoref */
|
||||
li t0, MEM_SDAUTOREF
|
||||
sw zero, 0(t0)
|
||||
sync
|
||||
|
||||
li t0, MEM_SDAUTOREF
|
||||
sw zero, 0(t0)
|
||||
sync
|
||||
|
||||
/* Enable refresh */
|
||||
li t0, MEM_SDCONFIGA
|
||||
li t1, 0x9830060a /* Program refresh - enabled */
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
#else /* CONFIG_DBAU1550 */
|
||||
/* SDCS 0,1 SDRAM */
|
||||
li t0, MEM_SDMODE0
|
||||
li t1, 0x005522AA
|
||||
@@ -339,6 +563,7 @@ big_endian:
|
||||
sw t1, 0(t0)
|
||||
sync
|
||||
|
||||
#endif /* CONFIG_DBAU1550 */
|
||||
/* wait 1mS after setup */
|
||||
li t1, MEM_1MS
|
||||
1: add t1, -1
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := dnp1110.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -63,8 +63,8 @@ smcnfg: .long 0x00000000
|
||||
|
||||
/* setting up the memory */
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
ldr r0, MEM_BASE
|
||||
|
||||
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := ep7312.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -45,8 +45,8 @@ sdrfpr_val: .long 0x00000240
|
||||
sdconf_val: .long 0x00000522
|
||||
/* setting up the memory */
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
/*
|
||||
* SYSCON1-3
|
||||
*/
|
||||
@@ -227,6 +227,10 @@ int checkboard (void)
|
||||
major = 1;
|
||||
minor = 1;
|
||||
break;
|
||||
case 0x06:
|
||||
major = 1;
|
||||
minor = 3;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -42,250 +42,265 @@ flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
||||
*/
|
||||
void flash_reset(void)
|
||||
{
|
||||
if( flash_info[0].flash_id != FLASH_UNKNOWN ) {
|
||||
V_ULONG( flash_info[0].start[0] ) = 0x00F000F0;
|
||||
V_ULONG( flash_info[0].start[0] + 4 ) = 0x00F000F0;
|
||||
}
|
||||
if( flash_info[0].flash_id != FLASH_UNKNOWN ) {
|
||||
V_ULONG( flash_info[0].start[0] ) = 0x00F000F0;
|
||||
V_ULONG( flash_info[0].start[0] + 4 ) = 0x00F000F0;
|
||||
}
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
ulong flash_get_size( ulong baseaddr, flash_info_t *info )
|
||||
{
|
||||
short i;
|
||||
unsigned long flashtest_h, flashtest_l;
|
||||
short i;
|
||||
unsigned long flashtest_h, flashtest_l;
|
||||
|
||||
/* Write auto select command sequence and test FLASH answer */
|
||||
V_ULONG(baseaddr + ((ulong)0x0555 << 3)) = 0x00AA00AA;
|
||||
V_ULONG(baseaddr + ((ulong)0x02AA << 3)) = 0x00550055;
|
||||
V_ULONG(baseaddr + ((ulong)0x0555 << 3)) = 0x00900090;
|
||||
V_ULONG(baseaddr + 4 + ((ulong)0x0555 << 3)) = 0x00AA00AA;
|
||||
V_ULONG(baseaddr + 4 + ((ulong)0x02AA << 3)) = 0x00550055;
|
||||
V_ULONG(baseaddr + 4 + ((ulong)0x0555 << 3)) = 0x00900090;
|
||||
/* Write auto select command sequence and test FLASH answer */
|
||||
V_ULONG(baseaddr + ((ulong)0x0555 << 3)) = 0x00AA00AA;
|
||||
V_ULONG(baseaddr + ((ulong)0x02AA << 3)) = 0x00550055;
|
||||
V_ULONG(baseaddr + ((ulong)0x0555 << 3)) = 0x00900090;
|
||||
V_ULONG(baseaddr + 4 + ((ulong)0x0555 << 3)) = 0x00AA00AA;
|
||||
V_ULONG(baseaddr + 4 + ((ulong)0x02AA << 3)) = 0x00550055;
|
||||
V_ULONG(baseaddr + 4 + ((ulong)0x0555 << 3)) = 0x00900090;
|
||||
|
||||
flashtest_h = V_ULONG(baseaddr); /* manufacturer ID */
|
||||
flashtest_l = V_ULONG(baseaddr + 4);
|
||||
flashtest_h = V_ULONG(baseaddr); /* manufacturer ID */
|
||||
flashtest_l = V_ULONG(baseaddr + 4);
|
||||
|
||||
if ((int)flashtest_h == AMD_MANUFACT) {
|
||||
info->flash_id = FLASH_MAN_AMD;
|
||||
} else {
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
info->sector_count = 0;
|
||||
info->size = 0;
|
||||
return (0); /* no or unknown flash */
|
||||
}
|
||||
if ((int)flashtest_h == AMD_MANUFACT) {
|
||||
info->flash_id = FLASH_MAN_AMD;
|
||||
} else {
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
info->sector_count = 0;
|
||||
info->size = 0;
|
||||
return (0); /* no or unknown flash */
|
||||
}
|
||||
|
||||
flashtest_h = V_ULONG(baseaddr + 8); /* device ID */
|
||||
flashtest_l = V_ULONG(baseaddr + 12);
|
||||
if (flashtest_h != flashtest_l) {
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
return(0);
|
||||
}
|
||||
if (flashtest_h == AMD_ID_DL323B) {
|
||||
info->flash_id += FLASH_AMDL323B;
|
||||
info->sector_count = 71;
|
||||
info->size = 0x01000000; /* 4 * 4 MB = 16 MB */
|
||||
} else {
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
return(0); /* no or unknown flash */
|
||||
}
|
||||
flashtest_h = V_ULONG(baseaddr + 8); /* device ID */
|
||||
flashtest_l = V_ULONG(baseaddr + 12);
|
||||
if (flashtest_h != flashtest_l) {
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
return(0);
|
||||
}
|
||||
|
||||
/* set up sector start adress table (bottom sector type) */
|
||||
for (i = 0; i < 8; i++) {
|
||||
info->start[i] = baseaddr + (i * 0x00008000);
|
||||
}
|
||||
for (i = 8; i < info->sector_count; i++) {
|
||||
info->start[i] = baseaddr + (i * 0x00040000) - 0x001C0000;
|
||||
}
|
||||
switch((int)flashtest_h) {
|
||||
case AMD_ID_DL323B:
|
||||
info->flash_id += FLASH_AMDL323B;
|
||||
info->sector_count = 71;
|
||||
info->size = 0x01000000; /* 4 * 4 MB = 16 MB */
|
||||
break;
|
||||
case AMD_ID_LV640U: /* AMDLV640 and AMDLV641 have same ID */
|
||||
info->flash_id += FLASH_AMLV640U;
|
||||
info->sector_count = 128;
|
||||
info->size = 0x02000000; /* 4 * 8 MB = 32 MB */
|
||||
break;
|
||||
default:
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
return(0); /* no or unknown flash */
|
||||
}
|
||||
|
||||
/* check for protected sectors */
|
||||
for (i = 0; i < info->sector_count; i++) {
|
||||
/* read sector protection at sector address, (A7 .. A0) = 0x02 */
|
||||
if ((V_ULONG( info->start[i] + 16 ) & 0x00010001) ||
|
||||
(V_ULONG( info->start[i] + 20 ) & 0x00010001)) {
|
||||
info->protect[i] = 1; /* D0 = 1 if protected */
|
||||
} else {
|
||||
info->protect[i] = 0;
|
||||
}
|
||||
}
|
||||
if(flashtest_h == AMD_ID_LV640U) {
|
||||
/* set up sector start adress table (uniform sector type) */
|
||||
for (i = 0; i < info->sector_count; i++)
|
||||
info->start[i] = baseaddr + (i * 0x00040000);
|
||||
} else {
|
||||
/* set up sector start adress table (bottom sector type) */
|
||||
for (i = 0; i < 8; i++) {
|
||||
info->start[i] = baseaddr + (i * 0x00008000);
|
||||
}
|
||||
for (i = 8; i < info->sector_count; i++) {
|
||||
info->start[i] = baseaddr + (i * 0x00040000) - 0x001C0000;
|
||||
}
|
||||
}
|
||||
/* check for protected sectors */
|
||||
for (i = 0; i < info->sector_count; i++) {
|
||||
/* read sector protection at sector address, (A7 .. A0) = 0x02 */
|
||||
if ((V_ULONG( info->start[i] + 16 ) & 0x00010001) ||
|
||||
(V_ULONG( info->start[i] + 20 ) & 0x00010001)) {
|
||||
info->protect[i] = 1; /* D0 = 1 if protected */
|
||||
} else {
|
||||
info->protect[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
flash_reset();
|
||||
return(info->size);
|
||||
flash_reset();
|
||||
return(info->size);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
unsigned long flash_init (void)
|
||||
{
|
||||
unsigned long size_b0 = 0;
|
||||
int i;
|
||||
unsigned long size_b0 = 0;
|
||||
int i;
|
||||
|
||||
/* Init: no FLASHes known */
|
||||
for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
|
||||
flash_info[i].flash_id = FLASH_UNKNOWN;
|
||||
}
|
||||
/* Init: no FLASHes known */
|
||||
for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
|
||||
flash_info[i].flash_id = FLASH_UNKNOWN;
|
||||
}
|
||||
|
||||
/* Static FLASH Bank configuration here (only one bank) */
|
||||
/* Static FLASH Bank configuration here (only one bank) */
|
||||
|
||||
size_b0 = flash_get_size(CFG_FLASH0_BASE, &flash_info[0]);
|
||||
if (flash_info[0].flash_id == FLASH_UNKNOWN || size_b0 == 0) {
|
||||
printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
|
||||
size_b0, size_b0>>20);
|
||||
}
|
||||
size_b0 = flash_get_size(CFG_FLASH0_BASE, &flash_info[0]);
|
||||
if (flash_info[0].flash_id == FLASH_UNKNOWN || size_b0 == 0) {
|
||||
printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
|
||||
size_b0, size_b0>>20);
|
||||
}
|
||||
|
||||
/*
|
||||
* protect monitor and environment sectors
|
||||
*/
|
||||
/*
|
||||
* protect monitor and environment sectors
|
||||
*/
|
||||
|
||||
#if CFG_MONITOR_BASE >= CFG_FLASH0_BASE
|
||||
flash_protect(FLAG_PROTECT_SET,
|
||||
CFG_MONITOR_BASE,
|
||||
CFG_MONITOR_BASE+monitor_flash_len-1,
|
||||
&flash_info[0]);
|
||||
flash_protect(FLAG_PROTECT_SET,
|
||||
CFG_MONITOR_BASE,
|
||||
CFG_MONITOR_BASE+monitor_flash_len-1,
|
||||
&flash_info[0]);
|
||||
#endif
|
||||
|
||||
#if (CFG_ENV_IS_IN_FLASH == 1) && defined(CFG_ENV_ADDR)
|
||||
# ifndef CFG_ENV_SIZE
|
||||
# define CFG_ENV_SIZE CFG_ENV_SECT_SIZE
|
||||
# endif
|
||||
flash_protect(FLAG_PROTECT_SET,
|
||||
CFG_ENV_ADDR,
|
||||
CFG_ENV_ADDR + CFG_ENV_SIZE - 1,
|
||||
&flash_info[0]);
|
||||
flash_protect(FLAG_PROTECT_SET,
|
||||
CFG_ENV_ADDR,
|
||||
CFG_ENV_ADDR + CFG_ENV_SIZE - 1,
|
||||
&flash_info[0]);
|
||||
#endif
|
||||
|
||||
return (size_b0);
|
||||
return (size_b0);
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
void flash_print_info (flash_info_t *info)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
printf ("missing or unknown FLASH type\n");
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
printf ("missing or unknown FLASH type\n");
|
||||
return;
|
||||
}
|
||||
|
||||
switch ((info->flash_id >> 16) & 0xff) {
|
||||
case FLASH_MAN_AMD: printf ("AMD "); break;
|
||||
default: printf ("Unknown Vendor "); break;
|
||||
}
|
||||
|
||||
switch (info->flash_id & FLASH_TYPEMASK) {
|
||||
case FLASH_AMDL323B: printf ("29DL323B (32 M, bottom sector)\n");
|
||||
break;
|
||||
case FLASH_AMLV640U: printf ("29LV640U (64 M, uniform sector)\n");
|
||||
break;
|
||||
default: printf ("Unknown Chip Type\n");
|
||||
break;
|
||||
}
|
||||
|
||||
printf (" Size: %ld MB in %d Sectors\n",
|
||||
info->size >> 20, info->sector_count);
|
||||
|
||||
printf (" Sector Start Addresses:");
|
||||
for (i=0; i<info->sector_count; ++i) {
|
||||
if ((i % 5) == 0)
|
||||
printf ("\n ");
|
||||
printf (" %08lX%s",
|
||||
info->start[i],
|
||||
info->protect[i] ? " (RO)" : " "
|
||||
);
|
||||
}
|
||||
printf ("\n");
|
||||
return;
|
||||
}
|
||||
|
||||
switch ((info->flash_id >> 16) & 0xff) {
|
||||
case FLASH_MAN_AMD: printf ("AMD "); break;
|
||||
default: printf ("Unknown Vendor "); break;
|
||||
}
|
||||
|
||||
switch (info->flash_id & FLASH_TYPEMASK) {
|
||||
case FLASH_AMDL323B: printf ("29DL323B (32 M, bottom sector)\n");
|
||||
break;
|
||||
default: printf ("Unknown Chip Type\n");
|
||||
break;
|
||||
}
|
||||
|
||||
printf (" Size: %ld MB in %d Sectors\n",
|
||||
info->size >> 20, info->sector_count);
|
||||
|
||||
printf (" Sector Start Addresses:");
|
||||
for (i=0; i<info->sector_count; ++i) {
|
||||
if ((i % 5) == 0)
|
||||
printf ("\n ");
|
||||
printf (" %08lX%s",
|
||||
info->start[i],
|
||||
info->protect[i] ? " (RO)" : " "
|
||||
);
|
||||
}
|
||||
printf ("\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
int flash_erase (flash_info_t *info, int s_first, int s_last)
|
||||
{
|
||||
int flag, prot, sect, l_sect;
|
||||
ulong start, now, last;
|
||||
int flag, prot, sect, l_sect;
|
||||
ulong start, now, last;
|
||||
|
||||
if ((s_first < 0) || (s_first > s_last)) {
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
printf ("- missing\n");
|
||||
if ((s_first < 0) || (s_first > s_last)) {
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
printf ("- missing\n");
|
||||
} else {
|
||||
printf ("- no sectors to erase\n");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
prot = 0;
|
||||
for (sect = s_first; sect <= s_last; sect++) {
|
||||
if (info->protect[sect])
|
||||
prot++;
|
||||
}
|
||||
|
||||
if (prot) {
|
||||
printf ("- Warning: %d protected sectors will not be erased!\n",
|
||||
prot);
|
||||
} else {
|
||||
printf ("- no sectors to erase\n");
|
||||
printf ("\n");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
prot = 0;
|
||||
for (sect = s_first; sect <= s_last; sect++) {
|
||||
if (info->protect[sect])
|
||||
prot++;
|
||||
}
|
||||
l_sect = -1;
|
||||
|
||||
if (prot) {
|
||||
printf ("- Warning: %d protected sectors will not be erased!\n",
|
||||
prot);
|
||||
} else {
|
||||
printf ("\n");
|
||||
}
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts();
|
||||
|
||||
l_sect = -1;
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00800080;
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + 4 + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00800080;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + 4 + (0x02AA << 3) ) = 0x00550055;
|
||||
udelay (1000);
|
||||
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts();
|
||||
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00800080;
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + 4 + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00800080;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + 4 + (0x02AA << 3) ) = 0x00550055;
|
||||
udelay (1000);
|
||||
|
||||
/* Start erase on unprotected sectors */
|
||||
for (sect = s_first; sect<=s_last; sect++) {
|
||||
if (info->protect[sect] == 0) { /* not protected */
|
||||
V_ULONG( info->start[sect] ) = 0x00300030;
|
||||
V_ULONG( info->start[sect] + 4 ) = 0x00300030;
|
||||
l_sect = sect;
|
||||
/* Start erase on unprotected sectors */
|
||||
for (sect = s_first; sect<=s_last; sect++) {
|
||||
if (info->protect[sect] == 0) { /* not protected */
|
||||
V_ULONG( info->start[sect] ) = 0x00300030;
|
||||
V_ULONG( info->start[sect] + 4 ) = 0x00300030;
|
||||
l_sect = sect;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
/* wait at least 80us - let's wait 1 ms */
|
||||
udelay (1000);
|
||||
/* wait at least 80us - let's wait 1 ms */
|
||||
udelay (1000);
|
||||
|
||||
/*
|
||||
* We wait for the last triggered sector
|
||||
*/
|
||||
if (l_sect < 0)
|
||||
goto DONE;
|
||||
/*
|
||||
* We wait for the last triggered sector
|
||||
*/
|
||||
if (l_sect < 0)
|
||||
goto DONE;
|
||||
|
||||
start = get_timer (0);
|
||||
last = start;
|
||||
while ((V_ULONG( info->start[l_sect] ) & 0x00800080) != 0x00800080 ||
|
||||
(V_ULONG( info->start[l_sect] + 4 ) & 0x00800080) != 0x00800080)
|
||||
{
|
||||
if ((now = get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
|
||||
printf ("Timeout\n");
|
||||
return 1;
|
||||
start = get_timer (0);
|
||||
last = start;
|
||||
while ((V_ULONG( info->start[l_sect] ) & 0x00800080) != 0x00800080 ||
|
||||
(V_ULONG( info->start[l_sect] + 4 ) & 0x00800080) != 0x00800080)
|
||||
{
|
||||
if ((now = get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
|
||||
printf ("Timeout\n");
|
||||
return 1;
|
||||
}
|
||||
/* show that we're waiting */
|
||||
if ((now - last) > 1000) { /* every second */
|
||||
serial_putc ('.');
|
||||
last = now;
|
||||
}
|
||||
}
|
||||
/* show that we're waiting */
|
||||
if ((now - last) > 1000) { /* every second */
|
||||
serial_putc ('.');
|
||||
last = now;
|
||||
}
|
||||
}
|
||||
|
||||
DONE:
|
||||
/* reset to read mode */
|
||||
flash_reset ();
|
||||
DONE:
|
||||
/* reset to read mode */
|
||||
flash_reset ();
|
||||
|
||||
printf (" done\n");
|
||||
return 0;
|
||||
printf (" done\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int write_dword (flash_info_t *, ulong, unsigned char *);
|
||||
@@ -299,49 +314,49 @@ static int write_dword (flash_info_t *, ulong, unsigned char *);
|
||||
|
||||
int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
||||
{
|
||||
ulong dp;
|
||||
static unsigned char bb[8];
|
||||
int i, l, rc, cc = cnt;
|
||||
ulong dp;
|
||||
static unsigned char bb[8];
|
||||
int i, l, rc, cc = cnt;
|
||||
|
||||
dp = (addr & ~7); /* get lower dword aligned address */
|
||||
dp = (addr & ~7); /* get lower dword aligned address */
|
||||
|
||||
/*
|
||||
* handle unaligned start bytes
|
||||
*/
|
||||
if ((l = addr - dp) != 0) {
|
||||
for (i = 0; i < 8; i++)
|
||||
bb[i] = (i < l || (i-l) >= cc) ? V_BYTE(dp+i) : *src++;
|
||||
if ((rc = write_dword(info, dp, bb)) != 0)
|
||||
{
|
||||
return (rc);
|
||||
/*
|
||||
* handle unaligned start bytes
|
||||
*/
|
||||
if ((l = addr - dp) != 0) {
|
||||
for (i = 0; i < 8; i++)
|
||||
bb[i] = (i < l || (i-l) >= cc) ? V_BYTE(dp+i) : *src++;
|
||||
if ((rc = write_dword(info, dp, bb)) != 0)
|
||||
{
|
||||
return (rc);
|
||||
}
|
||||
dp += 8;
|
||||
cc -= 8 - l;
|
||||
}
|
||||
dp += 8;
|
||||
cc -= 8 - l;
|
||||
}
|
||||
|
||||
/*
|
||||
* handle word aligned part
|
||||
*/
|
||||
while (cc >= 8) {
|
||||
if ((rc = write_dword(info, dp, src)) != 0) {
|
||||
return (rc);
|
||||
/*
|
||||
* handle word aligned part
|
||||
*/
|
||||
while (cc >= 8) {
|
||||
if ((rc = write_dword(info, dp, src)) != 0) {
|
||||
return (rc);
|
||||
}
|
||||
dp += 8;
|
||||
src += 8;
|
||||
cc -= 8;
|
||||
}
|
||||
dp += 8;
|
||||
src += 8;
|
||||
cc -= 8;
|
||||
}
|
||||
|
||||
if (cc <= 0) {
|
||||
return (0);
|
||||
}
|
||||
if (cc <= 0) {
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* handle unaligned tail bytes
|
||||
*/
|
||||
for (i = 0; i < 8; i++) {
|
||||
bb[i] = (i < cc) ? *src++ : V_BYTE(dp+i);
|
||||
}
|
||||
return (write_dword(info, dp, bb));
|
||||
/*
|
||||
* handle unaligned tail bytes
|
||||
*/
|
||||
for (i = 0; i < 8; i++) {
|
||||
bb[i] = (i < cc) ? *src++ : V_BYTE(dp+i);
|
||||
}
|
||||
return (write_dword(info, dp, bb));
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
@@ -352,45 +367,45 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
|
||||
*/
|
||||
static int write_dword (flash_info_t *info, ulong dest, unsigned char * pdata)
|
||||
{
|
||||
ulong start;
|
||||
ulong cl = 0, ch =0;
|
||||
int flag, i;
|
||||
ulong start;
|
||||
ulong cl = 0, ch =0;
|
||||
int flag, i;
|
||||
|
||||
for (ch=0, i=0; i < 4; i++)
|
||||
ch = (ch << 8) + *pdata++; /* high word */
|
||||
for (cl=0, i=0; i < 4; i++)
|
||||
cl = (cl << 8) + *pdata++; /* low word */
|
||||
for (ch=0, i=0; i < 4; i++)
|
||||
ch = (ch << 8) + *pdata++; /* high word */
|
||||
for (cl=0, i=0; i < 4; i++)
|
||||
cl = (cl << 8) + *pdata++; /* low word */
|
||||
|
||||
/* Check if Flash is (sufficiently) erased */
|
||||
if ((*((vu_long *)dest) & ch) != ch
|
||||
||(*((vu_long *)(dest + 4)) & cl) != cl)
|
||||
{
|
||||
return (2);
|
||||
}
|
||||
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts();
|
||||
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00A000A0;
|
||||
V_ULONG( dest ) = ch;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + 4 + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00A000A0;
|
||||
V_ULONG( dest + 4 ) = cl;
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
/* data polling for D7 */
|
||||
start = get_timer (0);
|
||||
while (((V_ULONG( dest ) & 0x00800080) != (ch & 0x00800080)) ||
|
||||
((V_ULONG( dest + 4 ) & 0x00800080) != (cl & 0x00800080))) {
|
||||
if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
|
||||
return (1);
|
||||
/* Check if Flash is (sufficiently) erased */
|
||||
if ((*((vu_long *)dest) & ch) != ch
|
||||
||(*((vu_long *)(dest + 4)) & cl) != cl)
|
||||
{
|
||||
return (2);
|
||||
}
|
||||
}
|
||||
return (0);
|
||||
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts();
|
||||
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + (0x0555 << 3) ) = 0x00A000A0;
|
||||
V_ULONG( dest ) = ch;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00AA00AA;
|
||||
V_ULONG( info->start[0] + 4 + (0x02AA << 3) ) = 0x00550055;
|
||||
V_ULONG( info->start[0] + 4 + (0x0555 << 3) ) = 0x00A000A0;
|
||||
V_ULONG( dest + 4 ) = cl;
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
/* data polling for D7 */
|
||||
start = get_timer (0);
|
||||
while (((V_ULONG( dest ) & 0x00800080) != (ch & 0x00800080)) ||
|
||||
((V_ULONG( dest + 4 ) & 0x00800080) != (cl & 0x00800080))) {
|
||||
if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -224,6 +224,25 @@ int au_do_update(int i, long sz)
|
||||
start = au_image[i].start;
|
||||
end = au_image[i].start + au_image[i].size - 1;
|
||||
|
||||
/*
|
||||
* do not update firmware when image is already in flash.
|
||||
*/
|
||||
if (au_image[i].type == AU_FIRMWARE) {
|
||||
char *orig = (char*)start;
|
||||
char *new = (char *)((char *)hdr + sizeof(*hdr));
|
||||
nbytes = ntohl(hdr->ih_size);
|
||||
|
||||
while(--nbytes) {
|
||||
if (*orig++ != *new++) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!nbytes) {
|
||||
printf("Skipping firmware update - images are identical\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* unprotect the address range */
|
||||
/* this assumes that ONLY the firmware is protected! */
|
||||
if (au_image[i].type == AU_FIRMWARE) {
|
||||
|
||||
@@ -494,18 +494,18 @@ static void move64 (unsigned long long *src, unsigned long long *dest)
|
||||
#if defined (CFG_DRAM_TEST_DATA)
|
||||
|
||||
unsigned long long pattern[] = {
|
||||
0xaaaaaaaaaaaaaaaa,
|
||||
0xcccccccccccccccc,
|
||||
0xf0f0f0f0f0f0f0f0,
|
||||
0xff00ff00ff00ff00,
|
||||
0xffff0000ffff0000,
|
||||
0xffffffff00000000,
|
||||
0x00000000ffffffff,
|
||||
0x0000ffff0000ffff,
|
||||
0x00ff00ff00ff00ff,
|
||||
0x0f0f0f0f0f0f0f0f,
|
||||
0x3333333333333333,
|
||||
0x5555555555555555
|
||||
0xaaaaaaaaaaaaaaaaLL,
|
||||
0xccccccccccccccccLL,
|
||||
0xf0f0f0f0f0f0f0f0LL,
|
||||
0xff00ff00ff00ff00LL,
|
||||
0xffff0000ffff0000LL,
|
||||
0xffffffff00000000LL,
|
||||
0x00000000ffffffffLL,
|
||||
0x0000ffff0000ffffLL,
|
||||
0x00ff00ff00ff00ffLL,
|
||||
0x0f0f0f0f0f0f0f0fLL,
|
||||
0x3333333333333333LL,
|
||||
0x5555555555555555LL,
|
||||
};
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
@@ -76,7 +76,9 @@
|
||||
#define CONFIG_ETHADDR 64:36:00:00:00:01
|
||||
|
||||
/* next two ethernet hwaddrs */
|
||||
#define CONFIG_HAS_ETH1
|
||||
#define CONFIG_ETH1ADDR 86:06:2d:7e:c6:54
|
||||
#define CONFIG_HAS_ETH2
|
||||
#define CONFIG_ETH2ADDR 86:06:2d:7e:c6:55
|
||||
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,292 +1,227 @@
|
||||
0x1f,0x8b,0x08,0x08,0xaf,0xaf,0x9c,0x41,0x00,0x03,0x65,0x73,0x64,0x5f,0x77,0x65,
|
||||
0x6c,0x6c,0x65,0x5f,0x6d,0x6f,0x6e,0x69,0x74,0x6f,0x72,0x2d,0x62,0x6c,0x61,0x75,
|
||||
0x5f,0x33,0x32,0x30,0x5f,0x32,0x34,0x30,0x5f,0x34,0x62,0x70,0x70,0x2e,0x62,0x6d,
|
||||
0x70,0x00,0xe5,0x9d,0x0f,0x6c,0xa3,0x65,0x1d,0xc7,0x5f,0xfe,0x48,0xf0,0x0f,0xcb,
|
||||
0x4d,0x41,0x18,0x35,0x0e,0x0b,0x92,0xaa,0x0c,0xc1,0xe6,0x82,0xd4,0x9a,0xe2,0x59,
|
||||
0x64,0x58,0x10,0x2e,0xa6,0x21,0x25,0xc3,0x21,0x92,0x9d,0x09,0x6e,0xca,0x8d,0xa3,
|
||||
0xb1,0x0e,0x5f,0x9c,0x23,0xd6,0x68,0x90,0x02,0x13,0xcb,0x81,0xa7,0x16,0x18,0xa9,
|
||||
0x78,0xb2,0xd0,0x44,0x49,0x0d,0x07,0x8e,0x72,0x9c,0x36,0x39,0x9c,0x30,0x13,0xb1,
|
||||
0xb0,0xa0,0x4e,0x24,0x3a,0xbd,0xeb,0xcd,0xf7,0xd6,0xdb,0xf1,0xfa,0xfb,0xf3,0xbc,
|
||||
0x6f,0xdf,0x6e,0xf7,0xde,0xed,0x69,0xdf,0xb7,0x6f,0x8d,0xdf,0x5b,0xef,0x2e,0x77,
|
||||
0x79,0xde,0x7d,0xf6,0xfd,0xfd,0x79,0x9e,0xf7,0xe9,0xfb,0xbe,0xdd,0x74,0xe5,0xad,
|
||||
0xdf,0x57,0x48,0xb7,0xc2,0x2b,0x00,0xaf,0x4b,0x8e,0x53,0x94,0x7f,0xc3,0x9f,0xc7,
|
||||
0x29,0x27,0xf2,0x7f,0xc0,0xff,0x9f,0x7d,0x3e,0xbf,0x36,0xf0,0xbf,0x28,0x89,0x44,
|
||||
0x42,0x79,0xe2,0x89,0x27,0x94,0x74,0x3a,0xad,0xbc,0xf2,0xca,0x2b,0xca,0x83,0x0f,
|
||||
0x3e,0xa8,0xec,0xd9,0xb3,0x47,0xd9,0xba,0x75,0xab,0xb2,0x7f,0xff,0x7e,0xe5,0xee,
|
||||
0xbb,0xef,0x56,0x9e,0x7a,0xea,0x29,0xe5,0x8d,0x37,0xde,0x50,0x1e,0x7d,0xf4,0x51,
|
||||
0xe5,0xc5,0x17,0x5f,0x54,0x6e,0xbb,0xed,0x36,0x65,0xcb,0x96,0x2d,0xca,0xe1,0xc3,
|
||||
0x87,0x15,0xdd,0x39,0x25,0x83,0xa5,0x4c,0x77,0x61,0x93,0x7f,0x68,0x68,0x68,0xe4,
|
||||
0x9f,0xdf,0x18,0x08,0xfe,0xdc,0xc1,0x63,0xb7,0xa8,0xd1,0x92,0x2f,0xda,0x77,0x2e,
|
||||
0x82,0x2d,0xa2,0x5e,0x3b,0xad,0x83,0xd8,0x52,0x1b,0xb7,0x6f,0xea,0xab,0xcc,0xcd,
|
||||
0x01,0xdd,0x02,0x68,0x71,0x71,0xe1,0x0e,0xa6,0xd3,0x34,0x4d,0x57,0xbd,0x65,0xd3,
|
||||
0x53,0xa5,0x53,0xc7,0xfb,0x2a,0x95,0xca,0x30,0x08,0xed,0x1b,0x19,0x59,0x7c,0xed,
|
||||
0x7e,0x82,0xd3,0x55,0x55,0x57,0x01,0x31,0xe9,0x1d,0x9c,0xb6,0xf1,0x5e,0xbf,0xbf,
|
||||
0xaf,0x6f,0x16,0xf8,0xc0,0x3f,0x30,0x70,0x64,0x68,0x61,0xf1,0x8b,0x7b,0x99,0x0e,
|
||||
0x01,0x35,0x35,0xe9,0x1d,0x60,0x6d,0x73,0xff,0x38,0xe0,0xf9,0x67,0x89,0x8f,0xec,
|
||||
0x03,0xc2,0x1b,0x23,0x26,0x9e,0xa6,0xa9,0xaa,0x9a,0x4c,0x7a,0x03,0x58,0xdd,0xbc,
|
||||
0x29,0xed,0xf7,0x23,0x20,0x19,0x38,0xcc,0xfe,0x8d,0xdc,0x00,0xee,0x51,0x60,0xe1,
|
||||
0x77,0x84,0x4b,0xe2,0x2b,0xa9,0xb6,0x9b,0x0e,0xbc,0x4b,0xa7,0xc7,0xc7,0x01,0xcf,
|
||||
0x6f,0xf8,0x47,0x80,0xc3,0xf7,0x21,0x9a,0x26,0x94,0x14,0xfe,0x25,0xdb,0xed,0xe0,
|
||||
0xc5,0xd1,0x34,0x2a,0x10,0xa0,0xf8,0x56,0xfa,0x8c,0xfc,0x1b,0xba,0x8c,0x0b,0x03,
|
||||
0xe1,0x04,0x19,0x6b,0xaa,0x9d,0x74,0xa3,0xf7,0x4e,0x4c,0x4c,0xa4,0xd1,0xbf,0x00,
|
||||
0x04,0x78,0xb6,0xcf,0x5f,0xe1,0x04,0x1c,0x1e,0x7a,0xc9,0x80,0x13,0x78,0xaa,0x81,
|
||||
0x97,0x6c,0x5f,0x3f,0xd4,0x2e,0x8c,0x46,0xa3,0x13,0xe4,0x1f,0x02,0xfa,0xd1,0x3f,
|
||||
0x68,0x7f,0x15,0xa8,0x8f,0x9b,0x54,0xdd,0x84,0x33,0xd9,0x92,0xc9,0x14,0x4a,0x6d,
|
||||
0x13,0xde,0x98,0x0f,0xf1,0x26,0x26,0xfa,0x31,0xbc,0x88,0x87,0x05,0x82,0xf1,0x85,
|
||||
0x5f,0xd7,0xe8,0x9a,0x51,0x17,0x6a,0x1d,0x2f,0x39,0x45,0x80,0xed,0xc1,0xdb,0x58,
|
||||
0x04,0xbc,0x68,0x7f,0x7f,0x3f,0xfb,0x87,0x05,0x32,0xdb,0x27,0x1a,0xcc,0xd9,0xc8,
|
||||
0x46,0x49,0x67,0xa5,0x23,0xb8,0x54,0x3e,0xdf,0x8e,0x1a,0xd1,0x9e,0x29,0x80,0xc0,
|
||||
0xbf,0x68,0x1a,0xeb,0x37,0x8d,0xf9,0x87,0x80,0x88,0x57,0xb9,0x51,0x25,0x25,0x39,
|
||||
0xbc,0x26,0xde,0x14,0x2a,0x0f,0x84,0xaa,0xfb,0x78,0x9b,0x8b,0x31,0xc4,0x43,0xff,
|
||||
0xfa,0x4d,0xff,0xc4,0x04,0x32,0x7c,0x3a,0xa0,0x59,0xc9,0xc8,0xbb,0x3c,0x79,0x97,
|
||||
0x9f,0xc2,0x97,0xdb,0x78,0xd5,0xed,0xc5,0x58,0x31,0x16,0x65,0x40,0xaa,0x90,0x80,
|
||||
0x9f,0x0a,0x84,0x12,0xf0,0x25,0x61,0x9c,0xa6,0x59,0x43,0x9b,0x04,0xef,0xd0,0x3f,
|
||||
0x94,0xea,0x32,0x5e,0xa6,0x58,0x2c,0xc6,0x62,0x31,0xae,0x0f,0xb6,0xcf,0xe2,0xdf,
|
||||
0x6e,0x04,0x6b,0x28,0x8b,0x3c,0x27,0x1e,0xc3,0xb9,0x6e,0x60,0x75,0xbb,0x0f,0xf8,
|
||||
0x8a,0x85,0x02,0x01,0x72,0x80,0x8d,0x0a,0x06,0xc0,0xf3,0x68,0xba,0xb0,0xc4,0x36,
|
||||
0x4f,0xde,0xe5,0x53,0x26,0x5e,0x28,0xa4,0xba,0x89,0x97,0xf1,0xf9,0x00,0xb0,0x50,
|
||||
0x8c,0x59,0x0a,0x98,0xf0,0xfa,0xb0,0xc1,0xcc,0xee,0xb6,0x4e,0x17,0x98,0x78,0xc9,
|
||||
0xa9,0x7c,0xdd,0xbb,0x50,0x2e,0x97,0xcb,0xe7,0x5c,0x34,0xb0,0xc6,0x78,0xe8,0x1f,
|
||||
0x54,0x48,0x3f,0x34,0x68,0x6c,0x80,0xdc,0xa0,0xa1,0x43,0x57,0xfe,0xb4,0x2a,0xef,
|
||||
0xc0,0x3c,0x33,0xef,0x10,0x2f,0x1f,0x02,0xff,0x72,0xae,0xe1,0x69,0x9b,0xbb,0x7d,
|
||||
0x04,0xc8,0xf9,0x67,0x14,0xb0,0xe9,0x5f,0xdf,0xee,0xb5,0x0d,0xcf,0x0c,0x6c,0x8e,
|
||||
0x7e,0x81,0x85,0xa1,0x88,0x5b,0x7c,0xcf,0x74,0xfb,0xba,0xa7,0x7d,0x45,0x9f,0xf0,
|
||||
0xcf,0x08,0xf0,0xb8,0xd1,0xa1,0x5f,0x5a,0x83,0x97,0x6a,0xc0,0x0b,0x61,0x80,0x41,
|
||||
0x2e,0xe1,0x5d,0xdc,0x0d,0xf2,0x4d,0x63,0x7c,0x39,0xff,0xb8,0x80,0xd3,0xbc,0xc0,
|
||||
0x02,0xfb,0xee,0x33,0x6a,0x96,0xa2,0x8a,0x65,0x51,0xaf,0x0a,0x84,0x83,0x57,0x28,
|
||||
0x98,0x0b,0x86,0xdc,0x59,0x26,0x6c,0xcb,0x64,0x80,0x6f,0xda,0x08,0x70,0xcc,0x08,
|
||||
0xf0,0xb8,0xf0,0xcf,0xff,0xb2,0x41,0xc7,0x0d,0xcf,0xa2,0x10,0x27,0x1f,0xe1,0xc1,
|
||||
0xeb,0x22,0x37,0xf0,0xaa,0xd9,0x1e,0xc6,0x63,0xff,0x08,0x4f,0xac,0x60,0x28,0x01,
|
||||
0x67,0x67,0x2f,0x33,0xe8,0x70,0x26,0x83,0xc4,0x13,0x88,0x58,0xb4,0x02,0x2d,0x08,
|
||||
0xee,0xa1,0xdc,0xe0,0xdb,0x9c,0xc9,0x20,0xa0,0x20,0xe4,0x06,0xc8,0x05,0x32,0x9e,
|
||||
0xa6,0x09,0x38,0x70,0x11,0xac,0xf0,0x78,0x96,0x4d,0x59,0x42,0x8b,0x45,0x9b,0x13,
|
||||
0x0a,0x09,0xc2,0x88,0xf3,0x78,0x17,0x67,0x33,0x18,0x5f,0x88,0x2e,0x26,0x60,0xc1,
|
||||
0x48,0x40,0xf2,0xcf,0x4f,0x0d,0xe6,0xec,0x64,0x2a,0x99,0x17,0x55,0x6b,0x49,0x3c,
|
||||
0x08,0x6c,0x10,0x18,0x83,0xb9,0x1c,0xb1,0x91,0x81,0x21,0xc7,0xf1,0xaa,0xd9,0xac,
|
||||
0xe9,0x9f,0xd9,0x00,0x31,0xc0,0x13,0xe6,0x0a,0xe1,0x9a,0xd4,0xda,0x9e,0x92,0x23,
|
||||
0xff,0x30,0xb6,0x39,0x26,0x14,0x52,0x1d,0xc6,0xd3,0x12,0xd9,0x4c,0xd6,0x08,0x2f,
|
||||
0x04,0x98,0xfd,0x13,0x78,0xd0,0xa0,0x21,0xc0,0xef,0x23,0x38,0x2c,0xda,0x54,0x3d,
|
||||
0xef,0xc8,0x37,0x0c,0x6c,0x30,0x14,0xac,0x2b,0xec,0x78,0x80,0x1f,0xce,0xa2,0x7f,
|
||||
0x5c,0xc0,0xd3,0x75,0xff,0xc4,0x0a,0x86,0x26,0xe0,0xcb,0x30,0xf5,0x2c,0x3d,0x25,
|
||||
0xc7,0xf3,0x99,0x80,0x6b,0xc4,0x0b,0x3b,0x1c,0xe0,0x6a,0x22,0x8b,0xfe,0xf5,0x98,
|
||||
0xfd,0xa5,0xd8,0x30,0x81,0x60,0x7c,0x03,0x21,0x6c,0xc7,0x79,0xeb,0x5c,0x66,0xe2,
|
||||
0xe5,0x2c,0x78,0xe1,0x70,0x38,0x38,0x33,0x13,0x76,0x96,0xaf,0x94,0x05,0xc0,0x1e,
|
||||
0x23,0x01,0xa7,0xcd,0x0e,0x33,0x21,0x2a,0x04,0x56,0xd0,0x77,0x08,0x3c,0x9c,0x3b,
|
||||
0x18,0x0f,0x09,0x39,0xef,0x82,0xf5,0xc4,0x0b,0xce,0x10,0xe2,0x4c,0xc4,0x49,0xbc,
|
||||
0x95,0xc9,0x2c,0x8a,0xfd,0x63,0x3c,0x31,0x03,0xd7,0x57,0x80,0x67,0x42,0x64,0xcd,
|
||||
0x1d,0x02,0x4d,0x4b,0xe5,0xb0,0x6c,0x73,0xb9,0xc6,0xd0,0xce,0x80,0x73,0x61,0xf8,
|
||||
0x6d,0xa6,0xec,0x64,0x8b,0xd6,0xe2,0x93,0x93,0x93,0x75,0xff,0x7c,0x6b,0x1a,0x20,
|
||||
0x18,0x78,0x4e,0x7e,0xaa,0x71,0xff,0x02,0x08,0xc1,0xbe,0x50,0x43,0xde,0x85,0x89,
|
||||
0x70,0xa6,0x3c,0x53,0x0e,0xcf,0x38,0xc8,0x37,0x96,0x48,0x24,0x4c,0xff,0x7c,0x46,
|
||||
0xfe,0x59,0x0a,0x78,0x3c,0x10,0x38,0x6f,0xed,0x9c,0xaa,0x8d,0x5a,0x3b,0x0a,0x90,
|
||||
0x05,0xc1,0x3c,0x8c,0x2d,0xe0,0x95,0xcb,0xce,0xcd,0xc1,0x5a,0x3c,0x1e,0xa7,0x00,
|
||||
0xf7,0x70,0x01,0x8b,0x15,0xaa,0x68,0x80,0x69,0x2e,0x90,0x1d,0x47,0x1a,0x99,0x6a,
|
||||
0xf0,0x0e,0x0b,0x03,0x8c,0x43,0x38,0xd0,0x5e,0xc7,0xf8,0xc6,0xe2,0xe0,0xdf,0x64,
|
||||
0xd6,0x68,0xd0,0xd3,0x46,0x83,0xb1,0xcc,0x20,0x81,0x73,0xd4,0x23,0xff,0x68,0xf5,
|
||||
0xbc,0xc3,0x57,0x39,0x4c,0x78,0xf0,0x5b,0xb9,0xfc,0x1b,0xa7,0xf0,0xd0,0x3e,0x0e,
|
||||
0x70,0x4f,0x0f,0xda,0xc7,0x05,0x5c,0xe0,0x73,0xcc,0x09,0x6a,0x80,0x81,0xf4,0x37,
|
||||
0xed,0x06,0xe7,0x44,0xde,0x85,0x59,0x86,0x7b,0x20,0xa7,0xf8,0x56,0xe2,0x54,0x1e,
|
||||
0x93,0xd9,0x1e,0x00,0xec,0xb1,0xf8,0x17,0xb5,0xf8,0xd7,0x6b,0xfb,0xd3,0xe5,0x30,
|
||||
0xf1,0xca,0x02,0x6e,0xa6,0x5c,0x57,0xc4,0x21,0xbe,0x52,0x9c,0x0c,0xe4,0x09,0xa4,
|
||||
0xbb,0x5e,0xc0,0xb1,0xa2,0xe5,0x14,0x4e,0xb5,0x1d,0xae,0x71,0xe2,0x51,0xe6,0x59,
|
||||
0xf1,0x06,0x76,0x3b,0x83,0xb7,0x12,0x07,0xc0,0xac,0x51,0xc0,0x3d,0x66,0x01,0x17,
|
||||
0x0b,0xd1,0x82,0x89,0x77,0xc7,0x51,0x0e,0x50,0x03,0xe7,0xca,0xa2,0x68,0xad,0xfa,
|
||||
0xac,0x33,0x7c,0x1b,0xc9,0xbf,0xc9,0x2c,0xcd,0x70,0xdd,0x19,0xd3,0xbf,0x58,0x4c,
|
||||
0x2c,0xb1,0xb0,0x80,0xaf,0x3a,0xda,0x11,0x52,0x33,0xab,0xe1,0x4a,0xa8,0xb2,0xea,
|
||||
0x04,0x5e,0xad,0x34,0x80,0x78,0x96,0x06,0x68,0xce,0x20,0x96,0x09,0xf8,0xe8,0xcd,
|
||||
0x22,0x47,0x45,0x6b,0x09,0x6d,0x79,0x00,0x14,0x8f,0x38,0xc1,0xb7,0x0d,0x7e,0xd2,
|
||||
0x78,0x5c,0x4c,0x20,0x02,0x90,0x97,0xa8,0xc5,0x98,0xb9,0x46,0xfd,0xf6,0x31,0x0e,
|
||||
0xd2,0x18,0x59,0x84,0x43,0x03,0x9d,0x48,0x40,0xad,0x0c,0xf6,0x95,0xe2,0x93,0xa2,
|
||||
0x41,0x37,0xcc,0xc0,0x05,0xe3,0x14,0x6e,0xe2,0x58,0xdf,0xa9,0xd6,0x40,0x87,0x6c,
|
||||
0x03,0xf1,0xd2,0x80,0x13,0x09,0xb8,0x52,0x36,0xfc,0xcb,0x52,0x07,0xe4,0x04,0x34,
|
||||
0x00,0x79,0x05,0x18,0xbd,0xef,0x98,0x87,0x19,0xad,0x67,0x1e,0xc7,0x96,0x00,0xd5,
|
||||
0xd6,0xf9,0xc2,0x8c,0xc7,0x0d,0xda,0x5c,0xa0,0x4e,0x8b,0x05,0x6a,0x8c,0xfc,0x3b,
|
||||
0xf3,0xd8,0x87,0xd1,0xc2,0x66,0x64,0x89,0x8e,0x1c,0x74,0x20,0x01,0x6b,0x5c,0x6b,
|
||||
0x66,0x81,0x88,0x0e,0x68,0xac,0x60,0x28,0xc2,0x4f,0xac,0xf3,0x40,0x80,0x47,0xee,
|
||||
0x81,0x71,0x58,0x72,0x90,0x36,0x83,0x2d,0xf3,0x8d,0xe1,0x31,0x85,0x7f,0x09,0xce,
|
||||
0xbf,0x8c,0xd1,0x00,0xc5,0x29,0xc8,0x15,0xea,0xba,0x8e,0xf4,0x98,0x61,0x1d,0xfe,
|
||||
0x16,0xa7,0xdf,0xe2,0xad,0x27,0x60,0x98,0x7e,0xe8,0x52,0x3c,0x11,0x5f,0xeb,0x5f,
|
||||
0x81,0x4e,0x41,0x2e,0x5d,0x1f,0x1e,0x18,0x48,0x4d,0x8f,0xc0,0x4a,0xec,0x5f,0x7c,
|
||||
0xa0,0x55,0xbc,0x1a,0xf7,0x52,0xf4,0x2f,0xce,0x0b,0x98,0x8c,0x65,0x02,0xc1,0x15,
|
||||
0xe0,0x27,0xd6,0xbd,0x8c,0x1b,0x13,0x55,0x11,0x17,0x70,0xa8,0x48,0x8b,0x7c,0x63,
|
||||
0x94,0x34,0x14,0x0b,0x5e,0x61,0xf5,0x64,0x32,0xd6,0x0e,0x1d,0x8b,0xad,0xbf,0x87,
|
||||
0x69,0xd4,0x54,0x18,0xaf,0x24,0xf8,0x5a,0x5d,0x03,0x06,0x4d,0xff,0xa8,0x3f,0x9b,
|
||||
0x15,0x6c,0x94,0x47,0xe1,0x7e,0x89,0x83,0x8d,0x71,0x6c,0xe3,0x03,0x26,0xde,0xe4,
|
||||
0x35,0xad,0xe1,0xd5,0x20,0xfd,0xa8,0x5f,0x19,0xfe,0x65,0xb2,0x8c,0x67,0x9c,0xc2,
|
||||
0xfd,0x4a,0xe6,0x68,0x5a,0xc9,0xe2,0x1c,0xe1,0x25,0x5a,0x4c,0xc0,0x2a,0x4d,0x9a,
|
||||
0x03,0xe2,0x60,0x89,0xec,0xaa,0x0e,0x18,0xbb,0x5c,0x95,0x3a,0xdc,0x8a,0x91,0x79,
|
||||
0x09,0xca,0xe7,0x49,0x78,0xc9,0x1d,0x60,0xb5,0x82,0xb8,0x5e,0x2b,0x89,0x16,0x23,
|
||||
0x26,0x10,0x3e,0x45,0xef,0x46,0xbe,0xe9,0x88,0xdc,0xe1,0xb4,0x92,0x59,0x1a,0x80,
|
||||
0x46,0x5f,0x92,0x47,0x58,0x75,0xbc,0x60,0xdd,0x3f,0xee,0x7f,0x86,0x7f,0xdd,0x45,
|
||||
0x5c,0x21,0x1c,0x7b,0x5a,0x5b,0xa5,0x31,0x13,0x8e,0xf0,0x20,0xa5,0x07,0x5b,0xe1,
|
||||
0xab,0x92,0x7f,0x03,0xe8,0xa0,0x59,0x21,0x3d,0x74,0x8a,0x44,0xfe,0xbd,0x47,0xfa,
|
||||
0x80,0x9a,0x19,0x5d,0xa2,0x03,0x5d,0xdb,0x0a,0xdf,0x68,0x98,0x4e,0xb4,0x38,0xa7,
|
||||
0x13,0x71,0xda,0x42,0xc8,0xd0,0x0a,0x1a,0xeb,0xe3,0x49,0x55,0xfe,0x88,0xdb,0xe2,
|
||||
0x64,0x5c,0x16,0x93,0x85,0x0a,0xee,0x81,0x56,0xf8,0xf0,0x9c,0x4b,0x2c,0x26,0xcd,
|
||||
0x0e,0xdd,0x63,0x4c,0x20,0xd3,0xcd,0xf4,0xae,0x1a,0x45,0x36,0x41,0xd9,0x92,0xc0,
|
||||
0x53,0xae,0x44,0x0b,0x78,0x1a,0x9e,0xd4,0xf0,0x9a,0xa8,0xbe,0xc0,0xca,0x64,0xc4,
|
||||
0x29,0x9c,0x4c,0xe7,0xab,0x6b,0x63,0x02,0x43,0x9b,0xa5,0x64,0xa6,0x09,0x33,0xd2,
|
||||
0x3c,0x5f,0x35,0xc8,0x80,0x03,0x86,0x7f,0x59,0x73,0x8f,0xad,0xbb,0xfb,0x34,0xb5,
|
||||
0xb9,0x63,0x42,0x78,0x39,0xb4,0x44,0xd8,0x52,0x81,0x8c,0xe2,0x76,0x09,0x01,0x72,
|
||||
0x06,0x4e,0x4e,0x9a,0x0b,0x04,0x5f,0x77,0xa4,0xc9,0x83,0x96,0x26,0xa9,0xce,0xd0,
|
||||
0x3b,0x6a,0x08,0xd2,0x3d,0xa0,0xae,0x1c,0xfb,0x47,0x4b,0xb6,0x7a,0x80,0xd9,0xc0,
|
||||
0xe6,0xa2,0x0b,0x5a,0xa2,0xb2,0x48,0x08,0xba,0x56,0x0a,0x44,0xa3,0x2d,0x09,0xe3,
|
||||
0x6c,0xd0,0xac,0x0f,0xc2,0x6b,0x32,0xba,0x78,0x54,0x2a,0x0b,0x83,0x0e,0xd4,0x34,
|
||||
0x5f,0x8d,0xf7,0x75,0x78,0x05,0x63,0x6e,0x21,0x70,0x87,0x6e,0x61,0xdd,0xf1,0x70,
|
||||
0x56,0x84,0x57,0x28,0xd2,0xec,0x81,0xaa,0xc1,0x60,0xdd,0xbf,0x01,0x6e,0x09,0x09,
|
||||
0x3e,0x43,0x6a,0x21,0x69,0xf4,0x95,0x6c,0x76,0xd2,0x60,0x83,0x1f,0x35,0xdb,0xf4,
|
||||
0x8f,0x3a,0x6a,0xf8,0x57,0x2a,0x8b,0x79,0x93,0x57,0x58,0xd9,0xee,0xd6,0x66,0xf5,
|
||||
0x52,0xdd,0xbb,0x1e,0x20,0x6c,0xfa,0x67,0xa5,0xf2,0x98,0x31,0xfd,0x13,0x33,0x30,
|
||||
0x36,0x98,0xd6,0x56,0x95,0xdb,0xea,0xe6,0xa1,0xee,0x69,0xf6,0x38,0x41,0xde,0xb9,
|
||||
0x0b,0x9b,0x05,0x6c,0x6c,0xf2,0xbe,0xab,0x25,0x3c,0xbd,0x26,0xf0,0x60,0x2a,0xc2,
|
||||
0x6a,0x3b,0xad,0xd9,0xc3,0x84,0x82,0x56,0x03,0x69,0x05,0x48,0x0d,0x30,0xdb,0xea,
|
||||
0xc6,0xf1,0x1e,0x6e,0x03,0x8c,0xd7,0xd3,0xa3,0x36,0xc9,0x97,0xe3,0x5d,0x63,0x3e,
|
||||
0xad,0x8e,0xd7,0x57,0x80,0x4d,0xb7,0x3e,0x43,0xcb,0x10,0x5a,0x42,0xeb,0xa6,0x5e,
|
||||
0x10,0x69,0xee,0x28,0xa3,0xa1,0xa0,0xd8,0x57,0xe4,0x33,0x4c,0x63,0x05,0xdd,0xe2,
|
||||
0x92,0x57,0xc7,0x00,0xf7,0x18,0x80,0xf8,0x6b,0x47,0x73,0x47,0xc9,0xe7,0x42,0x46,
|
||||
0xff,0x33,0x4e,0xe1,0x68,0x66,0x72,0x60,0xdb,0xfd,0x99,0x2c,0x79,0x27,0x5e,0xa7,
|
||||
0x37,0x77,0x10,0xc2,0x13,0x1d,0x50,0xec,0xc1,0x20,0xde,0x03,0x6a,0xeb,0x7c,0x4b,
|
||||
0x22,0xb8,0xbc,0xd2,0x90,0x5f,0xe6,0x92,0x42,0x39,0x6a,0x30,0x61,0xd1,0x00,0x79,
|
||||
0x93,0x32,0x9b,0x70,0xe2,0x5d,0x8b,0x1a,0xda,0xc6,0xc1,0xc5,0xc5,0x46,0x53,0xc7,
|
||||
0xd0,0x42,0x66,0x7f,0x31,0xfd,0x83,0x06,0xd3,0x74,0xb7,0x6a,0xd0,0x85,0x99,0x8c,
|
||||
0xe1,0x1e,0xa8,0xa9,0x7e,0x50,0xc3,0x77,0xf7,0x82,0xf4,0x86,0x0f,0xfa,0xc7,0x7b,
|
||||
0x30,0x93,0xd9,0x88,0x23,0x7c,0xcb,0x26,0x1b,0xaa,0xa9,0x90,0x54,0xf3,0xc1,0x7a,
|
||||
0x83,0x31,0xfd,0x73,0x68,0xcb,0x5d,0xcb,0x88,0x7d,0x4e,0x52,0x6f,0x33,0x87,0x48,
|
||||
0xe1,0x7b,0xcb,0x41,0x63,0x89,0x65,0xac,0xb0,0x22,0xce,0xf0,0xe9,0xcf,0x58,0xec,
|
||||
0x9b,0x5e,0xc7,0xf6,0xe6,0x5a,0xe5,0x73,0xfc,0xd6,0xa3,0x68,0x30,0xbc,0x40,0x70,
|
||||
0x26,0xfb,0x40,0x5f,0x35,0xd8,0x40,0xdd,0x52,0x9b,0x24,0x26,0x1f,0x5e,0x8f,0x84,
|
||||
0x6f,0x76,0x63,0x01,0x8b,0x53,0xb8,0xc9,0x88,0x53,0x7c,0x35,0x81,0x47,0x67,0x82,
|
||||
0x4d,0x15,0x70,0x5e,0xe4,0x5f,0xd9,0x92,0x80,0x0e,0x65,0x1f,0x6a,0x33,0xd3,0xc1,
|
||||
0x69,0x34,0xbc,0x9a,0x28,0x60,0x8d,0xae,0x5a,0x41,0xff,0x8c,0x00,0x0f,0xb4,0xbe,
|
||||
0x5b,0x67,0xd1,0xcd,0x88,0x07,0xc1,0xc5,0xad,0x4e,0x5f,0x13,0xc7,0xd5,0xf2,0x21,
|
||||
0x91,0x7f,0xe1,0xf2,0x8c,0x58,0xa1,0xb6,0xbc,0x1b,0x6b,0x51,0xd5,0x47,0x80,0x84,
|
||||
0xe7,0xdb,0x21,0x3f,0xbe,0xc6,0x97,0xd7,0xd0,0x12,0x41,0xec,0xbc,0x0f,0x38,0x68,
|
||||
0x9f,0xae,0x67,0x88,0x6c,0x9a,0x36,0xea,0x7e,0xd1,0x0c,0x5f,0x8e,0x27,0x60,0x6a,
|
||||
0xd0,0x80,0x17,0x2f,0x39,0x69,0x9f,0xae,0xff,0x18,0x63,0x4b,0xdb,0x9c,0x3e,0x5f,
|
||||
0x13,0x05,0x9c,0x32,0xfc,0x9b,0x09,0x8a,0xf7,0x6c,0x9d,0xcc,0x3e,0xd0,0x12,0xf5,
|
||||
0x96,0x22,0x5e,0x8b,0x39,0xfd,0xa4,0xfc,0xf0,0x64,0x9e,0x2f,0xfc,0x11,0xfe,0x41,
|
||||
0xf9,0x3a,0xf3,0x6e,0xa8,0x29,0x8d,0xe8,0x18,0xb0,0x28,0x3f,0x3c,0x45,0x57,0xc6,
|
||||
0xd1,0xa5,0x52,0x62,0x89,0xef,0xd0,0xbb,0xdd,0xa6,0x7e,0x4b,0x64,0xac,0x48,0x53,
|
||||
0x7c,0x3c,0x83,0x18,0xfd,0x4f,0x75,0x98,0xef,0x66,0x48,0x3d,0xfe,0x2a,0x16,0x77,
|
||||
0x48,0x8f,0x9e,0xa2,0x0b,0x0b,0xb9,0xc1,0x50,0x01,0x3b,0x76,0x35,0x88,0xa1,0x95,
|
||||
0x62,0xdd,0x3f,0xf9,0x25,0x34,0x5e,0x24,0x97,0x13,0x0d,0x06,0x57,0x58,0xa5,0x88,
|
||||
0xd3,0x7c,0xfa,0x76,0x83,0xae,0x58,0x58,0xd7,0x3b,0x8c,0x56,0x69,0x49,0xba,0xec,
|
||||
0x91,0x2f,0x37,0xc3,0xfc,0x73,0xf2,0x6a,0x29,0xa1,0x8f,0x99,0x7c,0x45,0xe9,0x02,
|
||||
0xd6,0xf0,0x32,0x48,0xc3,0x3f,0x4c,0x40,0x67,0x9b,0x0b,0x69,0x59,0x98,0x07,0x92,
|
||||
0x2e,0x60,0x6d,0x8a,0x2f,0xe6,0x0f,0x1a,0x4b,0x2c,0xd5,0x79,0xbe,0x1a,0x5f,0x44,
|
||||
0x58,0xc0,0x77,0xf1,0x22,0xb2,0x7c,0x74,0x09,0x29,0x9d,0x82,0xd0,0x16,0x82,0xe3,
|
||||
0xd5,0x81,0xda,0x4e,0x17,0x99,0x11,0xe1,0x60,0x33,0x7c,0xa2,0x80,0x71,0x09,0x1d,
|
||||
0x71,0x01,0x4f,0xff,0x69,0x81,0xbc,0xc3,0x0b,0xf5,0x7a,0x25,0x87,0x6a,0x74,0x75,
|
||||
0x3a,0x4d,0x20,0x78,0x8a,0xe4,0x42,0x75,0xe8,0x98,0x80,0x31,0x8a,0x6e,0xb4,0x50,
|
||||
0xf8,0xb4,0x2c,0x1f,0xfa,0x27,0x0a,0x18,0xec,0x73,0xe5,0x72,0x79,0xbd,0x26,0xe0,
|
||||
0x62,0xd1,0xd8,0x15,0xf2,0x7c,0x29,0xa3,0x40,0xe0,0x14,0xdd,0xa5,0xbb,0x12,0xb7,
|
||||
0x53,0x6c,0x11,0xf0,0x72,0xc9,0x91,0x35,0xbc,0x2b,0x27,0xc7,0x05,0x02,0x2b,0x40,
|
||||
0x57,0xe8,0x74,0xfd,0x21,0x20,0x43,0xf7,0xa2,0xd1,0x98,0x2a,0x37,0x32,0x99,0x12,
|
||||
0x0d,0x90,0xfa,0x4b,0xc4,0x0d,0x38,0xd0,0x32,0xde,0xa4,0xc6,0x57,0x11,0x4a,0x7e,
|
||||
0x0b,0xbc,0x59,0xd2,0xf0,0x6f,0x26,0xac,0xba,0x01,0x07,0xaa,0x16,0xe8,0x2e,0x3a,
|
||||
0x24,0xdc,0x21,0x37,0x52,0x4b,0x72,0xfd,0xd2,0x0a,0xd0,0x95,0xe6,0x47,0x3a,0x95,
|
||||
0xcd,0x03,0x1d,0xf5,0xfa,0xbc,0xb5,0x4a,0x8a,0xdb,0x5f,0xa8,0x80,0x23,0xae,0xb0,
|
||||
0xa1,0x1e,0x8a,0x46,0x45,0x7c,0x3f,0x29,0x37,0x90,0xee,0x5c,0x13,0x13,0xb0,0xe3,
|
||||
0xb7,0x42,0xd4,0x75,0xc8,0xf4,0xef,0x52,0xb9,0x81,0x74,0xfb,0x95,0x68,0xd0,0xce,
|
||||
0xdf,0x4a,0x62,0x6a,0x45,0xd0,0xf5,0xf7,0xc7,0xe4,0x06,0x6a,0x14,0x5f,0x6e,0xd0,
|
||||
0x11,0x57,0xd0,0x58,0xe2,0x0e,0x17,0x90,0x2a,0x35,0x8e,0x6e,0xeb,0x14,0x01,0x96,
|
||||
0x1b,0x29,0xa7,0x67,0x01,0x0f,0x01,0xfb,0xa3,0x72,0x0b,0x38,0xc1,0x87,0x13,0x88,
|
||||
0x8b,0xe1,0xd5,0xf5,0xaf,0x91,0x7b,0x78,0x0d,0x6b,0xaf,0xd4,0x38,0xbe,0xb5,0x93,
|
||||
0x96,0x30,0x11,0x57,0xc0,0x84,0x96,0xc0,0x39,0xc2,0xeb,0xbf,0x4c,0x6a,0x9c,0x9a,
|
||||
0x14,0x13,0x70,0xc8,0xd5,0xf0,0xea,0x5a,0x94,0xdd,0x9b,0x98,0xb0,0xbb,0x3e,0xfe,
|
||||
0xc8,0x4a,0x8a,0x06,0x08,0x80,0x2e,0x91,0x09,0xfd,0x00,0x2f,0xdf,0xc7,0x2b,0xf8,
|
||||
0x8f,0x76,0x81,0xf7,0x5a,0x69,0xa2,0x01,0xe6,0x43,0xee,0x2c,0xad,0x4c,0xdd,0x32,
|
||||
0x41,0x78,0x13,0xe9,0xef,0x48,0x0d,0x4b,0x1a,0x05,0xe2,0xd2,0x9d,0x9c,0xa6,0xf6,
|
||||
0x09,0xbc,0x74,0x5a,0xea,0x1b,0x69,0x9a,0xb1,0x82,0x71,0x0b,0x4c,0xa8,0x8a,0xb1,
|
||||
0xa5,0x3b,0x20,0x06,0x65,0x86,0x69,0xec,0x5f,0x28,0xe4,0xfa,0xc3,0x00,0x0a,0x69,
|
||||
0xba,0xff,0x26,0x9d,0xde,0x25,0x33,0xca,0x88,0x6f,0x3e,0xe2,0x0e,0x55,0x5d,0xcf,
|
||||
0x0b,0xbc,0xf4,0xb7,0x64,0x46,0xe1,0x4d,0xe4,0xa9,0x24,0x18,0xa8,0xba,0x84,0x65,
|
||||
0xea,0x50,0x5a,0xe8,0xbb,0x32,0xa3,0x54,0xc3,0x3f,0xd5,0x25,0x2c,0x53,0x4b,0x06,
|
||||
0xdf,0xb1,0x6e,0x31,0x68,0x90,0xc6,0x37,0x90,0xbb,0xff,0x2c,0x0a,0xbd,0xc6,0x4f,
|
||||
0x18,0x49,0x07,0xce,0x91,0x19,0xa5,0x89,0x06,0xd8,0x86,0xc7,0xc9,0x9c,0x91,0x0e,
|
||||
0x8c,0xd3,0x1d,0xb0,0x32,0xdf,0x4b,0x15,0xfe,0xa9,0x6e,0x51,0xd5,0xf5,0x7c,0x00,
|
||||
0xe1,0xd2,0x81,0xc0,0xa0,0xc4,0x20,0x7c,0xa8,0x11,0x26,0xa0,0x5b,0x50,0x16,0x1d,
|
||||
0x40,0xbc,0xf1,0xf1,0x40,0x60,0x97,0xc4,0x20,0x8e,0xef,0x54,0x3b,0x1e,0x67,0xb4,
|
||||
0x34,0x4e,0xcf,0x9f,0x08,0xf8,0x65,0x1a,0x8c,0xc6,0x05,0xd2,0x8e,0xa7,0x19,0x69,
|
||||
0x78,0xf3,0x7a,0x00,0x5e,0x67,0xcb,0x8c,0x4a,0x92,0x81,0xaa,0x4b,0x4c,0x0d,0x3a,
|
||||
0x23,0x40,0x78,0xfe,0x0f,0x48,0x8c,0x21,0xff,0xda,0x12,0x5e,0x5d,0xff,0xc8,0x38,
|
||||
0x3d,0x7f,0xcc,0xff,0x21,0x99,0x41,0xf4,0x08,0x97,0xf6,0xf0,0x1d,0xf0,0xe3,0xdd,
|
||||
0xf5,0x40,0xa8,0xae,0x7f,0x0c,0xe7,0x5f,0x7b,0x1e,0xa6,0xb5,0x2c,0xfc,0xf3,0xcb,
|
||||
0x9c,0x22,0xa1,0x7f,0x53,0xaa,0x5b,0x48,0x0d,0xd2,0xc6,0x19,0xcf,0xdf,0x2b,0x33,
|
||||
0x08,0x0d,0x54,0x5d,0x22,0x5a,0xa5,0x5f,0xfa,0x59,0x32,0x0d,0x86,0xf2,0xcf,0x35,
|
||||
0xa2,0x46,0xfd,0x5a,0xf0,0x49,0x34,0x18,0x7e,0x76,0x9a,0x7b,0x48,0x0d,0x3a,0xe8,
|
||||
0xe7,0xc7,0xf3,0xbd,0x5f,0x66,0x90,0xda,0xbe,0xa7,0x09,0x2e,0x13,0x9e,0xbf,0x4f,
|
||||
0x66,0x05,0xa3,0xb6,0x2f,0xfd,0xf4,0x2a,0x3f,0xba,0xa8,0x4f,0xaa,0xc1,0x00,0xa1,
|
||||
0x6b,0x40,0xab,0xb5,0x09,0x1f,0x5e,0x09,0x92,0x68,0x30,0x6a,0x3b,0x1f,0x67,0x79,
|
||||
0x9d,0xbf,0x82,0x80,0x95,0x5e,0x99,0x41,0x6d,0x7c,0x58,0xe4,0xd6,0xd9,0x59,0x8c,
|
||||
0xef,0xec,0x87,0xd7,0x3f,0x04,0x9f,0xf9,0xda,0x36,0x1d,0x02,0xb6,0xd9,0xca,0x6c,
|
||||
0xe5,0xf7,0x12,0x63,0xd4,0x36,0x3e,0x0c,0xb4,0x4a,0x4f,0x46,0xab,0x54,0x24,0x56,
|
||||
0x30,0xf4,0x58,0xda,0xb6,0xa9,0x8f,0x9e,0xfd,0xd9,0xf7,0xa2,0xc4,0x90,0x76,0xc6,
|
||||
0x57,0x7f,0x67,0xa5,0x82,0x80,0xb3,0xea,0xba,0x47,0xb4,0xf7,0x89,0xc3,0x1f,0xa7,
|
||||
0x27,0x07,0x56,0x2a,0x12,0x0d,0xa6,0xad,0xfe,0x1d,0x60,0x3c,0x99,0x06,0xa3,0xba,
|
||||
0xc5,0x72,0x24,0x2d,0x0b,0x3e,0x89,0x06,0xd3,0x56,0xc0,0xaa,0xe0,0x93,0x68,0x30,
|
||||
0xed,0x0c,0xaf,0xae,0x5f,0xc9,0x4f,0x4e,0x7d,0xa9,0xad,0xdf,0x54,0x42,0x0f,0xe2,
|
||||
0x83,0x85,0x2b,0x73,0x12,0x0d,0xa6,0xbd,0xfe,0xfd,0x6c,0xae,0x32,0x0c,0xfe,0x49,
|
||||
0x34,0x98,0xf6,0xea,0x20,0x3e,0xb7,0x77,0x6e,0x6e,0x38,0xe2,0x35,0x88,0x8d,0x96,
|
||||
0xf0,0xb9,0xea,0xc3,0x73,0x73,0x3b,0xbc,0x06,0xb1,0x51,0x6d,0x0e,0x35,0x34,0xf7,
|
||||
0x3d,0xaf,0x41,0xec,0xf4,0x29,0x08,0xee,0xf0,0xf0,0xd0,0x1f,0xbc,0xe6,0xb0,0xd3,
|
||||
0x75,0xc3,0x43,0xf8,0x5c,0xf0,0x2f,0x79,0xcd,0x61,0xa7,0x47,0xe6,0x00,0x70,0x6e,
|
||||
0xee,0x26,0xaf,0x39,0xec,0x74,0x90,0x1f,0x9b,0x7f,0x83,0xd7,0x1c,0x76,0x5a,0x1e,
|
||||
0x22,0xc0,0x61,0xd5,0x6b,0x10,0x1b,0xd5,0x00,0x0e,0x13,0x70,0xd0,0x6b,0x10,0x3b,
|
||||
0x9d,0x4b,0xf1,0x1d,0x92,0xbc,0x0e,0xa6,0x7d,0x7a,0xf7,0x10,0x7d,0xac,0xc4,0xab,
|
||||
0x5e,0x73,0xd8,0xe9,0x11,0xa0,0x83,0xaf,0x8e,0x6d,0x30,0x5b,0x47,0xf0,0x63,0x4d,
|
||||
0x46,0x3e,0xef,0x35,0x87,0x9d,0xf6,0xe1,0x67,0x9a,0x8c,0x8c,0x74,0x6c,0x83,0xa9,
|
||||
0xe2,0x87,0xc2,0x8c,0x8c,0x0c,0xa9,0x5e,0x83,0xd8,0x69,0x6e,0x81,0x0c,0x74,0xe1,
|
||||
0x42,0x6b,0x67,0xf4,0x14,0xd2,0x2d,0x2c,0xee,0xf2,0x9a,0xc3,0x4e,0xcf,0x2d,0x2c,
|
||||
0x2c,0xc2,0xaf,0x57,0xbd,0xe6,0xb0,0xd3,0x6d,0x88,0xb7,0xb8,0xf8,0x05,0xaf,0x39,
|
||||
0xec,0x74,0x60,0x91,0x00,0xff,0xee,0x35,0x87,0x9d,0x96,0xe8,0x23,0xa7,0x46,0x5e,
|
||||
0xf7,0x9a,0xc3,0x4e,0x1a,0x14,0x07,0x20,0x2e,0xa8,0x5e,0x83,0xd8,0xe9,0x4e,0xfa,
|
||||
0xc8,0xae,0xc5,0x8e,0x6d,0x30,0xef,0x65,0xbe,0x5d,0x5e,0x73,0xd8,0x69,0x27,0xd2,
|
||||
0x75,0x75,0xc9,0xec,0x11,0xb5,0x55,0x87,0xd9,0xbf,0x37,0xbc,0xe6,0xb0,0xd3,0x3e,
|
||||
0x74,0xaf,0x4b,0xf9,0xab,0xd7,0x1c,0x76,0xaa,0x76,0x75,0x2d,0xce,0x2f,0xce,0x77,
|
||||
0x70,0x83,0x01,0xff,0xe6,0xe7,0x17,0xbc,0xe6,0xb0,0xd5,0x9d,0x5d,0xf3,0x18,0xe1,
|
||||
0x88,0xd7,0x1c,0x76,0xfa,0xe1,0x3c,0xa9,0xd7,0x6b,0x0e,0x3b,0xed,0xec,0x42,0x29,
|
||||
0x9d,0xdb,0x60,0x08,0x6f,0x7e,0x8b,0xd7,0x1c,0x76,0x3a,0x84,0xd1,0xed,0x52,0xfe,
|
||||
0xe1,0x35,0x87,0x9d,0x56,0x00,0x0e,0xf4,0x76,0xaf,0x39,0xec,0xa4,0xcd,0x2b,0x18,
|
||||
0xdf,0x53,0xbc,0xe6,0xb0,0xd5,0xf9,0xe0,0x1f,0x30,0x76,0xd0,0x67,0x8e,0x36,0x6a,
|
||||
0x83,0x42,0x01,0xde,0xe1,0x35,0x87,0x9d,0x2e,0x98,0xa7,0x8f,0xba,0xed,0xd8,0x4d,
|
||||
0xe8,0xff,0xf0,0x47,0xf1,0xfe,0xcb,0x6b,0x0e,0x3b,0xed,0x0b,0xd0,0x95,0xc6,0x1f,
|
||||
0xf4,0x9a,0xe3,0x7f,0x46,0x53,0xa6,0xb8,0x66,0xdb,0xf9,0x01,0x94,0xc7,0xd6,0xb3,
|
||||
0x23,0x0a,0x74,0x64,0xfe,0x5a,0xbc,0x71,0x10,0xfe,0xe5,0x33,0x90,0x7d,0x8b,0xbf,
|
||||
0x53,0x3d,0xe6,0x12,0x7a,0x4e,0x69,0xd0,0x49,0x70,0xe2,0x76,0x35,0xfd,0xed,0x44,
|
||||
0xd5,0x6b,0x34,0xd4,0x2d,0xca,0x2a,0x01,0xd6,0x4e,0xfe,0x5b,0x27,0x6c,0xa2,0xd6,
|
||||
0xae,0x5f,0xcd,0xa7,0xfc,0x51,0x3f,0x2c,0xfe,0xb6,0xc3,0x6b,0x3a,0x5d,0xdf,0x0f,
|
||||
0x18,0xaf,0x47,0xf9,0x06,0x65,0xf8,0xda,0x04,0xad,0xf9,0x78,0xfd,0x90,0xa2,0xbc,
|
||||
0x7c,0x25,0xfc,0xc7,0x5b,0xbc,0xa6,0xd3,0xf5,0x4b,0x14,0xa5,0x61,0x2b,0x68,0x0c,
|
||||
0xfc,0xbc,0x6a,0x09,0x27,0x8f,0x47,0x95,0x0e,0x98,0x82,0x6b,0xf3,0xca,0xc9,0x6a,
|
||||
0xc3,0xbf,0x1c,0x54,0x94,0xb7,0xc1,0x0a,0x06,0x26,0x8f,0xcf,0x01,0xa9,0x37,0x54,
|
||||
0x75,0x1d,0x50,0xd6,0xac,0xe3,0xcf,0x52,0x4e,0x84,0xd7,0x09,0x30,0x8d,0x00,0xa9,
|
||||
0x27,0x50,0x16,0xc1,0x54,0x1b,0x59,0xf5,0x4f,0x3b,0x95,0x2e,0x75,0x83,0x72,0x9c,
|
||||
0x8e,0xa4,0xc7,0x79,0x80,0xd4,0xa0,0x0b,0x94,0x93,0xf1,0x21,0x56,0x79,0x7c,0x10,
|
||||
0x98,0xd0,0x4f,0x14,0x65,0xef,0xd3,0x50,0x24,0xd8,0x06,0x3d,0x5f,0xa3,0xde,0x85,
|
||||
0x35,0x0a,0x81,0xec,0xd5,0xac,0x7d,0xa6,0xf7,0x4d,0xf0,0x50,0xd7,0xbf,0xae,0x74,
|
||||
0x79,0xcd,0xb7,0x01,0x13,0xad,0xaa,0x28,0xaf,0xd6,0xe6,0x2d,0x7c,0xbb,0xa0,0xeb,
|
||||
0xc0,0x34,0x72,0x98,0x28,0x3d,0xd5,0xe3,0x54,0x02,0xd7,0x2b,0x7f,0xab,0x5a,0x3b,
|
||||
0xf4,0x55,0xcb,0xc0,0x48,0xbd,0xd1,0xeb,0x06,0x43,0xfe,0xe9,0xb7,0x2b,0xef,0xd0,
|
||||
0x1a,0xfc,0x43,0x47,0xb1,0x78,0x3c,0xf7,0xef,0x6a,0x2a,0xd1,0xbb,0xa0,0xa5,0x40,
|
||||
0x23,0xec,0x67,0xa5,0xfb,0xf7,0xea,0xfd,0xf8,0x49,0x45,0x3f,0xf2,0x3e,0xff,0x76,
|
||||
0x2a,0x27,0xe9,0x08,0x72,0x0a,0x34,0x93,0x35,0xb3,0xd9,0x06,0x2c,0x6e,0x6f,0xb5,
|
||||
0x9f,0x16,0x01,0xd0,0x05,0xd5,0xab,0x95,0x93,0xd4,0xc6,0xff,0x83,0x90,0x7b,0x3e,
|
||||
0x01,0x43,0x21,0xfc,0x99,0x66,0x91,0xc1,0x5b,0xd7,0xcc,0x66,0xb0,0x8a,0xf9,0xb2,
|
||||
0x37,0x54,0x16,0x5d,0xaf,0x74,0x0d,0xea,0xb8,0x1e,0x00,0xd2,0xc6,0x99,0xb8,0xfa,
|
||||
0x02,0x50,0x7b,0x03,0x65,0xd1,0xd3,0x8a,0x72,0xca,0x3d,0xa3,0xe8,0xd4,0x59,0x8a,
|
||||
0xf2,0x97,0x6b,0xeb,0x9f,0x1b,0xfc,0xd8,0xed,0x0a,0x4d,0x22,0x1e,0x6b,0x19,0xfb,
|
||||
0x09,0xf4,0x96,0x13,0x74,0x08,0xb0,0xd2,0x55,0x17,0xfe,0x7b,0x27,0x6c,0xb1,0xdd,
|
||||
0xc5,0x2d,0xef,0xad,0x7a,0xed,0x85,0xd5,0x0b,0xe9,0xe3,0x55,0xaf,0xe1,0x40,0x2b,
|
||||
0x3c,0xf1,0x42,0x27,0xb9,0x65,0x7e,0x15,0x9f,0xdc,0xb3,0x1a,0xdc,0xd2,0x32,0xf9,
|
||||
0x86,0xcd,0xe5,0xa3,0x0d,0x80,0x27,0x49,0x3e,0x0b,0xc6,0x35,0x55,0x33,0xf8,0x6c,
|
||||
0x15,0x15,0xfe,0xb6,0xcd,0x17,0x35,0x35,0xed,0xf4,0x83,0x10,0xff,0xbf,0xb4,0xd2,
|
||||
0xe2,0xa7,0x1e,0xb8,0xad,0x7d,0x9c,0x84,0x1d,0xbb,0x07,0x28,0xd6,0x83,0x9d,0xd0,
|
||||
0x01,0x8f,0x2c,0x6e,0x3b,0x27,0x78,0x8d,0x61,0xab,0x4b,0x88,0xaf,0x63,0xdf,0x64,
|
||||
0x10,0xf3,0x4a,0x07,0xcc,0xc0,0x36,0xfa,0x0a,0x27,0xa0,0xd7,0x27,0x20,0xb6,0x12,
|
||||
0x9b,0xe4,0x83,0x5e,0x73,0xd8,0xe9,0x90,0x38,0x95,0xf3,0x9a,0xc3,0x4e,0x2b,0xcc,
|
||||
0xe7,0xfd,0x0a,0xda,0x46,0xe2,0x84,0xb3,0x73,0x1b,0xcc,0x59,0x62,0x5d,0xd8,0xa9,
|
||||
0xda,0xd0,0xe1,0x0d,0xe6,0x02,0xe2,0xf3,0xfc,0x0c,0xdd,0x56,0x6f,0x76,0x78,0x83,
|
||||
0x39,0x28,0xf6,0x62,0xbc,0xe6,0xb0,0xd3,0x52,0x87,0x37,0x98,0x1a,0xf3,0x79,0xbe,
|
||||
0x05,0x6d,0xab,0xeb,0x3b,0xbc,0xc1,0x3c,0x6e,0x9c,0x78,0x5a,0xf5,0x5f,0x2d,0xf1,
|
||||
0x8b,0xcc,0x76,0x96,0x00,0x00,
|
||||
0x1f,0x8b,0x08,0x08,0x9c,0x03,0x94,0x3f,0x00,0x03,0x48,0x6f,0x6c,0x7a,0x48,0x65,
|
||||
0x72,0x5f,0x4c,0x6f,0x67,0x6f,0x5f,0x33,0x32,0x30,0x78,0x32,0x34,0x30,0x5f,0x6d,
|
||||
0x69,0x74,0x74,0x65,0x5f,0x31,0x36,0x67,0x2e,0x62,0x6d,0x70,0x00,0xed,0x9c,0xfd,
|
||||
0x6b,0x1b,0x47,0x1a,0xc7,0x9f,0xae,0xa2,0xe8,0x8c,0x4b,0x42,0xff,0x03,0xb1,0x26,
|
||||
0x2f,0x26,0xa5,0x67,0x2c,0x52,0xd7,0xf8,0xb8,0x1e,0xb1,0xfb,0x62,0xc2,0x81,0xa9,
|
||||
0xa3,0xe6,0x42,0x43,0x02,0x21,0xf1,0x35,0x57,0x38,0x4c,0x8a,0xbd,0x71,0x1d,0xe2,
|
||||
0xa3,0x70,0x89,0x4c,0x8f,0x62,0xdc,0x4b,0xed,0x8d,0x84,0xfd,0xd3,0x71,0x77,0x0e,
|
||||
0x94,0x90,0x50,0x7c,0x3a,0x09,0x29,0xb4,0xe4,0x87,0x9c,0x85,0xfc,0x17,0x14,0x42,
|
||||
0x8a,0x31,0xc5,0x62,0xd7,0xb4,0x04,0x63,0x24,0x76,0xee,0x79,0x66,0x66,0x57,0x2b,
|
||||
0xeb,0xd5,0x24,0x75,0x0b,0x9d,0x2f,0x28,0xfb,0x36,0x3b,0xf3,0xd9,0x67,0xe6,0x79,
|
||||
0x66,0x76,0x66,0x9d,0x13,0xbf,0x1f,0xff,0x1c,0xb8,0xc6,0xf1,0x77,0x14,0x7f,0xbf,
|
||||
0x7b,0x01,0x60,0x13,0xb7,0x2f,0xc0,0x3e,0x70,0x15,0x6b,0x17,0x3f,0xbf,0x5e,0x7a,
|
||||
0xe9,0x25,0xd0,0x75,0x1d,0x22,0x91,0x08,0x0c,0x0c,0x0c,0x40,0x34,0x1a,0x85,0x91,
|
||||
0x91,0x11,0x30,0x0c,0x03,0x62,0xb1,0x18,0x98,0xa6,0x09,0x4b,0x4b,0x4b,0x90,0x4a,
|
||||
0xa5,0x20,0x97,0xcb,0xc1,0x37,0xdf,0x7c,0x03,0x96,0x65,0x01,0x63,0x8c,0x7e,0x4a,
|
||||
0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
|
||||
0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
|
||||
0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0xbf,0x6c,0x95,0x72,
|
||||
0xf9,0x9f,0x1a,0xa1,0xa1,0xbe,0x87,0xd0,0x4f,0x8d,0xd0,0x50,0x9b,0x8a,0xef,0x99,
|
||||
0xa4,0xf8,0xb8,0x9c,0xdd,0xdf,0xe1,0xd8,0xb4,0x21,0x3e,0xb1,0x87,0xb2,0xaa,0x53,
|
||||
0xd9,0x55,0xa7,0x76,0xc8,0xb2,0x5b,0x48,0xe9,0xd8,0x56,0xd3,0x8c,0x2a,0xf5,0x34,
|
||||
0x0c,0x10,0xc8,0x72,0xbe,0xfb,0x00,0xbf,0xa1,0x3c,0x70,0x0b,0x93,0xec,0x07,0x9d,
|
||||
0x6b,0x75,0x5b,0x3f,0xc6,0x9c,0xaf,0x00,0x12,0xf7,0xf4,0x29,0xa7,0x5b,0xb7,0xd9,
|
||||
0x6c,0x47,0x96,0x6d,0x77,0x77,0x32,0xf6,0xad,0x7e,0x8e,0x15,0xaf,0x80,0xb6,0x3a,
|
||||
0x7b,0x88,0x3d,0x04,0x71,0xf3,0xc6,0x10,0x40,0x90,0xe9,0x3a,0xe6,0xf8,0x8e,0x3e,
|
||||
0xc5,0x66,0x71,0xe7,0x89,0xfe,0x3a,0x63,0x9f,0xe9,0xbf,0xc6,0x47,0xc0,0x8b,0x81,
|
||||
0x38,0x2b,0xe9,0x47,0xb0,0x14,0xbd,0xa3,0x25,0x52,0xfa,0x93,0x1d,0x02,0xdc,0x84,
|
||||
0x20,0xee,0x68,0x98,0xef,0x53,0xfe,0x67,0x3a,0x18,0x70,0xb8,0xec,0x2d,0x68,0x67,
|
||||
0x5b,0xf4,0x10,0x33,0x30,0xe5,0xe0,0x31,0x9b,0xd1,0x16,0xd9,0x76,0xb8,0x8d,0xb1,
|
||||
0x27,0x70,0x0e,0x7f,0x00,0x47,0x46,0x83,0xec,0x01,0xdd,0x7c,0x9d,0xb1,0x2e,0x20,
|
||||
0x3e,0x00,0xcc,0x67,0x08,0xce,0xb3,0x19,0x58,0xc4,0x9c,0x11,0x6d,0x16,0x0e,0x32,
|
||||
0xe7,0x0a,0x2f,0x8b,0x95,0x20,0x68,0x33,0x07,0xb4,0x16,0xf9,0x0e,0x75,0x03,0x1c,
|
||||
0x20,0x4e,0x2d,0x1a,0xc6,0xbc,0xb1,0x88,0x4e,0x73,0x8c,0xf3,0x91,0xfd,0xec,0x6d,
|
||||
0xe4,0xdb,0x84,0x80,0x89,0x25,0x2f,0x56,0xf1,0x39,0x43,0xd0,0x33,0x07,0xd8,0x34,
|
||||
0x1e,0xf7,0x24,0x47,0xf1,0x66,0x7c,0xb6,0xd0,0x87,0x15,0x7c,0x59,0xf6,0xd8,0xe5,
|
||||
0x2b,0x02,0x4c,0xcc,0x0d,0x69,0xc4,0xc7,0x5a,0xe7,0xeb,0x4d,0x27,0xc3,0xf0,0x22,
|
||||
0xf1,0xf5,0x59,0x33,0xa0,0x61,0x2e,0x58,0x7e,0x61,0x88,0xfd,0x80,0xb9,0x99,0xa6,
|
||||
0xc9,0xf9,0x1e,0x40,0x1f,0xbb,0x5f,0x93,0xaf,0x0b,0x32,0xf8,0x0b,0xb1,0xb5,0x3c,
|
||||
0xde,0xa0,0xb1,0xaf,0x20,0x30,0x55,0x34,0xed,0xda,0x7c,0x6b,0x64,0xb7,0xf5,0x8e,
|
||||
0xdd,0xf1,0x15,0x31,0xd5,0xd7,0x10,0xb2,0x91,0x8f,0x8a,0x00,0xcc,0xa5,0x1d,0xef,
|
||||
0x2e,0xb0,0x62,0x17,0xbc,0x4c,0x09,0x88,0xef,0x2e,0x16,0x83,0x6c,0x8b,0xac,0x8a,
|
||||
0x2f,0x0c,0x96,0xbd,0x4e,0xae,0x45,0x09,0xc1,0x19,0xc5,0x27,0x45,0x27,0xa8,0xcd,
|
||||
0x77,0x17,0xae,0x3b,0xcc,0xd9,0xd8,0x1d,0x9f,0x40,0x08,0xac,0x6e,0xe2,0xd3,0xb3,
|
||||
0x52,0x17,0xac,0x8e,0x52,0x76,0xa4,0xef,0x09,0x46,0xf0,0x3d,0x80,0x29,0xaa,0xf7,
|
||||
0x6c,0x2d,0xfb,0x61,0x53,0xea,0xe2,0xa1,0x89,0x1e,0x2e,0x8c,0x4c,0xa8,0x1d,0x7c,
|
||||
0x07,0x05,0xdf,0x90,0xfc,0xfb,0xb1,0x12,0x85,0xb2,0xdd,0xf0,0x6d,0x71,0xbe,0x00,
|
||||
0xde,0x34,0x04,0xd9,0x51,0x78,0xdd,0xe2,0x61,0x60,0x9b,0x0c,0x26,0xf8,0x1e,0x63,
|
||||
0xfd,0x62,0xf6,0xd5,0x7c,0x74,0x12,0xc9,0x89,0xaf,0x70,0x17,0x9f,0x10,0xe8,0x41,
|
||||
0xea,0xf0,0x61,0x85,0x60,0xbe,0x8e,0x6d,0xef,0x9a,0x0f,0x5b,0xb6,0x2d,0xe2,0x33,
|
||||
0xfa,0xdb,0x90,0xf0,0xdb,0x73,0x0c,0x63,0x86,0x26,0xf9,0xc8,0x7f,0x23,0xc0,0xf9,
|
||||
0x58,0x25,0xdf,0x63,0x74,0xab,0x48,0x18,0xeb,0xf7,0x1d,0xbc,0xe7,0x98,0x00,0xab,
|
||||
0xe2,0x13,0xf5,0xbb,0x1d,0x16,0x39,0x4f,0xb9,0xf5,0xdb,0x2a,0xde,0x32,0x70,0x17,
|
||||
0xad,0xe2,0x73,0x78,0x31,0xc4,0xe7,0xdc,0xe5,0xe7,0x6a,0xd8,0xaf,0xc8,0x93,0x87,
|
||||
0xc8,0xd8,0x10,0xca,0xd4,0xe1,0x93,0xf6,0x93,0x7c,0x8b,0xbb,0x6b,0x7f,0x5b,0x14,
|
||||
0xb2,0xce,0x33,0x5e,0xbf,0x16,0xaf,0xdf,0xdf,0x5a,0xd6,0x77,0xbc,0x9e,0xbe,0x86,
|
||||
0xe0,0x2a,0xe7,0x63,0x8e,0x95,0x5b,0xa1,0xaa,0xe4,0x7c,0x78,0x6d,0x1b,0x2d,0x6e,
|
||||
0x7d,0x4b,0x0f,0xc1,0xac,0x95,0xd4,0x50,0x08,0xdb,0x7e,0xe0,0xba,0xcd,0xca,0xf5,
|
||||
0x3b,0x45,0xed,0xd5,0xc7,0x37,0x03,0x07,0x4b,0x43,0xf4,0x77,0x8c,0x8f,0x21,0x5b,
|
||||
0x22,0xb4,0x96,0xf9,0xee,0x8a,0xb0,0xbc,0x49,0x55,0x87,0x4d,0x64,0x75,0x06,0x5e,
|
||||
0xa1,0x16,0xb9,0xc8,0xab,0x96,0xa3,0xb4,0x8b,0x84,0x5e,0xfb,0x43,0x2c,0xf2,0x28,
|
||||
0x6e,0x3f,0x92,0xc3,0xf9,0x8e,0x51,0x71,0x5d,0xf0,0xba,0xe0,0x3b,0xcf,0xb8,0xaf,
|
||||
0x08,0xbe,0x03,0xd4,0x84,0x0e,0xa2,0x73,0xe3,0xa5,0x07,0x80,0xed,0x0f,0x56,0x5b,
|
||||
0x8f,0x2f,0x64,0xf5,0x04,0xef,0x47,0x6c,0x8c,0x2d,0x60,0x3f,0xa4,0xec,0xee,0x63,
|
||||
0x0e,0xbc,0x9c,0x03,0x82,0x8f,0xb2,0x0a,0xc3,0xaa,0xe4,0x7b,0x19,0xf9,0xb1,0x92,
|
||||
0xc9,0xab,0xa9,0xb7,0x75,0xb0,0xb2,0x67,0x84,0xe1,0x46,0xe9,0x66,0x7e,0x9f,0xcd,
|
||||
0x8d,0x48,0x7c,0x9b,0xd0,0x46,0x0f,0x47,0xf1,0x25,0xc3,0x9c,0x19,0x40,0xff,0xc5,
|
||||
0x2b,0x25,0x08,0xb4,0xda,0xbf,0xf5,0xd8,0x62,0x1b,0x9c,0x18,0xc2,0x46,0xeb,0x74,
|
||||
0x69,0xd7,0x1e,0xe1,0x76,0x3b,0x1a,0x1d,0xee,0xc2,0x6a,0xe4,0x7c,0x57,0x4e,0xe7,
|
||||
0x6e,0xe1,0xbe,0xe4,0x03,0xea,0x4c,0x42,0x26,0xc0,0x02,0xdb,0xd2,0x26,0xb1,0xe2,
|
||||
0x0f,0x60,0x60,0x0e,0x26,0x96,0xcf,0xb2,0x6f,0x01,0x7a,0xe7,0xce,0x22,0x9a,0x76,
|
||||
0x66,0x8c,0xac,0x24,0xec,0x07,0x3d,0xb7,0x00,0x0d,0xbb,0x05,0xc1,0xdc,0x3d,0xde,
|
||||
0xbf,0x61,0x51,0x5d,0x44,0xdd,0x82,0x1e,0x43,0x20,0x23,0x38,0x35,0xd1,0xd2,0xc9,
|
||||
0x9b,0xbb,0xb1,0x05,0x6f,0xf1,0xc6,0x1c,0x14,0xf6,0x1b,0x85,0xe3,0x80,0x19,0x4a,
|
||||
0xbe,0x30,0x26,0xd5,0x00,0x0d,0x9f,0x21,0x43,0x0e,0x03,0xda,0x06,0x83,0xdf,0xa1,
|
||||
0xae,0x17,0xb9,0x9b,0x84,0xdb,0x91,0x8f,0x92,0x04,0x6c,0x97,0x8f,0xbb,0x2d,0x71,
|
||||
0x1d,0xc7,0xce,0x13,0xb7,0x1a,0x15,0xd6,0xd7,0x12,0xdf,0x03,0x19,0x8e,0x37,0xa1,
|
||||
0x13,0x8d,0x82,0x1d,0x10,0x0f,0x26,0x98,0xad,0xe4,0xe3,0xf6,0xc3,0x5a,0x41,0xa2,
|
||||
0xf3,0x92,0x2f,0xb4,0x8e,0x07,0x0b,0x33,0x3c,0x35,0x0f,0x1a,0x21,0x6c,0x0c,0x14,
|
||||
0x5f,0xf0,0x41,0x3e,0x03,0x7a,0x0e,0x00,0x1a,0x03,0x65,0xe8,0xb9,0x16,0x91,0xef,
|
||||
0x74,0x58,0xd0,0x7c,0x49,0x69,0x2d,0xe4,0x6b,0xc3,0x9b,0x5b,0x74,0x0f,0x97,0x6f,
|
||||
0xcb,0xb8,0xf6,0xdd,0x3b,0x87,0xa6,0x70,0xcf,0x59,0xeb,0xee,0x98,0xb4,0xd8,0xb6,
|
||||
0x41,0x9a,0x60,0x45,0x63,0x12,0x87,0x4d,0x63,0xdd,0x91,0x04,0xf7,0x4f,0x9b,0x2d,
|
||||
0x4f,0xd8,0x63,0x1d,0x7d,0xf6,0xf6,0x70,0x07,0x02,0x38,0x1b,0x51,0xfd,0x38,0x8e,
|
||||
0x5b,0x58,0x61,0x58,0xef,0xa1,0xed,0x97,0xdd,0xc7,0x27,0x31,0x59,0xe6,0xbe,0x7e,
|
||||
0x1a,0x8f,0x96,0x8d,0x55,0xb6,0x6e,0x2c,0x2c,0x77,0x1f,0xa7,0x21,0xa5,0x3d,0xa6,
|
||||
0x1f,0x5f,0xc0,0xad,0x31,0x59,0xfc,0x50,0xbf,0xd6,0x1a,0x1f,0xf7,0x7e,0xa9,0x62,
|
||||
0x5a,0x6c,0x93,0xa9,0xea,0x74,0xfc,0x9c,0x23,0xba,0x3c,0x56,0x8a,0x67,0x91,0x59,
|
||||
0xa4,0x2e,0xa5,0x56,0xc5,0xcd,0xa9,0x2c,0x3f,0x4c,0x66,0xc9,0x35,0xb2,0xee,0x69,
|
||||
0xc6,0x47,0xac,0xa9,0x2c,0x1f,0xb6,0xf2,0xfb,0x48,0x76,0xb1,0x46,0x11,0x75,0xf8,
|
||||
0xda,0x1c,0x7b,0x25,0xdb,0x5a,0x62,0xde,0x7f,0xb4,0x20,0x19,0xa6,0x9f,0x87,0x70,
|
||||
0x14,0xd0,0x31,0x2c,0x7a,0xf5,0xda,0x2a,0x9a,0x09,0x6f,0xdf,0xb5,0x5f,0x33,0x79,
|
||||
0x7c,0x49,0x73,0xb5,0x61,0xc2,0xe6,0xc2,0xa8,0x09,0x20,0xa2,0x6a,0x6d,0x79,0xf1,
|
||||
0x59,0x14,0xbc,0x3b,0xbe,0x51,0x1e,0xe7,0x9f,0x49,0x3f,0x70,0xbe,0xfa,0xc5,0x6e,
|
||||
0xf9,0xf8,0x76,0x6d,0xbf,0x99,0x67,0xe7,0x73,0x96,0x87,0x8f,0x4f,0x34,0xa8,0x05,
|
||||
0xbf,0xfd,0x70,0x38,0xba,0xe7,0xf6,0x6b,0x2a,0x9f,0xf3,0x38,0x63,0xd1,0x96,0xf8,
|
||||
0xa2,0x51,0xf9,0xc0,0x85,0xdc,0x2e,0x5f,0x27,0x9f,0x51,0xcd,0x5f,0x83,0xb9,0xac,
|
||||
0xea,0x17,0x68,0x25,0x25,0x25,0xa5,0x5f,0x9e,0xf6,0x36,0x42,0x3f,0x77,0xd5,0x9e,
|
||||
0x51,0x75,0x0a,0x49,0xe3,0x47,0xd7,0x55,0xb3,0xb9,0xe2,0x59,0xab,0xba,0x53,0x2a,
|
||||
0xde,0x82,0x3d,0x92,0x3e,0x10,0x69,0xa6,0xee,0x23,0xf1,0x1d,0x80,0xc5,0xa1,0xbd,
|
||||
0xc2,0x23,0xc0,0xa6,0x8a,0x44,0xae,0x55,0xe0,0xf1,0x19,0x8d,0x3d,0x93,0xf6,0xe6,
|
||||
0x48,0x63,0x5d,0x42,0xc2,0x41,0xff,0xb4,0xf9,0x95,0xbd,0xc4,0x03,0x38,0x6c,0x18,
|
||||
0x7f,0x6c,0xd0,0x48,0x47,0x46,0x2e,0x0e,0xf4,0xeb,0x9f,0x96,0xf9,0xd6,0xf7,0x16,
|
||||
0x0f,0xb4,0xf7,0x63,0x8d,0x74,0x13,0x09,0x07,0x22,0x9d,0xde,0x88,0xac,0xa8,0xef,
|
||||
0x31,0x1f,0xec,0x6f,0xc8,0x87,0x32,0x46,0x06,0xfa,0x5f,0x76,0x0d,0xf8,0xf5,0x9e,
|
||||
0xf3,0x35,0x31,0x20,0x6a,0xfc,0x52,0xff,0xab,0x72,0xc4,0xed,0xe8,0xe1,0xbd,0xe6,
|
||||
0x6b,0x6e,0xc0,0x98,0x71,0xb1,0x5f,0xce,0x7a,0xaf,0x77,0xef,0x3d,0x9f,0x76,0xb9,
|
||||
0x19,0xdf,0xcd,0xf1,0x8b,0xaf,0xf1,0x16,0xb8,0x1d,0xe9,0x6e,0x94,0x53,0xcf,0x84,
|
||||
0x11,0xfe,0x31,0x00,0xe7,0x9b,0x03,0xf6,0x0f,0x12,0xdf,0x53,0x1f,0x1f,0xfd,0x2f,
|
||||
0x73,0x74,0x33,0x6e,0x25,0x54,0x67,0x96,0xb1,0xe5,0x2e,0xef,0xaa,0xce,0xaf,0x68,
|
||||
0xba,0xee,0xed,0xbb,0xe5,0xc9,0x03,0xff,0xd6,0x4d,0xe1,0x65,0xe7,0xbf,0xa1,0x69,
|
||||
0x05,0xc7,0xc6,0xfb,0x5f,0x25,0x0f,0x59,0x1b,0xf6,0xf8,0xda,0x32,0x16,0x2d,0xd8,
|
||||
0x41,0x5b,0x9a,0x66,0x85,0x49,0x21,0xee,0x43,0xeb,0x3c,0xd7,0x5e,0xbc,0x4a,0x7a,
|
||||
0x02,0x67,0xf2,0x96,0xd4,0x9a,0x7b,0x6b,0x2f,0x9e,0x7a,0x40,0xcf,0xb3,0x60,0x59,
|
||||
0x5b,0x88,0x34,0xe9,0xa6,0x98,0x11,0xd9,0xd2,0x74,0x5c,0x27,0x1e,0x6e,0xba,0x37,
|
||||
0x34,0xad,0xe0,0xd8,0x8d,0x8b,0x27,0xc8,0x3b,0x6e,0x95,0xf9,0xda,0xb3,0xf4,0xfe,
|
||||
0x4c,0x19,0xca,0x55,0xc2,0x3e,0xe9,0xe2,0x7c,0xca,0xb7,0x37,0x2b,0x0e,0xbe,0x87,
|
||||
0x5e,0x2f,0x74,0x3e,0x2d,0xf3,0x31,0x3e,0xed,0x18,0x5a,0xa0,0xf9,0x05,0xd0,0xbc,
|
||||
0xb9,0x32,0xe2,0xcb,0x8a,0x39,0xed,0x84,0x38,0x14,0x6a,0xee,0x21,0xb1,0xf1,0x81,
|
||||
0x4f,0xb1,0xe8,0xb1,0x53,0x7a,0x5d,0xbe,0x45,0x46,0x6f,0xae,0xb6,0xc8,0xb6,0x37,
|
||||
0xe3,0xf1,0x49,0xc7,0xb7,0xec,0x2d,0xf7,0xd6,0xd7,0x7c,0x7c,0xdb,0x64,0xbf,0x6a,
|
||||
0x3e,0x2d,0xed,0xce,0xed,0x90,0xf6,0xb5,0xc0,0x77,0xea,0x24,0x3e,0xec,0x78,0x99,
|
||||
0x8f,0x32,0x9a,0xf1,0xf1,0x75,0x62,0x21,0x85,0x54,0x3c,0xed,0xf0,0x49,0x51,0xce,
|
||||
0xb7,0x92,0x4a,0xdd,0x13,0x7b,0x56,0x0a,0xf5,0xa5,0x7b,0xeb,0x91,0x4a,0x3e,0x78,
|
||||
0x8f,0x66,0xc9,0x31,0x71,0xaa,0xcc,0x17,0xca,0x33,0xe6,0x3d,0x4f,0x2b,0x0d,0xf0,
|
||||
0xc6,0xc8,0x80,0x5d,0x9b,0x2f,0xcd,0x67,0xd9,0x00,0xcb,0x72,0xb6,0x71,0x44,0x96,
|
||||
0xe1,0xcb,0x31,0x3d,0x44,0x95,0x34,0xcd,0x59,0xe8,0xa1,0x79,0x48,0x8b,0xc6,0x6a,
|
||||
0xb7,0x1a,0xf1,0x95,0x30,0xb1,0x39,0x2a,0xb2,0xc5,0xb6,0xd9,0x6e,0x33,0x77,0x09,
|
||||
0xb9,0x35,0xbe,0x9b,0x23,0xfd,0xd8,0xf6,0x8d,0x53,0xe1,0x7a,0x7c,0x18,0x7f,0x9c,
|
||||
0xa4,0x11,0x33,0x13,0xb6,0xb3,0x56,0xc1,0xc7,0x87,0x67,0x54,0xfa,0x5f,0x77,0xf2,
|
||||
0xed,0xf7,0xf1,0x15,0x2a,0xf9,0x5e,0xb4,0x65,0xab,0x11,0x6a,0xee,0x20,0xe8,0xc1,
|
||||
0x36,0x4b,0xce,0xf9,0xf8,0x32,0xb4,0xec,0x84,0x46,0x48,0xf3,0x49,0xb6,0x10,0xf2,
|
||||
0xad,0x63,0x6c,0x39,0x1d,0xe7,0x6b,0xa9,0x47,0xf0,0xaa,0xf0,0xd7,0x80,0x99,0xb1,
|
||||
0x7d,0x35,0xc5,0x9b,0x7b,0x46,0xf0,0x05,0x91,0xaf,0x88,0xdb,0x93,0x7c,0x6a,0xba,
|
||||
0xfc,0xd8,0x78,0xed,0x15,0xc6,0x31,0xbd,0x27,0x6a,0xc1,0x80,0x17,0x17,0x1c,0x73,
|
||||
0x07,0x1f,0x4d,0xb3,0xff,0x4a,0xf0,0xd1,0xfa,0x0f,0x95,0x19,0x98,0xc8,0xd0,0x5a,
|
||||
0x0c,0xf1,0x49,0x7f,0x9d,0x88,0x5b,0x4e,0xe5,0x98,0x2c,0x98,0x17,0xc6,0x09,0x66,
|
||||
0x04,0x5f,0x5f,0x35,0xdf,0x39,0xbf,0xfb,0xe2,0x13,0x4d,0xb7,0xc0,0xf7,0xe7,0x9a,
|
||||
0x7c,0xed,0x16,0x27,0xc1,0x31,0xac,0xc3,0x43,0x73,0x5b,0x82,0xec,0x7a,0xe4,0x0b,
|
||||
0xaf,0x7d,0x07,0xd1,0x80,0x4e,0x05,0x5f,0x48,0x56,0x1e,0xd9,0xbc,0x24,0xf9,0xdc,
|
||||
0x7c,0x89,0xef,0x09,0x2d,0xdc,0x95,0x4f,0xa1,0xb4,0xe6,0xf6,0x8b,0x8d,0x9c,0x2c,
|
||||
0x99,0x73,0xd1,0xb2,0x7f,0x64,0x68,0x05,0x50,0xb4,0xe4,0xa7,0x10,0x48,0x08,0x53,
|
||||
0x60,0xa1,0x09,0x9b,0x3d,0xe4,0x55,0x27,0xf9,0x34,0x03,0xcf,0x54,0xbc,0x12,0xd0,
|
||||
0x52,0xe7,0xa6,0xe4,0x74,0x6a,0xf2,0xb5,0xd9,0x6e,0x76,0xbb,0xe0,0xeb,0x2b,0xc5,
|
||||
0xe7,0x2e,0xf9,0xfa,0x0f,0xc6,0x36,0xb0,0x4d,0xd3,0x8a,0xc4,0x16,0x04,0xd3,0x72,
|
||||
0xaa,0x17,0x02,0x9f,0xd0,0xda,0x74,0x50,0x36,0x7d,0x52,0x0f,0x56,0xf9,0xb6,0x57,
|
||||
0xd2,0x19,0x93,0xcf,0x98,0x93,0xab,0xc7,0x25,0xdf,0x31,0x4b,0x38,0x90,0xf9,0x19,
|
||||
0x5f,0x65,0x65,0x6b,0x3a,0x35,0xbf,0xfb,0xfe,0x47,0x6a,0x81,0x6f,0x7c,0xb0,0x94,
|
||||
0xfa,0xcf,0x58,0x05,0x9f,0xf7,0x4a,0xc2,0xbd,0x44,0xc4,0x03,0x8a,0xb6,0xa5,0x0a,
|
||||
0x3e,0x6d,0x22,0x61,0x39,0xae,0x7d,0xb4,0x1d,0x0b,0x2b,0x2e,0x1f,0xd7,0x9a,0xe0,
|
||||
0x73,0x28,0xca,0x3b,0xbb,0xe7,0x2b,0xa6,0x92,0x8d,0xf8,0x64,0x3c,0x78,0x8f,0x56,
|
||||
0x67,0xfd,0x7c,0xd0,0x1b,0x77,0xec,0x2b,0xbb,0xe0,0x13,0x17,0x36,0x86,0x76,0xc9,
|
||||
0x77,0x79,0x23,0x95,0x34,0x3c,0xbe,0xd0,0x17,0x8c,0x7f,0x70,0xe4,0x58,0x44,0x12,
|
||||
0x8a,0x7b,0x7c,0x7d,0xc4,0x17,0xf0,0xf3,0x05,0x27,0xd2,0x9e,0x87,0x68,0x93,0xf2,
|
||||
0x23,0x25,0xc7,0xe2,0x9d,0x21,0x9d,0x6f,0xcb,0xcb,0xe3,0x2d,0x11,0x73,0x28,0x5b,
|
||||
0xca,0xb5,0x6b,0x57,0x7c,0xc6,0xe5,0x52,0x2a,0x79,0x33,0xe2,0xf1,0x51,0x46,0x05,
|
||||
0xec,0x94,0xf2,0x3b,0xf8,0xce,0x52,0xb4,0x08,0x2c,0xd8,0xbe,0x06,0xde,0x63,0x5a,
|
||||
0x6c,0xd4,0xe5,0x13,0xb7,0xf0,0x2e,0x2f,0x63,0x7b,0x7c,0x4e,0x11,0x8f,0x1f,0x4a,
|
||||
0x3e,0xca,0xd6,0x12,0xe3,0x84,0xd6,0xf9,0x6e,0x5e,0x2e,0xa5,0x57,0xe6,0x87,0xc3,
|
||||
0x7e,0xbe,0x47,0xa2,0x95,0x17,0xc3,0xc1,0xdb,0xb6,0x1b,0xef,0xae,0x93,0xeb,0x55,
|
||||
0xf2,0x05,0xe7,0xd2,0x76,0x49,0x56,0xd7,0x1f,0xa8,0x0f,0x24,0xf7,0x94,0x0e,0xe2,
|
||||
0xf2,0x3d,0x12,0x3d,0x20,0xe7,0x23,0xbf,0x4b,0xf8,0x06,0x3c,0xad,0xf1,0x7d,0xe0,
|
||||
0xa4,0x57,0xcc,0x61,0xdd,0xc7,0xe7,0xd0,0x2c,0x0c,0xf1,0x75,0x05,0x4d,0x5b,0xc6,
|
||||
0x13,0x8d,0x77,0x0a,0x5a,0x05,0x9f,0x46,0x89,0xa4,0x35,0x4e,0xe3,0x2d,0x69,0x5b,
|
||||
0xdc,0xfa,0x49,0x99,0xaf,0xb0,0x8c,0xc7,0x63,0x82,0xcf,0x79,0x64,0x18,0x57,0xe3,
|
||||
0xbe,0x06,0xd2,0x52,0x7c,0xe1,0x7c,0xc9,0x31,0x3f,0x1f,0x11,0x04,0x38,0x5f,0xc0,
|
||||
0xcc,0xb3,0x12,0x37,0x2d,0x85,0xd6,0x2d,0xd0,0x12,0x36,0x0f,0xbd,0x52,0x87,0xcc,
|
||||
0xbc,0x0c,0x3f,0xbc,0xb4,0xb4,0x7c,0x98,0xf7,0xca,0x7c,0xb3,0xf2,0xda,0x3e,0x6a,
|
||||
0xb8,0x98,0x51,0x47,0xc2,0x1f,0x01,0x91,0x6f,0x7a,0xde,0x6c,0x02,0xf8,0x01,0x4b,
|
||||
0x17,0x52,0x63,0x11,0x59,0xc1,0x6e,0xe7,0xa9,0x21,0x1f,0xd6,0xdd,0x60,0x5a,0xb6,
|
||||
0x17,0xfa,0x82,0x60,0x96,0xf3,0xf9,0x3b,0x8d,0x78,0xde,0xdf,0x5f,0x25,0xaa,0xf9,
|
||||
0xdc,0x8b,0x01,0xc9,0x07,0x79,0xbe,0xde,0xe4,0x52,0xc7,0x3e,0xd7,0xbb,0xb5,0xcb,
|
||||
0x8d,0xdf,0x43,0xae,0xb3,0x5c,0x21,0x35,0xe7,0xe7,0x2b,0x49,0x3e,0x67,0x08,0x63,
|
||||
0x08,0xe3,0x5f,0xcb,0xd1,0x7a,0x35,0x1e,0xc2,0x0e,0xbe,0xb3,0x16,0x73,0x57,0xea,
|
||||
0x7d,0x7c,0xb2,0xe3,0xa5,0x50,0xe5,0xfa,0x02,0x6f,0xb8,0x54,0x84,0xed,0xe7,0xdb,
|
||||
0x3f,0x3d,0x7b,0x24,0x76,0xe1,0x68,0x63,0xfb,0x7d,0xca,0x0a,0x56,0xce,0x8c,0xca,
|
||||
0x37,0x4c,0xde,0x50,0xb8,0x69,0x6c,0x1a,0xe9,0x06,0xb1,0x06,0x69,0xe0,0x77,0x86,
|
||||
0x5c,0x13,0xcf,0x5e,0xf3,0xf5,0xf9,0x20,0x96,0xe3,0x4b,0x5e,0x40,0x4b,0xd8,0xa2,
|
||||
0x6d,0xc9,0x8e,0x8d,0xf8,0xee,0xf9,0xf9,0x30,0xb0,0x1c,0x62,0xcc,0xd7,0x40,0xde,
|
||||
0xbe,0x81,0x6c,0x23,0x17,0x1a,0xc0,0x99,0xf3,0xb1,0x3c,0xf2,0x15,0x92,0x6e,0x05,
|
||||
0x7b,0x7c,0xe8,0xb9,0x14,0x3c,0xae,0x62,0xa3,0x2a,0x1a,0xa7,0xe9,0xb1,0xbf,0xab,
|
||||
0xe0,0x8b,0xe7,0x50,0x2b,0x14,0x72,0x3d,0x03,0xde,0xa9,0xe6,0x2b,0xe0,0x3b,0x53,
|
||||
0x6e,0x05,0xb8,0x63,0x61,0x28,0xcc,0x53,0xc8,0x2e,0xfb,0xc7,0xd5,0x8f,0x8f,0xbe,
|
||||
0x39,0xaf,0xff,0xbd,0xfe,0x30,0x70,0xda,0x34,0x63,0xd8,0xce,0x2c,0x2b,0x65,0x48,
|
||||
0x0f,0xa6,0x11,0x01,0xe7,0xfb,0x48,0xf2,0xc5,0x99,0x5c,0x60,0x73,0x1e,0x56,0xf0,
|
||||
0xa5,0xbd,0xbe,0xc2,0xe3,0x8b,0x57,0xf3,0xb9,0x9d,0x09,0xf1,0xb9,0xf2,0x5e,0xf8,
|
||||
0x20,0x76,0xe1,0xed,0x37,0xcd,0x7d,0x9f,0xbf,0x5d,0xdf,0x7c,0xa6,0x79,0x13,0x0d,
|
||||
0x9e,0xb7,0x56,0x4c,0x69,0xc0,0x80,0xdb,0xc2,0x3e,0x12,0xaf,0x44,0xc1,0xe9,0x84,
|
||||
0xc8,0xd9,0x79,0x44,0x71,0x7f,0xd2,0xe3,0x4b,0xd4,0xe4,0xe3,0xbe,0x79,0x6c,0x95,
|
||||
0x7f,0xd2,0xd9,0x96,0x2e,0xf3,0x41,0xc2,0xe5,0x73,0x0a,0x5e,0x7c,0xd6,0x62,0x27,
|
||||
0x62,0x03,0x17,0xde,0x32,0x0f,0xd7,0x73,0x10,0xd3,0xbc,0xbd,0x34,0x8d,0xb7,0xe4,
|
||||
0xb1,0x82,0x0d,0xf1,0x8e,0x19,0xc0,0x61,0xa7,0x4d,0x3b,0x13,0x79,0xc7,0x26,0xef,
|
||||
0x9b,0x30,0x33,0x54,0x29,0x4e,0x91,0x37,0xa5,0xc9,0xbc,0xb8,0x4a,0x30,0xf4,0xc1,
|
||||
0x1d,0xfd,0xbc,0x01,0x7b,0x7c,0xd5,0xda,0xa0,0x6d,0x27,0x26,0x22,0xbe,0x94,0x4d,
|
||||
0x9d,0x9d,0xc8,0xef,0x6f,0x16,0xef,0x34,0x2d,0xab,0x94,0xf4,0xda,0xeb,0xfe,0xf9,
|
||||
0xfe,0xd8,0x89,0xee,0xf0,0x74,0x3d,0x3e,0xb4,0xde,0xd2,0x12,0x05,0x76,0xac,0x60,
|
||||
0x34,0x20,0x07,0xd4,0xe8,0xf3,0x4d,0xce,0x87,0xfd,0x00,0x75,0x5e,0x01,0xc3,0xa4,
|
||||
0xa6,0x96,0xfa,0x07,0x37,0xef,0x19,0x79,0x15,0xa0,0x3c,0x99,0xed,0x05,0x18,0x53,
|
||||
0x5e,0x6c,0xc3,0x2d,0xff,0x96,0xc8,0x95,0xc8,0x4e,0xea,0x2f,0x5e,0xf5,0x0e,0xc6,
|
||||
0x2e,0xbc,0xff,0x96,0xf9,0x71,0xec,0xe8,0x7c,0x6c,0xc7,0xfc,0xb8,0x68,0x7a,0xe6,
|
||||
0xed,0x3b,0xa9,0xa4,0x2d,0xf8,0x72,0xc9,0xb9,0xe1,0x88,0xee,0xe3,0x3b,0x23,0x5e,
|
||||
0x6c,0x00,0x8e,0x4e,0x9b,0xd8,0x6f,0x9a,0x62,0xa4,0xf2,0xec,0x7c,0x63,0xe5,0xe1,
|
||||
0xc1,0xc4,0xf4,0xc7,0x83,0x51,0xe3,0xc4,0x8d,0xc1,0xf9,0xe9,0xda,0xd3,0xf8,0x4b,
|
||||
0xa9,0x54,0x92,0x37,0x0a,0xb4,0xfb,0x4a,0x72,0x2e,0x1a,0xd1,0xc3,0xf4,0x81,0x12,
|
||||
0xff,0xa6,0x09,0xff,0x91,0x7d,0x4a,0x10,0xf3,0x36,0x64,0xae,0x9a,0xbc,0x0a,0x10,
|
||||
0xf6,0x8a,0x09,0x97,0x77,0x34,0x37,0x91,0xd8,0x96,0xd3,0xf8,0x92,0x7b,0xda,0x67,
|
||||
0x9a,0xff,0xc4,0xf8,0x32,0x7d,0xe1,0xdf,0x75,0xe9,0x52,0xff,0xcd,0xb8,0x7c,0x85,
|
||||
0x95,0x79,0x23,0x1a,0xe9,0xf6,0xa6,0x7d,0x08,0x4e,0xcc,0xea,0x84,0x03,0x11,0xf4,
|
||||
0x1d,0xbd,0x4a,0x6e,0x91,0xd5,0x57,0xe4,0x75,0x7f,0x0a,0x77,0xb7,0x3c,0xaf,0x04,
|
||||
0x97,0x6f,0x9b,0x4b,0x57,0xfe,0x74,0xe7,0x5f,0x87,0x97,0xb0,0x99,0xd5,0x10,0xbd,
|
||||
0xfc,0xa7,0xa4,0x73,0x0a,0x03,0x8e,0x9d,0x8a,0x44,0xea,0x95,0xf6,0xdc,0xd5,0x11,
|
||||
0x5f,0x4a,0xdd,0xb9,0x7f,0xd8,0x38,0x31,0x78,0xa7,0x1e,0x5c,0x7a,0x25,0x23,0xdd,
|
||||
0x9e,0xa6,0x99,0x56,0x52,0xa6,0x71,0x29,0x1a,0x8d,0x9e,0xda,0xb1,0x12,0xf1,0xc6,
|
||||
0x40,0x74,0x20,0xfa,0x46,0xf3,0x15,0x8b,0x5d,0xea,0x24,0x47,0x48,0xc6,0x52,0x75,
|
||||
0x94,0xcb,0x61,0x64,0x77,0x3f,0x21,0x71,0x78,0x0d,0x23,0xa0,0x61,0x8c,0x10,0x23,
|
||||
0xca,0x5b,0x8a,0x88,0xbe,0x1b,0x8d,0x5e,0x92,0x27,0xbd,0x2b,0xb8,0x79,0x57,0xae,
|
||||
0x54,0xb8,0x2b,0x16,0xd1,0x2a,0xbd,0xeb,0xe6,0x50,0xb1,0x2b,0xee,0x7f,0x3f,0x4d,
|
||||
0x1d,0xd0,0xff,0x72,0xf5,0x85,0xdd,0x5a,0xda,0x8b,0xea,0x18,0xa8,0x1c,0x22,0x4c,
|
||||
0xd6,0x6e,0xab,0xcf,0x5f,0x19,0xab,0xb9,0x7c,0xdf,0xa1,0x38,0xc4,0x67,0xe5,0xea,
|
||||
0x19,0xfb,0xf9,0xab,0x05,0xbc,0x42,0xa6,0xcc,0xc7,0x24,0x31,0x75,0xfa,0x3f,0x3e,
|
||||
0x5c,0x2e,0x97,0x6f,0x48,0x56,0x65,0x3e,0xd9,0x04,0x7f,0x4e,0x2a,0xec,0xfc,0xd3,
|
||||
0xb6,0x9f,0x1b,0x60,0xf5,0x12,0x3b,0x75,0xf8,0x96,0xe8,0xc8,0x6d,0xb7,0x3f,0x77,
|
||||
0xc4,0x38,0xc0,0xf2,0x6f,0x7c,0xe7,0x9d,0xca,0xf3,0x4d,0x2f,0x57,0xca,0xa9,0x95,
|
||||
0xab,0xd8,0x54,0xc1,0xb9,0x88,0x75,0x2e,0x3c,0x2f,0x59,0xf4,0xed,0x01,0xfe,0x53,
|
||||
0x63,0x81,0x5c,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
|
||||
0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
|
||||
0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
|
||||
0xe9,0x67,0xac,0xff,0x03,0xdc,0x41,0xd4,0x19,0x76,0x96,0x00,0x00,
|
||||
|
||||
@@ -1,477 +1,521 @@
|
||||
0x1f,0x8b,0x08,0x08,0xfd,0xae,0x9c,0x41,0x00,0x03,0x65,0x73,0x64,0x5f,0x77,0x65,
|
||||
0x6c,0x6c,0x65,0x5f,0x6d,0x6f,0x6e,0x69,0x74,0x6f,0x72,0x2d,0x62,0x6c,0x61,0x75,
|
||||
0x5f,0x33,0x32,0x30,0x5f,0x32,0x34,0x30,0x5f,0x38,0x62,0x70,0x70,0x2e,0x62,0x6d,
|
||||
0x70,0x00,0xec,0x5d,0x6d,0x88,0x63,0xd7,0x79,0x3e,0x5a,0x8d,0x46,0x1f,0x33,0xf2,
|
||||
0x1d,0x89,0x1d,0x49,0x33,0x77,0x46,0x8a,0x56,0xa3,0xd1,0x68,0x34,0x63,0xcd,0x68,
|
||||
0x46,0x23,0x69,0x25,0x4d,0xa5,0x4a,0x03,0xf9,0xe1,0xd0,0xfe,0x68,0x21,0x3f,0x4a,
|
||||
0x69,0x63,0x53,0x4a,0x08,0xfe,0x51,0x42,0xb6,0x84,0xa5,0xe9,0x6e,0x5d,0x13,0xda,
|
||||
0x12,0xda,0x6d,0x08,0xad,0x5b,0xda,0x52,0x8a,0x29,0x69,0x09,0xc1,0x2d,0x36,0x94,
|
||||
0x92,0x1f,0x26,0xa4,0x25,0x14,0xd3,0x35,0x69,0x0c,0x25,0xb8,0xa1,0x04,0x63,0xe2,
|
||||
0x8d,0x1d,0x12,0x53,0x88,0xab,0xc4,0x7d,0x3f,0xce,0xb9,0xf7,0x5c,0x69,0x76,0xbd,
|
||||
0x1f,0x73,0x75,0xaf,0xd4,0x3c,0x57,0xd2,0xac,0x56,0x57,0xba,0x47,0x8f,0x9e,0xf7,
|
||||
0xe3,0xbc,0xe7,0xdc,0x73,0x7f,0xf6,0x23,0x27,0x07,0x01,0x81,0x38,0x59,0x10,0x62,
|
||||
0x07,0xfe,0xf6,0xe0,0xe9,0xf7,0xe1,0x6f,0x40,0x44,0xe8,0xff,0xc5,0x5e,0x40,0x14,
|
||||
0x1e,0x17,0x74,0x17,0xbc,0xab,0x18,0xfd,0xda,0x82,0x18,0xbd,0xf8,0x8c,0x18,0x7d,
|
||||
0xae,0x23,0x46,0xaf,0x7f,0x55,0x8c,0xfe,0xfa,0x29,0x31,0xfa,0xfa,0xdf,0x88,0xd1,
|
||||
0xa7,0x37,0xc4,0xe8,0x07,0xdf,0x11,0xa3,0xe7,0x7e,0x41,0x8c,0x5e,0xfe,0xbc,0x18,
|
||||
0x7d,0xf7,0x5b,0x62,0xf4,0xa5,0x4f,0x8a,0xd1,0x37,0xff,0x51,0x8c,0x9e,0x3d,0x16,
|
||||
0xa3,0xdf,0xb8,0x2c,0x46,0xef,0xbd,0x2b,0x46,0x5f,0x78,0x42,0x8c,0xde,0xf8,0x86,
|
||||
0x18,0xdd,0xdc,0x13,0xa3,0xa7,0x97,0xc5,0xe8,0x2b,0x7f,0x20,0x46,0x5f,0xfc,0x84,
|
||||
0x18,0xbd,0x0a,0xfb,0xdd,0x82,0xd7,0xfe,0x1b,0x5e,0x7b,0x05,0xfe,0xfd,0x5b,0xf0,
|
||||
0xfa,0xff,0xc0,0xfe,0x7f,0x01,0x9f,0xff,0x35,0xf8,0xfc,0x17,0xe0,0x98,0xff,0x09,
|
||||
0xc7,0xfb,0x38,0x1c,0xff,0x9f,0xe0,0x3d,0xb7,0x86,0xb0,0xef,0xbf,0x89,0xd1,0xf3,
|
||||
0xf0,0xfa,0x2b,0x7f,0x0f,0xfb,0x6f,0xc1,0xfe,0x77,0x60,0xff,0x5f,0x82,0xfd,0xff,
|
||||
0x5c,0x8c,0xde,0x86,0xe3,0xbf,0x70,0x1d,0xde,0xf3,0xcf,0x62,0xf4,0x7b,0xd0,0xd6,
|
||||
0x4f,0xc1,0xf1,0x7f,0x32,0x82,0xb6,0xc3,0x7b,0x3f,0x07,0xef,0x7d,0x1d,0xde,0xfb,
|
||||
0x75,0x78,0xdf,0xa7,0xe1,0x7d,0x3f,0x80,0xf7,0x3d,0x07,0xef,0x7b,0x19,0xde,0xf7,
|
||||
0x25,0x78,0xcf,0x37,0xe1,0x3d,0xcf,0xc2,0x7b,0xde,0x83,0xfd,0xbf,0x00,0xdf,0xe7,
|
||||
0x0d,0xf8,0xac,0x9b,0xf0,0x1d,0x9e,0x86,0xcf,0xf8,0x0a,0x7c,0xb7,0x2f,0xc2,0xf7,
|
||||
0xfa,0x38,0xb4,0xfd,0x79,0x68,0xf7,0xdb,0xf0,0x9d,0x3f,0xb5,0x21,0xc4,0xab,0xab,
|
||||
0x42,0x5c,0x13,0xe2,0xdf,0xc5,0x33,0xe2,0xce,0xf7,0xdf,0x14,0xc9,0x1f,0x27,0x85,
|
||||
0xf8,0x8c,0x10,0x2f,0xdd,0x49,0x8b,0x97,0xde,0x7a,0x4e,0xdc,0x4a,0xde,0x16,0xd7,
|
||||
0x61,0x87,0xff,0x78,0xf7,0xab,0xe2,0xa5,0x27,0xee,0x88,0x5b,0xaf,0x26,0xc5,0x75,
|
||||
0xd8,0xbf,0xf7,0xb7,0x19,0x71,0xfb,0xad,0xb7,0xc5,0x5a,0xf2,0x8f,0x80,0xdd,0xeb,
|
||||
0x22,0xf2,0xf2,0x1f,0x0a,0xf1,0xc4,0x8b,0xe2,0xf9,0x57,0x6f,0xc1,0xe7,0x5d,0x17,
|
||||
0xdf,0xbe,0xf9,0xbe,0x38,0x10,0xef,0x8b,0xcf,0xc2,0xfd,0x3a,0xdc,0x7f,0xbd,0xf7,
|
||||
0xac,0xf8,0xc5,0xe8,0x8b,0x62,0xf3,0xc9,0x5b,0xb4,0xbf,0xf8,0xe8,0x9f,0x08,0xb1,
|
||||
0xf0,0x82,0x10,0x37,0xe4,0xf3,0xcb,0x42,0x62,0x95,0x1e,0x9b,0x81,0xa8,0xb8,0x2d,
|
||||
0x82,0x62,0x4d,0xac,0xc8,0xff,0x7f,0x0b,0xee,0x8b,0xf0,0x2a,0xef,0x0f,0xad,0x14,
|
||||
0x7f,0x69,0xff,0xbc,0xa2,0xb7,0x12,0x81,0xfd,0x05,0xec,0xff,0xbc,0xfc,0x9f,0x6f,
|
||||
0xc3,0xfd,0x00,0xf6,0xff,0x2c,0xed,0xff,0x2d,0x78,0xbc,0x03,0xf7,0xa4,0x3a,0x0c,
|
||||
0x7d,0xee,0xf7,0xb4,0xff,0xf9,0x08,0xdc,0xff,0x0c,0xf6,0xc7,0x4f,0xb9,0x26,0xde,
|
||||
0x14,0x1f,0x86,0xfd,0x2f,0xc1,0xab,0xaf,0xd1,0xf3,0xbf,0x7b,0xf3,0x92,0x68,0xbc,
|
||||
0xf5,0x19,0xe0,0x83,0x5a,0x2b,0xfe,0xe5,0x6b,0xdf,0x11,0x8d,0x67,0xbe,0x2b,0x6e,
|
||||
0xbd,0xc3,0x7c,0x44,0xae,0xbf,0x26,0x16,0x9f,0x81,0xf6,0xbd,0x03,0x2d,0xba,0x16,
|
||||
0x15,0x91,0x0f,0x2d,0x0a,0xf1,0x21,0x21,0x9e,0xff,0x21,0xbd,0x1d,0xf0,0x2b,0xf4,
|
||||
0xf9,0x22,0xc6,0x9f,0xaf,0x9e,0x8a,0x5f,0xe5,0xa3,0x6f,0x3d,0x15,0x10,0xdf,0xfb,
|
||||
0x04,0xb4,0xe6,0x1d,0x7e,0xf9,0xc7,0xbf,0x0b,0x7f,0xe1,0xf9,0x0d,0x78,0x8e,0x9f,
|
||||
0x1f,0xfa,0x7d,0xf8,0xae,0x3f,0x07,0xcf,0x5f,0xe5,0xe7,0xcb,0xf8,0x26,0xd0,0xff,
|
||||
0xf3,0xdc,0x3c,0x71,0xf3,0xa3,0x1f,0x86,0xe7,0x97,0xc4,0x8d,0x1b,0xaf,0xd1,0xef,
|
||||
0x25,0x6e,0x5e,0x12,0xf4,0x43,0x4a,0x44,0x5a,0xf0,0xf0,0x3a,0xec,0x7f,0x1b,0x8e,
|
||||
0x7f,0xed,0x9a,0x88,0xae,0xdc,0x12,0xc1,0x9f,0x8f,0xc1,0xef,0xbf,0x42,0xef,0x0f,
|
||||
0xf4,0xfe,0x58,0x88,0x28,0x18,0xcc,0x93,0x3f,0x43,0x1f,0xf8,0xae,0x78,0x1a,0xbe,
|
||||
0x7f,0x14,0xbe,0x7f,0x8c,0x7f,0x0f,0x38,0xf6,0x8f,0x34,0xb6,0x9a,0xef,0xc1,0xf3,
|
||||
0x30,0x3c,0xff,0x65,0x7e,0xfe,0xc3,0x4f,0x46,0xc4,0x9f,0xde,0xf9,0xb2,0xf8,0x9d,
|
||||
0xe4,0x1a,0xf1,0x13,0x11,0x4f,0xc0,0x6f,0xf3,0x96,0xb8,0x01,0xef,0xc0,0xe7,0xef,
|
||||
0x8b,0x57,0xe0,0xde,0x85,0x7b,0x07,0xee,0xd7,0x44,0xa8,0xf9,0xb4,0x08,0xfc,0x28,
|
||||
0x2a,0x6e,0x24,0x63,0xf4,0xfa,0x0b,0x9f,0x8f,0x88,0x7f,0x5d,0xf8,0xb2,0xe8,0x7f,
|
||||
0x63,0x8d,0xda,0xd3,0xfc,0xcd,0xff,0x15,0xaf,0xfd,0xc3,0xc7,0xc4,0xea,0xed,0x0e,
|
||||
0xb5,0xb7,0xda,0xeb,0x8b,0x9f,0x44,0xdb,0xe2,0xb7,0x9f,0xec,0xd0,0xf7,0xbb,0xf9,
|
||||
0xd4,0x5f,0xc1,0x0f,0xfa,0x31,0x78,0xff,0x90,0xde,0x9f,0x6d,0xf5,0xc5,0x7f,0xbd,
|
||||
0xd1,0x16,0xb7,0x61,0xff,0x6b,0xb0,0x7f,0x81,0xe9,0xb1,0x50,0xf5,0x23,0x0c,0x63,
|
||||
0x98,0xa8,0xb5,0x8a,0x8d,0x68,0xaf,0x52,0xe9,0xef,0xa4,0xd3,0x57,0x92,0xc9,0xe4,
|
||||
0xfa,0xfa,0xf6,0xfa,0x63,0x8f,0xc5,0x37,0x02,0xc5,0x60,0x2d,0x31,0x34,0xbc,0x6e,
|
||||
0xa2,0x0f,0x61,0x98,0x89,0x56,0xb1,0xd7,0x1c,0x2c,0x74,0x0e,0xf7,0x93,0xeb,0xc7,
|
||||
0xdb,0xc7,0xc7,0xc7,0x8b,0xc7,0x67,0x88,0xc7,0x10,0x67,0x87,0xd9,0xd4,0x10,0x76,
|
||||
0x6b,0xc3,0xc6,0x8f,0x6d,0xaf,0x5b,0xec,0x13,0x98,0xc3,0xc2,0x5a,0x34,0x8b,0xb4,
|
||||
0xc5,0xe3,0xf1,0x64,0x1c,0xc5,0x96,0xdc,0xde,0x46,0x02,0x17,0x99,0xbe,0xb3,0xc7,
|
||||
0x8e,0x17,0x8a,0x31,0xfb,0x0d,0x6d,0x43,0x6e,0x70,0xf3,0xae,0xd9,0x3e,0x40,0x29,
|
||||
0x96,0x0b,0xe5,0x07,0x91,0xc3,0xc3,0xfd,0xfd,0xfd,0x38,0xb2,0x77,0x1a,0x4f,0x9e,
|
||||
0x22,0x7d,0xeb,0xeb,0x28,0xc0,0x45,0x90,0x20,0x12,0x98,0x8e,0x0e,0x79,0xff,0xb6,
|
||||
0xa4,0xae,0x6a,0xd0,0x3f,0x08,0xe6,0xff,0x4f,0x0e,0xcd,0xc4,0x5a,0x6f,0xd0,0x49,
|
||||
0x5f,0x39,0x44,0xec,0x23,0xae,0x22,0x81,0xf1,0x53,0x22,0x70,0x7d,0x7b,0x1b,0xed,
|
||||
0x17,0x04,0xb8,0x78,0xb6,0xb3,0x27,0x8d,0xb5,0x5d,0x65,0xea,0x8c,0xaa,0xc5,0x9d,
|
||||
0x69,0x1a,0x78,0x33,0xbc,0xfe,0x36,0x53,0x85,0xd1,0x6d,0xe5,0x17,0x3a,0x2b,0x80,
|
||||
0xf4,0x95,0x74,0x1a,0xf9,0xbb,0x74,0x48,0xfa,0xbb,0x4a,0xf6,0x7b,0x0a,0xfa,0x4b,
|
||||
0xa2,0xfe,0xd0,0x80,0x8f,0x07,0x35,0xf6,0x73,0x2c,0xbd,0x2a,0xda,0x2c,0xb3,0x67,
|
||||
0xf2,0x66,0x96,0x68,0x33,0x3c,0xfe,0x4e,0xd3,0x82,0x11,0x4b,0x81,0xc1,0x46,0x3a,
|
||||
0x91,0x4e,0x27,0x9d,0x5e,0x81,0xd0,0x7a,0x65,0x42,0x7f,0xc9,0xe4,0x29,0xf8,0xbf,
|
||||
0x75,0xd2,0x5f,0x3a,0x67,0x54,0x95,0xbf,0x23,0xd9,0x21,0x75,0x6d,0x83,0x44,0x87,
|
||||
0x60,0xf2,0x4a,0x25,0xb3,0x5e,0x32,0xbd,0xfe,0x6a,0xae,0xc3,0x88,0xad,0x05,0x06,
|
||||
0x27,0x80,0x08,0x10,0xd8,0x59,0xe9,0x00,0x7d,0x20,0x3f,0xdb,0x82,0xe3,0xfb,0x57,
|
||||
0xd9,0x05,0xa2,0xfc,0xd0,0x84,0xf7,0x43,0x48,0x8a,0x81,0x86,0xeb,0xf0,0x78,0xcc,
|
||||
0x5e,0xc9,0xde,0xea,0xf5,0x12,0x6c,0x86,0xd7,0x5f,0xd0,0x4d,0x18,0x99,0x72,0x7f,
|
||||
0x61,0x61,0x07,0x10,0x39,0x41,0xfd,0x21,0x7d,0x4c,0x20,0xda,0xef,0xfe,0xa1,0x0c,
|
||||
0x20,0x2c,0x40,0xd2,0xdf,0x7a,0x7f,0xa8,0x24,0xa7,0xa8,0x6b,0x93,0xc5,0x1a,0x25,
|
||||
0x5b,0x77,0x25,0x24,0xae,0x0e,0x8f,0x88,0xd2,0xbc,0x46,0x12,0x33,0xd8,0x00,0xf2,
|
||||
0x80,0xbe,0x8d,0x9d,0x9d,0x93,0x9d,0x13,0x60,0x10,0xf5,0xd7,0x21,0x03,0x4e,0x5b,
|
||||
0x06,0x0c,0xfa,0xbb,0x6a,0x47,0x90,0xfd,0x96,0x61,0xe5,0x29,0x36,0x75,0xba,0xee,
|
||||
0x50,0x78,0xbc,0x31,0xc2,0xf5,0xb9,0x94,0xa0,0x19,0xec,0xad,0x0e,0x16,0x06,0x48,
|
||||
0x9f,0xa5,0x3f,0x69,0xbf,0x18,0x40,0x6c,0xfb,0x95,0x0e,0x90,0x13,0xc0,0x7e,0xbd,
|
||||
0xcd,0x71,0xb6,0x6d,0x58,0xd1,0x42,0x37,0x59,0x29,0x3c,0x49,0x5e,0x18,0x31,0xac,
|
||||
0x0f,0x87,0x75,0xaf,0xbf,0xed,0x05,0xa3,0x94,0xeb,0x2d,0x0d,0x10,0x0b,0xa4,0xbf,
|
||||
0x85,0x0d,0xa9,0xbf,0x08,0xf2,0x87,0xf6,0x2b,0x23,0xb0,0x74,0x80,0x2a,0x83,0xb9,
|
||||
0x1a,0x32,0xd0,0xe1,0x31,0x7b,0xcc,0x9d,0x93,0x3d,0x5d,0x78,0x61,0x54,0x1e,0x90,
|
||||
0x17,0x1e,0x02,0x87,0xe1,0x79,0xb2,0xe1,0x6e,0xa8,0xd2,0xef,0xaf,0x0e,0x56,0x07,
|
||||
0x83,0x2d,0x12,0xe0,0x06,0x0a,0x10,0x09,0xc4,0x00,0xbc,0x92,0x66,0x03,0xa6,0x08,
|
||||
0x22,0xf5,0xc7,0x19,0x4c,0xb2,0x53,0x60,0xd9,0x31,0x7b,0x64,0xb4,0x0e,0xea,0x9c,
|
||||
0xdc,0x85,0x87,0xbc,0x81,0xfc,0x10,0x86,0xd7,0xdf,0xfa,0x82,0x50,0x6a,0xe5,0x97,
|
||||
0x96,0x80,0xbe,0x7e,0x5f,0x13,0x20,0x38,0xc0,0x88,0x74,0x80,0xca,0xff,0xa5,0x31,
|
||||
0xff,0xd3,0x02,0x70,0xfc,0x74,0x10,0xd6,0x6c,0xd6,0x64,0x57,0x87,0x16,0x3b,0xa6,
|
||||
0x3b,0x66,0x8f,0x88,0xb3,0xc8,0x43,0xcc,0x45,0x26,0x53,0x2f,0x66,0x9b,0x4b,0x7d,
|
||||
0xdc,0x50,0x7e,0x52,0x7f,0xec,0x00,0x4f,0xd8,0x03,0xca,0x08,0x2c,0x03,0xc8,0x21,
|
||||
0xe9,0x6f,0x1f,0xfd,0x5f,0xbe,0x04,0x21,0x83,0xba,0x15,0x32,0x4a,0x68,0xa1,0xd6,
|
||||
0x8e,0x15,0xe4,0xf1,0xc2,0x43,0x52,0x9e,0x85,0xdd,0xe1,0xee,0x6e,0x6c,0x58,0xf2,
|
||||
0xfa,0xcb,0x3f,0x32,0x12,0x9b,0x95,0x66,0xa5,0xd9,0x6c,0x02,0x7d,0xab,0x68,0xc1,
|
||||
0x4e,0x07,0xa8,0x0c,0x98,0x33,0x40,0x3b,0x02,0x93,0xff,0xbb,0x74,0x34,0x19,0x69,
|
||||
0xcd,0xba,0x25,0xbc,0x92,0x65,0xb4,0x75,0xa7,0xee,0x76,0x69,0x8b,0xe1,0x16,0x9b,
|
||||
0x71,0x02,0x33,0x8d,0x6c,0xa5,0x02,0x04,0x2e,0x21,0x7f,0xd2,0x01,0x32,0x7f,0xd2,
|
||||
0x01,0x46,0x64,0x06,0xc3,0xfe,0xcf,0x12,0x20,0x2a,0xf0,0x70,0x8f,0x02,0xad,0xa1,
|
||||
0x94,0x77,0x5e,0xb0,0x08,0x4b,0x9b,0x75,0x08,0x8f,0x88,0x83,0x1b,0x61,0x96,0xc3,
|
||||
0x70,0xa6,0x11,0x08,0x54,0x90,0xc0,0xa5,0xa6,0xe4,0x0f,0x1c,0xe0,0x96,0x64,0x10,
|
||||
0x1d,0x20,0x64,0x30,0xba,0x01,0xa7,0xf5,0x1e,0xc8,0x61,0x6e,0x4c,0x77,0xe3,0x29,
|
||||
0xde,0xb0,0x3e,0x49,0x1e,0xea,0x6e,0xd7,0xe2,0x0e,0xd0,0x9d,0x5d,0x05,0x22,0x7b,
|
||||
0x81,0x6c,0xa0,0x52,0xc9,0x82,0x01,0x2f,0x2d,0x91,0x01,0xdb,0xfa,0x23,0x0f,0x48,
|
||||
0x01,0xf8,0x84,0x0c,0xd8,0x76,0x80,0x97,0x28,0x02,0x83,0xfa,0x4a,0x7a,0x82,0x37,
|
||||
0xe6,0xf0,0x24,0x71,0x75,0xa7,0xc3,0xdb,0x65,0xa3,0x75,0xa0,0x3b,0x9b,0x41,0x24,
|
||||
0xd6,0xc8,0xe7,0x03,0x48,0x60,0x16,0xfd,0x1f,0x08,0x10,0xf5,0x27,0x03,0xb0,0x16,
|
||||
0x81,0xf5,0x2e,0xf0,0x15,0x4d,0x80,0x48,0x9f,0xaa,0x07,0x9c,0xe7,0xf0,0xc2,0x93,
|
||||
0xba,0x9b,0xa0,0xae,0x1b,0xeb,0x76,0xbb,0x89,0x58,0xcc,0xf0,0x9a,0x8b,0x07,0x47,
|
||||
0x3d,0x04,0xec,0x1d,0x48,0xfd,0xa1,0x07,0x64,0x07,0xb8,0x2a,0x03,0xc8,0x80,0xfc,
|
||||
0x1f,0x09,0x50,0x66,0xd0,0x9c,0x01,0x5a,0xe6,0x7b,0x58,0x74,0x48,0x4f,0x77,0x78,
|
||||
0x63,0xc2,0xdb,0x95,0x91,0x76,0x82,0xbc,0x6e,0x2c,0xc1,0x5b,0xa2,0x3b,0x6b,0x89,
|
||||
0xb4,0x91,0xeb,0xe5,0x11,0x44,0x20,0x0b,0xb0,0xd9,0xb4,0x0c,0x78,0x4b,0xfa,0x3f,
|
||||
0x2b,0x83,0xb6,0x1c,0xa0,0xea,0x81,0x1c,0xee,0x6f,0x3a,0xcc,0x76,0x5c,0x78,0x0e,
|
||||
0xab,0x1d,0x6a,0xc1,0x82,0x45,0x87,0x1b,0xc8,0x2e,0x01,0x8f,0x8c,0xd8,0x07,0x37,
|
||||
0xd9,0x4f,0xe8,0x96,0x89,0xbe,0x03,0xb2,0x5f,0x0a,0x20,0x10,0x80,0x95,0x00,0x07,
|
||||
0x94,0x02,0xda,0x04,0x82,0xfe,0x4e,0x3a,0x2a,0x02,0xab,0x22,0x60,0x8f,0x8b,0x28,
|
||||
0x5a,0xa4,0x25,0xd2,0x9c,0xdc,0x91,0xf2,0x62,0xb1,0x09,0x87,0x17,0x43,0xe5,0xc5,
|
||||
0x98,0xb9,0xee,0xec,0x11,0x58,0x4f,0xf5,0x7a,0x97,0x59,0x7f,0x6c,0xc1,0x48,0xe0,
|
||||
0x52,0x53,0x39,0xc0,0x55,0x87,0x03,0xd4,0x32,0x40,0xe2,0xef,0x90,0xba,0x20,0x15,
|
||||
0xac,0x43,0x69,0x5d,0x8b,0xa1,0x1d,0x6b,0xcf,0x49,0xf1,0xc6,0x1c,0x5e,0x17,0x75,
|
||||
0xd7,0xb5,0xb9,0x4b,0x64,0x60,0x9b,0x9d,0x2c,0xa6,0xd0,0xe8,0x01,0x98,0x3e,0x15,
|
||||
0x40,0x58,0x80,0xa4,0x3f,0x99,0x01,0x0e,0x74,0xfd,0xe9,0x35,0x18,0x94,0xdf,0x20,
|
||||
0x6c,0x09,0x8f,0x94,0xe7,0x0c,0x16,0xe7,0x53,0x47,0x0e,0x4f,0xba,0x3c,0x0d,0xc0,
|
||||
0x5d,0x26,0x53,0xc8,0x64,0x12,0x86,0xd7,0xbc,0xdc,0x1f,0xcc,0xb5,0x46,0x34,0x8a,
|
||||
0xfc,0xf5,0xc8,0x7e,0x0f,0x02,0x4a,0x80,0xcd,0xa6,0x4c,0x01,0xc9,0x80,0x17,0xb6,
|
||||
0xac,0x0c,0x50,0xd6,0x60,0xb8,0x0b,0x4c,0x29,0xcc,0x4e,0x4c,0xb9,0x3b,0xee,0xd3,
|
||||
0x8e,0xfb,0xbb,0xd8,0xdd,0x1d,0x9e,0xa5,0x39,0x26,0x0f,0xd9,0x2b,0xe0,0x56,0x28,
|
||||
0x74,0xbd,0x66,0xe6,0xbe,0xd0,0x0d,0x45,0x49,0x7e,0x9a,0x00,0xb3,0xe8,0x00,0xd1,
|
||||
0x7a,0x31,0x05,0x54,0x0e,0xd0,0xee,0x82,0x70,0x00,0xe9,0x44,0x56,0xac,0x2e,0x48,
|
||||
0x27,0xa8,0xc5,0x8a,0xbb,0x75,0xcb,0xee,0xea,0xf0,0x74,0xe5,0x25,0x80,0x37,0x22,
|
||||
0x0f,0x31,0xf4,0x9a,0x9b,0xfb,0x40,0xae,0xdc,0x68,0xf4,0x1a,0xa8,0x3f,0x76,0x80,
|
||||
0x81,0xbc,0x14,0xa0,0xca,0x60,0xc8,0x82,0xb5,0x08,0xac,0xd5,0x60,0xac,0x1a,0x42,
|
||||
0x4a,0xaf,0xa4,0x84,0x87,0x3a,0x7b,0xc3,0x89,0x60,0x21,0x53,0x3c,0xa9,0xbb,0xae,
|
||||
0xad,0x3c,0x34,0x5b,0x29,0x3d,0xf8,0x5b,0x2b,0xd4,0x0a,0xbe,0xef,0x87,0x98,0xa9,
|
||||
0x06,0xf0,0x07,0xf4,0x35,0x90,0xbe,0x9e,0x8a,0xc0,0x59,0xb6,0xdf,0x8a,0xd4,0xdf,
|
||||
0xa0,0xaf,0x32,0x40,0x1c,0x03,0xd9,0x50,0x19,0x60,0x47,0xd1,0xd7,0x43,0xce,0xea,
|
||||
0xe7,0x3a,0xbc,0x5d,0x27,0x71,0x7a,0x8a,0x67,0x71,0x27,0x1d,0x5e,0xc1,0x92,0x5e,
|
||||
0xa6,0x80,0xe4,0xd5,0x6a,0xb5,0x82,0xd7,0xfc,0x7c,0x00,0x86,0x47,0xe5,0x32,0x12,
|
||||
0xd8,0x8b,0x5a,0x06,0x6c,0xe9,0x2f,0x2b,0xbb,0xc0,0xc8,0xa0,0x9e,0x01,0x52,0x04,
|
||||
0x51,0x45,0x68,0x32,0xe0,0xc1,0x18,0x79,0xa8,0xba,0xc9,0x3e,0x6d,0x57,0x1a,0xad,
|
||||
0xd3,0xdf,0xb1,0xc3,0x63,0xfa,0x98,0xc3,0x9a,0x24,0x2f,0x58,0x2b,0x04,0x6b,0xfe,
|
||||
0xb6,0xe0,0x4c,0xa8,0xbc,0x59,0x46,0xfd,0x35,0xa2,0xbd,0xb1,0x08,0xac,0xf4,0xd7,
|
||||
0xec,0x8f,0x39,0x40,0xd6,0x1f,0x3b,0x40,0xce,0x60,0x4e,0x12,0xe1,0x31,0x9b,0x3d,
|
||||
0x27,0x5a,0x20,0x75,0xdd,0x98,0x94,0x5c,0x57,0x27,0xcf,0xf2,0x76,0x1a,0x79,0xc1,
|
||||
0x1a,0x92,0x07,0x5b,0xd0,0xc7,0x1d,0xe1,0x76,0x2e,0xb4,0xb9,0x59,0xde,0x6c,0x94,
|
||||
0xc9,0x03,0x2a,0x07,0x28,0x33,0x68,0x95,0xc1,0xd8,0x11,0x64,0xcb,0x2a,0x22,0xe8,
|
||||
0x0e,0x30,0xbd,0xd2,0x29,0x3a,0x0a,0x51,0xe0,0x01,0x39,0x08,0x0f,0x87,0x8a,0xbd,
|
||||
0x98,0x95,0xa4,0xd8,0xd2,0x63,0xd5,0x25,0x48,0x75,0xf2,0x56,0x50,0x56,0x8b,0xca,
|
||||
0x0b,0x22,0x79,0xc1,0x5c,0x30,0xe1,0x35,0x4b,0x77,0x85,0xd1,0x0a,0x11,0x7f,0xe4,
|
||||
0xff,0xd8,0x82,0xc9,0x01,0xb2,0x01,0x5b,0x21,0x78,0xac,0x0b,0x8c,0x01,0x78,0x83,
|
||||
0x0c,0x98,0x1d,0x60,0x27,0x9d,0x97,0xd4,0x41,0x02,0x68,0x8c,0x4d,0x06,0x6a,0x1b,
|
||||
0xf5,0xfa,0x50,0xba,0x3c,0xdd,0x6c,0x33,0x44,0x5f,0x42,0xa9,0x8e,0x84,0x87,0xde,
|
||||
0x0e,0xa9,0x0b,0xa2,0xf0,0xf0,0x96,0xe3,0xcd,0xaf,0x59,0xb4,0x99,0x3a,0x0a,0x01,
|
||||
0x81,0x68,0xc0,0x52,0x7f,0x97,0x7b,0x13,0x01,0x58,0xd5,0x10,0x06,0x4c,0xe0,0x96,
|
||||
0x5e,0xc3,0x42,0x06,0x21,0x00,0x2f,0x24,0x90,0xbb,0x7b,0xcd,0x60,0x31,0x4a,0xc3,
|
||||
0x73,0xf2,0x63,0xdb,0x66,0x95,0xd5,0x22,0x77,0x35,0xb2,0xda,0x5c,0x4d,0x92,0x07,
|
||||
0xf0,0x69,0x08,0x31,0x53,0xc5,0x50,0xe8,0x68,0x33,0x44,0x06,0xcc,0x01,0x18,0x18,
|
||||
0x1c,0xcf,0x00,0xd9,0x7e,0x97,0xb8,0x08,0xbd,0x35,0xd0,0xba,0xc0,0x3b,0x4a,0x7f,
|
||||
0xad,0xf0,0xfd,0xb8,0x28,0x33,0xdc,0xb5,0xb8,0x23,0xd2,0x32,0x72,0xb3,0xa8,0x23,
|
||||
0x6f,0x17,0x0c,0x5a,0xba,0x23,0xf2,0x10,0xbe,0xec,0x07,0x97,0x52,0xc5,0xa2,0xa5,
|
||||
0x3f,0x0c,0x20,0x7a,0x0a,0x7d,0x10,0x50,0x02,0x6c,0xaa,0x41,0x90,0x55,0x3d,0x83,
|
||||
0xd9,0xd0,0x22,0x70,0xe3,0xbe,0x0f,0x69,0xc6,0x64,0x8a,0x97,0xb1,0x12,0xe4,0x9a,
|
||||
0x8a,0xb4,0x16,0x83,0x35,0x27,0x77,0x7b,0xb9,0xd6,0x5e,0xce,0x45,0x1a,0x1e,0x16,
|
||||
0x75,0xa0,0x2f,0x44,0xfc,0x91,0x03,0x2c,0x83,0xfe,0x28,0x02,0xcb,0x2e,0x5c,0x5e,
|
||||
0x65,0x80,0x68,0xbf,0x52,0x7f,0xfa,0x30,0xba,0x55,0x03,0x8c,0x0c,0x8c,0x07,0x38,
|
||||
0x6a,0x3b,0x9c,0xb0,0x8d,0x96,0xfc,0x1d,0xd1,0x86,0xc1,0x82,0xc5,0xa7,0x91,0xb7,
|
||||
0x87,0x5b,0x0b,0xe8,0x6b,0xe5,0xfc,0x17,0x42,0x4a,0xad,0x62,0x11,0xf5,0x77,0xc4,
|
||||
0x02,0xa4,0x14,0x9a,0x32,0xe8,0xf1,0x0c,0xb0,0xc9,0x04,0xca,0x1a,0x8c,0x8a,0xc0,
|
||||
0x96,0xfe,0x3a,0x91,0x07,0xf5,0x4e,0xf5,0x84,0x95,0xa6,0xc8,0x68,0x81,0xc4,0xd5,
|
||||
0x6a,0x4e,0xa3,0x25,0xf2,0x90,0x3b,0x64,0xb0,0x45,0x93,0xe0,0xfc,0x04,0xa3,0x55,
|
||||
0x5c,0x2b,0xb2,0x00,0x37,0x99,0x40,0x08,0xc0,0x13,0x19,0x20,0xf7,0xe0,0x2a,0x2a,
|
||||
0x02,0xf3,0x34,0x04,0x96,0xdf,0x82,0xd4,0x5f,0x24,0xff,0xe0,0x07,0x2f,0x25,0x28,
|
||||
0x47,0xe1,0xf4,0x98,0x42,0x6d,0xae,0x36,0xc1,0x1d,0xd2,0xb6,0xd7,0x52,0xf0,0x59,
|
||||
0x08,0x69,0xef,0xad,0xa1,0xf7,0x93,0x04,0x6e,0xa2,0xfe,0x9c,0x11,0x98,0x6a,0x30,
|
||||
0x59,0x59,0x83,0x61,0xfd,0xe9,0x19,0x8c,0x0a,0x20,0x27,0x91,0x8d,0x87,0x4a,0x2e,
|
||||
0xea,0x85,0x82,0x95,0xa4,0x04,0xef,0xa1,0x3b,0x1b,0xfe,0x4a,0xa2,0x73,0xa9,0x62,
|
||||
0xca,0xb6,0x5f,0x67,0x06,0xd8,0x1b,0xaf,0x01,0x36,0xd5,0x28,0xc8,0x84,0x03,0x04,
|
||||
0xfd,0x15,0x1f,0xb2,0x05,0x43,0x47,0x86,0xa7,0x1c,0xde,0xb9,0xd4,0x2d,0xe3,0xe6,
|
||||
0x2b,0x01,0x16,0x52,0x29,0x20,0x10,0x0c,0x38,0x54,0xb4,0x22,0x08,0x59,0x70,0xcf,
|
||||
0xae,0xc1,0x1c,0x1c,0xd8,0x0e,0x90,0x0d,0x98,0x19,0xdc,0xd2,0x8a,0xd0,0x91,0x93,
|
||||
0xfe,0x43,0x8f,0xf1,0x98,0x89,0x49,0xe1,0x71,0xb0,0x20,0x87,0xa7,0xd3,0xd7,0x4a,
|
||||
0xb5,0x52,0x29,0x1f,0xd5,0x61,0x62,0x40,0x5f,0x6a,0x4d,0x0a,0x30,0xa4,0x07,0x90,
|
||||
0xa8,0xf2,0x7f,0xb2,0x0f,0x97,0x95,0x01,0xb8,0x39,0x3e,0x0c,0xac,0x46,0x91,0x1e,
|
||||
0x45,0x16,0xc3,0xda,0xb8,0xc3,0xdb,0xd3,0x3c,0x1e,0x33,0xb7,0x8c,0xd4,0x2d,0x63,
|
||||
0x7b,0x6b,0x17,0xf6,0xf5,0x1f,0x15,0xc3,0x16,0xb6,0x27,0x45,0x01,0xc4,0x8e,0xc0,
|
||||
0x32,0x00,0x8f,0xd5,0x60,0x28,0x83,0xa9,0x38,0x8a,0xa8,0x5a,0x06,0x18,0xe9,0x3d,
|
||||
0x52,0x43,0x8c,0xcc,0x18,0x7b,0x0e,0x93,0x85,0x5b,0x8a,0x94,0x27,0xe1,0x17,0x0f,
|
||||
0x68,0xee,0x51,0x9b,0xc8,0x01,0x1e,0x85,0x8a,0x21,0x19,0x81,0x31,0x03,0x94,0x0e,
|
||||
0xf0,0xb2,0x5d,0x03,0xcc,0xe2,0x34,0x04,0xcb,0x01,0x82,0x00,0x65,0x02,0x43,0x5d,
|
||||
0xe0,0x41,0xeb,0x51,0x47,0x68,0x63,0xb9,0x3d,0xc9,0x5c,0xce,0xa9,0x3b,0x27,0x75,
|
||||
0x04,0x9f,0x78,0x40,0x03,0x5b,0x4a,0x06,0x6c,0x65,0x30,0x96,0xfe,0xa2,0x8d,0x89,
|
||||
0x0c,0x86,0x6b,0x58,0xac,0x3f,0xb6,0x5f,0xab,0x08,0xb8,0x69,0x3c,0x7a,0x6b,0xea,
|
||||
0xe7,0xc6,0x0b,0x68,0xdf,0x18,0x79,0xe8,0x6f,0x2e,0xe0,0x70,0x17,0x80,0x0c,0xda,
|
||||
0x85,0x25,0x40,0xb2,0x5f,0xab,0x0b,0xac,0xe9,0x4f,0xab,0x01,0xaa,0x79,0x58,0xab,
|
||||
0xaa,0x82,0x40,0x04,0xe6,0x2f,0xa6,0xae,0x69,0x14,0x5a,0x0e,0xa0,0xc3,0x5b,0x9e,
|
||||
0xa4,0x0f,0xbc,0xb5,0x3f,0x3c,0xe0,0x90,0xbc,0x4c,0x4a,0x05,0xe0,0x62,0x51,0xef,
|
||||
0xc2,0x49,0x07,0x98,0x1f,0xcf,0x00,0x97,0x1c,0x11,0x18,0xe9,0xcb,0x5e,0x9c,0x35,
|
||||
0x75,0x35,0xa7,0x37,0x69,0xb5,0x92,0x3b,0xdc,0x52,0x3e,0x98,0xcf,0x61,0xe6,0xf8,
|
||||
0x47,0x26,0x02,0xd1,0x80,0x8f,0xd0,0x82,0x37,0x37,0x9d,0x0e,0x70,0x3c,0x00,0xcb,
|
||||
0x1a,0xd6,0xaa,0x9a,0x89,0xda,0x6f,0x19,0x17,0xd8,0xa6,0x21,0xc7,0x0b,0x16,0xde,
|
||||
0x38,0x77,0x45,0x62,0x8f,0x7d,0x8d,0x0f,0x7a,0xc1,0x05,0x70,0x36,0xcb,0x52,0x80,
|
||||
0x29,0x32,0x60,0x72,0x80,0x56,0x11,0x1f,0xf9,0xbb,0x3c,0x1e,0x81,0x2d,0x07,0x28,
|
||||
0x2d,0x38,0x74,0xc1,0xa1,0x70,0x78,0xae,0xc3,0x23,0xf6,0xd8,0xcd,0xa0,0xa5,0xc0,
|
||||
0x2d,0x75,0xb1,0x87,0x7d,0x08,0xc4,0x28,0x39,0xb5,0xd8,0x5b,0x63,0xfb,0x3d,0x42,
|
||||
0xfd,0x91,0xfd,0xea,0x01,0x84,0x23,0x30,0xd7,0xb0,0x96,0x2a,0x7d,0xd5,0x05,0x59,
|
||||
0x0d,0x5c,0x7c,0x35,0xae,0x34,0x6e,0xb6,0x6b,0x94,0x5d,0x49,0x17,0x4d,0x6e,0x86,
|
||||
0xe0,0x75,0x1d,0xd0,0x84,0x6c,0x4b,0x3a,0x1b,0xf9,0xfb,0x5a,0x29,0xf4,0xa6,0x72,
|
||||
0x80,0x56,0x11,0x5f,0x9b,0x06,0x63,0xcf,0xc3,0xea,0x2f,0xb9,0xe2,0x85,0xcc,0xd6,
|
||||
0x18,0x7b,0xe8,0xee,0x52,0xc4,0x9d,0xcd,0x5e,0xf1,0xa8,0xe5,0xc2,0xa1,0x1f,0x04,
|
||||
0x85,0x1c,0xd7,0x35,0x94,0x00,0xb1,0x85,0x9c,0x01,0x5a,0x19,0x4c,0xaf,0xe7,0xec,
|
||||
0x02,0x07,0x28,0x03,0xc4,0x79,0x58,0x64,0xc0,0x3d,0x97,0x46,0x13,0x15,0x81,0x6b,
|
||||
0x68,0xb3,0x4a,0x78,0x16,0x77,0x47,0x74,0x0f,0x15,0x8b,0x61,0x77,0x8e,0x7e,0x9f,
|
||||
0x18,0x62,0x77,0x09,0x93,0xd5,0xe5,0x96,0xd6,0x05,0x09,0x1d,0x59,0x19,0x8c,0xb2,
|
||||
0x60,0x7b,0x1a,0x42,0xd6,0xce,0x00,0x41,0x7f,0x95,0xa0,0x6b,0x6d,0x33,0x55,0x52,
|
||||
0x4f,0xdc,0xad,0xe9,0x66,0x7b,0xc4,0x79,0x3e,0xa6,0x5a,0x9e,0x16,0xa2,0xdb,0xb5,
|
||||
0x20,0x15,0x38,0xc8,0x7c,0x97,0x65,0x63,0xb1,0x86,0x15,0xb2,0x6b,0x30,0x0d,0xbb,
|
||||
0x08,0x2d,0x23,0xb0,0x65,0xbf,0xcd,0xa5,0x4d,0x37,0x07,0xc2,0xb0,0x22,0xc9,0xa1,
|
||||
0x56,0x37,0xd9,0xe2,0x11,0xea,0x2e,0x74,0x24,0xc3,0x5c,0xd1,0xcb,0x4e,0x5c,0x8c,
|
||||
0x6a,0x1d,0x68,0xbf,0xcb,0x2d,0xbb,0x0b,0x07,0x2d,0xb4,0xba,0xc0,0x32,0x85,0xd6,
|
||||
0x6b,0x80,0x32,0x85,0x01,0x06,0x03,0x2e,0xa7,0x0f,0x66,0x6b,0x4c,0x77,0x16,0x79,
|
||||
0xcc,0x5d,0x08,0xff,0x64,0xdc,0x6d,0xc3,0x3d,0xdb,0x87,0xe5,0x36,0xec,0xae,0xb7,
|
||||
0xb8,0x7b,0x69,0x11,0x68,0x15,0xa1,0x1b,0x8d,0x72,0xb4,0x61,0x8f,0xc2,0x1d,0xc8,
|
||||
0x14,0x9a,0x03,0xf0,0xa6,0xeb,0x3f,0x7d,0x29,0xa5,0x53,0xa7,0x91,0x87,0x29,0x02,
|
||||
0x73,0xb8,0xe9,0x61,0x0a,0x93,0xc0,0x91,0xad,0xe0,0x5e,0x4e,0x76,0x36,0x55,0x17,
|
||||
0x44,0x15,0xa1,0x65,0x0f,0x44,0x9f,0xc8,0x66,0x75,0xe1,0xb2,0x95,0x80,0x7b,0x9e,
|
||||
0xcf,0x46,0x29,0xa5,0xb1,0xc7,0x0e,0x2f,0xa4,0xb4,0x47,0x3f,0x31,0x6c,0x9e,0xcd,
|
||||
0x86,0x31,0x71,0x90,0x8b,0xf5,0xb7,0xa7,0x7a,0x20,0xdc,0x5e,0xad,0x08,0xad,0xe6,
|
||||
0x11,0x5d,0x1e,0xab,0x01,0x36,0xa6,0x33,0x05,0xa0,0x4e,0x83,0x0a,0x47,0xe8,0xee,
|
||||
0x24,0x6f,0x47,0x7c,0x67,0xee,0x30,0xc9,0xf2,0x2c,0x85,0x49,0xf0,0x50,0x4d,0x4e,
|
||||
0xe9,0xaf,0x45,0xfa,0x4b,0xad,0xd9,0x19,0x20,0x47,0x90,0x9e,0x26,0xc0,0x03,0xf2,
|
||||
0x80,0x95,0xec,0xd4,0xc2,0xde,0x2e,0xd9,0x6c,0xd1,0x69,0xb3,0x8a,0x3b,0x6c,0xe0,
|
||||
0x66,0xc8,0xa3,0x4e,0xb0,0x89,0x53,0x9a,0x72,0x18,0x40,0x64,0x06,0xa8,0x15,0x01,
|
||||
0xa9,0x0b,0x1c,0x9a,0x2c,0x42,0xcb,0x0c,0xb0,0x31,0x45,0x9b,0x89,0x1d,0x59,0xe1,
|
||||
0xc2,0x26,0x8f,0xb8,0x2b,0x13,0x7d,0xe5,0xb2,0x47,0x11,0x84,0x87,0x0c,0xb9,0x60,
|
||||
0xde,0xd2,0x32,0x40,0xab,0x0b,0xac,0x8d,0x22,0x39,0x8b,0xd0,0xd3,0xad,0xbb,0x15,
|
||||
0x8e,0x98,0x3b,0x87,0xd1,0xda,0xec,0x6d,0x36,0xbc,0x89,0x20,0x66,0xa1,0xc0,0x63,
|
||||
0xad,0xd2,0xff,0x29,0xfa,0xd8,0x7e,0xb9,0x06,0xa3,0x3b,0x40,0x2b,0x03,0xcc,0x4f,
|
||||
0xfb,0xf7,0xde,0x9b,0xe0,0x4e,0x6d,0xd4,0xba,0x72,0xd9,0x93,0xd9,0x58,0x31,0x1a,
|
||||
0xf1,0x0f,0xea,0x19,0x60,0xcb,0xea,0x81,0x8c,0x8f,0x22,0x69,0xa3,0xc0,0x8d,0xa9,
|
||||
0xf7,0x98,0x8c,0x94,0xd3,0xe1,0xf1,0xd6,0x28,0xf3,0x06,0xed,0xf3,0xa2,0x0f,0x62,
|
||||
0x64,0x0a,0x3c,0xa7,0xd3,0x22,0x50,0x73,0x80,0x47,0x5a,0x06,0x58,0x56,0xd3,0x10,
|
||||
0x38,0x02,0x17,0x3d,0xf0,0xd6,0xf5,0x90,0xb2,0x59,0x56,0x1d,0xa3,0xc1,0xbf,0x2d,
|
||||
0x3c,0x5c,0xc4,0xb0,0xc1,0x83,0x22,0xc6,0xd3,0xc4,0x98,0xbe,0x3d,0x3b,0x01,0x54,
|
||||
0x45,0x68,0x7b,0x1a,0x82,0x3e,0x0a,0xd7,0xf3,0xa6,0x62,0x1e,0xd3,0x84,0x07,0x3f,
|
||||
0x29,0x8d,0x2c,0xb0,0xed,0x92,0x7b,0x8e,0x7a,0x50,0xc5,0x4a,0xd0,0x8c,0x1d,0x9c,
|
||||
0x32,0x41,0xfa,0xd3,0xbb,0x20,0x2a,0x01,0xb4,0x1d,0xa0,0x9a,0x88,0x3a,0xcd,0xb8,
|
||||
0xeb,0x40,0xad,0xcc,0x11,0xa3,0xdc,0xb0,0x37,0x06,0x1a,0x87,0x07,0x11,0xa4,0x2e,
|
||||
0x67,0x2c,0xd6,0x64,0x17,0xae,0xa5,0x75,0x81,0xd7,0x34,0x01,0x3a,0x22,0x70,0xd1,
|
||||
0x98,0x7a,0x3b,0x15,0x96,0x35,0x8f,0x67,0x71,0x47,0x0d,0xa3,0x6d,0xea,0x0d,0x8b,
|
||||
0x25,0x24,0x7b,0xba,0x01,0x6b,0x5d,0x90,0x23,0xd2,0x9f,0xca,0x00,0x79,0x22,0xea,
|
||||
0x23,0x8f,0xed,0x3e,0x02,0xcc,0x90,0x93,0xb9,0x28,0x09,0x0f,0xac,0x82,0x1e,0x1a,
|
||||
0xd3,0x1e,0x09,0x36,0x12,0x72,0xba,0x31,0x27,0x30,0xb9,0xf1,0x2e,0x30,0x9b,0xf0,
|
||||
0x66,0x48,0xcf,0x60,0xbc,0x1d,0x2c,0x8c,0x8d,0x93,0x87,0x6d,0xb2,0xba,0x46,0x0f,
|
||||
0x3b,0x67,0xe9,0x61,0x31,0x4c,0x24,0xd4,0xb9,0x01,0x38,0x5b,0x8c,0x27,0x39,0x39,
|
||||
0xba,0x20,0x76,0x11,0x9a,0x1d,0x60,0xd9,0xeb,0x91,0x86,0x9c,0x2e,0xbc,0x46,0xaf,
|
||||
0x17,0x55,0xdc,0x11,0xa6,0x3c,0x97,0x08,0xa7,0xbe,0xcb,0x89,0xda,0x32,0x80,0xe4,
|
||||
0xac,0x00,0x62,0xeb,0x8f,0x23,0x30,0x39,0x40,0x57,0x0b,0xa5,0xf7,0x87,0x23,0x62,
|
||||
0x8f,0x65,0xc7,0xe4,0x69,0x04,0x4e,0xd7,0x38,0x4c,0x9a,0xf4,0x5e,0x90,0x11,0x18,
|
||||
0x3d,0xa0,0x9c,0x30,0x61,0x0f,0xc3,0x1d,0x15,0x75,0x07,0xe8,0x69,0x95,0x57,0x62,
|
||||
0x58,0x8e,0x46,0x75,0x9b,0xb5,0x70,0x19,0xb6,0xf2,0x74,0x9b,0xd2,0xa5,0xd3,0xa4,
|
||||
0xe8,0x74,0x46,0x2e,0xc1,0xa8,0x41,0x90,0x31,0x01,0xca,0x51,0xa4,0x3d,0x1f,0x8c,
|
||||
0xf3,0x43,0x12,0xd3,0xeb,0xa9,0x73,0xf2,0x6c,0xea,0xf8,0x0c,0xc7,0xcb,0xf9,0xa9,
|
||||
0xda,0x07,0x9d,0x63,0x2b,0x05,0x28,0x0d,0x58,0x3a,0xc0,0x65,0x67,0x17,0x24,0x44,
|
||||
0xf6,0xeb,0xf5,0x20,0xa1,0x44,0xbb,0x38,0x21,0xbb,0x3c,0x93,0x07,0x98,0x66,0x1b,
|
||||
0x4d,0x5e,0xcf,0x22,0xa3,0xba,0x20,0xc1,0xdc,0x78,0x17,0x84,0x8b,0x30,0x1c,0x40,
|
||||
0x36,0x7d,0x73,0xae,0x45,0xb8,0xe1,0x94,0x9e,0xe2,0x0e,0xf1,0x68,0xf3,0x0e,0x1f,
|
||||
0x0c,0x75,0x3c,0xf3,0x2c,0xc3,0x19,0x60,0x41,0x65,0x80,0x8e,0x08,0x22,0xcd,0x97,
|
||||
0x0c,0xd8,0x17,0x93,0x9c,0x18,0x41,0x4b,0x79,0x97,0x75,0xee,0x08,0x53,0xcc,0x0f,
|
||||
0x62,0xf2,0x74,0x5b,0x16,0xa0,0x24,0xd0,0x51,0x03,0xd4,0x6a,0x30,0x3e,0x99,0xa4,
|
||||
0x48,0x68,0x87,0x34,0xb3,0x75,0xe2,0x60,0x7a,0x06,0xdc,0x8e,0xb1,0xff,0xcb,0xc8,
|
||||
0x93,0x56,0x64,0x0d,0xd0,0xa1,0x3f,0x9e,0x87,0x05,0xf4,0xf9,0x60,0x86,0x93,0x86,
|
||||
0x70,0x6f,0x52,0x78,0xf9,0x83,0xfc,0xc1,0x41,0x3e,0x10,0x9d,0x5a,0x8c,0x2b,0xa9,
|
||||
0x15,0x7d,0x32,0x7a,0x0d,0x26,0xe7,0x28,0xa2,0xaa,0x61,0x24,0x7f,0xd1,0x57,0xad,
|
||||
0xb6,0x26,0x74,0x47,0x5b,0x00,0xb6,0xa9,0x19,0xf0,0x30,0x26,0xd7,0xb8,0xb0,0x7a,
|
||||
0x70,0xe3,0x5d,0x10,0x3e,0x95,0x06,0xe4,0xe7,0x27,0xe3,0x25,0x18,0x8d,0xf3,0xb8,
|
||||
0xc3,0x41,0xad,0x83,0xa9,0x15,0x61,0x86,0x74,0xe6,0x3c,0x04,0x90,0x84,0x3c,0xe5,
|
||||
0xd1,0xee,0x82,0x8c,0x39,0x40,0xdf,0xd1,0x07,0xbe,0xbb,0x37,0xae,0x3b,0xe0,0x8e,
|
||||
0x86,0xf5,0xa7,0x15,0x81,0xdb,0xb8,0xfa,0x45,0x22,0x26,0xf5,0x57,0x93,0x27,0x27,
|
||||
0xe7,0x70,0xde,0xfb,0xd8,0x34,0x84,0x69,0x8c,0x90,0x3f,0x30,0x52,0x92,0xbc,0x00,
|
||||
0x6f,0x08,0x3e,0xb5,0x36,0x30,0xa5,0xe2,0xa4,0xc9,0xab,0x0f,0x68,0x16,0x8c,0x0e,
|
||||
0xd0,0xee,0x03,0x5b,0xf3,0x00,0x7d,0x49,0x5f,0xb5,0xd4,0x3b,0x90,0xe4,0xd1,0x58,
|
||||
0xb4,0xe4,0x0e,0x31,0xa5,0x08,0x5c,0x27,0xfd,0xa9,0xf8,0xa1,0x52,0x40,0x35,0x0d,
|
||||
0x86,0x04,0x48,0xf3,0xb0,0x7c,0x93,0x36,0x8f,0xa1,0x70,0x20,0xa9,0xd3,0x81,0xb3,
|
||||
0xea,0xee,0xff,0xac,0xed,0x47,0x82,0x5c,0x02,0xa3,0x8b,0x0c,0x5a,0x35,0xe8,0xe0,
|
||||
0xc4,0x3c,0x2c,0xbf,0xd2,0x57,0xad,0x86,0x02,0x6c,0xb7,0x16,0x85,0x59,0x9c,0x53,
|
||||
0x0c,0xb7,0xa9,0xf4,0x81,0xdb,0x43,0x5c,0x6b,0xaf,0x1b,0x4b,0x58,0x0e,0x90,0x6a,
|
||||
0x58,0x58,0x83,0xd9,0xd3,0x66,0xe2,0xfb,0x97,0xbe,0xea,0xf0,0x40,0x23,0x2f,0x9b,
|
||||
0xcd,0xf2,0x7c,0x26,0xc0,0xde,0x34,0x8e,0x5e,0xb2,0x96,0x60,0xb1,0x73,0x68,0x95,
|
||||
0x01,0xda,0x7d,0xe0,0x0b,0x3d,0x1d,0xe1,0xa2,0x51,0xd4,0x85,0xa7,0xd8,0x83,0xc7,
|
||||
0xa9,0x18,0xb0,0xc9,0x6b,0xd8,0xa8,0x55,0x43,0xb4,0x51,0x38,0x55,0x42,0xc0,0x53,
|
||||
0x07,0x7c,0x50,0xef,0xbb,0x3b,0xea,0x7c,0x1e,0x0f,0x30,0x86,0x6b,0x02,0x57,0x98,
|
||||
0x3c,0x7c,0x9c,0x46,0xab,0xc3,0xb8,0x94,0x92,0xd2,0x5f,0x42,0xad,0xda,0xc0,0xa3,
|
||||
0xe8,0x7b,0x7b,0xec,0x00,0x97,0xbd,0xaf,0x36,0xdf,0x13,0xcb,0x7c,0x16,0x54,0xd6,
|
||||
0x62,0x8f,0x27,0x64,0x57,0xa6,0x91,0xaf,0xaa,0x35,0x94,0xd0,0x03,0xf2,0xa2,0x84,
|
||||
0x38,0x8b,0xa3,0xa6,0x46,0x31,0xc9,0x7e,0xfd,0xbd,0x40,0x17,0xf4,0x42,0xf2,0x36,
|
||||
0x7d,0xf2,0x84,0x6e,0x3a,0x25,0x6a,0x1a,0x55,0xe8,0xf0,0x90,0x05,0x28,0xbb,0xc0,
|
||||
0xaa,0x86,0x80,0x19,0xe0,0x5e,0x8e,0x23,0xb0,0xd7,0x43,0x45,0x1f,0x8c,0xa0,0x74,
|
||||
0x79,0x72,0x35,0x0b,0x3e,0x1d,0xa0,0x39,0x0d,0x03,0x6e,0x87,0xd5,0x1a,0x5e,0xec,
|
||||
0x01,0x0b,0xaa,0x0f,0x62,0xeb,0xcf,0x6f,0x35,0x83,0x73,0xd0,0xee,0x55,0xd4,0x59,
|
||||
0x00,0x74,0x2e,0x28,0x92,0x87,0xa7,0x74,0xbb,0x5f,0xab,0x34,0x79,0x5d,0x34,0xe5,
|
||||
0x01,0xd5,0xa2,0x53,0x5c,0x43,0xa0,0x10,0xe2,0xc3,0x4e,0xef,0x24,0x0a,0x7c,0x06,
|
||||
0x40,0x85,0x74,0xc7,0x0b,0xd2,0xd0,0xf9,0x14,0xae,0x1f,0x98,0xf8,0xdb,0x55,0xf9,
|
||||
0x73,0x22,0x21,0xc3,0x87,0x1d,0x80,0x83,0xbe,0x18,0x2b,0xfa,0x40,0xf4,0x78,0x21,
|
||||
0xae,0xe6,0x12,0x2e,0x87,0xb9,0xa4,0x56,0x44,0x0a,0x18,0x6e,0x1f,0x97,0x56,0x22,
|
||||
0x8d,0x0d,0xb5,0x0c,0x50,0x5a,0x70,0x50,0xae,0x3b,0xe0,0xa3,0x55,0x2d,0xee,0x85,
|
||||
0x98,0x5c,0x8b,0x5f,0xde,0xfa,0x7c,0x5d,0x97,0x25,0xd7,0x57,0xe7,0x2d,0xf1,0x52,
|
||||
0xae,0x31,0xab,0x06,0x93,0xd0,0x47,0x41,0x5a,0x2d,0xbf,0x87,0x5e,0x0b,0x0d,0x69,
|
||||
0xb2,0xbc,0x10,0x03,0xd3,0xd7,0xef,0xbb,0x3e,0x91,0xa3,0x5e,0x0f,0xf3,0x45,0x0e,
|
||||
0xba,0x32,0x82,0x14,0xd4,0x44,0x4a,0xea,0x82,0xcc,0x40,0xec,0x90,0x88,0x55,0x96,
|
||||
0xe4,0x52,0xca,0x4b,0x8a,0x3d,0x34,0x60,0xb7,0x0f,0x5b,0xe7,0x75,0x98,0x95,0xfe,
|
||||
0x32,0xdc,0x07,0x2e,0xc8,0x51,0x74,0x7f,0x96,0xac,0xce,0xc7,0xa6,0x24,0x4d,0xae,
|
||||
0x23,0xc0,0x27,0x73,0xf7,0xdd,0xb6,0x1f,0xd2,0xdf,0xae,0x4c,0xa1,0xbb,0x09,0xab,
|
||||
0x06,0x43,0xa7,0x22,0xf9,0x79,0x61,0xd6,0x09,0xc4,0x9a,0xca,0x68,0x35,0xfa,0x56,
|
||||
0x5d,0x2e,0x02,0xb6,0xa5,0xfe,0x76,0x2d,0x01,0xd2,0xf2,0xd4,0xb2,0x06,0x33,0x33,
|
||||
0xce,0x8f,0x50,0xd6,0x85,0xb7,0xba,0xda,0x1f,0xe0,0xe6,0x72,0x15,0xdf,0xa8,0xd7,
|
||||
0x55,0x04,0xee,0xaa,0x2e,0xb0,0x9c,0x86,0x15,0x0c,0xfa,0xbf,0xdf,0xe1,0x40,0x77,
|
||||
0xc9,0x96,0x1d,0xae,0x44,0x43,0x6b,0x59,0x2c,0xb9,0x6b,0x42,0x46,0xa9,0x2e,0xd7,
|
||||
0x65,0x56,0x01,0x58,0x0e,0x22,0xe1,0x7a,0x99,0x86,0xab,0x87,0xbe,0x78,0xf4,0x14,
|
||||
0x79,0x44,0x1d,0x2d,0x25,0xb5,0x3a,0x70,0xb7,0x0b,0x62,0x4a,0xfd,0x59,0x35,0xc0,
|
||||
0x8c,0x5d,0x84,0xf6,0x79,0xd1,0x65,0x12,0x09,0xa6,0x4e,0x5e,0x8a,0x49,0xc2,0xdd,
|
||||
0x1a,0x82,0x51,0x52,0x04,0x5a,0x45,0x68,0x35,0x13,0x7f,0xc6,0xac,0x17,0xd1,0xc3,
|
||||
0x15,0x80,0x71,0x05,0x10,0x5e,0x46,0x6a,0x0b,0x6f,0x0f,0xbf,0x7e,0xde,0xfd,0xc0,
|
||||
0xa4,0x75,0xc0,0x87,0xaa,0x06,0xa8,0x4d,0x43,0x98,0x89,0x6e,0xef,0x18,0x12,0xd2,
|
||||
0x66,0x07,0x92,0x3d,0x5a,0x8c,0xd5,0xd5,0x14,0x16,0xaf,0xfc,0xa7,0x65,0x80,0xf6,
|
||||
0x20,0x66,0x61,0x96,0x52,0x17,0x0b,0x01,0x49,0xde,0x16,0x53,0x47,0x0b,0x71,0xb9,
|
||||
0xda,0x05,0x31,0xe9,0x7a,0x3a,0xce,0x12,0x0c,0x0a,0xd0,0xe7,0xd7,0x34,0xb8,0x1b,
|
||||
0x72,0x9a,0xf2,0x16,0xe4,0x3a,0x84,0x59,0x37,0x0f,0x68,0xd4,0x65,0x00,0xa6,0xeb,
|
||||
0x48,0xc8,0x51,0x38,0xb0,0xdf,0xd9,0xe9,0xb7,0x39,0xd0,0xae,0xf0,0x55,0x24,0xb7,
|
||||
0x14,0x79,0x80,0x81,0x9b,0x27,0x38,0x9a,0xa5,0x92,0x1e,0x81,0xe5,0x95,0xd5,0x0a,
|
||||
0x89,0x99,0xb4,0x5e,0x40,0x6b,0x4b,0x5a,0xad,0x06,0x37,0xbb,0x20,0x74,0x79,0xf6,
|
||||
0xba,0x5d,0x43,0x4d,0x50,0x0d,0x75,0x16,0x63,0x2f,0xc3,0xe8,0x3b,0xb9,0xa3,0x75,
|
||||
0x08,0x5d,0x3c,0x1e,0x5d,0x85,0x12,0x2f,0xc2,0x46,0x11,0xd8,0xea,0x82,0xb8,0x78,
|
||||
0x44,0x97,0xb1,0xe6,0xa0,0x8e,0xae,0x25,0x39,0x70,0xd1,0x98,0x4c,0x12,0x60,0x38,
|
||||
0x3c,0x74,0xd4,0x00,0x67,0x2e,0x73,0xb6,0x51,0x1f,0xd8,0xdc,0x6d,0xec,0xf0,0x3a,
|
||||
0xe8,0x2e,0xa6,0x62,0x25,0xdb,0x01,0xda,0xc3,0xc0,0x33,0x6b,0xbd,0x88,0x90,0x2d,
|
||||
0x3c,0xdc,0x36,0x60,0x0b,0xb9,0x77,0x34,0xa9,0x3f,0xca,0x60,0xf0,0x32,0x58,0x94,
|
||||
0x00,0xce,0x6a,0xf0,0x20,0x0c,0xe9,0xda,0x05,0x8a,0x3a,0x42,0xd3,0xbd,0xa3,0xe1,
|
||||
0xa5,0x64,0x55,0x00,0x56,0x5d,0x90,0xd9,0x4c,0xfd,0x2c,0xe4,0x49,0x78,0x1b,0x74,
|
||||
0x0d,0xba,0x1d,0xa6,0xd0,0x3d,0x83,0x32,0xf8,0xd2,0xe3,0x75,0x6b,0x14,0x0e,0x3c,
|
||||
0xa0,0xe1,0xda,0xd1,0xa6,0x82,0x04,0x5d,0x80,0x9d,0x41,0x57,0x01,0x3b,0xd9,0x59,
|
||||
0x73,0xed,0x60,0xa6,0x2e,0x40,0x1e,0x46,0x9f,0xe1,0xe0,0xc1,0xa8,0x28,0xdd,0x9d,
|
||||
0xe0,0x02,0xfc,0x78,0x77,0xaf,0x0b,0x22,0xf5,0x17,0xd6,0xba,0x70,0xb3,0x31,0xde,
|
||||
0x7b,0x0f,0xe4,0x2c,0xf2,0x4e,0xe8,0x32,0xe2,0x20,0x40,0xd7,0x34,0x61,0x94,0x4c,
|
||||
0xa9,0x3f,0x29,0xc0,0xd9,0x97,0x1f,0xe4,0xd0,0x27,0x4a,0x7a,0x11,0x79,0x09,0x30,
|
||||
0xd7,0x66,0x52,0x9a,0x68,0xc0,0xd4,0x07,0x56,0xfa,0x73,0xeb,0x48,0x53,0x44,0x11,
|
||||
0xa8,0x8b,0xc8,0x8b,0x57,0x21,0x4e,0x1e,0xf1,0x2a,0x06,0xf7,0x80,0x61,0xc8,0x0c,
|
||||
0xb0,0x1e,0xe6,0x51,0xb8,0xd9,0x97,0x1f,0xa6,0x30,0x27,0x27,0x74,0xed,0xbe,0x08,
|
||||
0x5d,0x44,0x1c,0xfe,0x0e,0xdc,0x3a,0x54,0xdb,0xd2,0x9f,0x1c,0x85,0x73,0xeb,0x40,
|
||||
0x53,0x45,0x3e,0xa2,0xc8,0x8b,0xf0,0x15,0xe8,0x22,0x6e,0x7d,0x2f,0xc3,0x30,0x4d,
|
||||
0x59,0x03,0xa4,0x51,0xb8,0x99,0x4e,0x9d,0x2d,0x04,0xf1,0xba,0x41,0xf2,0xea,0xa5,
|
||||
0xb0,0x01,0x83,0x6e,0x65,0x30,0x6d,0x30,0x60,0x29,0x40,0x72,0x81,0x2e,0x1d,0x66,
|
||||
0xca,0x68,0xaf,0x46,0xe8,0xc2,0x69,0x1d,0xd4,0x1e,0x5e,0xc0,0xb9,0xe3,0x56,0x17,
|
||||
0x44,0xea,0xaf,0x24,0x33,0xc0,0x79,0xf0,0x7e,0x88,0x62,0x47,0x63,0x0f,0x09,0x3c,
|
||||
0x71,0x69,0x1a,0x19,0xe8,0x0f,0xe2,0x07,0x76,0x40,0xea,0xf3,0x23,0xbf,0x6a,0xb5,
|
||||
0xbe,0xc3,0xd7,0xdd,0x5c,0x59,0x21,0xf5,0xad,0xac,0xa4,0x5d,0x1a,0x06,0x6e,0xb3,
|
||||
0x00,0x89,0xc1,0xf0,0x70,0x46,0xe6,0xfa,0xdd,0x07,0x0e,0x98,0x37,0x36,0xde,0x95,
|
||||
0x74,0x27,0xed,0x56,0x0d,0xc6,0x30,0x0d,0xee,0xc1,0xa1,0xf9,0x1a,0x2e,0x1d,0x64,
|
||||
0xfa,0x48,0x28,0xe1,0xd1,0xc5,0xd7,0xe1,0xa1,0xef,0xce,0x71,0x8c,0xb6,0xa5,0xbf,
|
||||
0x61,0x78,0x7e,0xe4,0x57,0xad,0x2e,0xf0,0x65,0xc3,0xd3,0xf8,0x00,0x7f,0xd2,0x1d,
|
||||
0x97,0x5c,0xbb,0x81,0x02,0x04,0xf6,0x90,0x40,0xc3,0x9d,0x43,0x78,0x82,0x10,0xf1,
|
||||
0xc6,0xdc,0x21,0xae,0xb8,0x33,0x8a,0xd4,0x06,0x01,0x62,0x17,0x98,0x22,0x88,0x2b,
|
||||
0x47,0xf0,0x08,0xf5,0x88,0x62,0x8f,0x18,0xbc,0x92,0x76,0x69,0x26,0x2a,0x05,0x10,
|
||||
0xce,0x00,0xe7,0x23,0x77,0x56,0x08,0xa4,0x95,0xf2,0xd2,0x57,0xae,0xc0,0x7d,0xc7,
|
||||
0x70,0xe5,0x30,0xca,0x01,0x42,0x04,0x71,0xe5,0xf3,0x3d,0x43,0x4e,0xb2,0x07,0xd4,
|
||||
0x21,0x87,0x87,0x69,0x77,0x06,0x15,0xd1,0x80,0x59,0x7f,0xf3,0x14,0x3d,0x00,0xc6,
|
||||
0x0e,0xeb,0x2e,0x7d,0x78,0xe5,0x90,0x70,0xe4,0xce,0x61,0x28,0x83,0xc6,0x0c,0xc6,
|
||||
0x95,0x8f,0xf7,0x10,0x0d,0xd0,0x1d,0x92,0x97,0xa6,0xed,0xf0,0x70,0xc9,0x95,0xa3,
|
||||
0xb4,0xab,0xca,0x01,0xba,0xf2,0xf1,0x1e,0xa2,0xbb,0x42,0xe4,0x59,0x48,0xbb,0xf3,
|
||||
0x0d,0x0d,0x8e,0x20,0xa5,0x99,0x2f,0xdb,0x4f,0x60,0x60,0x51,0x77,0x89,0x6e,0xae,
|
||||
0x64,0x30,0x6d,0x19,0x80,0xe7,0x4e,0x7e,0xd5,0xea,0x9a,0xad,0x3d,0xa0,0x6f,0xff,
|
||||
0xd0,0x9d,0x0c,0xc6,0x40,0x06,0x21,0x05,0x74,0xe5,0xc3,0x3d,0x45,0x38,0x2d,0xa5,
|
||||
0x87,0xe4,0xed,0x5f,0xda,0xef,0xb8,0x72,0x14,0xe9,0x00,0xe7,0xcf,0x7c,0xab,0xd5,
|
||||
0x0a,0x29,0x0f,0xb8,0xc3,0x1b,0xc0,0x9d,0x0c,0xc6,0x68,0x9b,0xc6,0x3c,0xca,0xaf,
|
||||
0x5a,0xad,0x11,0x79,0xcc,0x1d,0xc2,0x95,0xa9,0xf8,0x6d,0x03,0x6b,0x30,0x86,0x1b,
|
||||
0x1f,0xed,0x39,0x3a,0x97,0xf6,0x75,0xb8,0x33,0x8a,0x84,0x01,0xd8,0x98,0x47,0xf3,
|
||||
0xad,0x56,0xf3,0x1a,0x79,0x57,0xf7,0xaf,0x1e,0xba,0x63,0x65,0x18,0x81,0x5d,0xf9,
|
||||
0x60,0xcf,0xd1,0x3d,0xb4,0xc9,0xdb,0x8f,0xef,0xef,0xbb,0x95,0xc1,0x80,0x0d,0xcf,
|
||||
0x27,0x76,0x88,0xb9,0xab,0x48,0x1e,0x6e,0x07,0xae,0x1c,0x04,0xe8,0x9b,0x4f,0xf3,
|
||||
0xad,0x56,0xa3,0x52,0x78,0x44,0x5f,0x3c,0x1e,0x31,0x5c,0x39,0xca,0xdc,0xca,0xaf,
|
||||
0xda,0x55,0xd4,0x5d,0x8d,0x23,0xf6,0x5d,0x19,0x46,0x87,0x00,0xec,0xc6,0xc7,0xfa,
|
||||
0x02,0x3b,0xcc,0x1c,0xd3,0x17,0x3f,0x75,0xe7,0x64,0xc2,0x79,0xb5,0x5e,0xc0,0xa6,
|
||||
0xa5,0x3d,0x60,0x2f,0x1e,0x77,0x65,0x14,0x69,0x7e,0xcd,0xb7,0x5a,0x8d,0xed,0xc7,
|
||||
0x6d,0xf6,0x4e,0xe3,0x87,0x86,0xd7,0x0d,0x9a,0x35,0x2c,0x48,0xf6,0x4e,0xe3,0xc9,
|
||||
0xd3,0x64,0x32,0xee,0x4a,0x17,0x6e,0x8e,0xed,0xb7,0x1a,0x42,0xee,0x92,0xf1,0x64,
|
||||
0x92,0x1e,0x92,0x51,0xaf,0xdb,0x33,0x6b,0x88,0xc5,0x81,0xb8,0xd3,0xe4,0x29,0x92,
|
||||
0x07,0x1c,0x6e,0x78,0xdd,0x9e,0x99,0xc3,0xc2,0x69,0x32,0xc9,0xdc,0xe1,0x3f,0xe2,
|
||||
0x73,0x37,0x4c,0xe1,0x36,0x8a,0x16,0x77,0xc9,0x75,0xd8,0x7c,0x72,0xed,0x97,0xd9,
|
||||
0xc1,0x90,0x02,0x47,0x72,0x7d,0x1d,0xd9,0x5b,0x5f,0xaf,0x78,0xdd,0x9e,0x99,0x43,
|
||||
0x44,0x2a,0x8f,0x29,0x5c,0xf1,0xba,0x39,0x33,0x87,0x06,0xf1,0x06,0xd8,0x4e,0x6e,
|
||||
0x6f,0xaf,0x27,0x7f,0xea,0x00,0x1f,0x10,0x5d,0x54,0x5e,0x12,0xc8,0x5b,0xdf,0x06,
|
||||
0x0e,0x8f,0xa7,0x7d,0x69,0xc2,0xd9,0x47,0x1a,0x98,0x43,0xf2,0xb6,0xb7,0x8f,0x8f,
|
||||
0xb7,0x8f,0x5d,0x9a,0x08,0x38,0xc7,0xe8,0x11,0x79,0x20,0xbd,0x75,0xa0,0x6f,0x7b,
|
||||
0x7f,0x9e,0x7b,0x0b,0xae,0x20,0x01,0xd4,0x81,0xf4,0x8e,0xe5,0xa3,0x8f,0xae,0x1f,
|
||||
0x36,0x1b,0x68,0x5f,0x21,0xe1,0x21,0x79,0x08,0x37,0x97,0x93,0x98,0x4f,0xe4,0x8f,
|
||||
0x15,0x77,0x8b,0xb0,0xb9,0x33,0x8c,0x3e,0xcf,0x28,0xb0,0xe5,0x02,0x77,0x48,0x60,
|
||||
0xd2,0xcd,0xf5,0x74,0xe6,0x12,0xed,0x43,0xe4,0x6d,0x91,0xd4,0xb7,0x78,0x76,0xf6,
|
||||
0xd3,0x2e,0xdc,0x83,0x62,0x69,0x51,0x6a,0xef,0xec,0xec,0xec,0xf8,0xcc,0xc5,0xe5,
|
||||
0x24,0xe6,0x14,0x39,0x62,0x4e,0x61,0xdf,0xeb,0xe6,0xcc,0x1c,0x8c,0xf8,0xd9,0xe2,
|
||||
0x31,0x28,0x8f,0x71,0x3c,0xa3,0x8b,0xa3,0x79,0x88,0x81,0xad,0xbe,0xc7,0xcf,0x1e,
|
||||
0x9f,0xe6,0xb5,0x6d,0xe7,0x03,0x6b,0x36,0x7b,0x67,0x8f,0x9d,0x9d,0xfc,0x5f,0x7b,
|
||||
0x67,0xc3,0x94,0x38,0x0c,0x84,0xe1,0x2a,0xe8,0x20,0x9c,0x89,0x58,0xc1,0x1b,0x3a,
|
||||
0xde,0xe5,0x14,0x11,0xfc,0xaa,0x28,0x3d,0x8f,0xb9,0xf3,0x80,0x02,0xff,0xff,0x2f,
|
||||
0x5d,0x76,0x13,0x24,0x55,0x28,0x13,0x4f,0x28,0x6d,0xf7,0xa9,0xda,0x4e,0x28,0x4e,
|
||||
0xe6,0x9d,0xcd,0x26,0xd9,0x7c,0x25,0x9d,0x9d,0xd4,0x71,0xd5,0x43,0xc3,0x03,0xf1,
|
||||
0xe4,0xd5,0xa2,0x18,0x8c,0x2d,0x3f,0x95,0x76,0xf7,0xf2,0x57,0x42,0x2d,0x18,0x5b,
|
||||
0x4e,0x18,0x5a,0x1e,0x20,0xff,0xae,0xfd,0x54,0x81,0xcc,0xf1,0x32,0x9d,0xb2,0xb9,
|
||||
0x84,0xdd,0xa4,0xb3,0x93,0x3e,0xba,0x4c,0x16,0x5e,0xcd,0x80,0x51,0x17,0xce,0x96,
|
||||
0x87,0x57,0xed,0x06,0xcc,0x65,0xeb,0x59,0xcb,0x95,0x65,0x0a,0x28,0x1d,0x68,0x27,
|
||||
0xaf,0x41,0x31,0xe9,0xec,0xa4,0x0e,0xaf,0xa1,0xb5,0x93,0xea,0xb9,0x6e,0x83,0x82,
|
||||
0xd0,0xb6,0x14,0x95,0x78,0x0a,0x46,0x41,0x68,0x5b,0x3a,0x6c,0xa0,0xb4,0xc3,0x1b,
|
||||
0x05,0xa1,0x6d,0x29,0xdf,0xa3,0x74,0xa8,0x5e,0xe8,0x9e,0x27,0x9d,0x9d,0xd4,0xf1,
|
||||
0xfb,0x4e,0x97,0x5d,0xa9,0x5e,0x28,0x7a,0x19,0x5d,0xb1,0xb1,0x46,0x6e,0xb4,0x78,
|
||||
0x22,0x84,0x6b,0x23,0x67,0x53,0x67,0x8a,0xbe,0x1b,0x86,0xa1,0x12,0x4f,0x88,0x90,
|
||||
0x82,0xd0,0xb6,0x04,0xcc,0xd5,0xda,0xc1,0xcf,0x61,0xd2,0xd9,0x49,0x1f,0xa7,0x73,
|
||||
0xf5,0x84,0x70,0xb3,0xb1,0x53,0xe4,0x26,0x39,0x41,0xe1,0x10,0x47,0x38,0x9b,0x38,
|
||||
0x9b,0x3a,0x5b,0x3c,0x82,0x72,0xa1,0x23,0xf0,0x72,0x4a,0x49,0x67,0x27,0x7d,0xf4,
|
||||
0xc4,0x4c,0x3c,0xc7,0x11,0x8c,0x27,0x9d,0x9d,0xd4,0x31,0xd4,0xfb,0xa1,0xfe,0xc1,
|
||||
0x9d,0x51,0xc9,0x01,0x12,0x9f,0x8b,0x07,0x9b,0xb8,0xbe,0xbd,0x02,0x3e,0x7f,0xe1,
|
||||
0x4a,0xa7,0x65,0x72,0xb7,0x8c,0xff,0xa4,0x5f,0x6c,0x31,0x68,0x21,0xbf,0xc5,0x65,
|
||||
0x8d,0x66,0x5d,0xbf,0x33,0xd2,0x69,0x6c,0xda,0x1d,0x66,0x66,0xaf,0xd7,0x4f,0xa1,
|
||||
0x7f,0xec,0xc4,0xd1,0x50,0x23,0x6e,0x97,0x46,0x92,0x18,0x65,0x70,0xcb,0xa0,0x0f,
|
||||
0xe2,0x15,0x63,0xd5,0x03,0xb5,0x8a,0x10,0x30,0x98,0x30,0x33,0xad,0x47,0xc3,0x98,
|
||||
0x8a,0x49,0xbc,0xf1,0x29,0x0e,0x27,0x10,0x83,0x89,0x24,0xb9,0xb4,0x9a,0x10,0xe0,
|
||||
0x5d,0x25,0x47,0xab,0x3d,0xaa,0xbc,0xa7,0x56,0x9a,0xaa,0x8f,0xcf,0xb9,0xef,0x57,
|
||||
0xe0,0x61,0xb7,0x52,0xdc,0x15,0x98,0x14,0xd6,0x57,0xfe,0xf3,0x1c,0x30,0x52,0xa5,
|
||||
0x71,0x8f,0x2f,0xf9,0x9c,0xf7,0x0f,0xf1,0x8d,0x5f,0xd2,0x4d,0x82,0x6e,0x30,0xfd,
|
||||
0xa5,0xda,0xc6,0xa4,0x29,0xd5,0x22,0x7e,0xd9,0x05,0x25,0xda,0x71,0xb5,0x01,0x47,
|
||||
0xff,0x28,0xca,0xfe,0x15,0x38,0xc0,0x7d,0x8c,0x9d,0xee,0xe1,0xd7,0x68,0x20,0x4e,
|
||||
0x99,0xdf,0x11,0x8f,0x7f,0xe9,0x48,0x8b,0x75,0x0e,0x3a,0xaa,0xf3,0xf4,0x3a,0xa8,
|
||||
0x29,0x19,0x60,0x0b,0x6a,0x82,0x55,0x53,0x22,0xb1,0xe6,0x65,0x9e,0xff,0x00,0xa2,
|
||||
0xe9,0xc1,0x23,0x74,0x9b,0xb9,0x9f,0x0a,0xf3,0x38,0x73,0x69,0xb2,0x7b,0x01,0xe7,
|
||||
0x0f,0x71,0xf9,0xa0,0x4f,0xb2,0x33,0x41,0x03,0xec,0xfb,0x05,0x78,0x5b,0x0f,0x1e,
|
||||
0x61,0x6b,0x30,0xf7,0x53,0x61,0xf6,0x40,0x05,0x55,0x8f,0x0e,0x43,0x11,0x86,0xd2,
|
||||
0xa0,0xbc,0x7d,0x78,0x88,0xfe,0x08,0x65,0x78,0x5c,0xdb,0x21,0xc0,0xa1,0x62,0x66,
|
||||
0x3c,0xb9,0xac,0x6f,0x05,0x3f,0xc0,0x8b,0xa9,0xe2,0x7b,0x21,0x94,0x41,0x4d,0xdc,
|
||||
0x25,0x6d,0x40,0x59,0x03,0x97,0xe0,0xfe,0x5d,0x7d,0x15,0x5a,0x83,0x83,0xbc,0xf7,
|
||||
0x42,0xbe,0x81,0xfb,0xd3,0xb1,0x28,0x34,0xa8,0xc0,0x2f,0x8b,0x25,0xfa,0x35,0x7d,
|
||||
0xff,0x19,0xee,0x7a,0x11,0x3a,0x38,0x40,0x37,0xef,0x15,0xc8,0x10,0x04,0xd1,0x27,
|
||||
0xd4,0xb6,0x95,0x93,0x0b,0x96,0xd9,0x9f,0x2c,0xdb,0x65,0xb8,0xeb,0xc1,0x23,0xe8,
|
||||
0xb6,0xb0,0xbc,0xdb,0x5f,0xdd,0xa8,0x51,0xd1,0xb8,0x2a,0xca,0xb1,0x89,0xf6,0xbb,
|
||||
0x83,0xa8,0x8b,0x30,0xe8,0x5b,0x83,0x23,0xd1,0xf1,0xed,0x49,0x08,0x8d,0xc1,0xe4,
|
||||
0x72,0xbe,0x1d,0x5c,0x83,0xb1,0x1d,0xab,0x80,0x1e,0x16,0xdc,0xbf,0xca,0xc9,0x89,
|
||||
0x95,0x7d,0xb3,0x1d,0x6c,0x77,0xaf,0x3d,0x83,0xdb,0xce,0x29,0xc8,0xa0,0x47,0xd3,
|
||||
0x1a,0x20,0x5c,0xe0,0x3f,0x41,0xd2,0xf1,0x8a,0x29,0x1a,0x01,0x9b,0xd7,0xdc,0x79,
|
||||
0x06,0x9b,0x71,0x7a,0x42,0x5a,0x13,0x9e,0x2f,0x7d,0x0e,0x6d,0x6a,0x27,0x7e,0xbb,
|
||||
0x58,0x0f,0xba,0x22,0x4e,0x6b,0x13,0x39,0xdc,0x6e,0x38,0x46,0x07,0xd8,0x25,0x14,
|
||||
0x61,0xd4,0x52,0x76,0xd3,0xce,0xb0,0x06,0x6e,0xc7,0x4c,0x73,0xfe,0xaa,0x42,0x59,
|
||||
0xb4,0x9b,0x84,0xef,0xdf,0xaa,0xea,0xf6,0xae,0x53,0x0d,0xaa,0x42,0xd9,0x14,0xc7,
|
||||
0xee,0x86,0x33,0x1d,0xd5,0x27,0xc1,0x02,0xca,0xfd,0x92,0xfa,0x4e,0x9b,0x06,0x42,
|
||||
0x7c,0x5d,0xed,0x82,0xe7,0x73,0x51,0x15,0xf1,0x22,0xbb,0x72,0x0d,0x9d,0x24,0xdc,
|
||||
0x05,0x08,0xdd,0x40,0xa4,0xdd,0xb0,0x14,0x07,0xd1,0x06,0xdf,0xb3,0x4c,0x9a,0x44,
|
||||
0x43,0xcd,0x0b,0xe9,0xd2,0x32,0x06,0xcd,0xed,0xa1,0xa9,0x0b,0x4e,0xcd,0xf0,0x6a,
|
||||
0xcb,0x5a,0xd1,0x1a,0xb7,0x46,0x73,0x28,0x5f,0xe1,0x67,0x3a,0x24,0x0f,0xf4,0x38,
|
||||
0xa6,0x55,0x8b,0xf7,0xcb,0xd5,0xdb,0x1f,0xbf,0x24,0x9b,0xe3,0xad,0xa3,0x7c,0xb6,
|
||||
0x53,0x1b,0x8f,0x6b,0x70,0xcd,0xdc,0x5a,0xf0,0x65,0x58,0x19,0x2f,0xe0,0xe6,0xa0,
|
||||
0x40,0xb6,0x47,0x24,0x45,0xe1,0xb9,0x33,0xbf,0xd6,0x73,0x28,0x48,0xa6,0x19,0x9a,
|
||||
0x8e,0x90,0x3a,0xc0,0xd6,0x54,0x85,0x59,0x91,0x90,0x27,0xb4,0xa6,0x67,0xe8,0x27,
|
||||
0x68,0x29,0x97,0x35,0x91,0xe9,0x32,0xb9,0x1f,0x81,0xb3,0xc7,0x9c,0x87,0x45,0x23,
|
||||
0x70,0xf6,0x04,0xa6,0x03,0xcc,0xfd,0x08,0xc8,0x07,0x88,0x74,0xf7,0x28,0x84,0x6a,
|
||||
0xcd,0x8d,0xa9,0x5f,0x33,0xe9,0xdc,0xa4,0x8f,0x5b,0x53,0xbf,0x46,0xd2,0xb9,0x49,
|
||||
0x1f,0x9e,0x19,0x59,0x10,0xb4,0x9f,0x98,0x35,0xa7,0xa6,0x01,0xd2,0x7e,0x62,0xd6,
|
||||
0x44,0xba,0x70,0xb4,0xa7,0xbb,0x35,0x17,0x66,0x0b,0x86,0xd1,0x28,0x88,0x2d,0x6a,
|
||||
0x84,0x73,0x06,0x4d,0xc4,0xb7,0x26,0xd2,0x85,0xa3,0xc5,0xe8,0xd6,0x3c,0x99,0xfa,
|
||||
0xd1,0x62,0x74,0x6b,0xae,0xcd,0xd1,0x25,0x9a,0x05,0x6d,0x4f,0xa4,0x0b,0x47,0x8b,
|
||||
0xd1,0xad,0xa9,0x98,0xfa,0xc5,0x1e,0xcb,0xf5,0x0f,0xfb,0x6c,0xb9,0xdb,0x36,0x30,
|
||||
0x01,0x00,
|
||||
0x1f,0x8b,0x08,0x08,0x72,0xd1,0xe2,0x40,0x00,0x03,0x48,0x6f,0x6c,0x7a,0x2d,0x48,
|
||||
0x65,0x72,0x5f,0x64,0x74,0x5f,0x33,0x43,0x5f,0x33,0x32,0x30,0x78,0x32,0x34,0x30,
|
||||
0x5f,0x38,0x62,0x70,0x70,0x2e,0x62,0x6d,0x70,0x00,0xec,0x5d,0x0f,0x6c,0x1b,0xd7,
|
||||
0x79,0xff,0x12,0x09,0xc5,0xc4,0xd2,0x01,0x26,0x0a,0x03,0x56,0x88,0x1e,0x59,0xa9,
|
||||
0x14,0x43,0xa8,0xb6,0x10,0x08,0x72,0x4d,0x10,0xf4,0xe6,0x28,0x09,0x90,0x2a,0x02,
|
||||
0x1c,0x69,0xe2,0x98,0x6a,0xbc,0xcd,0xa3,0x38,0x33,0x64,0x4c,0xd7,0x54,0xe4,0x36,
|
||||
0xd3,0x6c,0xd4,0x70,0x9a,0xc0,0xf0,0xcc,0xce,0x73,0xb3,0x2d,0xd1,0x42,0x25,0xd0,
|
||||
0x1c,0x29,0x11,0x27,0x42,0x15,0x25,0x81,0xf3,0x5a,0x36,0x54,0x77,0x66,0xa8,0x0e,
|
||||
0x72,0xed,0x25,0x59,0x24,0xb4,0x69,0xfe,0xac,0x68,0xa7,0x85,0x4a,0x42,0xbb,0x89,
|
||||
0x77,0x20,0xf6,0xbd,0x3f,0x47,0x1e,0x29,0xc9,0x8a,0x5d,0x2b,0x8e,0x8b,0xf7,0x3b,
|
||||
0xfe,0xb9,0xf7,0xee,0xbd,0xef,0xde,0xfb,0xbd,0xdf,0xfb,0xbe,0x77,0xf4,0x9d,0xbc,
|
||||
0xfb,0x81,0xb6,0x96,0xdb,0x80,0xa0,0xad,0x1a,0xc0,0x8a,0xdf,0x7f,0x88,0xc9,0x15,
|
||||
0xfc,0xbe,0x0d,0x7e,0x87,0xe6,0x43,0xf3,0x6d,0xd0,0xb0,0x0d,0xe8,0x1b,0x58,0x51,
|
||||
0xa8,0xbe,0xbd,0x1a,0x5a,0x8f,0x2e,0x43,0xfd,0xee,0x41,0x18,0x7a,0xfa,0x9f,0xa0,
|
||||
0xfb,0xc1,0x6e,0x18,0xf9,0x8f,0x2b,0xd0,0xbc,0x77,0x04,0xbc,0x67,0x3e,0x84,0xba,
|
||||
0x2f,0xee,0x84,0xc1,0xa3,0xc7,0xe0,0xe2,0xc5,0x57,0x61,0x64,0x7a,0x1e,0x9a,0xef,
|
||||
0x6c,0x86,0xfa,0x7b,0x9e,0x84,0xc6,0xbd,0x73,0xd0,0xf1,0xd4,0x7b,0x70,0xf1,0x57,
|
||||
0x0a,0x34,0x1e,0xbc,0x08,0x75,0x4d,0x3d,0x70,0xf6,0xdf,0x52,0xa0,0xaf,0x33,0x43,
|
||||
0xf7,0xc1,0x13,0xd0,0xdc,0xf5,0x04,0x1c,0x4b,0xe6,0xa1,0xfd,0x1b,0x67,0xa1,0xfb,
|
||||
0xe8,0x1c,0xcc,0x2d,0x2c,0x41,0xf0,0xd9,0x25,0x70,0xdc,0x7d,0x2f,0x34,0x3e,0xfa,
|
||||
0x36,0xd4,0x7f,0xc5,0x0b,0x43,0x2f,0x9e,0x85,0xe5,0xf7,0x72,0x50,0xff,0x85,0x7a,
|
||||
0x38,0x36,0x7a,0x11,0x96,0x7e,0xfe,0x36,0x0c,0xfd,0xeb,0xcf,0xa0,0xe3,0xe4,0x12,
|
||||
0x9c,0xf8,0x9b,0x53,0xd0,0xfb,0xe7,0x7b,0xa1,0xb5,0x6d,0x07,0xe8,0x7f,0x7f,0x3b,
|
||||
0x04,0x1f,0x09,0xc1,0xd9,0x9f,0x2a,0xd0,0xf1,0xe0,0x1f,0x43,0xfd,0x17,0x9b,0xe0,
|
||||
0xec,0xbf,0x5f,0x84,0xc6,0x9e,0x97,0xa0,0xf1,0xb1,0x65,0xe8,0x9f,0xcc,0x43,0xfd,
|
||||
0xfd,0x27,0xa0,0xf7,0x1f,0xde,0x84,0xe5,0xcb,0x1f,0x43,0xfb,0xe3,0xff,0x05,0x8d,
|
||||
0x0f,0xcf,0x43,0xf5,0xe7,0x6b,0xa1,0xdd,0x77,0x02,0xea,0xda,0x82,0xf0,0xce,0xbb,
|
||||
0xef,0xc2,0xd0,0xb9,0x8f,0xa1,0xff,0xd0,0x37,0xe1,0xec,0x1b,0x0a,0x8c,0xbf,0x14,
|
||||
0x83,0xa1,0xe7,0x47,0xa0,0x7f,0xf4,0x2d,0xe8,0x3f,0x79,0x16,0xea,0xb6,0xf5,0x42,
|
||||
0xfb,0xfd,0x5f,0x85,0xba,0x2f,0x98,0xe0,0xc4,0xcb,0x79,0xe8,0xf6,0x61,0x1f,0xbf,
|
||||
0x36,0x0e,0xcd,0x9d,0xc7,0xc0,0x71,0x7c,0x19,0xa6,0x5e,0x55,0xa0,0x75,0xff,0x14,
|
||||
0x9c,0x7d,0x79,0x0e,0x2e,0xbe,0xfb,0x31,0x38,0xec,0x0e,0xa8,0xb7,0x39,0xa0,0xf5,
|
||||
0xaf,0xdf,0xc4,0x73,0x9f,0x06,0xef,0xb3,0x6f,0x42,0xdd,0x1d,0x75,0x30,0xfe,0xca,
|
||||
0x0a,0xb4,0x3e,0x18,0x84,0xee,0x1e,0x17,0x34,0x6f,0xdb,0x06,0xad,0x07,0xd1,0xb6,
|
||||
0xa1,0x0e,0xbc,0x78,0x8e,0xf9,0x57,0xb1,0x5f,0xa7,0xfe,0x0e,0x7a,0x7d,0x41,0x50,
|
||||
0x0a,0x0a,0xe8,0xf5,0x7a,0x70,0x1c,0xfd,0x29,0x4c,0xfd,0xe4,0x23,0x70,0x3c,0x3c,
|
||||
0x0e,0x75,0xb6,0x76,0x38,0xf6,0xed,0xe3,0x70,0xf1,0x8d,0x45,0x98,0x9a,0x49,0x42,
|
||||
0x73,0xdf,0x59,0x78,0xe7,0x57,0xbf,0x84,0xf9,0x85,0xf3,0x70,0xec,0x29,0x6c,0xcb,
|
||||
0xc0,0xcf,0x61,0xf9,0x83,0x0f,0x40,0xbf,0x75,0x07,0x34,0xda,0xb6,0xc1,0xfc,0x2b,
|
||||
0x3f,0x86,0xc6,0x47,0xfe,0x13,0xea,0x9d,0x21,0x18,0x79,0xe5,0xff,0x60,0xf0,0xf0,
|
||||
0xb7,0x60,0x7c,0x72,0x0a,0x86,0xce,0x4c,0x41,0xdd,0x5d,0x5e,0x68,0xfc,0xd3,0x59,
|
||||
0xe8,0x8d,0x7e,0x08,0xcd,0xbb,0xbd,0xd0,0x8a,0xf6,0x83,0xff,0x92,0x07,0xbd,0xa5,
|
||||
0x1d,0xba,0x9f,0xcd,0x43,0x63,0xd7,0x3f,0x42,0xc7,0xbd,0x1d,0xd0,0xe8,0xfc,0x13,
|
||||
0xe8,0xde,0x3f,0x04,0xed,0x78,0xfc,0xd8,0x74,0x1e,0x8e,0x3d,0x3f,0x0f,0x8e,0x07,
|
||||
0x07,0xa1,0xfb,0x3b,0x6f,0x82,0xf7,0xe1,0x20,0x78,0x8f,0x4e,0xc1,0xe0,0x53,0x67,
|
||||
0xa1,0xfd,0xa1,0x7e,0x70,0x1c,0x5e,0x82,0x66,0x67,0x37,0xb4,0x23,0x1f,0xc7,0xbe,
|
||||
0x33,0x0a,0xa7,0xff,0xfe,0x69,0x98,0x7f,0x5b,0x81,0xd3,0x67,0xe6,0x60,0xf0,0xf8,
|
||||
0x10,0x0c,0x4d,0xce,0x41,0xeb,0xfd,0xdf,0x80,0xd3,0x49,0x1c,0x13,0x3c,0x57,0xeb,
|
||||
0x63,0x17,0xe1,0x9d,0x0f,0x14,0xac,0x37,0x0f,0x43,0x2f,0x2f,0x43,0xf0,0x60,0x3f,
|
||||
0x74,0x1c,0x47,0x1b,0x7d,0x53,0xd0,0x7e,0x12,0x35,0xb7,0xf5,0x0f,0xc0,0xe1,0x74,
|
||||
0x42,0xff,0xd1,0x21,0xe8,0x3e,0x7e,0x11,0xba,0x07,0xc6,0xe1,0x9d,0xf7,0x50,0x4f,
|
||||
0xbb,0x83,0x30,0x3e,0x3d,0x07,0x8d,0xf7,0x9e,0x00,0xef,0x5e,0x2f,0xcc,0x9d,0x7b,
|
||||
0x05,0x3a,0x8e,0xa2,0xf6,0x02,0x3f,0x80,0x8e,0xbd,0x83,0xd0,0xd1,0xf1,0x00,0x9c,
|
||||
0x4e,0x7f,0x08,0xbd,0x0f,0xf5,0x42,0xeb,0x5d,0xad,0xd0,0x7b,0xea,0x22,0x1c,0x3b,
|
||||
0x7e,0x02,0xda,0x0f,0x4e,0xc1,0xc8,0x8b,0xe3,0x30,0xf7,0xf2,0x8f,0xe0,0xf4,0xa9,
|
||||
0xef,0xc2,0xd2,0x1b,0x4b,0x90,0xff,0x20,0x0f,0x75,0x5b,0xb7,0x83,0xfe,0x73,0x7a,
|
||||
0x18,0x3f,0x7f,0x05,0x82,0x2f,0xe2,0xd8,0x3e,0x8d,0x9c,0x84,0xcf,0xe3,0xf8,0x61,
|
||||
0x5f,0xee,0xb9,0x07,0x1a,0xed,0x7f,0x06,0x23,0xc9,0x25,0x68,0xfc,0xd2,0x97,0xa0,
|
||||
0xf9,0xaf,0x96,0x61,0xf0,0x7b,0x39,0x68,0x7c,0xe0,0x49,0xc8,0x7f,0x74,0x19,0x75,
|
||||
0x7a,0x00,0x06,0x1f,0x1b,0x84,0xb9,0x37,0xf2,0x30,0x32,0x32,0x02,0xf5,0x77,0xf5,
|
||||
0x42,0xb3,0x67,0x14,0x1c,0x07,0xc7,0x61,0xe9,0xbf,0x91,0xc7,0xaf,0x7e,0x17,0x46,
|
||||
0xce,0x8c,0x83,0xf7,0xb9,0xf7,0xa1,0xae,0xf1,0x7e,0xe8,0xf0,0x0c,0x42,0xab,0x6f,
|
||||
0x1c,0x3a,0x4e,0xfd,0x2f,0xd4,0xdf,0x7b,0x1a,0x1a,0x7d,0xf3,0xb0,0x84,0x73,0xe4,
|
||||
0xc4,0x59,0x2c,0x3b,0xb0,0x0c,0x4b,0x6f,0x2d,0xc3,0xdc,0xcf,0x14,0xe8,0x7f,0x11,
|
||||
0xfb,0xbf,0xad,0x03,0x5a,0x0f,0x2f,0x43,0x6b,0x0f,0xf2,0xfd,0x90,0x17,0xf5,0x82,
|
||||
0x7a,0x7a,0x74,0x1e,0xea,0x7e,0xaf,0x11,0xbc,0xa7,0xe6,0x41,0x7f,0x47,0x3d,0x38,
|
||||
0xbe,0xbd,0x0c,0xf3,0x3f,0x59,0x82,0x63,0xa7,0xa6,0x90,0x8f,0x41,0x68,0xde,0x3f,
|
||||
0x0f,0xa7,0x7f,0x84,0x5a,0xdc,0x3b,0x04,0x5e,0x9f,0x0f,0xa6,0x26,0x13,0xd8,0xa6,
|
||||
0x20,0x9c,0x98,0x5e,0x86,0xf6,0x07,0xfb,0xa1,0x1f,0x39,0x6e,0xdc,0xda,0x08,0xed,
|
||||
0xce,0x76,0xd4,0xea,0x3c,0x6a,0xe9,0x1d,0xd4,0x8c,0x82,0x1a,0x19,0x84,0x11,0x1c,
|
||||
0x9f,0xea,0xcf,0xe1,0x7c,0x47,0x9b,0x43,0xcf,0x3e,0x0f,0x5e,0xe4,0xc2,0x23,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf0,0x19,0xc2,0x58,0x2c,0x16,0x73,0xde,0xec,
|
||||
0x46,0xdc,0xc2,0x70,0x02,0x40,0xef,0xcd,0x6e,0xc4,0x2d,0x0c,0xc2,0xdf,0xf4,0xcd,
|
||||
0x6e,0xc4,0x2d,0x8c,0x7e,0xe4,0xcf,0x72,0xb3,0x1b,0x71,0x0b,0x43,0xcc,0xdf,0x6b,
|
||||
0x46,0x70,0xc6,0xef,0xd7,0xed,0xe3,0x09,0x36,0x7f,0xe5,0x86,0x90,0xce,0x54,0x2a,
|
||||
0x21,0x37,0x60,0x09,0x9e,0x96,0x65,0xf5,0x45,0x53,0xec,0x0b,0x77,0xfa,0x42,0x0d,
|
||||
0x6c,0x47,0x9b,0x2d,0xab,0x47,0x3d,0x95,0x3b,0x26,0x9d,0xdf,0x54,0x2c,0x8e,0xa9,
|
||||
0x90,0xdf,0xae,0x39,0x5f,0x5f,0xc8,0x3f,0x63,0xd2,0x16,0x57,0x2d,0x69,0x0c,0x55,
|
||||
0x18,0xf4,0x78,0x66,0x49,0xad,0x75,0x4f,0xb8,0x59,0xc8,0xa6,0x2e,0x49,0xa0,0x48,
|
||||
0xee,0x54,0x81,0x9e,0x88,0xce,0x5f,0x43,0xa7,0xa4,0x48,0xd1,0x3c,0xe7,0x74,0x9f,
|
||||
0x57,0xdf,0x95,0x04,0xc9,0x1c,0x9b,0xc2,0x36,0x5a,0xf5,0x69,0x75,0x1b,0x96,0x3d,
|
||||
0x3a,0x57,0x5a,0xef,0x25,0xad,0xac,0xd2,0x4b,0x49,0x69,0xd8,0x20,0xc7,0xf5,0x69,
|
||||
0xa7,0xc7,0xa3,0xd3,0xb3,0x6c,0x9b,0x3e,0x1d,0x27,0xb4,0x98,0xac,0x7a,0x7d,0x8e,
|
||||
0x98,0x72,0x62,0xb5,0x15,0xfc,0xb6,0x8f,0xba,0x93,0x8a,0x39,0x67,0x5f,0x49,0xeb,
|
||||
0xad,0x41,0x8f,0xc1,0xea,0xc6,0xf3,0x75,0x75,0xb2,0x16,0x78,0xec,0xf9,0xb4,0xa4,
|
||||
0x28,0x92,0xb9,0xe0,0x99,0x71,0xe9,0xd3,0x19,0x9a,0xd7,0xa4,0xd7,0x5b,0x4d,0xc4,
|
||||
0xb0,0x3e,0x4d,0x0c,0x67,0xd2,0x7a,0x17,0x1d,0x2e,0xbf,0x5e,0xaf,0x9f,0xa4,0x25,
|
||||
0xfc,0xa3,0x51,0x29,0xa9,0x48,0xe9,0xd1,0x10,0x39,0x0f,0x36,0xc0,0x49,0xb3,0xe3,
|
||||
0x69,0x7d,0xcf,0xa6,0xf2,0x67,0x03,0x15,0x29,0xd2,0x55,0xa2,0xbf,0x94,0xc4,0x32,
|
||||
0xe2,0x54,0x21,0xa1,0xb4,0x5a,0x40,0xb2,0x7b,0x82,0xee,0x62,0x71,0x30,0xcb,0x1e,
|
||||
0x7f,0x12,0xc0,0x46,0x8c,0x28,0xac,0x40,0x04,0x6b,0x62,0xbb,0xfd,0x0a,0xcb,0xae,
|
||||
0xc6,0x2c,0xd2,0x4d,0x3b,0xd6,0x8a,0x11,0x5b,0x11,0x2c,0x94,0xc5,0xf4,0x7e,0x66,
|
||||
0xc1,0x95,0xa1,0x56,0xb2,0xaa,0xc5,0x51,0x59,0x7b,0xbe,0x69,0x8f,0x0e,0xcd,0x8f,
|
||||
0xd2,0x56,0xa6,0x00,0xdc,0xd8,0x3c,0x3f,0x30,0xc3,0xa3,0x68,0x78,0x86,0xe4,0x8f,
|
||||
0xe1,0x99,0xf2,0x64,0xa7,0x4a,0x52,0x8d,0x0c,0x63,0x6a,0x17,0x7e,0x17,0x48,0xb6,
|
||||
0x8c,0x67,0xee,0xdc,0x54,0xfe,0xbc,0xd8,0x14,0xb3,0x39,0x49,0xce,0x1c,0xc3,0xe6,
|
||||
0x3b,0x29,0x13,0xee,0xcb,0x7a,0xf2,0x3d,0x41,0xfa,0x6e,0xc6,0x9d,0x74,0x93,0xad,
|
||||
0x3a,0x4d,0xb8,0x30,0x11,0xfe,0x14,0xe9,0x17,0x12,0x22,0x2d,0x7b,0x42,0x8c,0xa8,
|
||||
0x04,0x56,0x97,0xaa,0x6d,0xc3,0x49,0x62,0xc6,0x87,0x14,0x00,0xeb,0x15,0xf2,0xd7,
|
||||
0x55,0xc6,0x5f,0x15,0xe3,0x6f,0x94,0x98,0x1c,0x1d,0x45,0x8b,0xf8,0x2d,0x7b,0x7c,
|
||||
0x49,0x7d,0x93,0x8d,0x0e,0x5a,0x15,0x96,0x25,0xf4,0x25,0xf5,0x29,0xbd,0x54,0xf0,
|
||||
0xe8,0xd0,0x7c,0xae,0xc8,0x1f,0x4e,0x07,0x1d,0xe7,0xaf,0x09,0xcf,0xa7,0xa3,0xfc,
|
||||
0xf1,0x33,0x91,0x66,0x27,0xad,0x39,0x5b,0xca,0x4d,0xf9,0x2b,0x14,0xf9,0xeb,0x42,
|
||||
0xfe,0x36,0x75,0x06,0x67,0x63,0x59,0xbb,0x2c,0xeb,0x72,0x84,0xb6,0x04,0xd3,0x1f,
|
||||
0x51,0xa2,0x6c,0x49,0xb2,0x36,0xa2,0x3e,0x95,0xcc,0x2c,0x69,0x8a,0xa1,0xda,0x4e,
|
||||
0x29,0x01,0xf3,0x98,0x9d,0x02,0x89,0x62,0xfa,0xab,0xc1,0x4c,0x32,0x2d,0x0b,0x84,
|
||||
0x83,0x0e,0x8f,0x4a,0xab,0xa7,0x99,0x6a,0x76,0x95,0xfe,0x64,0x3d,0x80,0x1e,0xb5,
|
||||
0x6d,0x22,0xc6,0xf4,0x78,0x38,0xe1,0xe1,0x7d,0xc6,0x42,0x0e,0x72,0x02,0x03,0x76,
|
||||
0x79,0xa6,0xc1,0xe3,0x97,0xb4,0xfc,0xad,0xa5,0x3f,0x32,0x72,0xc8,0x9f,0x8c,0xa4,
|
||||
0xbb,0xfb,0x49,0x86,0xa9,0x2a,0xa7,0xe5,0xcf,0x23,0x6d,0xb6,0xfe,0xd4,0xc1,0x39,
|
||||
0x82,0xa7,0xac,0x61,0x03,0xe9,0xd6,0xa9,0x19,0x16,0x8f,0xc9,0xcc,0x74,0xa9,0x16,
|
||||
0x35,0xc5,0x31,0xfb,0x72,0x90,0x57,0xe2,0x13,0x35,0xc3,0xe7,0xa9,0x67,0x02,0x0f,
|
||||
0x8e,0xb1,0x6e,0x72,0xfd,0x49,0x6b,0xe8,0x4f,0xbe,0x04,0xd0,0x4c,0x92,0x0d,0x6e,
|
||||
0xca,0x1f,0x03,0xd1,0x56,0x5c,0x9e,0x4d,0xf3,0xb1,0xa0,0x59,0x65,0xf3,0x57,0xa3,
|
||||
0x3f,0xc2,0x5f,0x1f,0xc9,0xe7,0xf3,0xd7,0xc7,0xb4,0x5b,0x44,0x99,0xfe,0xac,0x37,
|
||||
0x92,0xae,0x75,0x11,0x06,0x3a,0xd6,0x4e,0xe0,0x5d,0xa5,0x6d,0x68,0xa2,0x0d,0xcc,
|
||||
0x6a,0xcb,0xcd,0xa4,0xf9,0xc4,0x26,0xe0,0xfa,0xcb,0xaa,0x8b,0x6e,0xb2,0xe3,0x2f,
|
||||
0x66,0xaf,0x9e,0xbf,0xdc,0xff,0x21,0x1b,0x66,0x2a,0x9f,0x18,0x52,0xc6,0x2c,0xc9,
|
||||
0xba,0x18,0x3d,0x33,0x61,0x28,0xad,0x8e,0x69,0xf9,0xfc,0x35,0x95,0xf4,0xd7,0xa4,
|
||||
0xf5,0x7f,0x0e,0xda,0x78,0x77,0x83,0xa6,0x91,0xbb,0xe0,0x53,0x9b,0xbf,0x1c,0xb3,
|
||||
0x2e,0xa6,0x19,0x12,0x7f,0x59,0xc8,0x4b,0x60,0xd3,0x52,0x94,0x4f,0x0c,0x76,0x2e,
|
||||
0x3d,0xd9,0xe2,0xa4,0x8d,0x63,0xc4,0x05,0x86,0x59,0x2d,0xae,0x3f,0x13,0x0a,0x2a,
|
||||
0xd9,0x93,0x35,0x24,0x08,0x3f,0xa1,0x52,0x37,0x9b,0xd7,0xd6,0x9f,0x27,0x8b,0xd5,
|
||||
0xa2,0x19,0x67,0xa2,0xe3,0x08,0xe7,0x6f,0x26,0x6c,0xa5,0xfe,0xbf,0x8a,0x2a,0x49,
|
||||
0x1d,0x1d,0x8f,0x4e,0xaa,0x88,0x1f,0x5a,0xfd,0x31,0xff,0xc7,0xe6,0xef,0x28,0x71,
|
||||
0x99,0x2e,0xde,0xcc,0x89,0x4a,0xff,0xf7,0x29,0xb0,0x67,0xb0,0x92,0x78,0xe1,0x64,
|
||||
0xfa,0x9b,0x2c,0x36,0x7e,0xb8,0x14,0x1b,0x69,0x7c,0xa5,0x63,0xee,0xc4,0x03,0x49,
|
||||
0xda,0xba,0xa2,0xd0,0x12,0xe9,0x52,0x21,0x3f,0xf3,0x7f,0xea,0xfc,0x5d,0xc3,0xff,
|
||||
0xa1,0x5e,0x08,0x5b,0x2c,0x66,0x13,0xfe,0x22,0x2c,0x78,0x4a,0x36,0xd9,0x43,0xfe,
|
||||
0x77,0xbc,0xd1,0x22,0x7f,0x4a,0xc5,0xfc,0xd5,0xea,0x8f,0xf2,0x97,0x60,0xa3,0xde,
|
||||
0xa3,0x6d,0x65,0x67,0xa5,0xff,0xdb,0x6c,0xfd,0xd9,0x2d,0x71,0x7a,0x62,0x57,0x90,
|
||||
0xf1,0x47,0x17,0x04,0x1e,0x03,0xee,0x1d,0xf1,0xf8,0xb0,0x0b,0xf1,0xcb,0x29,0xdc,
|
||||
0xd2,0xac,0x0b,0x88,0x5e,0x64,0xcd,0x6d,0x20,0x7b,0xea,0x42,0xc5,0xb3,0xcf,0x12,
|
||||
0x4b,0xbb,0xdd,0x6e,0x6c,0xad,0x12,0x2a,0xc5,0x0f,0xe4,0x4f,0x21,0xdd,0xdc,0xa7,
|
||||
0xae,0x22,0xb8,0xfe,0xb0,0x84,0xcd,0x1a,0xc5,0xf2,0x49,0xca,0xdf,0x18,0xa5,0xcf,
|
||||
0xdc,0x64,0xe0,0x67,0x8d,0x15,0xf9,0x93,0xd4,0xc4,0x6a,0xfd,0x91,0x38,0xc5,0x26,
|
||||
0x49,0x9e,0x06,0xb9,0xe4,0x30,0x36,0x32,0x75,0xb9,0x8b,0xd6,0x28,0x30,0x67,0xfe,
|
||||
0xa9,0xe8,0x6f,0xd6,0x62,0x66,0xe3,0x96,0x46,0xe5,0x50,0xfe,0xe2,0x74,0xc0,0x2c,
|
||||
0xb8,0xf7,0x84,0x67,0x46,0x52,0x47,0x12,0xdb,0xe8,0x62,0x35,0xe4,0x3c,0x1e,0x8a,
|
||||
0x12,0x62,0x54,0xfd,0xd1,0x5c,0x93,0xdd,0x8e,0xb5,0x93,0xfe,0x92,0x4c,0xaa,0x99,
|
||||
0xa6,0x3d,0x0d,0x68,0xc4,0x4c,0x16,0x93,0xaa,0xfe,0x08,0x4c,0x58,0xbe,0x99,0xf6,
|
||||
0x8e,0x84,0x6f,0xbd,0x93,0x5d,0xdf,0x60,0x51,0xc5,0xad,0x5e,0xfa,0x10,0xfd,0x45,
|
||||
0x69,0x22,0x5e,0xee,0xff,0x08,0x7f,0x64,0x1d,0x4d,0xa7,0x3b,0xfa,0xbf,0x69,0xee,
|
||||
0x68,0x3d,0x9e,0x34,0x4d,0x17,0xd4,0x51,0x30,0x6d,0xba,0xfe,0xe4,0x1e,0x36,0x8f,
|
||||
0xdc,0x36,0x7a,0x01,0x45,0xe2,0xaf,0x42,0xfa,0x6c,0x72,0xb1,0x39,0x80,0x5f,0x29,
|
||||
0xd2,0x80,0xa0,0x5e,0xf5,0xe5,0xa4,0x0e,0x51,0xab,0x49,0xa3,0x3f,0x1d,0x3b,0x30,
|
||||
0xc9,0x26,0xac,0x3a,0x7f,0x91,0x1e,0x20,0xab,0xff,0x84,0x6a,0x94,0x2c,0xd6,0x71,
|
||||
0x7d,0xe8,0xb1,0xb3,0x8b,0x35,0x19,0x69,0xa9,0xf6,0x78,0xc8,0x70,0x44,0x54,0xd3,
|
||||
0x9d,0x25,0xef,0x4a,0xe3,0x2f,0x3d,0x42,0x02,0xf5,0xa5,0x60,0xd9,0xfa,0x8f,0xae,
|
||||
0x80,0xe8,0x6a,0xc7,0xc2,0x88,0xa6,0xbf,0x7a,0x24,0x24,0x7a,0x82,0x02,0x56,0x4c,
|
||||
0x92,0x0b,0x11,0x9f,0x56,0xce,0x9b,0x82,0x08,0xa5,0x4f,0xef,0xe5,0xe1,0x8b,0xae,
|
||||
0xff,0xdc,0x91,0x19,0x3f,0x5d,0xe8,0xd9,0xe9,0xd0,0x02,0x52,0x6b,0xc7,0x26,0x27,
|
||||
0x71,0x9d,0xe6,0x8b,0x44,0x22,0x55,0x11,0xaf,0xc4,0xa2,0xb5,0xaa,0xbf,0xa0,0xbe,
|
||||
0xc7,0x30,0x2b,0xcb,0x2b,0x66,0x26,0x5e,0xad,0xfe,0x94,0xf0,0x8c,0xff,0x32,0x31,
|
||||
0x1a,0x75,0xda,0x9d,0x24,0xf4,0x90,0x75,0xc7,0x4a,0xd4,0x8b,0x57,0xaa,0xf6,0x3c,
|
||||
0xeb,0x3d,0x39,0x05,0x59,0x72,0xce,0x38,0x65,0x16,0xc2,0x93,0x39,0xbf,0xdd,0x5f,
|
||||
0x25,0x53,0x5a,0xc0,0x3d,0xdd,0x40,0x63,0xf3,0x11,0x4f,0xb9,0xfe,0x20,0x95,0xb0,
|
||||
0x67,0xd1,0xa0,0x42,0xa6,0x3d,0x16,0xe8,0x2a,0xcc,0xca,0x21,0x17,0xe3,0xb5,0x40,
|
||||
0xe7,0x93,0xd3,0x9e,0xd0,0xab,0x42,0xdd,0x2c,0xd0,0xf1,0x8e,0x3a,0x8b,0x12,0x27,
|
||||
0xfa,0x8b,0xaa,0xbe,0x9d,0x9e,0x99,0x74,0x3e,0xd9,0x9e,0xe4,0x7e,0x5d,0xe3,0xa9,
|
||||
0x63,0x25,0xfd,0xcd,0x46,0xc9,0x55,0x0c,0x75,0x63,0x64,0x1d,0xa3,0x89,0x1f,0xee,
|
||||
0x2e,0x66,0x2b,0x39,0xcc,0x6b,0xd1,0xd5,0xd8,0x14,0xe1,0x85,0x5e,0xf4,0x10,0xaf,
|
||||
0xd6,0x40,0x1c,0x88,0x62,0xee,0x52,0xc8,0x1c,0x97,0x27,0xd4,0x60,0xb5,0x8f,0xfa,
|
||||
0x3f,0x37,0x6b,0x0a,0xd3,0xaf,0x36,0xfe,0x76,0xf1,0x72,0xd4,0xdb,0xe8,0xc8,0xc8,
|
||||
0x48,0xc4,0x4e,0x12,0xaf,0xd2,0x29,0x7f,0xdc,0x2b,0x41,0x97,0x6e,0x33,0xf9,0x23,
|
||||
0xeb,0xe3,0xa4,0xaf,0x94,0x26,0xfa,0xcb,0xb2,0xbe,0x26,0xd9,0x74,0xdd,0x17,0x63,
|
||||
0x3d,0x48,0x4e,0x04,0x19,0x25,0x1a,0xfe,0x8a,0xfa,0x73,0xf1,0xbc,0x64,0x8e,0x5e,
|
||||
0xc2,0x26,0x8b,0xeb,0x97,0x78,0x96,0x5e,0x31,0x2b,0x36,0x13,0x33,0xe3,0xa6,0xd7,
|
||||
0x1a,0x2b,0xea,0xd5,0x6a,0x3b,0x5d,0x2a,0x1b,0xa2,0x9c,0x32,0x32,0xad,0x83,0xa3,
|
||||
0x3c,0x1a,0xeb,0xa8,0xfe,0x9a,0x32,0x2c,0x49,0x0d,0x6b,0xe2,0x6f,0xd4,0xc9,0x08,
|
||||
0x32,0x53,0x83,0x9e,0xc4,0x7e,0xd6,0xca,0x2e,0xba,0x0e,0x25,0xfc,0xf5,0xb3,0xa0,
|
||||
0x28,0x45,0x3c,0x9b,0x09,0xca,0x9f,0x66,0x84,0x74,0xe1,0x4c,0xb8,0x6f,0x76,0x3a,
|
||||
0xe6,0xea,0xa4,0xe1,0x90,0x40,0x5e,0x69,0xea,0x74,0x75,0xda,0x18,0xc9,0xd9,0x4c,
|
||||
0x26,0xe3,0x08,0x67,0x08,0x30,0x10,0x34,0xe0,0x1e,0x65,0xc0,0xe4,0xcc,0xa7,0xe2,
|
||||
0xae,0x94,0x8d,0xd5,0x51,0xf5,0x97,0xcd,0x38,0x22,0x1e,0xbf,0xad,0x33,0x1e,0xc3,
|
||||
0xb2,0x72,0xb6,0x3a,0x6e,0xcd,0x85,0xf8,0x69,0x22,0x13,0x9d,0x2e,0x6b,0xcc,0x3b,
|
||||
0xc3,0x92,0x76,0x4b,0x2c,0xee,0x1a,0x9e,0xb0,0xb0,0xc0,0x31,0x66,0x1b,0x8e,0xc7,
|
||||
0x53,0x79,0x3b,0x5f,0xff,0x19,0x46,0xad,0xf1,0x6a,0x16,0x75,0xec,0xe1,0x8c,0x83,
|
||||
0x9c,0xcf,0x99,0xc9,0x4c,0xca,0x0d,0xe1,0x94,0xab,0x33,0xdf,0xa7,0x76,0x64,0x3a,
|
||||
0x86,0x95,0x6a,0x58,0x57,0xfc,0xd8,0x3c,0xbb,0x29,0x82,0x39,0xc5,0x5e,0x6c,0x12,
|
||||
0x88,0x0b,0x57,0xd6,0xf8,0xc1,0x59,0x2e,0x0f,0x5a,0x9f,0x24,0x84,0x95,0xaa,0xa8,
|
||||
0x32,0xa9,0xac,0x5d,0x6e,0xb4,0xc2,0x66,0xf9,0x31,0x9a,0x2a,0xae,0xff,0xd6,0x3b,
|
||||
0x7d,0x45,0x23,0x57,0x15,0xfb,0x14,0xae,0x3c,0x32,0x44,0xe3,0xe1,0x90,0xce,0x60,
|
||||
0x49,0x5d,0x8f,0xa3,0x58,0xb3,0x85,0xaa,0xfe,0x7e,0x53,0x94,0xae,0x7f,0x3f,0xbb,
|
||||
0xb0,0x97,0x2e,0x1d,0xae,0x5d,0xea,0xfe,0x74,0x34,0x1a,0x5e,0x23,0xbb,0x42,0x7f,
|
||||
0xd7,0x8b,0xd2,0xf5,0x87,0x9a,0x11,0x5d,0xf3,0x7c,0x37,0x15,0x7e,0xab,0xca,0x5f,
|
||||
0xd5,0xc6,0x85,0x2b,0xeb,0x26,0xd7,0x24,0xea,0x86,0xe9,0x4f,0xaa,0xe4,0xef,0x06,
|
||||
0x0d,0xcc,0x0d,0xc5,0x6c,0xb6,0xda,0x15,0xbd,0xe4,0x4a,0x65,0xfa,0x36,0x2e,0x5b,
|
||||
0x01,0xf5,0x42,0xad,0x02,0x37,0x52,0x7f,0x39,0x6d,0xc6,0x8d,0x32,0x7c,0xa3,0x21,
|
||||
0x9b,0x82,0xd7,0xe5,0x6a,0x67,0xaa,0x63,0xb1,0x35,0xd6,0x07,0x7e,0x49,0x92,0x6e,
|
||||
0x8c,0xfe,0x24,0xa9,0x8c,0xbf,0x99,0xd8,0x9a,0xe7,0xfb,0x6d,0x83,0x6c,0xb7,0xdb,
|
||||
0x4d,0x1b,0x17,0xfb,0xd4,0xec,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
|
||||
0x5c,0x37,0x82,0xf6,0x90,0xcf,0xe9,0x9c,0x2a,0x7f,0xa9,0xd0,0x66,0x4c,0xad,0xca,
|
||||
0x9c,0x52,0x13,0xb8,0x4d,0xb1,0x2f,0x6d,0x4d,0x35,0x67,0xbd,0x97,0x73,0x8d,0x9c,
|
||||
0xf5,0x8a,0xac,0x55,0xbd,0x7f,0xe5,0x8c,0xef,0x8c,0x8a,0xd2,0x5e,0x65,0xce,0xea,
|
||||
0x23,0xc5,0x12,0xdb,0x3e,0xda,0xf7,0x1b,0xfd,0xa4,0x15,0x5c,0xc9,0xa5,0xdd,0x92,
|
||||
0xa2,0xd0,0x1f,0xe8,0x8b,0x2f,0x2d,0x2a,0x92,0xab,0xa1,0x68,0xb6,0x0d,0x4a,0xf3,
|
||||
0x42,0x1b,0x64,0x5c,0xc5,0x48,0x45,0x69,0x50,0x94,0xba,0x3b,0x2f,0x5c,0xa8,0xfd,
|
||||
0x0b,0xba,0xd5,0x5e,0xa8,0x25,0xfb,0x17,0x6a,0xd9,0x86,0x19,0xf8,0xbe,0xc0,0xde,
|
||||
0x9a,0xd7,0x05,0x56,0xb4,0x96,0x16,0xa8,0xfd,0xc1,0xfc,0x0f,0x1f,0x3f,0xf9,0xcb,
|
||||
0xeb,0x64,0xcf,0x17,0x73,0xaf,0xd3,0xd0,0x5b,0x09,0x75,0x8f,0xd4,0xee,0x26,0x1b,
|
||||
0xa2,0x76,0xf7,0x7c,0x71,0x4f,0xcd,0xac,0xad,0x48,0x14,0xf7,0x6a,0xe9,0x17,0x25,
|
||||
0xf2,0x9b,0xcf,0x5d,0xfb,0x4f,0x25,0x9e,0x44,0x6a,0x43,0x6d,0xdd,0x22,0xa8,0xbb,
|
||||
0x30,0xf0,0xfe,0xc0,0xc0,0xfc,0xc0,0xc0,0xd6,0x01,0xc4,0xce,0x79,0xdc,0xdd,0x49,
|
||||
0xf6,0x71,0x6f,0x60,0x7e,0x27,0x49,0xe1,0x8b,0x95,0xa0,0xaf,0xad,0xb4,0xe4,0xb9,
|
||||
0x81,0x81,0xdd,0x58,0x6e,0x9e,0xb2,0x38,0xff,0xdc,0xd2,0xb5,0xb1,0xd7,0xd0,0x23,
|
||||
0x6d,0xdc,0xb0,0x5b,0x06,0x77,0x9e,0xbb,0x82,0xa0,0x1f,0x57,0xbe,0x4e,0xdf,0x6c,
|
||||
0xbf,0x98,0x49,0x73,0xaf,0x68,0xf2,0x68,0x89,0x73,0x57,0xce,0x91,0x17,0x92,0xbe,
|
||||
0xbb,0xf6,0x87,0x27,0xaf,0xc5,0x13,0x1a,0xf4,0x37,0xbb,0xcb,0x37,0x14,0xca,0x8e,
|
||||
0x73,0x0b,0x5b,0x16,0xf6,0xec,0x79,0x61,0xcf,0x0b,0x0b,0xaf,0xd1,0x6d,0x0f,0x49,
|
||||
0x63,0x72,0x0f,0xfb,0xc4,0xed,0x2e,0x9a,0xfd,0x1a,0x49,0xd3,0x4c,0x5a,0x60,0x61,
|
||||
0xcb,0x96,0x2d,0x84,0x50,0x54,0x65,0xed,0xbd,0xf6,0x8d,0x79,0xe3,0xd8,0x65,0xde,
|
||||
0xb8,0x4d,0xb7,0x16,0x76,0x7c,0x7d,0xfb,0x75,0xe1,0xf0,0xf6,0x05,0xa4,0xf1,0xf6,
|
||||
0x2b,0x57,0x50,0x83,0xa7,0x3f,0x69,0x20,0xf1,0x76,0x49,0xbf,0x2d,0xbe,0xaf,0x08,
|
||||
0x65,0xcb,0x1d,0xd7,0x85,0x43,0x77,0x1c,0xba,0x6f,0xfb,0xc2,0x0b,0x5b,0x6e,0xc7,
|
||||
0x79,0xbc,0xf5,0xd7,0x9f,0x88,0xbe,0x6c,0x7b,0x97,0x04,0xc9,0x9b,0xdd,0xe1,0x1b,
|
||||
0x8d,0x1d,0x7b,0x0e,0x70,0xb4,0xe1,0x76,0x55,0xb4,0x95,0x76,0xda,0x5e,0x7f,0xfd,
|
||||
0x75,0x24,0x71,0xfb,0xf6,0x17,0x5e,0xc3,0x59,0xfc,0xcf,0x9f,0xe4,0x9f,0x1c,0x3b,
|
||||
0xd2,0x66,0xf7,0x6f,0x9f,0xfe,0x00,0x7e,0x71,0x87,0xf1,0x77,0x8d,0x15,0x08,0x94,
|
||||
0x27,0xbf,0x6f,0xac,0x2c,0xb2,0x78,0xc0,0x88,0x34,0xbe,0x8e,0x0c,0x1e,0x7e,0xed,
|
||||
0xf6,0x73,0x3b,0x1f,0xdf,0xd8,0x07,0x36,0x74,0x46,0xa3,0xf4,0x4e,0xbb,0x6b,0x83,
|
||||
0x3b,0x66,0x71,0xfa,0x7c,0x85,0x7c,0xfc,0xb3,0xcb,0xfc,0x23,0xc6,0xc0,0x62,0x00,
|
||||
0x29,0xc3,0xcf,0x45,0xfa,0x69,0x5c,0x34,0x92,0xdd,0x45,0x9e,0x63,0x5c,0xe4,0x7b,
|
||||
0xa5,0xcd,0x48,0x8a,0x20,0x83,0x07,0x08,0x83,0x0b,0x5b,0xae,0xbc,0xff,0x95,0x0d,
|
||||
0xa3,0xb0,0x2d,0xad,0xff,0xb2,0x59,0x2a,0x13,0x60,0x57,0x76,0x2a,0x11,0x1a,0x0b,
|
||||
0x85,0xa6,0x59,0x52,0x9a,0xce,0x76,0x8c,0x8d,0x85,0xc6,0x7c,0xa5,0x25,0x4e,0xd4,
|
||||
0xa2,0x0e,0x8c,0x1c,0x6a,0x2a,0x72,0x9f,0xda,0xb5,0x42,0xaa,0xe1,0x8b,0xa1,0x13,
|
||||
0xd2,0x59,0x67,0xc2,0x8f,0x55,0xfd,0xc5,0xbc,0x50,0x28,0x52,0xd1,0x4d,0x62,0x1d,
|
||||
0xb3,0x55,0xeb,0xf9,0x82,0x81,0x24,0xd9,0x2d,0xab,0x5d,0x05,0x67,0x82,0x55,0x25,
|
||||
0x16,0x88,0x19,0xda,0x26,0x73,0x81,0x9a,0x55,0x1b,0x98,0xee,0xa7,0x85,0xc6,0x2c,
|
||||
0x15,0x96,0xb7,0x2c,0xb6,0xcc,0x2d,0xb6,0x04,0x16,0xe7,0x8c,0x73,0x8b,0xb8,0x05,
|
||||
0x5a,0x02,0x01,0x7c,0x2f,0x06,0xe6,0x16,0x49,0xb2,0x25,0x30,0x47,0x3e,0xf9,0x41,
|
||||
0xfc,0xa4,0xc7,0x28,0xd3,0x28,0xc3,0x36,0x46,0xe0,0xb9,0x47,0x37,0xa0,0x6f,0x8c,
|
||||
0xdc,0x15,0xfc,0x65,0xb7,0xa4,0x15,0xa0,0x7b,0x17,0xbb,0x5b,0x71,0x8c,0x91,0xaa,
|
||||
0x44,0x0a,0x94,0x2d,0x93,0x7a,0x4b,0x93,0x94,0x2b,0xfb,0x57,0x9b,0xb1,0x38,0xcf,
|
||||
0x8f,0x45,0x12,0x65,0xc3,0xd5,0x03,0x97,0x76,0xf9,0x56,0xfd,0x03,0x8f,0xbf,0xa2,
|
||||
0x97,0xaa,0x75,0xbe,0x06,0x08,0x4f,0xb3,0xc5,0x7f,0x5c,0xdb,0x12,0xcd,0xc9,0x38,
|
||||
0x7f,0x34,0x3b,0xc1,0x29,0x0f,0xcd,0xd2,0xa1,0xb4,0x55,0x58,0x96,0xda,0x16,0x91,
|
||||
0xa2,0x16,0xca,0x8e,0x71,0xae,0xa5,0x05,0xc9,0x6a,0x09,0xb4,0x50,0xe2,0x8c,0xc8,
|
||||
0x26,0x39,0x64,0x2c,0x52,0x48,0x8f,0x52,0x2a,0x17,0x89,0x0e,0x8d,0x28,0xc1,0xfb,
|
||||
0x16,0x5e,0xbb,0x72,0x7a,0xe4,0xea,0xfc,0x35,0xb9,0x3a,0xad,0xae,0x74,0xbb,0x94,
|
||||
0xd4,0x10,0x28,0x15,0xce,0xd3,0x2e,0xe9,0x58,0x5e,0xb2,0xb7,0x8a,0xde,0xfd,0x37,
|
||||
0xdb,0xae,0xea,0x91,0xb3,0x34,0x1b,0x9c,0xa5,0x7b,0x26,0x7e,0xd7,0x5a,0x2a,0x62,
|
||||
0x98,0xe5,0x66,0xe9,0x03,0x70,0x39,0xc5,0x9d,0xed,0x2f,0xf6,0x5f,0xe6,0x98,0xa9,
|
||||
0xd4,0x5f,0x84,0xde,0x25,0x34,0xcb,0x6f,0xb2,0x72,0x58,0x74,0xd4,0xe8,0x30,0x6b,
|
||||
0xc9,0x14,0x17,0xba,0xcc,0x5f,0x7e,0x7a,0x57,0x5b,0x61,0x8a,0xde,0x2a,0xac,0x63,
|
||||
0xed,0x71,0xf6,0xb1,0x66,0x5c,0xaa,0xb0,0x0c,0x3b,0xe7,0x5a,0x8c,0x84,0xab,0x16,
|
||||
0x26,0xb7,0x45,0xc2,0x18,0x61,0xd0,0x48,0xb8,0x63,0x94,0x19,0x8b,0x6f,0xb6,0x51,
|
||||
0x0a,0x71,0xa6,0x07,0x08,0x81,0x87,0x50,0x81,0x27,0xaf,0x4a,0x9f,0xc1,0x35,0x9c,
|
||||
0x4a,0x59,0xf7,0x63,0x04,0xd1,0x5c,0x8b,0x4b,0x55,0xbb,0x68,0xab,0x67,0xf8,0x94,
|
||||
0xb2,0xb0,0x1e,0xca,0x69,0x7e,0x94,0x91,0x64,0xea,0x4b,0xf8,0x0c,0x63,0x0d,0xf4,
|
||||
0xd9,0x19,0x46,0x60,0x67,0x95,0xa1,0x95,0x1d,0x9a,0xd1,0x7d,0x4d,0xa7,0xd3,0xd9,
|
||||
0xa0,0x6b,0x2a,0xcb,0xfb,0x6f,0xea,0xd3,0xf9,0xd9,0xe6,0xaf,0xf0,0x98,0x96,0x48,
|
||||
0x83,0x5c,0xb2,0x0e,0x79,0xce,0x1f,0xb9,0x27,0x12,0x94,0x02,0xaf,0x2f,0xdb,0x69,
|
||||
0x65,0x9d,0x8e,0xdc,0x41,0x5a,0x1c,0xe0,0x06,0x5a,0x23,0xce,0x9e,0x2d,0x94,0x9d,
|
||||
0xab,0x5c,0xb1,0xd4,0x46,0xb9,0xe2,0x1c,0x51,0x95,0x2d,0x32,0x32,0x71,0xe3,0x74,
|
||||
0xd1,0xcf,0x40,0x0b,0xd7,0x1f,0x27,0x31,0x40,0xdd,0x60,0x1b,0x2a,0x70,0xcb,0xff,
|
||||
0x5c,0x35,0x84,0xe4,0xad,0xb1,0xe6,0x58,0xca,0x15,0xc5,0x08,0x5c,0x12,0x60,0x92,
|
||||
0x4f,0x29,0x3b,0xe7,0xcf,0x1b,0x61,0x71,0x9c,0x5d,0xa4,0x64,0x98,0xc1,0x7d,0x89,
|
||||
0x2a,0x6f,0x26,0xec,0xcd,0xfa,0x09,0x81,0x26,0x72,0x9b,0x25,0xb8,0x0a,0x3e,0xfa,
|
||||
0xe4,0x8c,0xac,0xcb,0xf6,0x5a,0x2c,0x96,0xde,0x3c,0x24,0x77,0x59,0xc6,0xf8,0x8d,
|
||||
0xcb,0x2b,0x11,0x0b,0x83,0xb3,0xe2,0x4a,0xd1,0xdb,0xcb,0xac,0x73,0x2f,0x90,0xb3,
|
||||
0xf8,0x29,0x7f,0x6c,0x48,0xaa,0x76,0xb1,0x1b,0x5f,0xed,0xfd,0xd3,0xac,0xf6,0x14,
|
||||
0xe5,0xaf,0x8a,0xd1,0x6a,0xa2,0x8c,0xd5,0x84,0xd8,0x43,0x9d,0x13,0xb0,0x0a,0x5b,
|
||||
0x02,0x8c,0x3d,0x42,0x10,0x9b,0xa8,0xb8,0x17,0x50,0x69,0x22,0x07,0x56,0xeb,0x8f,
|
||||
0x6d,0xc4,0x0d,0x22,0x81,0xdb,0x17,0x6e,0xff,0xdb,0xab,0xd0,0x67,0x4a,0xa5,0x7a,
|
||||
0x9a,0xde,0x4a,0xc5,0xd3,0x65,0x0e,0x50,0x99,0x66,0x13,0x56,0x7d,0x1a,0x10,0x5d,
|
||||
0x92,0x5c,0xec,0xa1,0xb5,0x8f,0xca,0xcf,0x94,0x38,0x3f,0x15,0xd9,0x65,0xb1,0x39,
|
||||
0x22,0x21,0xc2,0x99,0x9f,0xf8,0xc6,0x74,0x61,0x85,0x91,0xe5,0x8f,0xd4,0x84,0xc3,
|
||||
0x61,0xaf,0x03,0xa0,0x90,0xaf,0xf2,0xb3,0xf2,0x63,0x11,0x6f,0x4d,0x8d,0x37,0x5c,
|
||||
0xe3,0x75,0x56,0xfc,0xca,0x13,0xe6,0xfc,0x75,0xb2,0x64,0x93,0x85,0xd1,0x41,0x9f,
|
||||
0x18,0x83,0x08,0x6b,0x89,0xa7,0xc1,0x59,0x43,0x4c,0x86,0xc3,0xf4,0x52,0x49,0x1d,
|
||||
0xe0,0x20,0x21,0x33,0x69,0xe0,0x45,0xd6,0xb8,0x88,0x7a,0xc4,0x48,0xb9,0x33,0x6a,
|
||||
0x94,0x85,0x19,0x8c,0xc1,0x16,0x23,0xe1,0x72,0x4e,0xa5,0x93,0xd2,0xd6,0xc2,0x4a,
|
||||
0x2d,0x92,0x32,0x18,0x9c,0x0f,0xb4,0x1d,0xda,0xbe,0xe5,0x5b,0x57,0xe1,0xcf,0xd0,
|
||||
0xd9,0x3c,0x6a,0xcb,0xf5,0x58,0xd3,0x18,0x81,0x93,0x45,0xf9,0x2b,0x7c,0xc2,0xce,
|
||||
0xf2,0x16,0x65,0x78,0x0f,0x53,0xe4,0x98,0x93,0x3e,0x43,0x2b,0xf7,0xf9,0x7a,0x70,
|
||||
0xd1,0x9d,0xaa,0x0a,0x3b,0x0a,0xf4,0x20,0xb9,0x53,0x3b,0xca,0xbd,0xbd,0x2e,0xc6,
|
||||
0x80,0x7a,0xcd,0x84,0x1d,0xbb,0xc8,0x7c,0x6c,0xa8,0x4e,0x11,0x5c,0x26,0xef,0x8a,
|
||||
0x69,0x86,0xd6,0x65,0xd5,0x3a,0xa2,0x7a,0x7a,0x8c,0x26,0xf3,0x34,0xa5,0xba,0x8e,
|
||||
0x1c,0x37,0x19,0xa3,0xbf,0x12,0x29,0xdc,0x23,0x93,0xc7,0x27,0x21,0x15,0x62,0x4f,
|
||||
0x0a,0x57,0xad,0xa6,0x0f,0x94,0xb6,0x80,0x51,0x9d,0xaa,0x34,0x82,0x90,0x8f,0x40,
|
||||
0x31,0x8a,0x68,0xf4,0x47,0x75,0xc9,0xb2,0xb0,0xc8,0x22,0x0d,0x2f,0x24,0x88,0xdc,
|
||||
0x77,0x78,0xe1,0x2a,0x13,0x38,0x9c,0x6a,0x7a,0x26,0xf3,0xcc,0x44,0xbd,0xde,0x5c,
|
||||
0x36,0x81,0x2d,0x11,0x1a,0x03,0x55,0x97,0xf4,0x4c,0x96,0xf1,0x47,0x5c,0xd2,0x70,
|
||||
0x82,0x7a,0xee,0x59,0x1f,0xe3,0x56,0xca,0x84,0x6b,0x0c,0xa4,0xfd,0x33,0xee,0x52,
|
||||
0x58,0x0c,0x95,0x3a,0x20,0x4d,0x66,0x1c,0xe7,0x09,0xe3,0xd9,0x75,0x57,0x98,0x36,
|
||||
0x6e,0x9d,0x07,0xa1,0xbb,0xb3,0x6c,0xfe,0x86,0xcb,0x5a,0x52,0xf1,0xfb,0x46,0x6f,
|
||||
0x84,0x69,0x8e,0x34,0x62,0x9a,0x95,0x9f,0x3d,0xb2,0x96,0xf1,0x3d,0x45,0xfd,0x51,
|
||||
0x95,0xb5,0xd0,0x65,0x8c,0xaa,0xbf,0xa2,0x22,0x55,0xfd,0x19,0x79,0x1e,0x9d,0xe3,
|
||||
0x64,0x2d,0x73,0x60,0x19,0x67,0xf0,0xe7,0xd7,0xe7,0xef,0xad,0x98,0xad,0x66,0x32,
|
||||
0x9c,0xbb,0x3b,0x8e,0x2b,0x18,0xcd,0x0c,0x0e,0x47,0x98,0x24,0xf8,0x6d,0xcb,0x79,
|
||||
0xf6,0x2c,0x38,0x7d,0xfc,0xcf,0x6b,0xa0,0x2e,0xce,0xae,0xae,0x59,0x92,0x11,0x47,
|
||||
0xd5,0x0c,0xef,0x7e,0x17,0x8f,0x96,0x3a,0x4d,0x07,0xdc,0xd3,0x8e,0xb0,0x93,0x04,
|
||||
0x88,0xca,0xc5,0x59,0x89,0x3f,0xfe,0x70,0xfb,0x28,0x4b,0xa6,0x74,0x6c,0xbc,0x59,
|
||||
0x79,0xd5,0x75,0x58,0xcb,0xeb,0xa8,0x1e,0x99,0x3c,0xb4,0xc3,0x9f,0x4c,0xd7,0xad,
|
||||
0xf9,0x03,0xdc,0x4e,0xad,0x77,0x6b,0x99,0x53,0x43,0x09,0xe5,0x4c,0x13,0x7b,0x35,
|
||||
0x25,0xd4,0xa0,0xdc,0x42,0xa3,0x08,0xce,0xe0,0x85,0x3f,0x5a,0x97,0x3e,0x39,0x56,
|
||||
0xed,0xb0,0x44,0x2c,0xcf,0x54,0x5b,0xd3,0x18,0x41,0xa4,0xe2,0xef,0xe1,0x99,0x72,
|
||||
0x97,0x94,0xe3,0xeb,0x95,0x27,0x50,0x4f,0xd9,0x0e,0x9a,0x28,0x2d,0x82,0xf5,0x85,
|
||||
0x49,0x2a,0x80,0x42,0xc9,0xad,0xdb,0xb5,0x33,0xd4,0x5c,0xf5,0x8c,0x77,0xc5,0x2e,
|
||||
0xb3,0xa7,0x6a,0xd6,0x42,0x13,0xb7,0xce,0x1f,0xb2,0xb6,0xf2,0x24,0x9b,0x8e,0x61,
|
||||
0x4b,0xc9,0x75,0x68,0x50,0x33,0x5d,0x8c,0x39,0x13,0x7c,0x81,0xb4,0xf6,0xf8,0x5c,
|
||||
0xd0,0x04,0x57,0x1e,0x39,0x5a,0x68,0x28,0x61,0x81,0x39,0xc0,0xdf,0xc6,0x62,0x58,
|
||||
0x69,0x09,0x18,0x35,0x14,0x06,0x02,0x6d,0x7f,0xb9,0xfd,0xc9,0x75,0xf9,0x33,0xa5,
|
||||
0x9a,0x6a,0x0a,0xe7,0x23,0xe1,0x89,0x94,0x8b,0x0a,0x50,0x55,0x60,0xbe,0x97,0xcd,
|
||||
0x89,0x19,0x1d,0x85,0xea,0x00,0x32,0xe4,0xa1,0x89,0x31,0x1a,0x0e,0x2e,0x17,0x5b,
|
||||
0xa8,0x58,0xbc,0x09,0x92,0x85,0x8b,0x45,0x29,0xc2,0xd6,0x3d,0xa6,0xb2,0xb9,0x9a,
|
||||
0x2e,0xd8,0xbc,0x06,0xfb,0x1a,0xf1,0xb1,0x33,0x6b,0xf0,0x6b,0xac,0xdb,0xd9,0xc9,
|
||||
0xf8,0x2d,0xe3,0xfc,0xc9,0x3a,0x07,0x8f,0xc6,0x0d,0x3a,0x15,0x74,0x4c,0x1d,0x7c,
|
||||
0x82,0x78,0x73,0xa3,0x09,0x5e,0xbe,0x42,0xa1,0x1c,0x77,0x2e,0xf2,0x90,0x1b,0x60,
|
||||
0x34,0x1a,0xf9,0x64,0xe5,0xe1,0x57,0x15,0x5c,0xf1,0x7b,0xae,0x18,0x80,0x89,0x33,
|
||||
0x9c,0x23,0x21,0xe4,0xc7,0xdf,0x5b,0x97,0xbf,0x99,0x54,0xce,0x72,0xfe,0xcc,0x79,
|
||||
0x4b,0xee,0x6e,0x8c,0x20,0xee,0x2e,0x45,0x0d,0x21,0x36,0xde,0xea,0x0a,0xd4,0x60,
|
||||
0x9f,0x0b,0xd4,0xbb,0xcb,0x9a,0x18,0x3a,0xd1,0x4b,0x25,0x69,0x72,0x93,0x0b,0x15,
|
||||
0xe6,0xd6,0xcb,0xa7,0x92,0xb5,0xca,0x36,0x49,0x7c,0xa4,0xa9,0x42,0x44,0xc3,0xa5,
|
||||
0xe5,0xf6,0x1a,0xf0,0xad,0xd3,0x12,0xba,0x2e,0xcc,0x5b,0xfc,0x15,0xc5,0xe5,0xe9,
|
||||
0x35,0x7f,0xc3,0xac,0x0b,0xb4,0xa8,0xdc,0xb4,0x14,0x99,0x2a,0xb1,0x56,0xcc,0x53,
|
||||
0xbf,0xf0,0x13,0x6b,0xb0,0x17,0xa5,0x33,0xb0,0x7c,0xe8,0xe8,0xba,0xd7,0xc0,0xfe,
|
||||
0xd4,0x13,0xd3,0xfd,0x06,0x5f,0xc4,0x31,0x31,0xec,0xba,0xd4,0x4e,0x66,0x30,0x53,
|
||||
0x4e,0xd3,0x74,0x48,0xf3,0x07,0x2c,0x8a,0x7f,0xa3,0x02,0x2f,0x37,0x8f,0x44,0x7e,
|
||||
0x4d,0xd7,0x7b,0x1a,0x85,0x75,0x66,0xa9,0x24,0x65,0xbc,0x7e,0xb0,0xf0,0xb0,0x58,
|
||||
0xd1,0x95,0x58,0x24,0xdf,0x9b,0x30,0x69,0x9c,0x26,0x43,0x3c,0xb2,0x62,0x22,0xe6,
|
||||
0x4b,0xcd,0xd3,0x9e,0xcc,0x40,0xcb,0x8c,0x5a,0xd4,0x96,0xd0,0xbf,0xea,0x81,0x1f,
|
||||
0xe4,0xd9,0x2c,0xc8,0x45,0x8a,0xd9,0xac,0x92,0x87,0xfc,0x10,0xb2,0x06,0x7f,0x3b,
|
||||
0xbe,0xaf,0xa5,0x2e,0xc0,0xc3,0xeb,0x9c,0x3a,0xa1,0x99,0x36,0xcb,0x3c,0xa0,0xb1,
|
||||
0x85,0xd1,0xca,0x60,0x0c,0x2c,0xbf,0xb4,0x37,0xe8,0x59,0x07,0x7d,0x29,0x5b,0xc4,
|
||||
0x37,0x96,0x40,0x01,0xc6,0xd0,0x03,0x9a,0xdd,0xea,0x22,0xa6,0x27,0x32,0xc6,0xff,
|
||||
0xd6,0x85,0x0e,0xaf,0x17,0xc8,0x1f,0x27,0xa1,0x49,0x74,0x71,0xa9,0x69,0xdf,0xff,
|
||||
0xb7,0x73,0xfe,0x31,0x6d,0x5c,0x77,0x00,0x2f,0x23,0x2c,0xcd,0x0d,0x29,0x6c,0x66,
|
||||
0x4d,0xd5,0x45,0xaa,0xa9,0x5b,0x9b,0x90,0x46,0x4a,0x9b,0x55,0x48,0x07,0x9c,0xab,
|
||||
0x35,0x5b,0x07,0x0d,0x14,0x95,0x0e,0xea,0x0a,0xe1,0x4c,0xb3,0xbc,0x5a,0x49,0x6b,
|
||||
0x05,0x7b,0x5a,0xb4,0x2d,0xd5,0xa4,0xfc,0x31,0x6d,0x19,0x71,0xb4,0x69,0x6b,0x94,
|
||||
0x36,0x26,0xaa,0x32,0xc9,0x57,0x8d,0x06,0x31,0x1b,0xbb,0x06,0x2a,0x36,0xa0,0x56,
|
||||
0x7a,0xaa,0x2a,0x57,0x1b,0x12,0x95,0xe9,0xb6,0x2e,0x51,0x40,0x5a,0x16,0xab,0x62,
|
||||
0x33,0xd1,0xc0,0xdb,0xf7,0xfb,0x7e,0x9c,0xcf,0x10,0x08,0x99,0xba,0xfe,0xf5,0xfd,
|
||||
0xbc,0x77,0xef,0xee,0x7d,0xdf,0xf7,0x7d,0xef,0xf9,0xeb,0xf7,0xee,0xde,0x3b,0xff,
|
||||
0x60,0xfe,0xb3,0xf4,0xb0,0x6a,0x8d,0xf5,0x05,0xbc,0x59,0x8b,0xd9,0x46,0xdf,0xda,
|
||||
0x85,0x94,0xcb,0x09,0xd3,0xc4,0x94,0xf8,0x71,0xb5,0xc9,0x4b,0x95,0x6e,0x1d,0x6c,
|
||||
0x07,0x92,0x72,0x89,0x92,0x0c,0xb0,0x93,0xa9,0xec,0x64,0x6c,0xa1,0x76,0xd7,0x25,
|
||||
0x27,0xbf,0x5e,0xf4,0xa9,0x58,0x08,0xad,0x51,0x62,0xfc,0x0d,0xd6,0xe5,0x3f,0x9b,
|
||||
0xa0,0x38,0xc9,0xaa,0xa8,0xb7,0xf8,0x10,0xa2,0x56,0xdc,0x26,0xe4,0x3c,0x1a,0x73,
|
||||
0x3c,0xc3,0xaf,0x6f,0xd3,0x72,0xd0,0x4e,0x97,0x7c,0x86,0xd2,0x69,0x51,0x30,0x7d,
|
||||
0xe4,0xed,0xbf,0xff,0xee,0xe6,0x46,0xfe,0x53,0x1f,0x6e,0xa8,0x2c,0x2c,0x06,0xfd,
|
||||
0x95,0xcd,0xdd,0x30,0x87,0x1e,0xf4,0xf0,0x6b,0x60,0x7a,0x65,0x28,0xc2,0x2e,0x69,
|
||||
0x7d,0xa9,0x40,0x11,0xe7,0xfc,0xa3,0x95,0xfc,0x45,0x68,0x30,0xe6,0x7a,0xf9,0xca,
|
||||
0xc9,0xd2,0xd4,0x0e,0x3e,0x7f,0xc5,0xc9,0xa2,0xbc,0x2d,0xf6,0xac,0x7d,0x19,0x0d,
|
||||
0xbe,0xe6,0x22,0xce,0xa3,0x75,0xeb,0xdc,0x79,0x30,0x12,0x62,0x4b,0x8a,0x88,0x70,
|
||||
0x91,0x62,0xc0,0x1a,0x63,0xd4,0x59,0x69,0xe3,0x93,0x48,0xfe,0x9f,0x15,0xe2,0x91,
|
||||
0x44,0x06,0x5a,0xc2,0x56,0x20,0x11,0xf6,0x90,0x60,0x9b,0x78,0x83,0x53,0x41,0x26,
|
||||
0x8e,0xf8,0x59,0xa3,0x6c,0xeb,0x9f,0xa5,0xed,0x39,0xb2,0x7f,0xba,0xe4,0x18,0xcb,
|
||||
0xe8,0x45,0x2f,0x09,0xef,0x1d,0xd9,0x2f,0x9d,0xc6,0xae,0x79,0xa5,0x0a,0x15,0xd3,
|
||||
0xd3,0x9d,0x9d,0x47,0x9e,0x7b,0x63,0x23,0xf7,0xf5,0xa5,0xba,0x1b,0x22,0x05,0x45,
|
||||
0xd1,0xef,0x77,0x36,0x0c,0x5d,0xe8,0x81,0x4b,0x20,0x38,0xd0,0xbb,0xb2,0x92,0x9e,
|
||||
0x2c,0xda,0x78,0xab,0x83,0x11,0x1f,0x83,0xaf,0x2b,0xe0,0x92,0x54,0x1d,0xe1,0x13,
|
||||
0xb2,0x1b,0xa5,0x26,0xc6,0xf8,0x02,0x03,0x7f,0x84,0x2a,0xe7,0x3d,0xeb,0x46,0x92,
|
||||
0xd7,0x17,0xba,0x9c,0xc5,0x99,0x88,0xe5,0x19,0xd8,0x5d,0x75,0xc6,0x0e,0xab,0xf5,
|
||||
0x8c,0xe2,0xe6,0x59,0xb1,0xb6,0x65,0x9a,0xf2,0x91,0x44,0x4a,0xb6,0x04,0x17,0x35,
|
||||
0xcc,0xad,0x5c,0x0c,0xab,0x1a,0xdf,0x8e,0xd0,0x92,0x18,0xe5,0x17,0xd6,0xf9,0xef,
|
||||
0xc5,0xe9,0x4d,0xd8,0x5f,0xb1,0x7f,0xbd,0x4c,0x38,0xae,0xa2,0x02,0x52,0x4c,0x3a,
|
||||
0xaf,0x6c,0x32,0x7f,0x71,0xdd,0xa8,0xb4,0x2d,0x27,0x95,0x44,0x71,0xc7,0x8d,0xa1,
|
||||
0x8e,0x1e,0x1c,0xc2,0x5d,0xe0,0x41,0xb8,0x4b,0xf0,0x56,0x87,0xd9,0xa2,0x61,0xb2,
|
||||
0x3b,0xcb,0x9f,0xa2,0xe8,0xb8,0x72,0xf7,0xe1,0x95,0xac,0x2f,0x68,0xfa,0x61,0x25,
|
||||
0xce,0x06,0x4f,0xc6,0x96,0x66,0xb7,0x45,0x66,0x77,0x68,0xdd,0xeb,0xf0,0xf6,0x86,
|
||||
0x7c,0x1a,0xf6,0xd3,0xa2,0xac,0x08,0x93,0xa5,0x0b,0xcc,0xfa,0xb6,0x38,0x9f,0x75,
|
||||
0x27,0x87,0xf8,0xd9,0x0c,0xb1,0xb6,0x65,0x5d,0xb5,0xde,0xcd,0x5b,0xe2,0x9f,0x94,
|
||||
0xb0,0x4b,0xc0,0x64,0x65,0x81,0x8f,0x08,0x26,0x72,0xb9,0x7b,0xb9,0xff,0x46,0xd7,
|
||||
0x9e,0x76,0xe5,0x6b,0x7f,0x01,0x77,0xbc,0x72,0xe4,0x8b,0x47,0x3a,0x65,0x97,0xea,
|
||||
0x14,0xfe,0x61,0x61,0x83,0x23,0xb9,0x03,0x0e,0x9f,0x3a,0xf5,0xc0,0x86,0xfe,0xeb,
|
||||
0x6b,0x8e,0xf5,0xda,0x94,0x5c,0x32,0xe8,0x8f,0x5c,0x76,0x4d,0x82,0x03,0xf7,0x41,
|
||||
0x17,0x04,0x0f,0x0e,0x67,0xd9,0x55,0x0e,0xe6,0x10,0x6c,0x44,0xc8,0x75,0x85,0x02,
|
||||
0xb7,0x17,0x5f,0xc8,0x60,0xc3,0x35,0x06,0xc7,0x2c,0x76,0xf0,0x6b,0x63,0x2a,0x04,
|
||||
0xba,0x4b,0x11,0xb9,0xf6,0x4f,0x63,0x19,0x06,0x54,0xc1,0xbb,0x92,0xc7,0x88,0x64,
|
||||
0x15,0x34,0xea,0x83,0xec,0x0a,0x93,0xa5,0xb9,0x75,0x8f,0xa1,0xf1,0x87,0x51,0xdc,
|
||||
0xb3,0x69,0x39,0x09,0xaa,0x43,0x23,0xd5,0x59,0xfe,0x48,0x42,0xe3,0x73,0xd3,0x15,
|
||||
0xfc,0x9c,0x06,0xae,0xd1,0xf2,0x0d,0x76,0xa3,0x30,0x7d,0xd7,0xa4,0xce,0x2f,0xa1,
|
||||
0x7e,0x2c,0xe3,0x01,0xcf,0x01,0xbb,0x77,0xc0,0x05,0x4f,0xfe,0xa8,0xd6,0x5b,0xfb,
|
||||
0xa5,0xf3,0xe8,0x0d,0xe6,0x92,0x8a,0x0a,0xd1,0xbb,0xa6,0x6f,0x71,0xc4,0x54,0xa6,
|
||||
0x57,0x2b,0x2a,0x56,0x51,0x71,0x61,0x61,0xe1,0xb1,0xc7,0x36,0x59,0x7f,0x64,0x2f,
|
||||
0xf9,0xfc,0x8a,0xaa,0x2e,0xeb,0x5a,0xef,0x92,0xeb,0x89,0xfa,0xe1,0x29,0xe8,0x82,
|
||||
0x57,0x3d,0x9e,0x9e,0x2c,0xbf,0x06,0x69,0xde,0x34,0x06,0x8f,0x11,0x16,0x43,0x2a,
|
||||
0xed,0x9d,0x8c,0xc0,0x5c,0x24,0x83,0x93,0x91,0x34,0xfe,0x1f,0x52,0x7a,0x90,0xff,
|
||||
0xe2,0x2f,0xa3,0xd6,0x43,0x21,0xdc,0x16,0x59,0x2e,0x06,0x37,0xf2,0x34,0xaf,0x0b,
|
||||
0x2a,0x69,0x4c,0xbc,0x53,0x87,0xf8,0x8d,0x21,0xb3,0x04,0x6e,0x49,0xb3,0x72,0xae,
|
||||
0xd2,0xe5,0x16,0xd6,0xbb,0x78,0x5e,0x4e,0x82,0xa6,0x40,0x27,0x3d,0xa5,0xf1,0x77,
|
||||
0xd2,0xef,0xe5,0xfa,0x60,0x0a,0xab,0x0e,0xbb,0xf9,0x32,0x48,0x43,0x99,0xf9,0x1e,
|
||||
0xf6,0x1d,0x82,0x42,0x50,0xe4,0x67,0x66,0xf1,0x7c,0xc5,0xf4,0xb1,0x6b,0x9f,0xfb,
|
||||
0xee,0xdb,0xdf,0x3f,0xd6,0xf8,0x68,0x45,0x39,0xab,0xb7,0x38,0x2e,0x97,0xad,0x2e,
|
||||
0xb4,0xb6,0x46,0x5f,0x7f,0xed,0xcc,0xc6,0xfe,0x73,0x74,0x87,0xee,0x0f,0xa8,0xe0,
|
||||
0xc0,0x44,0xdc,0xb9,0xe4,0x1a,0xea,0x18,0xae,0x9e,0xda,0x07,0x83,0xb8,0x47,0xe3,
|
||||
0x8f,0x8d,0x13,0x5e,0xc6,0x55,0xb1,0x2e,0xb3,0x43,0xd7,0xf4,0x14,0x43,0x95,0x8b,
|
||||
0xec,0x16,0xdc,0x5c,0xe7,0xf5,0x76,0x4d,0x8a,0x79,0x98,0xaa,0xe1,0xc0,0x8f,0x15,
|
||||
0xf9,0x38,0x6a,0xf6,0x76,0xf1,0x9a,0xde,0xae,0x29,0x93,0x6d,0xf2,0x1f,0xc6,0x2e,
|
||||
0x79,0xcb,0xf0,0xb8,0xb9,0x75,0x15,0xec,0x5d,0x83,0xd8,0xcb,0xfd,0xd7,0x57,0x8d,
|
||||
0x36,0x06,0x45,0x4b,0x82,0xd5,0x60,0xe1,0xa5,0xa9,0x29,0xd8,0x61,0x1d,0xf9,0x06,
|
||||
0x1f,0x42,0x41,0x75,0x87,0xf8,0x65,0x59,0x46,0xf3,0xf2,0xbf,0x3e,0x32,0x79,0xab,
|
||||
0x73,0xe1,0x9d,0xda,0xf3,0x4f,0x5e,0x59,0x7d,0xe5,0xe5,0x97,0x1b,0x3f,0xbf,0xba,
|
||||
0xba,0x5a,0xc1,0x7a,0x16,0xee,0xf9,0xb6,0xb0,0x6a,0x61,0xa1,0x62,0x81,0xc9,0x17,
|
||||
0x40,0xbc,0x80,0xb4,0x46,0x67,0x27,0x0e,0x7c,0x65,0x63,0xf7,0xc1,0xa2,0xa9,0xc1,
|
||||
0x48,0xe4,0xec,0x76,0x55,0x29,0xc4,0x9d,0xcd,0xb1,0xa1,0xdd,0xf5,0x3d,0xd0,0xa0,
|
||||
0x7f,0xf6,0xc4,0x79,0xab,0x03,0x1e,0x06,0x8c,0x5f,0xfe,0xb8,0x08,0x46,0xb7,0x67,
|
||||
0x5b,0xd1,0x17,0x67,0x03,0xb1,0x4f,0xf5,0x1b,0x72,0x72,0xab,0x2a,0x93,0x50,0xd4,
|
||||
0xe5,0x12,0xfe,0xf3,0x79,0x24,0x3d,0x36,0xdd,0x7e,0x34,0x95,0x4a,0xe1,0x26,0xe7,
|
||||
0x79,0x01,0x4f,0x19,0x57,0xc5,0xc3,0xd0,0xa3,0x53,0x2c,0xdb,0x35,0x5a,0xe4,0xff,
|
||||
0x92,0x76,0x01,0x73,0x83,0x61,0xf1,0x01,0x40,0x26,0x95,0xc1,0x98,0xc9,0xd8,0x50,
|
||||
0x0c,0xc3,0xba,0x24,0x36,0x27,0x90,0xea,0x65,0xcf,0x1a,0x7e,0xb3,0xd0,0x79,0xed,
|
||||
0xc9,0x57,0xbc,0xe7,0x17,0x8e,0xed,0x39,0xfc,0xe8,0x8b,0x87,0x17,0xee,0x04,0xe8,
|
||||
0x7b,0xd1,0x9d,0x13,0xcf,0x3c,0xf3,0xe0,0x66,0xfe,0x33,0x5c,0x4e,0xff,0xb2,0x6a,
|
||||
0xb7,0xe7,0x94,0x82,0xd6,0x7b,0xf9,0x27,0xdd,0x43,0x17,0xea,0xa1,0x0f,0x0e,0x8b,
|
||||
0x77,0x3d,0x59,0x77,0xb0,0x0e,0xa3,0xe8,0x7f,0x99,0xea,0x83,0x90,0xc3,0x87,0x98,
|
||||
0x4a,0xd9,0xa7,0x12,0x29,0x55,0x77,0xc2,0xb8,0xaf,0xab,0xfb,0xd8,0xe0,0xd3,0x8a,
|
||||
0x48,0xdd,0x41,0x11,0x86,0x35,0xdb,0xba,0x0f,0x40,0x1c,0x75,0x75,0xac,0x4c,0x24,
|
||||
0x83,0xd2,0xfa,0xf0,0x55,0x26,0x19,0x29,0xf2,0x49,0xe4,0x36,0xcc,0x0c,0x86,0xf3,
|
||||
0x6b,0xea,0x2b,0x83,0x50,0x47,0x0e,0x90,0xb2,0x56,0xe4,0x94,0xfa,0x3a,0x8e,0x3c,
|
||||
0xfb,0xe0,0x73,0xad,0xef,0xed,0x69,0x3d,0xd5,0x78,0xfe,0x4a,0xe3,0x7b,0xad,0x87,
|
||||
0x1b,0xaf,0xb4,0x72,0x06,0x2c,0x29,0xee,0xc4,0x51,0x39,0x03,0xd1,0xd9,0x9d,0x13,
|
||||
0x1f,0x8c,0x7f,0xf4,0x78,0xfb,0x66,0xfe,0xb3,0x5f,0x6a,0x36,0x82,0xd0,0x01,0xa1,
|
||||
0x07,0x26,0xc2,0x11,0xdf,0x92,0x6b,0xdb,0xe4,0xee,0xfa,0xfa,0xfa,0x70,0x58,0xc5,
|
||||
0x37,0xd6,0x21,0x86,0x9e,0x11,0x4f,0xb2,0xf7,0xb9,0x03,0x33,0x3d,0x06,0x38,0x50,
|
||||
0x57,0xcd,0xee,0x94,0xb1,0x27,0x0b,0x5a,0x35,0xd3,0xeb,0xce,0x26,0xec,0xa0,0x96,
|
||||
0x32,0xcc,0x41,0x3b,0x9c,0xf7,0xab,0x99,0x12,0xcc,0x8a,0xa3,0x7a,0xaa,0x8c,0x62,
|
||||
0x96,0x5b,0xff,0x17,0xcf,0x8e,0x18,0x0a,0xcb,0xc6,0x58,0x2e,0xcf,0x5b,0x52,0x22,
|
||||
0xd9,0x83,0x6d,0xd0,0x84,0xd9,0x94,0x48,0x52,0x29,0x55,0xd1,0x9d,0x53,0x6b,0xf8,
|
||||
0xf9,0x40,0xf4,0x9d,0xef,0x44,0x4f,0x79,0xef,0xde,0x93,0x3e,0x76,0x38,0x5a,0xfb,
|
||||
0xa7,0x81,0x81,0xe8,0x40,0x14,0x18,0x60,0x1b,0x0b,0x48,0x94,0x6d,0x66,0xca,0x75,
|
||||
0xc0,0x7b,0xc7,0xc7,0x7f,0x3d,0x33,0xf3,0xc9,0x66,0xee,0xeb,0xeb,0x8b,0xdf,0x38,
|
||||
0x0d,0x77,0x10,0x7b,0xca,0x9e,0x5b,0x0e,0xfa,0xb3,0xce,0x50,0x43,0xac,0x1b,0xe6,
|
||||
0x11,0x79,0x4d,0x5f,0xc4,0x95,0x41,0xfd,0x70,0x0f,0x86,0xa2,0x51,0xc0,0x95,0x41,
|
||||
0x72,0x88,0x65,0x77,0x1b,0x95,0xa3,0x86,0x3f,0x00,0x95,0xb0,0xed,0x6a,0x52,0xf7,
|
||||
0xe7,0x77,0xb3,0x82,0xe1,0x6e,0x2d,0xaf,0xe3,0xe7,0x14,0x1a,0xcb,0x61,0xbc,0x10,
|
||||
0xd6,0xf4,0x00,0x47,0x11,0x5b,0x40,0xe9,0x60,0x85,0x32,0x19,0xae,0x74,0x27,0x98,
|
||||
0xf5,0x6e,0x2e,0xf2,0x15,0x6d,0x4c,0xab,0x99,0x15,0x6b,0xf1,0xc4,0x62,0xc0,0x82,
|
||||
0x12,0xe8,0x00,0x69,0x7d,0x38,0xab,0x2b,0x8b,0x01,0xfe,0x89,0xca,0x22,0x46,0xdd,
|
||||
0xe6,0x8f,0x77,0xf0,0xd6,0x4a,0xcb,0x3d,0xc3,0xf7,0x46,0x67,0xef,0xf9,0x73,0xf4,
|
||||
0xb1,0xc6,0x7b,0x7e,0xf0,0x8f,0xda,0x6f,0xce,0xd6,0x3e,0x35,0x3b,0x1b,0xdd,0x39,
|
||||
0x1b,0xc5,0x84,0xa5,0x6c,0xdb,0x69,0xee,0x67,0x4b,0xdb,0xce,0x89,0x89,0x13,0x1f,
|
||||
0x8c,0x3f,0x32,0xb3,0xeb,0xc3,0x4f,0x36,0xed,0x7e,0xd0,0xeb,0x1b,0x9a,0x0d,0x3d,
|
||||
0x69,0x07,0x07,0xaa,0xc9,0xc5,0x42,0xd8,0xed,0xdc,0xb1,0xd4,0xe0,0xfa,0x38,0x9f,
|
||||
0x65,0x5f,0x96,0xd5,0xe5,0x94,0xac,0x98,0xcd,0x42,0xd6,0xd6,0xc0,0xb3,0x0f,0xbb,
|
||||
0xfd,0x91,0xac,0xe6,0xd7,0x71,0x3d,0x15,0x2c,0xf8,0x6d,0x59,0xa1,0x36,0x19,0x0b,
|
||||
0x1b,0xf1,0xac,0x06,0x75,0xcd,0xd9,0xda,0x90,0xdf,0x9d,0x15,0xdf,0xe0,0xcd,0x62,
|
||||
0xc4,0xcc,0xa1,0xee,0xc9,0x32,0xdc,0xe5,0xd6,0x9d,0x06,0xcb,0xe6,0x7d,0x2c,0x97,
|
||||
0x2f,0xf2,0x4a,0x26,0x36,0x7c,0x92,0xfd,0x84,0x10,0x67,0x35,0xb1,0x8b,0x67,0x4b,
|
||||
0xad,0x30,0xf9,0xe3,0xc4,0x89,0x13,0xf7,0x36,0x1e,0x78,0xe8,0xda,0x53,0x07,0x1e,
|
||||
0x7a,0xeb,0x9e,0x37,0xae,0xbd,0x36,0x31,0x71,0x1c,0xe2,0x89,0x13,0x13,0x98,0x4e,
|
||||
0x40,0x80,0x23,0xcc,0xc0,0xfe,0x38,0x66,0x27,0x58,0x72,0xe2,0x38,0x30,0xfe,0xc3,
|
||||
0x47,0x66,0x3e,0xbc,0x7e,0xfd,0x57,0xcf,0x6e,0xee,0x3e,0x58,0xf4,0xb8,0x7c,0xda,
|
||||
0x7d,0x0e,0x7b,0x2a,0x05,0x17,0xc1,0x64,0xb0,0xa0,0x19,0x11,0x58,0x2b,0xe8,0x40,
|
||||
0x42,0x4f,0x28,0x0d,0x31,0x57,0xcc,0xe5,0x72,0x69,0x98,0x49,0xe8,0x01,0x9f,0x0b,
|
||||
0xf3,0xb1,0x58,0xcc,0x59,0x38,0xa4,0x85,0xc3,0x79,0xbf,0x3f,0x9f,0x4f,0xe8,0x4e,
|
||||
0xa6,0x84,0xf1,0xd5,0xc5,0x84,0xce,0x02,0xd4,0xe1,0xb2,0x1b,0xac,0x66,0x81,0xc5,
|
||||
0x04,0x33,0x92,0x00,0xab,0x52,0x9f,0x19,0x77,0x69,0x4c,0x45,0x0f,0x8e,0xb0,0x6c,
|
||||
0x6c,0x14,0xaa,0x80,0xb6,0xee,0x66,0xc5,0x36,0x66,0xa0,0x84,0x1e,0x78,0x15,0xeb,
|
||||
0x09,0x53,0x52,0xa8,0x27,0xfc,0x3e,0xb3,0x15,0xfc,0xdc,0xc0,0x33,0xe3,0xe3,0xdb,
|
||||
0xb7,0xdf,0xfd,0xd7,0x03,0xb5,0x07,0xf7,0xd4,0x3e,0xfd,0xfc,0x8f,0x7f,0x3f,0xfe,
|
||||
0x9f,0xf1,0xed,0x2c,0xa0,0x7c,0x9c,0xb3,0x7d,0x9c,0xe7,0x2d,0x61,0x1c,0x7d,0x07,
|
||||
0xce,0x6b,0xaa,0xaa,0xea,0x7f,0xf3,0xec,0xed,0xfc,0xd7,0x17,0x69,0x70,0xe6,0x83,
|
||||
0x49,0xfb,0x4d,0xb8,0x43,0xaa,0x0e,0x65,0xb1,0x90,0x0f,0x67,0x23,0x95,0x91,0xd1,
|
||||
0xd3,0xbd,0x4e,0xe7,0x88,0x58,0x33,0xf9,0xd8,0x3a,0x75,0xc4,0x29,0x72,0xb8,0xec,
|
||||
0x32,0x0a,0x4a,0x00,0x07,0x8e,0xee,0xf6,0xed,0xf0,0xf9,0xca,0xf4,0x2c,0xf5,0x4c,
|
||||
0x09,0x70,0x1a,0x2d,0x58,0xcd,0xf8,0x42,0xa6,0x0e,0x2b,0x30,0xab,0x8c,0x58,0xb4,
|
||||
0x30,0x33,0xc2,0x2a,0x4b,0x03,0x25,0x1d,0x96,0x9c,0x2e,0x09,0xd7,0xf0,0xc0,0x49,
|
||||
0xe4,0xf9,0xda,0x6f,0x7c,0x34,0x33,0x33,0xf3,0xf8,0xb7,0x0e,0x3e,0x3e,0x73,0x52,
|
||||
0x30,0x73,0x72,0x17,0x26,0x10,0x67,0xc4,0x9e,0xb1,0x0b,0xf7,0xbb,0x4e,0xee,0xda,
|
||||
0xf5,0xe1,0x9b,0xe0,0xbc,0xb1,0xb6,0xb1,0xb1,0x73,0xb7,0x19,0xbd,0x48,0xc6,0xb7,
|
||||
0x14,0xf1,0x2f,0x3a,0x60,0x08,0x43,0x1f,0x54,0x61,0x14,0x07,0x0b,0x05,0x7f,0x3e,
|
||||
0xac,0x69,0xf1,0xfb,0xb5,0x78,0x3c,0x1b,0x8f,0xe3,0x18,0x89,0x23,0xb0,0x63,0x41,
|
||||
0x63,0x49,0x56,0x03,0x25,0x5e,0xc8,0x02,0x26,0x71,0xbe,0x69,0x59,0x8c,0x9c,0x38,
|
||||
0xaf,0xcb,0x6a,0x6b,0x62,0xcf,0x07,0x39,0xd3,0x81,0x2d,0xce,0xe5,0x68,0xa2,0x94,
|
||||
0xc3,0x53,0xb3,0xb3,0xf0,0x63,0x8d,0xcb,0x85,0xd4,0x34,0x19,0xe7,0xdf,0xf3,0x67,
|
||||
0x8a,0xbc,0x09,0xdc,0x24,0x6e,0x5f,0x68,0x42,0xaa,0x9a,0x7e,0xba,0xef,0xe9,0xdf,
|
||||
0x7e,0xf9,0x67,0xfb,0xfe,0xf6,0x00,0x1c,0x5b,0xc0,0x4c,0x3f,0xa4,0x18,0x44,0x14,
|
||||
0x0a,0x55,0x55,0x63,0x63,0x6d,0x2d,0x40,0x5b,0xff,0xfc,0xed,0xdd,0x87,0x33,0xe1,
|
||||
0xa5,0x08,0xf4,0xc0,0x17,0xe0,0x7e,0x80,0xa3,0x18,0x5c,0xb8,0xac,0x2c,0x2e,0xe2,
|
||||
0x97,0x4e,0x74,0x19,0xe4,0xce,0x14,0x94,0x95,0x95,0x44,0x96,0x02,0xab,0x8a,0x69,
|
||||
0x44,0x96,0x94,0xb2,0x42,0x8d,0x7f,0x69,0x46,0x2f,0xb3,0x2c,0x4f,0x1c,0x2c,0x55,
|
||||
0xb4,0x9c,0xbb,0xd4,0x9e,0xf2,0x56,0xc9,0xfd,0x7d,0x2d,0x7b,0x31,0xec,0x6d,0x69,
|
||||
0x79,0xf6,0x17,0x0f,0xef,0xfe,0xf8,0xf4,0xb7,0x5b,0x78,0x76,0x2f,0xd0,0x32,0x0f,
|
||||
0xc7,0x2c,0xd3,0x22,0xa5,0x98,0xe5,0x85,0x50,0x3a,0x3f,0x7f,0x06,0xb6,0xb6,0xaa,
|
||||
0xb6,0xad,0xb8,0x0f,0xff,0x36,0x65,0xa9,0x37,0xac,0x2f,0xab,0x2f,0xe0,0x34,0xf7,
|
||||
0x28,0x73,0xa1,0x9a,0x53,0x73,0x39,0x47,0x4e,0xa2,0xb2,0xd4,0xa1,0x62,0x44,0xb1,
|
||||
0x03,0x82,0xa9,0xa0,0x8a,0xd4,0x54,0xe7,0x4a,0x0e,0x2e,0xc2,0x52,0x5e,0x43,0x15,
|
||||
0xaa,0x2a,0x2b,0x74,0x70,0x3d,0x59,0x0b,0x04,0x0e,0x07,0x2f,0xc9,0x99,0x12,0xeb,
|
||||
0x69,0x1d,0xaa,0x45,0xb5,0x74,0x6a,0x69,0xd7,0x61,0x36,0x43,0x18,0x7d,0xbf,0xa6,
|
||||
0x7d,0xae,0x66,0xae,0xa6,0xbd,0x46,0x32,0x27,0xe2,0xfb,0xb8,0x13,0x39,0xa4,0x9d,
|
||||
0xeb,0xb4,0xf3,0x80,0xc7,0xed,0xed,0xed,0x67,0xce,0xcc,0xb7,0x8d,0xb5,0x6c,0xf5,
|
||||
0x2b,0xd0,0x19,0xb8,0x06,0x1a,0xfe,0x20,0x4e,0xa4,0x99,0x07,0x53,0x70,0x3b,0xde,
|
||||
0x9c,0xdb,0x95,0xdf,0x46,0xef,0x16,0xe2,0xad,0x5a,0xdc,0x22,0x67,0xcf,0xde,0x84,
|
||||
0xc0,0x92,0xa3,0x17,0x59,0x6a,0x4a,0xf8,0xc1,0xcd,0x8b,0x67,0x21,0xf0,0x1c,0x66,
|
||||
0x70,0x8f,0xe9,0xc5,0x8b,0x73,0x73,0x73,0x35,0x67,0xf6,0xb6,0x55,0xbd,0xbb,0x45,
|
||||
0xef,0x21,0xf9,0x86,0x50,0x24,0x6c,0x0b,0x2e,0x3b,0xd4,0xff,0xcb,0xab,0xf9,0xac,
|
||||
0xb9,0x69,0x3a,0x8f,0x7b,0x4c,0x64,0xce,0x96,0x49,0x85,0xd2,0xcd,0xb3,0xd6,0x80,
|
||||
0xee,0x43,0xef,0x8d,0x35,0xbd,0x70,0x7b,0xaf,0x59,0xc7,0x70,0x64,0xc9,0x17,0x81,
|
||||
0x39,0x5d,0x50,0x59,0x4e,0xb2,0x41,0xe1,0x60,0x83,0x18,0x70,0xb0,0xc1,0x2c,0xf2,
|
||||
0xa5,0xc0,0x4a,0x73,0xa6,0xd0,0xc4,0xac,0x67,0x26,0x0e,0xa1,0x9a,0x53,0x73,0x52,
|
||||
0xd7,0x61,0x4a,0xf0,0x00,0xab,0x38,0x2c,0xd6,0xb8,0x80,0x1f,0x9a,0x96,0x73,0x66,
|
||||
0x2b,0x54,0x8b,0x75,0xa6,0x21,0x54,0x1d,0x66,0x4b,0xde,0xc7,0x2e,0xc4,0x37,0x33,
|
||||
0xe2,0x60,0x9e,0x9b,0x2b,0x15,0x48,0x6a,0x4a,0x7b,0x8c,0xed,0x35,0x30,0x72,0xdb,
|
||||
0xaa,0x9a,0xe6,0xef,0xf8,0x87,0x5c,0xc9,0xde,0xa5,0x1d,0xce,0xa2,0x96,0xb7,0x15,
|
||||
0x12,0x41,0xcb,0x97,0x20,0xb7,0x8c,0xbe,0xbe,0xd2,0x46,0x46,0xee,0xd0,0xf8,0x1d,
|
||||
0xa9,0xeb,0xf7,0xbd,0x6b,0xde,0x27,0x24,0x2d,0xb7,0x08,0x82,0x79,0x79,0x34,0xcf,
|
||||
0xf4,0xda,0xda,0xda,0xc6,0xaa,0x9a,0xae,0xb7,0x7c,0xf5,0x4e,0xbd,0xc7,0xfa,0x60,
|
||||
0x21,0x12,0x0a,0x8d,0x38,0x2b,0x8b,0x45,0xb7,0x81,0x13,0x01,0x43,0xce,0x06,0x3e,
|
||||
0x2d,0x8c,0x72,0x63,0x9f,0xa6,0x69,0xc1,0xbf,0xff,0xd0,0xdf,0xcf,0x26,0x21,0xfd,
|
||||
0xa5,0xd8,0x6f,0x39,0x6a,0x12,0xbb,0xd2,0x6c,0x45,0x6a,0x0b,0xae,0x7f,0xfd,0xfa,
|
||||
0x58,0xfb,0xff,0xfe,0x23,0xc2,0xd4,0x62,0xc2,0xaf,0xb9,0xc1,0x83,0x88,0xbb,0x28,
|
||||
0x30,0x64,0x14,0x9b,0x9b,0x97,0xb9,0x65,0x21,0x1e,0x72,0x05,0x77,0x49,0xc0,0x0f,
|
||||
0x4c,0x1b,0x5c,0x2c,0x8d,0x18,0x56,0xa9,0xd0,0x75,0x5b,0xaa,0x95,0xb4,0xdc,0xb2,
|
||||
0xcc,0xd2,0x02,0xf7,0x9a,0x16,0x71,0xfd,0xef,0xfd,0xf2,0xc1,0x73,0x4d,0xe7,0x9a,
|
||||
0xca,0x58,0x93,0x5d,0xc7,0x39,0x8c,0xe7,0xb8,0xde,0xb9,0xa6,0xfe,0xb6,0x96,0x33,
|
||||
0x73,0x9f,0xc5,0xdf,0x19,0x13,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,
|
||||
0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,
|
||||
0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,
|
||||
0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,
|
||||
0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,0x10,0x04,0x41,
|
||||
0x10,0x04,0x41,0x10,0x5b,0xe6,0xbf,0x9f,0xe5,0x54,0xe2,0x36,0x30,0x01,0x00,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,6 +30,47 @@
|
||||
extern void lxt971_no_sleep(void);
|
||||
|
||||
|
||||
int board_revision(void)
|
||||
{
|
||||
unsigned long osrl_reg;
|
||||
unsigned long isr1l_reg;
|
||||
unsigned long tcr_reg;
|
||||
unsigned long value;
|
||||
|
||||
/*
|
||||
* Get version of HUB405 board from GPIO's
|
||||
*/
|
||||
|
||||
/*
|
||||
* Setup GPIO pin(s) (IRQ6/GPIO23)
|
||||
*/
|
||||
osrl_reg = in32(GPIO0_OSRH);
|
||||
isr1l_reg = in32(GPIO0_ISR1H);
|
||||
tcr_reg = in32(GPIO0_TCR);
|
||||
out32(GPIO0_OSRH, osrl_reg & ~0x00030000); /* output select */
|
||||
out32(GPIO0_ISR1H, isr1l_reg | 0x00030000); /* input select */
|
||||
out32(GPIO0_TCR, tcr_reg & ~0x00000100); /* select input */
|
||||
|
||||
udelay(1000); /* wait some time before reading input */
|
||||
value = in32(GPIO0_IR) & 0x00000100; /* get config bits */
|
||||
|
||||
/*
|
||||
* Restore GPIO settings
|
||||
*/
|
||||
out32(GPIO0_OSRH, osrl_reg); /* output select */
|
||||
out32(GPIO0_ISR1H, isr1l_reg); /* input select */
|
||||
out32(GPIO0_TCR, tcr_reg); /* enable output driver for outputs */
|
||||
|
||||
if (value & 0x00000100) {
|
||||
/* Revision 1.1 or 1.2 detected */
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Revision 1.0 */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int board_early_init_f (void)
|
||||
{
|
||||
/*
|
||||
@@ -69,6 +110,8 @@ int misc_init_f (void)
|
||||
|
||||
int misc_init_r (void)
|
||||
{
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
volatile unsigned char *duart0_mcr = (unsigned char *)((ulong)DUART0_BA + 4);
|
||||
volatile unsigned char *duart1_mcr = (unsigned char *)((ulong)DUART1_BA + 4);
|
||||
volatile unsigned char *duart2_mcr = (unsigned char *)((ulong)DUART2_BA + 4);
|
||||
@@ -77,6 +120,7 @@ int misc_init_r (void)
|
||||
unsigned long val;
|
||||
int delay, flashcnt;
|
||||
char *str;
|
||||
char hw_rev[4];
|
||||
|
||||
/*
|
||||
* Enable interrupts in exar duart mcr[3]
|
||||
@@ -121,14 +165,14 @@ int misc_init_r (void)
|
||||
*/
|
||||
str = getenv("bd_type"); /* this is only set on non prototype hardware */
|
||||
if (str != NULL) {
|
||||
if ((strcmp(str, "swch405") == 0) || (strcmp(str, "hub405") == 0)) {
|
||||
if ((strcmp(str, "swch405") == 0) || ((!strcmp(str, "hub405") && (gd->board_type >= 1)))) {
|
||||
unsigned char led_reg_default = 0;
|
||||
str = getenv("ap_pwr");
|
||||
if (!str || (str && (str[0] == '1')))
|
||||
led_reg_default = 0x04 | 0x02 ; /* U2_LED | AP_PWR */
|
||||
|
||||
/*
|
||||
* Flash LEDs on SWCH405
|
||||
* Flash LEDs
|
||||
*/
|
||||
for (flashcnt = 0; flashcnt < 3; flashcnt++) {
|
||||
*led_reg = led_reg_default; /* LED_A..D off */
|
||||
@@ -150,6 +194,11 @@ int misc_init_r (void)
|
||||
out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_DUART_RST); /* set reset to low */
|
||||
udelay(1000); /* wait 1ms */
|
||||
|
||||
/*
|
||||
* Store hardware revision in environment for further processing
|
||||
*/
|
||||
sprintf(hw_rev, "1.%ld", gd->board_type);
|
||||
setenv("hw_rev", hw_rev);
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -159,6 +208,8 @@ int misc_init_r (void)
|
||||
*/
|
||||
int checkboard (void)
|
||||
{
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
unsigned char str[64];
|
||||
int i = getenv_r ("serial#", str, sizeof(str));
|
||||
|
||||
@@ -170,7 +221,14 @@ int checkboard (void)
|
||||
puts(str);
|
||||
}
|
||||
|
||||
putc ('\n');
|
||||
if (getenv_r("bd_type", str, sizeof(str)) != -1) {
|
||||
printf(" (%s", str);
|
||||
} else {
|
||||
puts(" (Missing bd_type!");
|
||||
}
|
||||
|
||||
gd->board_type = board_revision();
|
||||
printf(", Rev 1.%ld)\n", gd->board_type);
|
||||
|
||||
/*
|
||||
* Disable sleep mode in LXT971
|
||||
|
||||
@@ -306,7 +306,7 @@ int misc_init_r (void)
|
||||
/* mtspr(ccr0, (mfspr(ccr0) & 0xff8fffff) | 0x00100000); */
|
||||
mtspr(ccr0, (mfspr(ccr0) & 0xff8fffff) | 0x00000000);
|
||||
#endif
|
||||
/* printf("CCR0=%08x\n", mfspr(ccr0));*/ /* test-only */
|
||||
/* printf("CCR0=%08x\n", mfspr(ccr0)); */ /* test-only */
|
||||
#endif
|
||||
|
||||
free(dst);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := evb4510.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $^
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
*
|
||||
* This memory map allows us to relocate from FLASH to SRAM. After
|
||||
* power-on reset the CPU only knows about the FLASH memory at address
|
||||
* 0x00000000. After memsetup completes the memory map will be:
|
||||
* 0x00000000. After lowlevel_init completes the memory map will be:
|
||||
*
|
||||
* Memory Addr
|
||||
* 0x00000000
|
||||
@@ -54,8 +54,8 @@
|
||||
*
|
||||
***********************************************************************/
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
/* preserve the temp register (r12 AKA ip) and remap it. */
|
||||
ldr r1, =SRAM_BASE+0xC
|
||||
@@ -53,7 +53,9 @@
|
||||
#define CONFIG_ETHADDR 00:11:22:33:44:55
|
||||
|
||||
/* next two ethernet hwaddrs */
|
||||
#define CONFIG_HAS_ETH1
|
||||
#define CONFIG_ETH1ADDR 00:11:22:33:44:66
|
||||
#define CONFIG_HAS_ETH2
|
||||
#define CONFIG_ETH2ADDR 00:11:22:33:44:77
|
||||
|
||||
#define CONFIG_ENV_OVERWRITE
|
||||
|
||||
@@ -28,7 +28,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := gcplus.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -29,11 +29,11 @@
|
||||
#include "version.h"
|
||||
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
/* The ADS GC+ for Linux Boot Rom Ver. 1.73 does memory init for us.
|
||||
* However the darn thing leaves the MMU enabled before handing control
|
||||
* over to us. So we need to disable the MMU and we use memsetup
|
||||
* over to us. So we need to disable the MMU and we use lowlevel_init
|
||||
* to do it.
|
||||
*/
|
||||
|
||||
40
board/hidden_dragon/Makefile
Normal file
40
board/hidden_dragon/Makefile
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# (C) Copyright 2000-2005
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS = $(BOARD).o flash.o
|
||||
|
||||
$(LIB): .depend $(OBJS)
|
||||
$(AR) crv $@ $(OBJS)
|
||||
|
||||
#########################################################################
|
||||
|
||||
.depend: Makefile $(OBJS:.o=.c)
|
||||
$(CC) -M $(CFLAGS) $(OBJS:.o=.c) > $@
|
||||
|
||||
sinclude .depend
|
||||
|
||||
#########################################################################
|
||||
60
board/hidden_dragon/README
Normal file
60
board/hidden_dragon/README
Normal file
@@ -0,0 +1,60 @@
|
||||
U-Boot for Hidden Dragon board
|
||||
------------------------------
|
||||
|
||||
Hidden Dragon is a MPC824x-based board by Motorola. For the most
|
||||
part it is similar to Sandpoint8245 board. So unless otherwise
|
||||
mentioned, the codes in this directory are adapted from ../sandpoint
|
||||
directory.
|
||||
|
||||
Apparently there are very few of this board out there. Even Motorola
|
||||
website does not have any info on it.
|
||||
|
||||
RAM:
|
||||
start = 0x0000 0000
|
||||
size = 0x0200 0000 (32 MB)
|
||||
|
||||
Flash:
|
||||
BANK ONE:
|
||||
start = 0xFFE0 0000
|
||||
size = 0x0020 0000 (2 MB)
|
||||
flash chip = 29LV160TE (1x16 Mbits or 2x8 Mbits)
|
||||
flash sectors = 16K, 2x8K, 32K, 31x64K
|
||||
|
||||
BANK TWO:
|
||||
NONE
|
||||
|
||||
The processor interrupt vectors reside on the first 256 bytes
|
||||
starting from address 0xFFF00000. The "reset vector" (first
|
||||
instruction executed after reset) is located on 0xFFF0 0100.
|
||||
|
||||
U-Boot is configured to reside in flash starting at the address of
|
||||
0xFFF00000. The environment space is located in flash separately from
|
||||
U-Boot, at the second sector of the first flash bank, starting from
|
||||
0xFFE04000 until 0xFFE06000 (8KB).
|
||||
|
||||
Network:
|
||||
- RTL8139 chip on the base board (SUPPORTED)
|
||||
- RTL8129 chip on the processor board (NOT SUPPORTED)
|
||||
|
||||
Serial:
|
||||
- Two NS16550 compatible UART on the processor board (SUPPORTED)
|
||||
- One NS16550 compatible UART on the base board (UNTESTED)
|
||||
|
||||
Misc:
|
||||
VIA686A PCI SuperIO peripheral controller
|
||||
- 2 USB ports (UNTESTED)
|
||||
- 2 PS2 ports (UNTESTED)
|
||||
- Parallel port (UNTESTED)
|
||||
- IDE & floppy interface (UNTESTED)
|
||||
|
||||
S3 Savage4 video card (UNTESTED)
|
||||
|
||||
TODO:
|
||||
-----
|
||||
- Support for the VIA686A based peripherals
|
||||
- The RTL8139 driver frequently gives rx error.
|
||||
- Support for RTL8129 network controller. (Why is the support removed from
|
||||
rtl8139.c driver?)
|
||||
|
||||
(C) Copyright 2004
|
||||
Yusdi Santoso, Adaptec Inc., yusdi_santoso@adaptec.com
|
||||
30
board/hidden_dragon/config.mk
Normal file
30
board/hidden_dragon/config.mk
Normal file
@@ -0,0 +1,30 @@
|
||||
#
|
||||
# (C) Copyright 2000-2005
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
#
|
||||
# Hidden Dragon boards
|
||||
#
|
||||
|
||||
TEXT_BASE = 0xFFF00000
|
||||
|
||||
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE)
|
||||
152
board/hidden_dragon/early_init.S
Normal file
152
board/hidden_dragon/early_init.S
Normal file
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Thomas Koeller, tkoeller@gmx.net
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#define __ASSEMBLY__ 1
|
||||
#endif
|
||||
|
||||
#include <config.h>
|
||||
#include <asm/processor.h>
|
||||
#include <mpc824x.h>
|
||||
#include <ppc_asm.tmpl>
|
||||
|
||||
#if defined(USE_DINK32)
|
||||
/* We are running from RAM, so do not clear the MCCR1_MEMGO bit! */
|
||||
#define MCCR1VAL ((CFG_ROMNAL << MCCR1_ROMNAL_SHIFT) | (CFG_ROMFAL << MCCR1_ROMFAL_SHIFT) | MCCR1_MEMGO)
|
||||
#else
|
||||
#define MCCR1VAL (CFG_ROMNAL << MCCR1_ROMNAL_SHIFT) | (CFG_ROMFAL << MCCR1_ROMFAL_SHIFT)
|
||||
#endif
|
||||
|
||||
.text
|
||||
|
||||
/* Values to program into memory controller registers */
|
||||
tbl: .long MCCR1, MCCR1VAL
|
||||
.long MCCR2, CFG_REFINT << MCCR2_REFINT_SHIFT
|
||||
.long MCCR3
|
||||
.long (((CFG_BSTOPRE & 0x000000f0) >> 4) << MCCR3_BSTOPRE2TO5_SHIFT) | \
|
||||
(CFG_REFREC << MCCR3_REFREC_SHIFT) | \
|
||||
(CFG_RDLAT << MCCR3_RDLAT_SHIFT)
|
||||
.long MCCR4
|
||||
.long (CFG_PRETOACT << MCCR4_PRETOACT_SHIFT) | (CFG_ACTTOPRE << MCCR4_ACTTOPRE_SHIFT) | \
|
||||
(CFG_REGISTERD_TYPE_BUFFER << 20) | \
|
||||
(((CFG_BSTOPRE & 0x00000300) >> 8) << MCCR4_BSTOPRE0TO1_SHIFT ) | \
|
||||
((CFG_SDMODE_CAS_LAT << 4) | (CFG_SDMODE_WRAP << 3) | \
|
||||
(CFG_SDMODE_BURSTLEN) << MCCR4_SDMODE_SHIFT) | \
|
||||
(CFG_ACTTORW << MCCR4_ACTTORW_SHIFT) | \
|
||||
((CFG_BSTOPRE & 0x0000000f) << MCCR4_BSTOPRE6TO9_SHIFT )
|
||||
.long MSAR1
|
||||
.long (((CFG_BANK0_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK1_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK2_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK3_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
|
||||
.long EMSAR1
|
||||
.long (((CFG_BANK0_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK1_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK2_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK3_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
|
||||
.long MSAR2
|
||||
.long (((CFG_BANK4_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK5_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK6_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK7_START & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
|
||||
.long EMSAR2
|
||||
.long (((CFG_BANK4_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK5_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK6_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK7_START & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
|
||||
.long MEAR1
|
||||
.long (((CFG_BANK0_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK1_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK2_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK3_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
|
||||
.long EMEAR1
|
||||
.long (((CFG_BANK0_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK1_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK2_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK3_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
|
||||
.long MEAR2
|
||||
.long (((CFG_BANK4_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK5_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK6_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK7_END & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT) << 24)
|
||||
.long EMEAR2
|
||||
.long (((CFG_BANK4_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 0) | \
|
||||
(((CFG_BANK5_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 8) | \
|
||||
(((CFG_BANK6_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 16) | \
|
||||
(((CFG_BANK7_END & MICR_EADDR_MASK) >> MICR_EADDR_SHIFT) << 24)
|
||||
.long 0
|
||||
|
||||
|
||||
/*
|
||||
* Early CPU initialization. Set up memory controller, so we can access any RAM at all. This
|
||||
* must be done in assembly, since we have no stack at this point.
|
||||
*/
|
||||
.global early_init_f
|
||||
early_init_f:
|
||||
mflr r10
|
||||
|
||||
/* basic memory controller configuration */
|
||||
lis r3, CONFIG_ADDR_HIGH
|
||||
lis r4, CONFIG_DATA_HIGH
|
||||
bl lab
|
||||
lab: mflr r5
|
||||
lwzu r0, tbl - lab(r5)
|
||||
loop: lwz r1, 4(r5)
|
||||
stwbrx r0, 0, r3
|
||||
eieio
|
||||
stwbrx r1, 0, r4
|
||||
eieio
|
||||
lwzu r0, 8(r5)
|
||||
cmpli cr0, 0, r0, 0
|
||||
bne cr0, loop
|
||||
|
||||
/* set bank enable bits */
|
||||
lis r0, MBER@h
|
||||
ori r0, 0, MBER@l
|
||||
li r1, CFG_BANK_ENABLE
|
||||
stwbrx r0, 0, r3
|
||||
eieio
|
||||
stb r1, 0(r4)
|
||||
eieio
|
||||
|
||||
/* delay loop */
|
||||
lis r0, 0x0003
|
||||
mtctr r0
|
||||
delay: bdnz delay
|
||||
|
||||
/* enable memory controller */
|
||||
lis r0, MCCR1@h
|
||||
ori r0, 0, MCCR1@l
|
||||
stwbrx r0, 0, r3
|
||||
eieio
|
||||
lwbrx r0, 0, r4
|
||||
oris r0, 0, MCCR1_MEMGO@h
|
||||
stwbrx r0, 0, r4
|
||||
eieio
|
||||
|
||||
/* set up stack pointer */
|
||||
lis r1, CFG_INIT_SP_OFFSET@h
|
||||
ori r1, r1, CFG_INIT_SP_OFFSET@l
|
||||
|
||||
mtlr r10
|
||||
blr
|
||||
575
board/hidden_dragon/flash.c
Normal file
575
board/hidden_dragon/flash.c
Normal file
@@ -0,0 +1,575 @@
|
||||
/*
|
||||
* (C) Copyright 2004
|
||||
* Yusdi Santoso, Adaptec Inc., yusdi_santoso@adaptec.com
|
||||
*
|
||||
* (C) Copyright 2000-2005
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <mpc824x.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/pci_io.h>
|
||||
#include <w83c553f.h>
|
||||
|
||||
#define ROM_CS0_START 0xFF800000
|
||||
#define ROM_CS1_START 0xFF000000
|
||||
|
||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
||||
|
||||
#if defined(CFG_ENV_IS_IN_FLASH)
|
||||
# ifndef CFG_ENV_ADDR
|
||||
# define CFG_ENV_ADDR (CFG_FLASH_BASE + CFG_ENV_OFFSET)
|
||||
# endif
|
||||
# ifndef CFG_ENV_SIZE
|
||||
# define CFG_ENV_SIZE CFG_ENV_SECT_SIZE
|
||||
# endif
|
||||
# ifndef CFG_ENV_SECT_SIZE
|
||||
# define CFG_ENV_SECT_SIZE CFG_ENV_SIZE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Functions
|
||||
*/
|
||||
static int write_word (flash_info_t *info, ulong dest, ulong data);
|
||||
|
||||
/*flash command address offsets*/
|
||||
|
||||
#define ADDR0 (0xAAA)
|
||||
#define ADDR1 (0x555)
|
||||
#define ADDR3 (0x001)
|
||||
|
||||
#define FLASH_WORD_SIZE unsigned char
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static unsigned long flash_id (unsigned char mfct, unsigned char chip)
|
||||
__attribute__ ((const));
|
||||
|
||||
typedef struct {
|
||||
FLASH_WORD_SIZE extval;
|
||||
unsigned short intval;
|
||||
} map_entry;
|
||||
|
||||
static unsigned long flash_id (unsigned char mfct, unsigned char chip)
|
||||
{
|
||||
static const map_entry mfct_map[] = {
|
||||
{(FLASH_WORD_SIZE) AMD_MANUFACT,
|
||||
(unsigned short) ((unsigned long) FLASH_MAN_AMD >> 16)},
|
||||
{(FLASH_WORD_SIZE) FUJ_MANUFACT,
|
||||
(unsigned short) ((unsigned long) FLASH_MAN_FUJ >> 16)},
|
||||
{(FLASH_WORD_SIZE) STM_MANUFACT,
|
||||
(unsigned short) ((unsigned long) FLASH_MAN_STM >> 16)},
|
||||
{(FLASH_WORD_SIZE) MT_MANUFACT,
|
||||
(unsigned short) ((unsigned long) FLASH_MAN_MT >> 16)},
|
||||
{(FLASH_WORD_SIZE) INTEL_MANUFACT,
|
||||
(unsigned short) ((unsigned long) FLASH_MAN_INTEL >> 16)},
|
||||
{(FLASH_WORD_SIZE) INTEL_ALT_MANU,
|
||||
(unsigned short) ((unsigned long) FLASH_MAN_INTEL >> 16)}
|
||||
};
|
||||
|
||||
static const map_entry chip_map[] = {
|
||||
{AMD_ID_F040B, FLASH_AM040},
|
||||
{(FLASH_WORD_SIZE) STM_ID_x800AB, FLASH_STM800AB}
|
||||
};
|
||||
|
||||
const map_entry *p;
|
||||
unsigned long result = FLASH_UNKNOWN;
|
||||
|
||||
/* find chip id */
|
||||
for (p = &chip_map[0];
|
||||
p < &chip_map[sizeof chip_map / sizeof chip_map[0]]; p++)
|
||||
if (p->extval == chip) {
|
||||
result = FLASH_VENDMASK | p->intval;
|
||||
break;
|
||||
}
|
||||
|
||||
/* find vendor id */
|
||||
for (p = &mfct_map[0];
|
||||
p < &mfct_map[sizeof mfct_map / sizeof mfct_map[0]]; p++)
|
||||
if (p->extval == mfct) {
|
||||
result &= ~FLASH_VENDMASK;
|
||||
result |= (unsigned long) p->intval << 16;
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
unsigned long flash_init (void)
|
||||
{
|
||||
unsigned long i;
|
||||
unsigned char j;
|
||||
static const ulong flash_banks[] = CFG_FLASH_BANKS;
|
||||
|
||||
/* Init: no FLASHes known */
|
||||
for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
|
||||
flash_info_t *const pflinfo = &flash_info[i];
|
||||
|
||||
pflinfo->flash_id = FLASH_UNKNOWN;
|
||||
pflinfo->size = 0;
|
||||
pflinfo->sector_count = 0;
|
||||
}
|
||||
|
||||
/* Enable writes to Hidden Dragon flash */
|
||||
{
|
||||
register unsigned char temp;
|
||||
|
||||
CONFIG_READ_BYTE (CFG_WINBOND_ISA_CFG_ADDR + WINBOND_CSCR,
|
||||
temp);
|
||||
temp &= ~0x20; /* clear BIOSWP bit */
|
||||
CONFIG_WRITE_BYTE (CFG_WINBOND_ISA_CFG_ADDR + WINBOND_CSCR,
|
||||
temp);
|
||||
}
|
||||
|
||||
for (i = 0; i < sizeof flash_banks / sizeof flash_banks[0]; i++) {
|
||||
flash_info_t *const pflinfo = &flash_info[i];
|
||||
const unsigned long base_address = flash_banks[i];
|
||||
volatile FLASH_WORD_SIZE *const flash =
|
||||
(FLASH_WORD_SIZE *) base_address;
|
||||
|
||||
flash[0xAAA << (3 * i)] = 0xaa;
|
||||
flash[0x555 << (3 * i)] = 0x55;
|
||||
flash[0xAAA << (3 * i)] = 0x90;
|
||||
__asm__ __volatile__ ("sync");
|
||||
|
||||
pflinfo->flash_id =
|
||||
flash_id (flash[0x0], flash[0x2 + 14 * i]);
|
||||
|
||||
switch (pflinfo->flash_id & FLASH_TYPEMASK) {
|
||||
case FLASH_AM040:
|
||||
pflinfo->size = 0x00080000;
|
||||
pflinfo->sector_count = 8;
|
||||
for (j = 0; j < 8; j++) {
|
||||
pflinfo->start[j] =
|
||||
base_address + 0x00010000 * j;
|
||||
pflinfo->protect[j] = flash[(j << 16) | 0x2];
|
||||
}
|
||||
break;
|
||||
case FLASH_STM800AB:
|
||||
pflinfo->size = 0x00100000;
|
||||
pflinfo->sector_count = 19;
|
||||
pflinfo->start[0] = base_address;
|
||||
pflinfo->start[1] = base_address + 0x4000;
|
||||
pflinfo->start[2] = base_address + 0x6000;
|
||||
pflinfo->start[3] = base_address + 0x8000;
|
||||
for (j = 1; j < 16; j++) {
|
||||
pflinfo->start[j + 3] =
|
||||
base_address + 0x00010000 * j;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* The chip used is not listed in flash_id
|
||||
TODO: Change this to explicitly detect the flash type
|
||||
*/
|
||||
{
|
||||
int sector_addr = base_address;
|
||||
|
||||
pflinfo->size = 0x00200000;
|
||||
pflinfo->sector_count = 35;
|
||||
pflinfo->start[0] = sector_addr;
|
||||
sector_addr += 0x4000; /* 16K */
|
||||
pflinfo->start[1] = sector_addr;
|
||||
sector_addr += 0x2000; /* 8K */
|
||||
pflinfo->start[2] = sector_addr;
|
||||
sector_addr += 0x2000; /* 8K */
|
||||
pflinfo->start[3] = sector_addr;
|
||||
sector_addr += 0x8000; /* 32K */
|
||||
|
||||
for (j = 4; j < 35; j++) {
|
||||
pflinfo->start[j] = sector_addr;
|
||||
sector_addr += 0x10000; /* 64K */
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
/* Protect monitor and environment sectors
|
||||
*/
|
||||
#if CFG_MONITOR_BASE >= CFG_FLASH_BASE
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_MONITOR_BASE,
|
||||
CFG_MONITOR_BASE + monitor_flash_len - 1,
|
||||
&flash_info[0]);
|
||||
#endif
|
||||
|
||||
#if (CFG_ENV_IS_IN_FLASH == 1) && defined(CFG_ENV_ADDR)
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_ENV_ADDR,
|
||||
CFG_ENV_ADDR + CFG_ENV_SIZE - 1,
|
||||
&flash_info[0]);
|
||||
#endif
|
||||
|
||||
/* reset device to read mode */
|
||||
flash[0x0000] = 0xf0;
|
||||
__asm__ __volatile__ ("sync");
|
||||
}
|
||||
|
||||
/* only have 1 bank */
|
||||
return flash_info[0].size;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
void flash_print_info (flash_info_t * info)
|
||||
{
|
||||
static const char unk[] = "Unknown";
|
||||
const char *mfct = unk, *type = unk;
|
||||
unsigned int i;
|
||||
|
||||
if (info->flash_id != FLASH_UNKNOWN) {
|
||||
switch (info->flash_id & FLASH_VENDMASK) {
|
||||
case FLASH_MAN_AMD:
|
||||
mfct = "AMD";
|
||||
break;
|
||||
case FLASH_MAN_FUJ:
|
||||
mfct = "FUJITSU";
|
||||
break;
|
||||
case FLASH_MAN_STM:
|
||||
mfct = "STM";
|
||||
break;
|
||||
case FLASH_MAN_SST:
|
||||
mfct = "SST";
|
||||
break;
|
||||
case FLASH_MAN_BM:
|
||||
mfct = "Bright Microelectonics";
|
||||
break;
|
||||
case FLASH_MAN_INTEL:
|
||||
mfct = "Intel";
|
||||
break;
|
||||
}
|
||||
|
||||
switch (info->flash_id & FLASH_TYPEMASK) {
|
||||
case FLASH_AM040:
|
||||
type = "AM29F040B (512K * 8, uniform sector size)";
|
||||
break;
|
||||
case FLASH_AM400B:
|
||||
type = "AM29LV400B (4 Mbit, bottom boot sect)";
|
||||
break;
|
||||
case FLASH_AM400T:
|
||||
type = "AM29LV400T (4 Mbit, top boot sector)";
|
||||
break;
|
||||
case FLASH_AM800B:
|
||||
type = "AM29LV800B (8 Mbit, bottom boot sect)";
|
||||
break;
|
||||
case FLASH_AM800T:
|
||||
type = "AM29LV800T (8 Mbit, top boot sector)";
|
||||
break;
|
||||
case FLASH_AM160T:
|
||||
type = "AM29LV160T (16 Mbit, top boot sector)";
|
||||
break;
|
||||
case FLASH_AM320B:
|
||||
type = "AM29LV320B (32 Mbit, bottom boot sect)";
|
||||
break;
|
||||
case FLASH_AM320T:
|
||||
type = "AM29LV320T (32 Mbit, top boot sector)";
|
||||
break;
|
||||
case FLASH_STM800AB:
|
||||
type = "M29W800AB (8 Mbit, bottom boot sect)";
|
||||
break;
|
||||
case FLASH_SST800A:
|
||||
type = "SST39LF/VF800 (8 Mbit, uniform sector size)";
|
||||
break;
|
||||
case FLASH_SST160A:
|
||||
type = "SST39LF/VF160 (16 Mbit, uniform sector size)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
printf ("\n Brand: %s Type: %s\n"
|
||||
" Size: %lu KB in %d Sectors\n",
|
||||
mfct, type, info->size >> 10, info->sector_count);
|
||||
|
||||
printf (" Sector Start Addresses:");
|
||||
|
||||
for (i = 0; i < info->sector_count; i++) {
|
||||
unsigned long size;
|
||||
unsigned int erased;
|
||||
unsigned long *flash = (unsigned long *) info->start[i];
|
||||
|
||||
/*
|
||||
* Check if whole sector is erased
|
||||
*/
|
||||
size = (i != (info->sector_count - 1)) ?
|
||||
(info->start[i + 1] - info->start[i]) >> 2 :
|
||||
(info->start[0] + info->size - info->start[i]) >> 2;
|
||||
|
||||
for (flash = (unsigned long *) info->start[i], erased = 1;
|
||||
(flash != (unsigned long *) info->start[i] + size)
|
||||
&& erased; flash++)
|
||||
erased = *flash == ~0x0UL;
|
||||
|
||||
printf ("%s %08lX %s %s",
|
||||
(i % 5) ? "" : "\n ",
|
||||
info->start[i],
|
||||
erased ? "E" : " ", info->protect[i] ? "RO" : " ");
|
||||
}
|
||||
|
||||
puts ("\n");
|
||||
return;
|
||||
}
|
||||
|
||||
int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||
{
|
||||
volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *) (info->start[0]);
|
||||
int flag, prot, sect, l_sect;
|
||||
ulong start, now, last;
|
||||
unsigned char sh8b;
|
||||
|
||||
if ((s_first < 0) || (s_first > s_last)) {
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
printf ("- missing\n");
|
||||
} else {
|
||||
printf ("- no sectors to erase\n");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ((info->flash_id == FLASH_UNKNOWN) ||
|
||||
(info->flash_id > (FLASH_MAN_STM | FLASH_AMD_COMP))) {
|
||||
printf ("Can't erase unknown flash type - aborted\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
prot = 0;
|
||||
for (sect = s_first; sect <= s_last; ++sect) {
|
||||
if (info->protect[sect]) {
|
||||
prot++;
|
||||
}
|
||||
}
|
||||
|
||||
if (prot) {
|
||||
printf ("- Warning: %d protected sectors will not be erased!\n", prot);
|
||||
} else {
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
l_sect = -1;
|
||||
|
||||
/* Check the ROM CS */
|
||||
if ((info->start[0] >= ROM_CS1_START)
|
||||
&& (info->start[0] < ROM_CS0_START))
|
||||
sh8b = 3;
|
||||
else
|
||||
sh8b = 0;
|
||||
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts ();
|
||||
|
||||
addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE) 0x00AA00AA;
|
||||
addr[ADDR1 << sh8b] = (FLASH_WORD_SIZE) 0x00550055;
|
||||
addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE) 0x00800080;
|
||||
addr[ADDR0 << sh8b] = (FLASH_WORD_SIZE) 0x00AA00AA;
|
||||
addr[ADDR1 << sh8b] = (FLASH_WORD_SIZE) 0x00550055;
|
||||
|
||||
/* Start erase on unprotected sectors */
|
||||
for (sect = s_first; sect <= s_last; sect++) {
|
||||
if (info->protect[sect] == 0) { /* not protected */
|
||||
addr = (FLASH_WORD_SIZE *) (info->start[0] +
|
||||
((info->start[sect] -
|
||||
info->start[0]) << sh8b));
|
||||
if (info->flash_id & FLASH_MAN_SST) {
|
||||
addr[ADDR0 << sh8b] =
|
||||
(FLASH_WORD_SIZE) 0x00AA00AA;
|
||||
addr[ADDR1 << sh8b] =
|
||||
(FLASH_WORD_SIZE) 0x00550055;
|
||||
addr[ADDR0 << sh8b] =
|
||||
(FLASH_WORD_SIZE) 0x00800080;
|
||||
addr[ADDR0 << sh8b] =
|
||||
(FLASH_WORD_SIZE) 0x00AA00AA;
|
||||
addr[ADDR1 << sh8b] =
|
||||
(FLASH_WORD_SIZE) 0x00550055;
|
||||
addr[0] = (FLASH_WORD_SIZE) 0x00500050; /* block erase */
|
||||
udelay (30000); /* wait 30 ms */
|
||||
} else
|
||||
addr[0] = (FLASH_WORD_SIZE) 0x00300030; /* sector erase */
|
||||
l_sect = sect;
|
||||
}
|
||||
}
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts ();
|
||||
|
||||
/* wait at least 80us - let's wait 1 ms */
|
||||
udelay (1000);
|
||||
|
||||
/*
|
||||
* We wait for the last triggered sector
|
||||
*/
|
||||
if (l_sect < 0)
|
||||
goto DONE;
|
||||
|
||||
start = get_timer (0);
|
||||
last = start;
|
||||
addr = (FLASH_WORD_SIZE *) (info->start[0] + ((info->start[l_sect] -
|
||||
info->
|
||||
start[0]) << sh8b));
|
||||
while ((addr[0] & (FLASH_WORD_SIZE) 0x00800080) !=
|
||||
(FLASH_WORD_SIZE) 0x00800080) {
|
||||
if ((now = get_timer (start)) > CFG_FLASH_ERASE_TOUT) {
|
||||
printf ("Timeout\n");
|
||||
return 1;
|
||||
}
|
||||
/* show that we're waiting */
|
||||
if ((now - last) > 1000) { /* every second */
|
||||
serial_putc ('.');
|
||||
last = now;
|
||||
}
|
||||
}
|
||||
|
||||
DONE:
|
||||
/* reset to read mode */
|
||||
addr = (FLASH_WORD_SIZE *) info->start[0];
|
||||
addr[0] = (FLASH_WORD_SIZE) 0x00F000F0; /* reset bank */
|
||||
|
||||
printf (" done\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Copy memory to flash, returns:
|
||||
* 0 - OK
|
||||
* 1 - write timeout
|
||||
* 2 - Flash not erased
|
||||
*/
|
||||
|
||||
int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||
{
|
||||
ulong cp, wp, data;
|
||||
int i, l, rc;
|
||||
|
||||
wp = (addr & ~3); /* get lower word aligned address */
|
||||
|
||||
/*
|
||||
* handle unaligned start bytes
|
||||
*/
|
||||
if ((l = addr - wp) != 0) {
|
||||
data = 0;
|
||||
for (i = 0, cp = wp; i < l; ++i, ++cp) {
|
||||
data = (data << 8) | (*(uchar *) cp);
|
||||
}
|
||||
for (; i < 4 && cnt > 0; ++i) {
|
||||
data = (data << 8) | *src++;
|
||||
--cnt;
|
||||
++cp;
|
||||
}
|
||||
for (; cnt == 0 && i < 4; ++i, ++cp) {
|
||||
data = (data << 8) | (*(uchar *) cp);
|
||||
}
|
||||
|
||||
if ((rc = write_word (info, wp, data)) != 0) {
|
||||
return (rc);
|
||||
}
|
||||
wp += 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* handle word aligned part
|
||||
*/
|
||||
while (cnt >= 4) {
|
||||
data = 0;
|
||||
for (i = 0; i < 4; ++i) {
|
||||
data = (data << 8) | *src++;
|
||||
}
|
||||
if ((rc = write_word (info, wp, data)) != 0) {
|
||||
return (rc);
|
||||
}
|
||||
wp += 4;
|
||||
cnt -= 4;
|
||||
}
|
||||
|
||||
if (cnt == 0) {
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* handle unaligned tail bytes
|
||||
*/
|
||||
data = 0;
|
||||
for (i = 0, cp = wp; i < 4 && cnt > 0; ++i, ++cp) {
|
||||
data = (data << 8) | *src++;
|
||||
--cnt;
|
||||
}
|
||||
for (; i < 4; ++i, ++cp) {
|
||||
data = (data << 8) | (*(uchar *) cp);
|
||||
}
|
||||
|
||||
return (write_word (info, wp, data));
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Write a word to Flash, returns:
|
||||
* 0 - OK
|
||||
* 1 - write timeout
|
||||
* 2 - Flash not erased
|
||||
*/
|
||||
static int write_word (flash_info_t * info, ulong dest, ulong data)
|
||||
{
|
||||
volatile FLASH_WORD_SIZE *addr2 = (FLASH_WORD_SIZE *) info->start[0];
|
||||
volatile FLASH_WORD_SIZE *dest2;
|
||||
volatile FLASH_WORD_SIZE *data2 = (FLASH_WORD_SIZE *) & data;
|
||||
ulong start;
|
||||
int flag;
|
||||
int i;
|
||||
unsigned char sh8b;
|
||||
|
||||
/* Check the ROM CS */
|
||||
if ((info->start[0] >= ROM_CS1_START)
|
||||
&& (info->start[0] < ROM_CS0_START))
|
||||
sh8b = 3;
|
||||
else
|
||||
sh8b = 0;
|
||||
|
||||
dest2 = (FLASH_WORD_SIZE *) (((dest - info->start[0]) << sh8b) +
|
||||
info->start[0]);
|
||||
|
||||
/* Check if Flash is (sufficiently) erased */
|
||||
if ((*dest2 & (FLASH_WORD_SIZE) data) != (FLASH_WORD_SIZE) data) {
|
||||
return (2);
|
||||
}
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts ();
|
||||
|
||||
for (i = 0; i < 4 / sizeof (FLASH_WORD_SIZE); i++) {
|
||||
addr2[ADDR0 << sh8b] = (FLASH_WORD_SIZE) 0x00AA00AA;
|
||||
addr2[ADDR1 << sh8b] = (FLASH_WORD_SIZE) 0x00550055;
|
||||
addr2[ADDR0 << sh8b] = (FLASH_WORD_SIZE) 0x00A000A0;
|
||||
|
||||
dest2[i << sh8b] = data2[i];
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts ();
|
||||
|
||||
/* data polling for D7 */
|
||||
start = get_timer (0);
|
||||
while ((dest2[i << sh8b] & (FLASH_WORD_SIZE) 0x00800080) !=
|
||||
(data2[i] & (FLASH_WORD_SIZE) 0x00800080)) {
|
||||
if (get_timer (start) > CFG_FLASH_WRITE_TOUT) {
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
95
board/hidden_dragon/hidden_dragon.c
Normal file
95
board/hidden_dragon/hidden_dragon.c
Normal file
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* (C) Copyright 2004
|
||||
* Yusdi Santoso, Adaptec Inc., yusdi_santoso@adaptec.com
|
||||
*
|
||||
* (C) Copyright 2000
|
||||
* Rob Taylor, Flying Pig Systems. robt@flyingpig.com.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <mpc824x.h>
|
||||
#include <pci.h>
|
||||
|
||||
int checkboard (void)
|
||||
{
|
||||
/*TODO: Check processor type */
|
||||
|
||||
puts ( "Board: Hidden Dragon "
|
||||
#ifdef CONFIG_MPC8240
|
||||
"8240"
|
||||
#endif
|
||||
#ifdef CONFIG_MPC8245
|
||||
"8245"
|
||||
#endif
|
||||
" ##Test not implemented yet##\n");
|
||||
/* TODO: Implement board test */
|
||||
return 0;
|
||||
}
|
||||
|
||||
long int initdram (int board_type)
|
||||
{
|
||||
long size;
|
||||
long new_bank0_end;
|
||||
long mear1;
|
||||
long emear1;
|
||||
|
||||
size = get_ram_size(CFG_SDRAM_BASE, CFG_MAX_RAM_SIZE);
|
||||
|
||||
new_bank0_end = size - 1;
|
||||
mear1 = mpc824x_mpc107_getreg(MEAR1);
|
||||
emear1 = mpc824x_mpc107_getreg(EMEAR1);
|
||||
mear1 = (mear1 & 0xFFFFFF00) |
|
||||
((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT);
|
||||
emear1 = (emear1 & 0xFFFFFF00) |
|
||||
((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT);
|
||||
mpc824x_mpc107_setreg(MEAR1, mear1);
|
||||
mpc824x_mpc107_setreg(EMEAR1, emear1);
|
||||
|
||||
return (size);
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize PCI Devices, report devices found.
|
||||
*/
|
||||
#ifndef CONFIG_PCI_PNP
|
||||
static struct pci_config_table pci_hidden_dragon_config_table[] = {
|
||||
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x0f, PCI_ANY_ID,
|
||||
pci_cfgfunc_config_device, { PCI_ENET0_IOADDR,
|
||||
PCI_ENET0_MEMADDR,
|
||||
PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER }},
|
||||
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x10, PCI_ANY_ID,
|
||||
pci_cfgfunc_config_device, { PCI_ENET1_IOADDR,
|
||||
PCI_ENET1_MEMADDR,
|
||||
PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER }},
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
struct pci_controller hose = {
|
||||
#ifndef CONFIG_PCI_PNP
|
||||
config_table: pci_hidden_dragon_config_table,
|
||||
#endif
|
||||
};
|
||||
|
||||
void pci_init_board(void)
|
||||
{
|
||||
pci_mpc824x_init(&hose);
|
||||
}
|
||||
54
board/hidden_dragon/speed.h
Normal file
54
board/hidden_dragon/speed.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* (C) Copyright 2000
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Timer value for timer 2, ICLK = 10
|
||||
*
|
||||
* SPEED_FCOUNT2 = GCLK / (16 * (TIMER_TMR_PS + 1))
|
||||
* SPEED_TMR3_PS = (GCLK / (16 * SPEED_FCOUNT3)) - 1
|
||||
*
|
||||
* SPEED_FCOUNT2 timer 2 counting frequency
|
||||
* GCLK CPU clock
|
||||
* SPEED_TMR2_PS prescaler
|
||||
*/
|
||||
#define SPEED_TMR2_PS (250 - 1) /* divide by 250 */
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Timer value for PIT
|
||||
*
|
||||
* PIT_TIME = SPEED_PITC / PITRTCLK
|
||||
* PITRTCLK = 8192
|
||||
*/
|
||||
#define SPEED_PITC (82 << 16) /* start counting from 82 */
|
||||
|
||||
/*
|
||||
* The new value for PTA is calculated from
|
||||
*
|
||||
* PTA = (gclk * Trefresh) / (2 ^ (2 * DFBRG) * PTP * NCS)
|
||||
*
|
||||
* gclk CPU clock (not bus clock !)
|
||||
* Trefresh Refresh cycle * 4 (four word bursts used)
|
||||
* DFBRG For normal mode (no clock reduction) always 0
|
||||
* PTP Prescaler (already adjusted for no. of banks and 4K / 8K refresh)
|
||||
* NCS Number of SDRAM banks (chip selects) on this UPM.
|
||||
*/
|
||||
130
board/hidden_dragon/u-boot.lds
Normal file
130
board/hidden_dragon/u-boot.lds
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* (C) Copyright 2001
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
OUTPUT_ARCH(powerpc)
|
||||
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = + SIZEOF_HEADERS;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.rel.text : { *(.rel.text) }
|
||||
.rela.text : { *(.rela.text) }
|
||||
.rel.data : { *(.rel.data) }
|
||||
.rela.data : { *(.rela.data) }
|
||||
.rel.rodata : { *(.rel.rodata) }
|
||||
.rela.rodata : { *(.rela.rodata) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.bss : { *(.rel.bss) }
|
||||
.rela.bss : { *(.rela.bss) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.init : { *(.init) }
|
||||
.plt : { *(.plt) }
|
||||
.text :
|
||||
{
|
||||
cpu/mpc824x/start.o (.text)
|
||||
lib_ppc/board.o (.text)
|
||||
lib_ppc/ppcstring.o (.text)
|
||||
|
||||
. = DEFINED(env_offset) ? env_offset : .;
|
||||
common/environment.o (.text)
|
||||
|
||||
*(.text)
|
||||
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
. = ALIGN(16);
|
||||
*(.rodata)
|
||||
*(.rodata1)
|
||||
*(.rodata.str1.4)
|
||||
}
|
||||
.fini : { *(.fini) } =0
|
||||
.ctors : { *(.ctors) }
|
||||
.dtors : { *(.dtors) }
|
||||
|
||||
/* Read-write section, merged into data segment: */
|
||||
. = (. + 0x0FFF) & 0xFFFFF000;
|
||||
_erotext = .;
|
||||
PROVIDE (erotext = .);
|
||||
.reloc :
|
||||
{
|
||||
*(.got)
|
||||
_GOT2_TABLE_ = .;
|
||||
*(.got2)
|
||||
_FIXUP_TABLE_ = .;
|
||||
*(.fixup)
|
||||
}
|
||||
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
|
||||
__fixup_entries = (. - _FIXUP_TABLE_) >> 2;
|
||||
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.data1)
|
||||
*(.sdata)
|
||||
*(.sdata2)
|
||||
*(.dynamic)
|
||||
CONSTRUCTORS
|
||||
}
|
||||
_edata = .;
|
||||
PROVIDE (edata = .);
|
||||
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
|
||||
|
||||
__start___ex_table = .;
|
||||
__ex_table : { *(__ex_table) }
|
||||
__stop___ex_table = .;
|
||||
|
||||
. = ALIGN(4096);
|
||||
__init_begin = .;
|
||||
.text.init : { *(.text.init) }
|
||||
.data.init : { *(.data.init) }
|
||||
. = ALIGN(4096);
|
||||
__init_end = .;
|
||||
|
||||
__bss_start = .;
|
||||
.bss :
|
||||
{
|
||||
*(.sbss) *(.scommon)
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
|
||||
_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := impa7.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -39,8 +39,8 @@ memcfg2_val: .long 0x00000000 @ upper 16 bits are reserved for CS7 + CS6
|
||||
drfpr_val: .long 0x00000081
|
||||
/* setting up the memory */
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
/*
|
||||
* DRFPR
|
||||
* 64kHz DRAM refresh
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS = $(BOARD).o flash.o
|
||||
SOBJS = memsetup.o
|
||||
SOBJS = lowlevel_init.o
|
||||
|
||||
$(LIB): .depend $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -269,9 +269,9 @@ sdram_init:
|
||||
.end sdram_init
|
||||
|
||||
|
||||
.globl memsetup
|
||||
.ent memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
.ent lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
/* EBU, CGU and SDRAM Initialization.
|
||||
*/
|
||||
@@ -292,4 +292,4 @@ memsetup:
|
||||
j ra
|
||||
nop
|
||||
|
||||
.end memsetup
|
||||
.end lowlevel_init
|
||||
@@ -43,13 +43,11 @@ static void sdram_start (int hi_addr)
|
||||
long hi_addr_bit = hi_addr ? 0x01000000 : 0;
|
||||
|
||||
/* unlock mode register */
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000000 |
|
||||
hi_addr_bit;
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000000 | hi_addr_bit;
|
||||
__asm__ volatile ("sync");
|
||||
|
||||
/* precharge all banks */
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000002 |
|
||||
hi_addr_bit;
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000002 | hi_addr_bit;
|
||||
__asm__ volatile ("sync");
|
||||
|
||||
#if SDRAM_DDR
|
||||
@@ -63,13 +61,11 @@ static void sdram_start (int hi_addr)
|
||||
#endif
|
||||
|
||||
/* precharge all banks */
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000002 |
|
||||
hi_addr_bit;
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000002 | hi_addr_bit;
|
||||
__asm__ volatile ("sync");
|
||||
|
||||
/* auto refresh */
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000004 |
|
||||
hi_addr_bit;
|
||||
*(vu_long *)MPC5XXX_SDRAM_CTRL = SDRAM_CONTROL | 0x80000004 | hi_addr_bit;
|
||||
__asm__ volatile ("sync");
|
||||
|
||||
/* set mode register */
|
||||
@@ -176,3 +172,95 @@ void flash_preinit(void)
|
||||
*/
|
||||
*(vu_long *)MPC5XXX_BOOTCS_CFG &= ~0x1; /* clear RO */
|
||||
}
|
||||
|
||||
#define GPIO_PSC3_9 0x04000000UL
|
||||
|
||||
int misc_init_f (void)
|
||||
{
|
||||
uchar tmp[10];
|
||||
int i, br;
|
||||
|
||||
i = getenv_r("brightness", tmp, sizeof(tmp));
|
||||
br = (i > 0)
|
||||
? (int) simple_strtoul (tmp, NULL, 10)
|
||||
: CFG_BRIGHTNESS;
|
||||
if (br > 255)
|
||||
br = 255;
|
||||
|
||||
/* Initialize GPIO output pins.
|
||||
*/
|
||||
/* Configure GPT as GPIO output */
|
||||
*(vu_long *)MPC5XXX_GPT0_ENABLE =
|
||||
*(vu_long *)MPC5XXX_GPT1_ENABLE =
|
||||
*(vu_long *)MPC5XXX_GPT2_ENABLE =
|
||||
*(vu_long *)MPC5XXX_GPT3_ENABLE =
|
||||
*(vu_long *)MPC5XXX_GPT4_ENABLE =
|
||||
*(vu_long *)MPC5XXX_GPT5_ENABLE = 0x24;
|
||||
|
||||
/* Configure GPT7 as PWM timer, 1kHz, no ints. */
|
||||
*(vu_long *)MPC5XXX_GPT7_ENABLE = 0;/* Disable */
|
||||
*(vu_long *)MPC5XXX_GPT7_COUNTER = 0x020000fe;
|
||||
*(vu_long *)MPC5XXX_GPT7_PWMCFG = (br << 16);
|
||||
*(vu_long *)MPC5XXX_GPT7_ENABLE = 0x3;/* Enable PWM mode and start */
|
||||
|
||||
/* Configure PSC3_6,7 as GPIO output */
|
||||
*(vu_long *)MPC5XXX_GPIO_ENABLE |= 0x00003000;
|
||||
*(vu_long *)MPC5XXX_GPIO_DIR |= 0x00003000;
|
||||
|
||||
/* Configure PSC3_8 as GPIO output, no interrupt */
|
||||
*(vu_long *)MPC5XXX_GPIO_SI_ENABLE |= 0x04000000;
|
||||
*(vu_long *)MPC5XXX_GPIO_SI_DIR |= 0x04000000;
|
||||
*(vu_long *)MPC5XXX_GPIO_SI_IEN &= ~0x04000000;
|
||||
|
||||
/* Configure PSC3_9 and GPIO_WKUP6,7 as GPIO output */
|
||||
*(vu_long *)MPC5XXX_WU_GPIO_ENABLE |= 0xc4000000;
|
||||
*(vu_long *)MPC5XXX_WU_GPIO_DIR |= 0xc4000000;
|
||||
|
||||
/*
|
||||
* Reset Coral-P graphics controller
|
||||
*/
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_ENABLE |= GPIO_PSC3_9;
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_DIR |= GPIO_PSC3_9;
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_DATA |= GPIO_PSC3_9;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
static struct pci_controller hose;
|
||||
|
||||
extern void pci_mpc5xxx_init(struct pci_controller *);
|
||||
|
||||
void pci_init_board(void)
|
||||
{
|
||||
pci_mpc5xxx_init(&hose);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined (CFG_CMD_IDE) && defined (CONFIG_IDE_RESET)
|
||||
|
||||
#define GPIO_PSC1_4 0x01000000UL
|
||||
|
||||
void init_ide_reset (void)
|
||||
{
|
||||
debug ("init_ide_reset\n");
|
||||
|
||||
/* Configure PSC1_4 as GPIO output for ATA reset */
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_ENABLE |= GPIO_PSC1_4;
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_DIR |= GPIO_PSC1_4;
|
||||
/* Deassert reset */
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_DATA |= GPIO_PSC1_4;
|
||||
}
|
||||
|
||||
void ide_set_reset (int idereset)
|
||||
{
|
||||
debug ("ide_reset(%d)\n", idereset);
|
||||
|
||||
if (idereset) {
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_DATA &= ~GPIO_PSC1_4;
|
||||
/* Make a delay. MPC5200 spec says 25 usec min */
|
||||
udelay(500000);
|
||||
} else {
|
||||
*(vu_long *) MPC5XXX_WU_GPIO_DATA |= GPIO_PSC1_4;
|
||||
}
|
||||
}
|
||||
#endif /* defined (CFG_CMD_IDE) && defined (CONFIG_IDE_RESET) */
|
||||
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := innokom.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* NOTE: I haven't clean this up considerably, just enough to get it
|
||||
* running. See hal_platform_setup.h for the source. See
|
||||
* board/cradle/memsetup.S for another PXA250 setup that is
|
||||
* board/cradle/lowlevel_init.S for another PXA250 setup that is
|
||||
* much cleaner.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
@@ -46,8 +46,8 @@ _TEXT_BASE:
|
||||
* Memory setup
|
||||
*/
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
mov r10, lr
|
||||
|
||||
@@ -429,9 +429,9 @@ initclks:
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------- */
|
||||
/* End memsetup */
|
||||
/* End lowlevel_init */
|
||||
/* ---------------------------------------------------------------- */
|
||||
|
||||
endmemsetup:
|
||||
endlowlevel_init:
|
||||
|
||||
mov pc, lr
|
||||
@@ -1,4 +1,7 @@
|
||||
/*
|
||||
* (C) Copyright 2004
|
||||
* Xiaogeng (Shawn) Jin, Agilent Technologies, xiaogeng_jin@agilent.com
|
||||
*
|
||||
* (C) Copyright 2001
|
||||
* Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net
|
||||
*
|
||||
@@ -31,20 +34,22 @@
|
||||
#include <common.h>
|
||||
#include <linux/byteorder/swab.h>
|
||||
|
||||
#define PHYS_FLASH_SECT_SIZE 0x00020000 /* 256 KB sectors (x2) */
|
||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
||||
#define DEBUG
|
||||
|
||||
#define PHYS_FLASH_SECT_SIZE 0x00040000 /* 256 KB sectors (x2) */
|
||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
||||
|
||||
/* Board support for 1 or 2 flash devices */
|
||||
#undef FLASH_PORT_WIDTH32
|
||||
#define FLASH_PORT_WIDTH16
|
||||
#define FLASH_PORT_WIDTH32
|
||||
#undef FLASH_PORT_WIDTH16
|
||||
|
||||
#ifdef FLASH_PORT_WIDTH16
|
||||
#define FLASH_PORT_WIDTH ushort
|
||||
#define FLASH_PORT_WIDTHV vu_short
|
||||
#define FLASH_PORT_WIDTH ushort
|
||||
#define FLASH_PORT_WIDTHV vu_short
|
||||
#define SWAP(x) __swab16(x)
|
||||
#else
|
||||
#define FLASH_PORT_WIDTH ulong
|
||||
#define FLASH_PORT_WIDTHV vu_long
|
||||
#define FLASH_PORT_WIDTH ulong
|
||||
#define FLASH_PORT_WIDTHV vu_long
|
||||
#define SWAP(x) __swab32(x)
|
||||
#endif
|
||||
|
||||
@@ -67,6 +72,12 @@ OrgDef OrgIntel_28F256L18T[] = {
|
||||
{255, 128 * 1024}, /* 255 * 128kBytes sectors */
|
||||
};
|
||||
|
||||
/* CP control register base address */
|
||||
#define CPCR_BASE 0xCB000000
|
||||
#define CPCR_EXTRABANK 0x8
|
||||
#define CPCR_FLASHSIZE 0x4
|
||||
#define CPCR_FLWREN 0x2
|
||||
#define CPCR_FLVPPEN 0x1
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Functions
|
||||
@@ -83,29 +94,50 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt);
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
unsigned long flash_init (void)
|
||||
{
|
||||
int i;
|
||||
int i, nbanks;
|
||||
ulong size = 0;
|
||||
for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
flash_get_size ((FPW *) PHYS_FLASH_1, &flash_info[i]);
|
||||
flash_get_offsets (PHYS_FLASH_1, &flash_info[i]);
|
||||
break;
|
||||
default:
|
||||
panic ("configured too many flash banks!\n");
|
||||
break;
|
||||
}
|
||||
vu_long *cpcr = (vu_long *)CPCR_BASE;
|
||||
|
||||
/* Check if there is an extra bank of flash */
|
||||
if (cpcr[1] & CPCR_EXTRABANK)
|
||||
nbanks = 2;
|
||||
else
|
||||
nbanks = 1;
|
||||
|
||||
if (nbanks > CFG_MAX_FLASH_BANKS)
|
||||
nbanks = CFG_MAX_FLASH_BANKS;
|
||||
|
||||
/* Enable flash write */
|
||||
cpcr[1] |= 3;
|
||||
|
||||
for (i = 0; i < nbanks; i++) {
|
||||
flash_get_size ((FPW *)(CFG_FLASH_BASE + size), &flash_info[i]);
|
||||
flash_get_offsets (CFG_FLASH_BASE + size, &flash_info[i]);
|
||||
size += flash_info[i].size;
|
||||
}
|
||||
|
||||
/* Protect monitor and environment sectors
|
||||
*/
|
||||
#if CFG_MONITOR_BASE >= CFG_FLASH_BASE
|
||||
/* monitor protection */
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
CFG_FLASH_BASE,
|
||||
CFG_FLASH_BASE + monitor_flash_len - 1, &flash_info[0]);
|
||||
CFG_MONITOR_BASE,
|
||||
CFG_MONITOR_BASE + monitor_flash_len - 1, &flash_info[0]);
|
||||
#endif
|
||||
|
||||
#ifdef CFG_ENV_IS_IN_FLASH
|
||||
/* ENV protection ON */
|
||||
flash_protect(FLAG_PROTECT_SET,
|
||||
CFG_ENV_ADDR,
|
||||
CFG_ENV_ADDR + CFG_ENV_SECT_SIZE - 1,
|
||||
&flash_info[0]);
|
||||
#endif
|
||||
|
||||
/* Protect SIB (0x24800000) and bootMonitor (0x24c00000) */
|
||||
flash_protect (FLAG_PROTECT_SET,
|
||||
flash_info[0].start[62],
|
||||
flash_info[0].start[63] + PHYS_FLASH_SECT_SIZE - 1,
|
||||
&flash_info[0]);
|
||||
|
||||
return size;
|
||||
}
|
||||
@@ -115,23 +147,15 @@ unsigned long flash_init (void)
|
||||
static void flash_get_offsets (ulong base, flash_info_t * info)
|
||||
{
|
||||
int i;
|
||||
OrgDef *pOrgDef;
|
||||
|
||||
pOrgDef = OrgIntel_28F256L18T;
|
||||
if (info->flash_id == FLASH_UNKNOWN) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL) {
|
||||
for (i = 0; i < info->sector_count; i++) {
|
||||
if (i > 255) {
|
||||
info->start[i] = base + (i * 0x8000);
|
||||
info->protect[i] = 0;
|
||||
} else {
|
||||
info->start[i] = base +
|
||||
(i * PHYS_FLASH_SECT_SIZE);
|
||||
info->protect[i] = 0;
|
||||
}
|
||||
info->start[i] = base + (i * PHYS_FLASH_SECT_SIZE);
|
||||
info->protect[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -156,10 +180,20 @@ void flash_print_info (flash_info_t * info)
|
||||
break;
|
||||
}
|
||||
|
||||
/* Integrator CP board uses 28F640J3C or 28F128J3C parts,
|
||||
* which have the same device id numbers as 28F640J3A or
|
||||
* 28F128J3A
|
||||
*/
|
||||
switch (info->flash_id & FLASH_TYPEMASK) {
|
||||
case FLASH_28F256L18T:
|
||||
printf ("FLASH 28F256L18T\n");
|
||||
break;
|
||||
case FLASH_28F640J3A:
|
||||
printf ("FLASH 28F640J3C\n");
|
||||
break;
|
||||
case FLASH_28F128J3A:
|
||||
printf ("FLASH 28F128J3C\n");
|
||||
break;
|
||||
default:
|
||||
printf ("Unknown Chip Type\n");
|
||||
break;
|
||||
@@ -185,6 +219,17 @@ void flash_print_info (flash_info_t * info)
|
||||
static ulong flash_get_size (FPW * addr, flash_info_t * info)
|
||||
{
|
||||
volatile FPW value;
|
||||
vu_long *cpcr = (vu_long *)CPCR_BASE;
|
||||
int nsects;
|
||||
|
||||
/* Check the flash size */
|
||||
if (cpcr[1] & CPCR_FLASHSIZE)
|
||||
nsects = 128;
|
||||
else
|
||||
nsects = 64;
|
||||
|
||||
if (nsects > CFG_MAX_FLASH_SECT)
|
||||
nsects = CFG_MAX_FLASH_SECT;
|
||||
|
||||
/* Write auto select command: read Manufacturer ID */
|
||||
addr[0x5555] = (FPW) 0x00AA00AA;
|
||||
@@ -204,19 +249,31 @@ static ulong flash_get_size (FPW * addr, flash_info_t * info)
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
info->sector_count = 0;
|
||||
info->size = 0;
|
||||
addr[0] = (FPW) 0x00FF00FF; /* restore read mode */
|
||||
return (0); /* no or unknown flash */
|
||||
addr[0] = (FPW) 0x00FF00FF; /* restore read mode */
|
||||
return (0); /* no or unknown flash */
|
||||
}
|
||||
|
||||
mb ();
|
||||
value = addr[1]; /* device ID */
|
||||
value = addr[1]; /* device ID */
|
||||
switch (value) {
|
||||
|
||||
case (FPW) (INTEL_ID_28F256L18T):
|
||||
info->flash_id += FLASH_28F256L18T;
|
||||
info->sector_count = 259;
|
||||
info->size = 0x02000000;
|
||||
break; /* => 32 MB */
|
||||
break; /* => 32 MB */
|
||||
|
||||
case (FPW) (INTEL_ID_28F640J3A):
|
||||
info->flash_id += FLASH_28F640J3A;
|
||||
info->sector_count = nsects;
|
||||
info->size = nsects * PHYS_FLASH_SECT_SIZE;
|
||||
break;
|
||||
|
||||
case (FPW) (INTEL_ID_28F128J3A):
|
||||
info->flash_id += FLASH_28F128J3A;
|
||||
info->sector_count = nsects;
|
||||
info->size = nsects * PHYS_FLASH_SECT_SIZE;
|
||||
break;
|
||||
|
||||
default:
|
||||
info->flash_id = FLASH_UNKNOWN;
|
||||
@@ -241,23 +298,32 @@ static ulong flash_get_size (FPW * addr, flash_info_t * info)
|
||||
*/
|
||||
void flash_unprotect_sectors (FPWV * addr)
|
||||
{
|
||||
#define PD_FINTEL_WSMS_READY_MASK 0x0080
|
||||
FPW status;
|
||||
|
||||
*addr = (FPW) 0x00500050; /* clear status register */
|
||||
|
||||
/* this sends the clear lock bit command */
|
||||
*addr = (FPW) 0x00600060;
|
||||
*addr = (FPW) 0x00D000D0;
|
||||
|
||||
reset_timer_masked();
|
||||
while (((status = *addr) & (FPW)0x00800080) != 0x00800080) {
|
||||
if (get_timer_masked() > CFG_FLASH_ERASE_TOUT) {
|
||||
printf("Timeout");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*addr = (FPW) 0x00FF00FF;
|
||||
}
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||
{
|
||||
int flag, prot, sect;
|
||||
ulong type, start, last;
|
||||
ulong type;
|
||||
int rcode = 0;
|
||||
|
||||
if ((s_first < 0) || (s_first > s_last)) {
|
||||
@@ -290,13 +356,6 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
|
||||
start = get_timer (0);
|
||||
last = start;
|
||||
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts ();
|
||||
|
||||
/* Start erase on unprotected sectors */
|
||||
for (sect = s_first; sect <= s_last; sect++) {
|
||||
if (info->protect[sect] == 0) { /* not protected */
|
||||
@@ -305,36 +364,53 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||
|
||||
printf ("Erasing sector %2d ... ", sect);
|
||||
|
||||
flash_unprotect_sectors (addr);
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts ();
|
||||
|
||||
/* flash_unprotect_sectors (addr); */
|
||||
|
||||
/* arm simple, non interrupt dependent timer */
|
||||
reset_timer_masked ();
|
||||
|
||||
*addr = (FPW) 0x00500050;/* clear status register */
|
||||
*addr = (FPW) 0x00200020;/* erase setup */
|
||||
*addr = (FPW) 0x00D000D0;/* erase confirm */
|
||||
*addr = (FPW) 0x00500050; /* clear status register */
|
||||
*addr = (FPW) 0x00200020; /* erase setup */
|
||||
*addr = (FPW) 0x00D000D0; /* erase confirm */
|
||||
mb();
|
||||
|
||||
while (((status =
|
||||
*addr) & (FPW) 0x00800080) !=
|
||||
(FPW) 0x00800080) {
|
||||
if (get_timer_masked () >
|
||||
CFG_FLASH_ERASE_TOUT) {
|
||||
printf ("Timeout\n");
|
||||
/* suspend erase */
|
||||
*addr = (FPW) 0x00B000B0;
|
||||
/* reset to read mode */
|
||||
*addr = (FPW) 0x00FF00FF;
|
||||
rcode = 1;
|
||||
break;
|
||||
udelay(1000); /* Let's wait 1 ms */
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
|
||||
if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) {
|
||||
*addr = (FPW)0x00700070;
|
||||
status = *addr;
|
||||
if ((status & (FPW) 0x00400040) == (FPW) 0x00400040) {
|
||||
/* erase suspended? Resume it */
|
||||
reset_timer_masked();
|
||||
*addr = (FPW) 0x00D000D0;
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
printf ("Timeout,0x%08x\n", status);
|
||||
#else
|
||||
printf("Timeout\n");
|
||||
#endif
|
||||
|
||||
*addr = (FPW) 0x00500050;
|
||||
*addr = (FPW) 0x00FF00FF; /* reset to read mode */
|
||||
rcode = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* clear status register cmd. */
|
||||
*addr = (FPW) 0x00500050;
|
||||
*addr = (FPW) 0x00FF00FF;/* resest to read mode */
|
||||
*addr = (FPW) 0x00FF00FF; /* resest to read mode */
|
||||
printf (" done\n");
|
||||
}
|
||||
}
|
||||
|
||||
return rcode;
|
||||
}
|
||||
|
||||
@@ -345,7 +421,6 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
||||
* 2 - Flash not erased
|
||||
* 4 - Flash not identified
|
||||
*/
|
||||
|
||||
int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
||||
{
|
||||
ulong cp, wp;
|
||||
@@ -443,23 +518,39 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
|
||||
printf ("not erased at %08lx (%x)\n", (ulong) addr, *addr);
|
||||
return (2);
|
||||
}
|
||||
flash_unprotect_sectors (addr);
|
||||
|
||||
/* Disable interrupts which might cause a timeout here */
|
||||
flag = disable_interrupts ();
|
||||
|
||||
/* flash_unprotect_sectors (addr); */
|
||||
|
||||
*addr = (FPW) 0x00400040; /* write setup */
|
||||
*addr = data;
|
||||
|
||||
mb();
|
||||
|
||||
/* re-enable interrupts if necessary */
|
||||
if (flag)
|
||||
enable_interrupts();
|
||||
|
||||
/* arm simple, non interrupt dependent timer */
|
||||
reset_timer_masked ();
|
||||
|
||||
/* wait while polling the status register */
|
||||
while (((status = *addr) & (FPW) 0x00800080) != (FPW) 0x00800080) {
|
||||
if (get_timer_masked () > CFG_FLASH_WRITE_TOUT) {
|
||||
*addr = (FPW) 0x00FF00FF; /* restore read mode */
|
||||
#ifdef DEBUG
|
||||
*addr = (FPW) 0x00700070;
|
||||
status = *addr;
|
||||
printf("## status=0x%08x, addr=0x%08x\n", status, addr);
|
||||
#endif
|
||||
*addr = (FPW) 0x00500050; /* clear status register cmd */
|
||||
*addr = (FPW) 0x00FF00FF; /* restore read mode */
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
*addr = (FPW) 0x00FF00FF; /* restore read mode */
|
||||
|
||||
*addr = (FPW) 0x00FF00FF; /* restore read mode */
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
@@ -38,18 +38,16 @@
|
||||
* Miscelaneous platform dependent initialisations
|
||||
*/
|
||||
|
||||
int
|
||||
/**********************************************************/
|
||||
board_late_init (void)
|
||||
/**********************************************************/
|
||||
|
||||
int board_post_init (void)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
/**********************************************************/
|
||||
board_init (void)
|
||||
/**********************************************************/
|
||||
|
||||
int board_init (void)
|
||||
{
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
@@ -62,10 +60,9 @@ board_init (void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
/**********************************************************/
|
||||
dram_init (void)
|
||||
/**********************************************************/
|
||||
|
||||
int dram_init (void)
|
||||
{
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
@@ -74,3 +71,14 @@ dram_init (void)
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/**********************************************************/
|
||||
|
||||
extern struct pci_controller hose;
|
||||
|
||||
void pci_init_board(void)
|
||||
{
|
||||
extern void pci_ixp_init (struct pci_controller *hose);
|
||||
|
||||
pci_ixp_init(&hose);
|
||||
}
|
||||
|
||||
@@ -39,8 +39,6 @@ void host_bridge_init (void)
|
||||
/* The bridge chip is at a fixed location. */
|
||||
pci_dev_t dev = PCI_BDF (0, 10, 0);
|
||||
|
||||
int rc;
|
||||
|
||||
/* Set PCI Class code --
|
||||
The primary side sees this class code at 0x08 in the
|
||||
primary config space. This must be something other then a
|
||||
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := lart.o flash.o
|
||||
SOBJS := flashasm.o memsetup.o
|
||||
SOBJS := flashasm.o lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -53,8 +53,8 @@ mecr: .long 0x00060006
|
||||
|
||||
/* setting up the memory */
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
ldr r0, MEM_BASE
|
||||
|
||||
/* Setup the flash memory */
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := logodl.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $^
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* NOTE: I haven't clean this up considerably, just enough to get it
|
||||
* running. See hal_platform_setup.h for the source. See
|
||||
* board/cradle/memsetup.S for another PXA250 setup that is
|
||||
* board/cradle/lowlevel_init.S for another PXA250 setup that is
|
||||
* much cleaner.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
@@ -46,8 +46,8 @@ _TEXT_BASE:
|
||||
* Memory setup
|
||||
*/
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
mov r10, lr
|
||||
|
||||
@@ -429,9 +429,9 @@ initclks:
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------- */
|
||||
/* End memsetup */
|
||||
/* End lowlevel_init */
|
||||
/* ---------------------------------------------------------------- */
|
||||
|
||||
endmemsetup:
|
||||
endlowlevel_init:
|
||||
|
||||
mov pc, lr
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := lpd7a40x.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -131,8 +131,8 @@
|
||||
_TEXT_BASE:
|
||||
.word TEXT_BASE
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
mov r9, lr @ save return address
|
||||
|
||||
/* memory control configuration */
|
||||
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := lubbock.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* NOTE: I haven't clean this up considerably, just enough to get it
|
||||
* running. See hal_platform_setup.h for the source. See
|
||||
* board/cradle/memsetup.S for another PXA250 setup that is
|
||||
* board/cradle/lowlevel_init.S for another PXA250 setup that is
|
||||
* much cleaner.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
@@ -43,8 +43,8 @@ DRAM_SIZE: .long CFG_DRAM_SIZE
|
||||
* Memory setup
|
||||
*/
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
mov r10, lr
|
||||
|
||||
@@ -403,9 +403,9 @@ initclks:
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------- */
|
||||
/* End memsetup */
|
||||
/* End lowlevel_init */
|
||||
/* ---------------------------------------------------------------- */
|
||||
|
||||
endmemsetup:
|
||||
endlowlevel_init:
|
||||
|
||||
mov pc, lr
|
||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := modnet50.o flash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $^
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
#define NETARM_MMAP_CS4_MASK (~(PHYS_EXT_SIZE - 1))
|
||||
|
||||
/* setting up the memory */
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
|
||||
#if defined(CONFIG_MODNET50)
|
||||
ldr pc, =(_jump_to_high + NETARM_MMAP_CS0_BASE - TEXT_BASE)
|
||||
@@ -187,7 +187,7 @@ memsetup_cs3:
|
||||
#endif /* CONFIG_MODNET50 */
|
||||
|
||||
|
||||
memsetup_end:
|
||||
lowlevel_init_end:
|
||||
/*
|
||||
* manipulate address in lr and ip to match new
|
||||
* address space
|
||||
@@ -29,4 +29,9 @@
|
||||
# MPC8260ADS, MPC8266ADS, and PQ2FADS-ZU/VR boards
|
||||
#
|
||||
|
||||
TEXT_BASE = 0xfff00000
|
||||
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.tmp
|
||||
|
||||
ifndef TEXT_BASE
|
||||
## Standard: boot high
|
||||
TEXT_BASE = 0xFFF00000
|
||||
endif
|
||||
|
||||
@@ -28,7 +28,7 @@ LIB = lib$(BOARD).a
|
||||
OBJS := vcma9.o flash.o cmd_vcma9.o
|
||||
OBJS += ../common/common_util.o ../common/memtst.o
|
||||
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -130,8 +130,8 @@
|
||||
_TEXT_BASE:
|
||||
.word TEXT_BASE
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
/* memory control configuration */
|
||||
/* make r0 relative the current location so that it */
|
||||
/* reads SMRDATA out of FLASH rather than memory ! */
|
||||
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
|
||||
LIB = lib$(BOARD).a
|
||||
|
||||
OBJS := mx1ads.o syncflash.o
|
||||
SOBJS := memsetup.o
|
||||
SOBJS := lowlevel_init.o
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* board/mx1ads/memsetup.S
|
||||
* board/mx1ads/lowlevel_init.S
|
||||
*
|
||||
* (c) Copyright 2004
|
||||
* Techware Information Technology, Inc.
|
||||
@@ -33,8 +33,8 @@
|
||||
_TEXT_BASE:
|
||||
.word TEXT_BASE
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
/* memory controller init */
|
||||
|
||||
ldr r1, =SDCTL0
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user