summaryrefslogtreecommitdiff
path: root/include/configs
Commit message (Collapse)AuthorAgeLines
* armv8: ls1043a: enable pxe commandsWenbin Song2016-08-02-0/+2
| | | | | | | Enable pxe command for ls1043ardb and ls1043aqds. Signed-off-by: Wenbin Song <wenbin.song@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
* board: ls1012aqds: Update LBMAP_MASK and RST_CTL_RESETPrabhakar Kushwaha2016-08-02-2/+2
| | | | | | | | | | | qixis_reset altbank usagge ~QIXIS_LBMAP_MASK in code. So define inverse value QIXIS_LBMAP_MASK. Also, update QIXIS_RST_CTL_RESET value to keep RST_CTL[REQ_MOD] as 0b11 i.e. PORESET during qixis_reset Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
* rockchip: add support for rk3288 PopMetal boardjk.kernel@gmail.com2016-07-31-0/+26
| | | | | | | | | PopMetal is a rockchip rk3288 based board made by ChipSpark, which has many interface such as HDMI, VGA, USB, micro-SD card, WiFi, Audio and Gigabit Ethernet. Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org>
* rockchip: add basic support for fennec-rk3288 boardjk.kernel@gmail.com2016-07-31-0/+26
| | | | | | | | | | Fennec is a RK3288-based development board with 2 USB ports, HDMI, micro-SD card, audio and WiFi and Gigabit Ethernet. It also includes on-board 8GB eMMC and 2GB of SDRAM. Expansion connectors provides access to display pins, I2C, SPI, UART and GPIOs. Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org>
* rockchip: rk3288: move evb board to rockchip folderjk.kernel@gmail.com2016-07-31-0/+0
| | | | | | | | The 'evb-rk3288' is not a vendor name, change it to 'rockchip' which is the real vendor name. Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org>
* rockchip: rk3288: revise CONFIG_FASTBOOT_BUF_ADDRjk.kernel@gmail.com2016-07-31-3/+1
| | | | | | | | CONFIG_SYS_LOAD_ADDR is absolutely safe to store image for fastboot. Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org>
* rockchip: remove the duplicated macro configjk.kernel@gmail.com2016-07-31-4/+0
| | | | | | | | CONFIG_DOS_PARTITION and CONFIG_EFI_PARTITION are already included in config_distro_defaults.h, and we don't need them in SPL stage. Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org>
* rockchip: rk3288: disable fastboot in SPL stagejk.kernel@gmail.com2016-07-31-1/+1
| | | | | | | Reduce compilation time for SPL. Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org>
* configs: rockchip: remove no use MACROKever Yang2016-07-31-5/+0
| | | | | | | | The CONFIG_ROCKCHIP_COMMON and CONFIG_SPL_ROCKCHIP_COMMON are no use now, remove them. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org>
* ARM: am57xx_evm: Enable QSPI supportVignesh R2016-07-30-0/+36
| | | | | | | | | | AM571x IDK and AM572x IDK EVMs have spansion s25fl256s QSPI flash on the board connected to TI QSPI IP over CS0. Therefore enable QSPI support. Signed-off-by: Vignesh R <vigneshr@ti.com> Reviewed-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Jagan Teki <jteki@openedev.com>
* configs: dra7xx: Update QSPI speed to 76.8MHzVignesh R2016-07-30-1/+1
| | | | | | | | | | Now that QSPI driver can support 76.8MHz, update the CONFIG_SF_DEFAULT_SPEED to the same value. Signed-off-by: Vignesh R <vigneshr@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Jagan Teki <jteki@openedev.com> Reviewed-by: Mugunthan V N <mugunthanvnm@ti.com>
* Merge branch 'master' of git://www.denx.de/git/u-boot-imxTom Rini2016-07-28-63/+711
|\
| * mx7_common: initialize generic timer on all CPU'sStefan Agner2016-07-28-0/+1
| | | | | | | | | | | | | | | | | | Use CONFIG_TIMER_CLK_FREQ to let the non-secure init code initialize the generic timer on all CPU's. This allows to make use of the timer freuquency register also on other CPU than the start CPU which is important for KVM. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
| * cgtqmx6eval: Remove uneeded PHYS_SDRAM_SIZEFabio Estevam2016-07-28-1/+0
| | | | | | | | | | | | | | | | | | | | | | cgtqmx6eval uses the imx_ddr_size() function to calculate the DDR size in runtime, so there is no need to define PHYS_SDRAM_SIZE. Remove the unneeded definition. Cc: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br>
| * novena: Remove uneeded PHYS_SDRAM_SIZEFabio Estevam2016-07-28-1/+0
| | | | | | | | | | | | | | | | | | | | | | novena uses the imx_ddr_size() function to calculate the DDR size in runtime, so there is no need to define PHYS_SDRAM_SIZE. Remove the unneeded definition. Cc: Marek Vasut <marex@denx.de> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Marek Vasut <marex@denx.de>
| * bx50v3: Use imx_ddr_size() for calculating the DDR sizeFabio Estevam2016-07-28-2/+0
| | | | | | | | | | | | | | | | | | imx_ddr_size() can be used to calculate the DDR size in runtime. By using this function we no longer need to define PHYS_SDRAM_SIZE. Cc: Martin Donnelly <martin.donnelly@ge.com> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
| * aristainetos: Use imx_ddr_size() for calculating the DDR sizeFabio Estevam2016-07-28-1/+0
| | | | | | | | | | | | | | | | | | | | imx_ddr_size() can be used to calculate the DDR size in runtime. By using this function we no longer need to define PHYS_SDRAM_SIZE. Cc: Heiko Schocher <hs@denx.de> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Heiko Schocher <hs@denx.de>
| * warp: Use imx_ddr_size() for calculating the DDR sizeFabio Estevam2016-07-28-1/+0
| | | | | | | | | | | | | | | | imx_ddr_size() can be used to calculate the DDR size in runtime. By using this function we no longer need to define PHYS_SDRAM_SIZE. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
| * warp7: Move some USB configuration options to defconfigBreno Lima2016-07-28-9/+0
| | | | | | | | | | | | | | | | | | Currently it's recommended to move some configuration options to the defconfig file. Move some USB related options to the defconfig file. Signed-off-by: Breno Lima <breno.lima@nxp.com>
| * colibri_imx7: add Colibri iMX7S/iMX7D module supportStefan Agner2016-07-28-0/+247
| | | | | | | | | | | | | | | | | | | | | | This commit adds support for the Toradex Computer on Modules Colibri iMX7S/iMX7D. The two modules/SoC's are very similar hence can be easily supported by one board. The board code detects RAM size at runtime which is one of the differences between the two boards. The board also uses the UART's in DTE mode, hence making use of the new DTE support via serial DM. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
| * imx: ventana: make hwconfig initialize based on board configurationTim Harvey2016-07-28-4/+1
| | | | | | | | | | | | | | | | | | | | The hwconfig env var allows user to control hardware specific configuration of board specific features but not all Ventana boards have the same features. We will use the magic default value of "_UNKNOWN_" to signify that the bootloader should create this based on detected board model. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
| * imx: ventana: re-enable late board info displayTim Harvey2016-07-28-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 3b1f681131149b5f62602f582a7e60b0185a2a49 caused a regression that removes board info dispaly for Gateworks Ventana boards because it made the invalid assumption that CONFIG_DISPLAY_BOARDINFO_LATE was the same thing as CONFIG_DISPLAY_BOARDINFO. Ventana needs to call show_board_info in late init because we need to have the i2c eeprom based model info. Re-define CONFIG_DISPLAY_BOARDINFO_LATE to allow that to happen. Cc: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
| * imx: ventana: default pci to disabledTim Harvey2016-07-28-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The IMX6 PCIe host controller does not have a proper reset and as such there are several issues that can arise if PCI is enabled in the bootloader follwed by Linux trying to re-configure LTSSM and/or toggling PERST# to the devices. For now, the best approach seems to default to disabling PCI by defaulting pciedisable=1. This can be overridden by the user if they need PCI in the bootloader, for example: - GW552x needing ethernet access in bootloader - GW16082 expansion board needing a device-tree fixup for irq mapping Signed-off-by: Tim Harvey <tharvey@gateworks.com>
| * pico-imx6ul: drop warning due to redefinedStefano Babic2016-07-28-12/+0
| | | | | | | | | | | | | | | | | | USB gadget configuration is set in defconfig and must be removed from pico-imx6ul.h. Signed-off-by: Stefano Babic <sbabic@denx.de> CC: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
| * mx7_common: use Kconfig for ARMv7 non-secure modeStefan Agner2016-07-19-7/+0
| | | | | | | | | | | | | | | | Use existing Kconfig symbols to let the user configure whether to build a U-Boot with non-secure mode support or not. This also allows to enable virtualization extension easily. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
| * mx7_common: Put display board info config into board fileStefan Agner2016-07-19-1/+4
| | | | | | | | | | | | | | | | | | CONFIG_DISPLAY_BOARDINFO should not be placed in mx7_common because some boards might need a different config such as CONFIG_DISPLAY_BOARDINFO_LATE. Move it to the board file instead. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
| * mx7: set soc environment according to exact SoC typeStefan Agner2016-07-19-0/+2
| | | | | | | | | | | | | | | | This can be useful if the same U-Boot binary is used for boards available with a i.MX 7Solo and i.MX 7Dual. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * usb: move CONFIG_USB_EHCI_MX7 to KconfigStefan Agner2016-07-19-4/+0
| | | | | | | | | | | | | | Create an entry for "config USB_EHCI_MX7" in Kconfig and switch over to it for all boards. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
| * ARM: configs: cm_fx6: add mtd supportChristopher Spinrath2016-07-19-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cm-fx6 module has an on-board spi flash chip. Enable mtd support and the mtdparts command. Also define a default partitioning, add it to the default environment, and enable support to overwrite the partitioning defined in a device tree by it. Finally, probe for the chip on preboot to register the flash chip and, thus, establish the connection between the mtd environment settings and the actual device. These changes move the effective default partitioning from the device tree shipped with the vendor kernels to U-Boot which becomes the single point of definition for the partitioning for all device tree based kernels (in particular, for the upstream Linux kernel which does not have a default partitioning defined in its device tree). Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de> Reviewed-by: Stefano Babic <sbabic@denx.de> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
| * ARM: configs: cm_fx6: improve default environmentChristopher Spinrath2016-07-19-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, entire script segments have to be changed in the default environment to change the kernel image location or to append kernel cmdline parameters. In the later case this has to be changed for every possible boot device. Introduce new variables for kernel image locations and boot device independent kernel parameters to make it easier to change these settings. Signed-off-by: Christopher Spinrath <christopher.spinrath@rwth-aachen.de> Reviewed-by: Igor Grinberg <grinberg@compulab.co.il> Reviewed-by: Nikita Kiryanov <nikita@compulab.co.il>
| * pico-imx6ul: Add PMIC supportVanessa Maegima2016-07-19-0/+12
| | | | | | | | | | | | | | Add PMIC support. Tested by command "pmic PFUZE3000 dump". Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
| * wandboard: move environment partition farther from u-boot.imgAlexey Brodkin2016-07-19-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently I started to notice that u-boot.img built for Wandboard by some toolchains becomes so large that it basically overlaps with U-Boot environment area on SD-card. According to http://wiki.wandboard.org/index.php/Boot-process#sdcard_boot_data_layout Wandboard's SD-card layout is as follows: ------------------------------>8--------------------------- Acked-by: Otavio Salvador <otavio@ossystems.com.br> Acked-by: Fabio Estevam <fabio.estevam@nxp.com> ========================================================== 1. 0x00000000 Reserved For MBR 2. 0x00000200 512 Secondary Image Table (optional) 3. 0x00000400 1024 uBoot Image (Starting From IVT) 4. 0x00060000 393216 start of uboot env (size:8k) 5. 0x00062000 end of uboot env 6. 0x00100000 1048576 Linux kernel start 7. 0x0076AC00 7777280 start of partition 1 ------------------------------>8--------------------------- So for U-Boot we have 383kB (392192 bytes). But in up to date U-Boot for Wandboard we build separately a) SPL b) u-boot.img which gives us a bit more detailed SD-card layout: ------------------------------>8--------------------------- ========================================================== 1. 0x00000000 Reserved For MBR 2. 0x00000200 512 Secondary Image Table (optional) 3. 0x00000400 1024 SPL 4. 0x00011400 70656 u-boot.img 5. 0x00060000 393216 start of uboot env (size:8k) 6. 0x00062000 end of uboot env ... ------------------------------>8--------------------------- >From that layout we may calculate amount of space reserved for u-boot.img. It's just 315kb (322560 bytes). Now if I build U-Boot with Sourcery CodeBench ARM 2014.05 produced u-boot.img is already more than we expected (323840 bytes instead of "< 322560"): ------------------------------>8--------------------------- ls -la u-boot.img -rw-rw-r-- 1 user user 323840 Jul 5 07:38 u-boot.img ------------------------------>8--------------------------- Funny enough if I rebuild U-Boot with ARM toolchain available in my Fedora 23 distro u-boot.img becomes a little bit smaller: ------------------------------>8--------------------------- ls -la u-boot.img -rw-rw-r-- 1 user user 322216 Jul 5 07:39 u-boot.img ------------------------------>8--------------------------- What's worse this problem might not affect people most of the time because what happens people would just copy u-boot.img on SD-card and live in happiness with it... well until somebody attempts to save environment in U-Boot with "saveenv" command which will simply overwrite the very end of u-boot.img. That will lead to unusable SD-card until user dd u-boot.img on SD-card again. I may foresee this issue in the future to become more visible once we add more features in U-Boot for Wandboard or just existing code base becomes bulkier and people will consistently get larger u-boot.img files produced. IMHO there's an obvious solution for all that - just move U-Boot's env to the very end of the gap between U-Boot and the first real partition on the SD-card. This patch will follow 8fb9eea5653796 ("mx6sabre_common: Fix U-Boot corruption after 'saveenv'"). So env is still not in the very end of the gap (obviously 256kb is way too much for U-Boot's env) but at least we have now the same partitioning for i.MX6 boards. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Peter Robinson <pbrobinson@gmail.com> Cc: Tom Rini <trini@konsulko.com> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Wolfgang Denk <wd@denx.de>
| * usbarmory: Add board_run_command() functionAndrej Rosano2016-07-12-4/+7
| | | | | | | | | | | | | | Define a default board_run_command() function. This function contains the commands needed to boot the board when CLI is disabled (CONFIG_CMDLINE=n). Signed-off-by: Andrej Rosano <andrej@inversepath.com>
| * usbarmory: switch to using kernel zImageAndrej Rosano2016-07-12-3/+5
| | | | | | | | | | | | Switch to using zImage instead of uImage. Signed-off-by: Andrej Rosano <andrej@inversepath.com>
| * pico-imx6ul: Add USB Host supportVanessa Maegima2016-07-12-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add USB host support. Tested by connecting a USB pen drive: => usb start starting USB... USB0: Port not available. USB1: USB EHCI 1.00 scanning bus 1 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
| * pico-imx6ul: Add NFS boot supportDiego Dorta2016-07-12-1/+25
| | | | | | | | | | | | | | | | Add script for retrieving the kernel via TFTP and mounting the rootfs via NFS. Signed-off-by: Diego Dorta <diego.dorta@nxp.com> Acked-by: Fabio Estevam <fabio.estevam@nxp.com>
| * pico-imx6ul: Add DFU supportVanessa Maegima2016-07-12-1/+7
| | | | | | | | | | | | | | | | | | DFU is a convenient way to program U-boot binary into the eMMC. Add support for it. Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
| * pico-imx6ul: Add Ethernet supportDiego Dorta2016-07-12-0/+10
| | | | | | | | | | | | | | | | | | | | Pico-imx6ul has a KSZ8081 Ethernet PHY. Add support for it. Signed-off-by: Diego Dorta <diego.dorta@nxp.com> Acked-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Stefano Babic <sbabic@denx.de>
| * mx6sxsabresd: Avoid hardcoded RAM sizeVanessa Maegima2016-07-12-1/+0
| | | | | | | | | | | | | | | | Instead of passing the total RAM size via PHYS_SDRAM_SIZE option, we should better use imx_ddr_size() function, which automatically determines the RAM size. Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com>
| * mx6sxsabreauto: Avoid hardcoded RAM sizeVanessa Maegima2016-07-12-1/+0
| | | | | | | | | | | | | | | | | | Instead of passing the total RAM size via PHYS_SDRAM_SIZE option, we should better use imx_ddr_size() function, which automatically determines the RAM size. Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
| * mx6slevk: Avoid hardcoded RAM sizeVanessa Maegima2016-07-12-1/+0
| | | | | | | | | | | | | | | | | | | | Instead of passing the total RAM size via PHYS_SDRAM_SIZE option, we should better use imx_ddr_size() function, which automatically determines the RAM size. Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
| * wandboard: enable SATA with imx6qGilles Chanteperdrix2016-07-12-0/+12
| | | | | | | | Signed-off-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
| * mx6qsabreauto: Avoid hardcoded RAM sizeVanessa Maegima2016-07-12-1/+0
| | | | | | | | | | | | | | | | | | Instead of passing the total RAM size via PHYS_SDRAM_SIZE option, we should better use imx_ddr_size() function, which automatically determines the RAM size. Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com> Acked-by: Fabio Estevam <fabio.estevam@nxp.com>
| * mx6: Add Phytec PCM058 i.MX6 QuadStefano Babic2016-07-12-0/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Phytec-i.MX6 SOM with NAND Support: - 1GB RAM - Ethernet - SPI-NOR Flash - NAND (1024 MB) - external SD - UART Signed-off-by: Stefano Babic <sbabic@denx.de> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
| * mx6: add support for el6x boardStefano Babic2016-07-12-0/+209
| | | | | | | | | | | | | | | | | | Custom Board based on MX6 Dual, 1GB RAM and eMMC. There are two variants of the board with and without PCIe (ZC5202 and ZC5601). Signed-off-by: Stefano Babic <sbabic@denx.de>
* | ARM: uniphier: move CONFIG_I2C_EEPROM to defconfigMasahiro Yamada2016-07-26-1/+0
| | | | | | | | | | | | | | We already have the entry for this option in Kconfig, so let's migrate to it. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* | Merge git://git.denx.de/u-boot-fsl-qoriqTom Rini2016-07-26-5/+50
|\ \
| * | armv8/ls1043a: Add MTD partition schemeWenbin Song2016-07-26-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | Add and share the the MTD partition scheme with kernel by default bootargs. And add the "mtdparts" env. Signed-off-by: Wenbin Song <wenbin.song@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
| * | ARMv8/ls1046a: Cleanup the environment variablesWenbin Song2016-07-26-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | Cleanup the variables: "kernel_addr","ramdisk_addr", "ramdisk_size","console". Signed-off-by: Wenbin Song <wenbin.song@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
| * | ARMv7: PSCI: ls102xa: move secure text section into OCRAMHongbo Zhang2016-07-26-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | LS1021 offers two secure OCRAM blocks for trustzone. This patch moves all the secure text sections into the OCRAM. Signed-off-by: Wang Dongsheng <dongsheng.wang@nxp.com> Signed-off-by: Hongbo Zhang <hongbo.zhang@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>