From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Tue, 18 May 2021 21:26:40 -0400 Subject: [PATCH] arm: Remove nokia_rx51 board Message-ID: <20210519012640.5970-1-trini@konsulko.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This board has not been converted to CONFIG_DM_USB by the deadline. Remove it. Cc: Pali Roh?r Signed-off-by: Tom Rini --- I assume you'll be trying to fix this so I've not removed all of the test related scripts. --- .azure-pipelines.yml | 13 - .gitlab-ci.yml | 7 - arch/arm/mach-omap2/omap3/Kconfig | 4 - board/nokia/rx51/Kconfig | 12 - board/nokia/rx51/MAINTAINERS | 8 - board/nokia/rx51/Makefile | 7 - board/nokia/rx51/lowlevel_init.S | 196 -------- board/nokia/rx51/rx51.c | 724 ------------------------------ board/nokia/rx51/tag_omap.h | 294 ------------ configs/nokia_rx51_defconfig | 69 --- doc/README.nokia_rx51 | 94 ---- include/configs/nokia_rx51.h | 249 ---------- test/nokia_rx51_test.sh | 296 ------------ 13 files changed, 1973 deletions(-) delete mode 100644 board/nokia/rx51/Kconfig delete mode 100644 board/nokia/rx51/MAINTAINERS delete mode 100644 board/nokia/rx51/Makefile delete mode 100644 board/nokia/rx51/lowlevel_init.S delete mode 100644 board/nokia/rx51/rx51.c delete mode 100644 board/nokia/rx51/tag_omap.h delete mode 100644 configs/nokia_rx51_defconfig delete mode 100644 doc/README.nokia_rx51 delete mode 100644 include/configs/nokia_rx51.h delete mode 100755 test/nokia_rx51_test.sh diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 438139660219..90d5e4dc7244 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -160,19 +160,6 @@ jobs: # seems to hang forever with pre-configured "container" environment docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/build.sh - - job: nokia_rx51_test - displayName: 'Run tests for Nokia RX-51 (aka N900)' - pool: - vmImage: $(ubuntu_vm) - container: - image: $(ci_runner_image) - options: $(container_option) - steps: - - script: | - ./tools/buildman/buildman --fetch-arch arm - export PATH=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/:$PATH - test/nokia_rx51_test.sh - - job: test_py displayName: 'test.py' pool: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5bf6f151b4fc..95aacdd9d74d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -163,13 +163,6 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites: ./tools/patman/patman test; make testconfig -Run tests for Nokia RX-51 (aka N900): - stage: testsuites - script: - - ./tools/buildman/buildman --fetch-arch arm; - export PATH=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/:$PATH; - test/nokia_rx51_test.sh - # Test sandbox with test.py sandbox test.py: variables: diff --git a/arch/arm/mach-omap2/omap3/Kconfig b/arch/arm/mach-omap2/omap3/Kconfig index 81c898b66e34..3c67a334d81c 100644 --- a/arch/arm/mach-omap2/omap3/Kconfig +++ b/arch/arm/mach-omap2/omap3/Kconfig @@ -105,9 +105,6 @@ config TARGET_OMAP3_LOGIC select OMAP3_GPIO_6 imply CMD_DM -config TARGET_NOKIA_RX51 - bool "Nokia RX51" - config TARGET_TAO3530 bool "TAO3530" select OMAP3_GPIO_2 @@ -160,7 +157,6 @@ source "board/timll/devkit8000/Kconfig" source "board/ti/evm/Kconfig" source "board/isee/igep00x0/Kconfig" source "board/logicpd/omap3som/Kconfig" -source "board/nokia/rx51/Kconfig" source "board/lg/sniper/Kconfig" endif diff --git a/board/nokia/rx51/Kconfig b/board/nokia/rx51/Kconfig deleted file mode 100644 index ec6a571a2263..000000000000 --- a/board/nokia/rx51/Kconfig +++ /dev/null @@ -1,12 +0,0 @@ -if TARGET_NOKIA_RX51 - -config SYS_BOARD - default "rx51" - -config SYS_VENDOR - default "nokia" - -config SYS_CONFIG_NAME - default "nokia_rx51" - -endif diff --git a/board/nokia/rx51/MAINTAINERS b/board/nokia/rx51/MAINTAINERS deleted file mode 100644 index 58b16bf9a95c..000000000000 --- a/board/nokia/rx51/MAINTAINERS +++ /dev/null @@ -1,8 +0,0 @@ -RX51 BOARD -M: Pali Roh?r -S: Maintained -F: board/nokia/rx51/ -F: include/configs/nokia_rx51.h -F: configs/nokia_rx51_defconfig -F: doc/README.nokia_rx51 -F: test/nokia_rx51_test.sh diff --git a/board/nokia/rx51/Makefile b/board/nokia/rx51/Makefile deleted file mode 100644 index 842f9e6a650e..000000000000 --- a/board/nokia/rx51/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+ -# -# (C) Copyright 2000, 2001, 2002 -# Wolfgang Denk, DENX Software Engineering, wd at denx.de. - -obj-y := rx51.o -obj-y += lowlevel_init.o diff --git a/board/nokia/rx51/lowlevel_init.S b/board/nokia/rx51/lowlevel_init.S deleted file mode 100644 index 1466d976fc4b..000000000000 --- a/board/nokia/rx51/lowlevel_init.S +++ /dev/null @@ -1,196 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * (C) Copyright 2011-2012 - * Pali Roh?r - */ - -#include - -relocaddr: /* address of this relocaddr section after coping */ - .word . /* address of section (calculated at compile time) */ - -startaddr: /* address of u-boot after copying */ - .word CONFIG_SYS_TEXT_BASE - -kernaddr: /* address of kernel after copying */ - .word KERNEL_ADDRESS - -kernsize: /* maximal size of kernel image */ - .word KERNEL_MAXSIZE - -kernoffs: /* offset of kernel image in loaded u-boot */ - .word KERNEL_OFFSET - -imagesize: /* maximal size of image */ - .word IMAGE_MAXSIZE - -ih_magic: /* IH_MAGIC in big endian from include/image.h */ - .word 0x56190527 - -/* - * Routine: save_boot_params (called after reset from start.S) - * Description: Copy attached kernel to address KERNEL_ADDRESS - * Copy u-boot to address CONFIG_SYS_TEXT_BASE - * Return to copied u-boot address - */ - -.global save_boot_params -save_boot_params: - /* Get return address */ - ldr lr, =save_boot_params_ret - -/* Copy valid attached kernel to address KERNEL_ADDRESS */ - -copy_kernel_start: - adr r0, relocaddr /* r0 - address of section relocaddr */ - ldr r1, relocaddr /* r1 - address of relocaddr after relocation */ - cmp r0, r1 - - /* r4 - calculated offset */ - subhi r4, r0, r1 - sublo r4, r1, r0 - - /* r0 - start of kernel before */ - ldr r0, startaddr - addhi r0, r0, r4 - sublo r0, r0, r4 - ldr r1, kernoffs - add r0, r0, r1 - - /* r3 - start of kernel after */ - ldr r3, kernaddr - - /* r2 - end of kernel after */ - ldr r1, kernsize - add r2, r3, r1 - - /* r1 - end of kernel before */ - add r1, r0, r1 - - /* remove header in target kernel */ - mov r5, #0 - str r5, [r3] - - /* check for valid kernel uImage */ - ldr r4, [r0] /* r4 - 4 bytes header of kernel */ - ldr r5, ih_magic /* r5 - IH_MAGIC */ - cmp r4, r5 - bne copy_kernel_end /* skip if invalid image */ - -copy_kernel_loop: - ldmdb r1!, {r3 - r10} - stmdb r2!, {r3 - r10} - cmp r1, r0 - bhi copy_kernel_loop - -copy_kernel_end: - mov r5, #0 - str r5, [r0] /* remove 4 bytes header of kernel */ - - -/* Fix u-boot code */ - -fix_start: - adr r0, relocaddr /* r0 - address of section relocaddr */ - ldr r1, relocaddr /* r1 - address of relocaddr after relocation */ - cmp r0, r1 - - beq copy_uboot_end /* skip if u-boot is on correct address */ - - /* r5 - calculated offset */ - subhi r5, r0, r1 - sublo r5, r1, r0 - - /* r6 - maximal u-boot size */ - ldr r6, imagesize - - /* r1 - start of u-boot after */ - ldr r1, startaddr - - /* r0 - start of u-boot before */ - addhi r0, r1, r5 - sublo r0, r1, r5 - - /* check if we need to move uboot copy code before calling it */ - cmp r5, r6 - bhi copy_uboot_start /* now coping u-boot code directly is safe */ - - -copy_code_start: - /* r0 - start of u-boot before */ - /* r1 - start of u-boot after */ - /* r6 - maximal u-boot size */ - - /* r7 - maximal kernel size */ - ldr r7, kernsize - - /* r4 - end of kernel before */ - add r4, r0, r6 - add r4, r4, r7 - - /* r5 - end of u-boot after */ - ldr r5, startaddr - add r5, r5, r6 - - /* r2 - start of loop code after */ - cmp r4, r5 /* higher address (r4 or r5) */ - movhs r2, r4 - movlo r2, r5 - - /* r3 - end of loop code before */ - adr r3, end - - /* r4 - end of loop code after */ - adr r4, copy_uboot_start - sub r4, r3, r4 - add r4, r2, r4 - -copy_code_loop: - ldmdb r3!, {r7 - r10} - stmdb r4!, {r7 - r10} - cmp r4, r2 - bhi copy_code_loop - -copy_code_end: - mov pc, r2 - - -/* - * Copy u-boot to address CONFIG_SYS_TEXT_BASE - * - * Nokia X-Loader loading secondary image to address 0x80400000 - * NOLO loading boot image to random place, so it doesn't really - * matter what is set in CONFIG_SYS_TEXT_BASE. We have to copy - * u-boot to CONFIG_SYS_TEXT_BASE address. - */ - -copy_uboot_start: - /* r0 - start of u-boot before */ - /* r1 - start of u-boot after */ - /* r6 - maximal u-boot size */ - - /* r2 - end of u-boot after */ - add r2, r1, r6 - - /* condition for copying from left to right */ - cmp r0, r1 - addlo r1, r0, r6 /* r1 - end of u-boot before */ - blo copy_uboot_loop_right - -copy_uboot_loop_left: - ldmia r0!, {r3 - r10} - stmia r1!, {r3 - r10} - cmp r1, r2 - blo copy_uboot_loop_left - b copy_uboot_end - -copy_uboot_loop_right: - ldmdb r1!, {r3 - r10} - stmdb r2!, {r3 - r10} - cmp r1, r0 - bhi copy_uboot_loop_right - -copy_uboot_end: - bx lr - -end: diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c deleted file mode 100644 index 7bd5fbd71520..000000000000 --- a/board/nokia/rx51/rx51.c +++ /dev/null @@ -1,724 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * (C) Copyright 2012 - * ?????? ???????? - * - * (C) Copyright 2011-2012 - * Pali Roh?r - * - * (C) Copyright 2010 - * Alistair Buxton - * - * Derived from Beagle Board and 3430 SDP code: - * (C) Copyright 2004-2008 - * Texas Instruments, - * - * Author : - * Sunil Kumar - * Shashi Ranjan - * - * Richard Woodruff - * Syed Mohammed Khasim - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "tag_omap.h" - -/* Needed for ROM SMC call */ -struct emu_hal_params_rx51 { - u32 num_params; - u32 param1; - u32 param2; - u32 param3; - u32 param4; -}; - -#define ONENAND_GPMC_CONFIG1_RX51 0xfb001202 -#define ONENAND_GPMC_CONFIG2_RX51 0x00111100 -#define ONENAND_GPMC_CONFIG3_RX51 0x00020200 -#define ONENAND_GPMC_CONFIG4_RX51 0x11001102 -#define ONENAND_GPMC_CONFIG5_RX51 0x03101616 -#define ONENAND_GPMC_CONFIG6_RX51 0x90060000 - -DECLARE_GLOBAL_DATA_PTR; - -GraphicDevice gdev; - -const omap3_sysinfo sysinfo = { - DDR_STACKED, - "Nokia RX-51", - "OneNAND" -}; - -/* This structure contains default omap tags needed for booting Maemo 5 */ -static struct tag_omap omap[] = { - OMAP_TAG_UART_CONFIG(0x04), - OMAP_TAG_SERIAL_CONSOLE_CONFIG(0x03, 0x01C200), - OMAP_TAG_LCD_CONFIG("acx565akm", "internal", 90, 0x18), - OMAP_TAG_GPIO_SWITCH_CONFIG("cam_focus", 0x44, 0x1, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cam_launch", 0x45, 0x1, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cam_shutter", 0x6e, 0x1, 0x0, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cmt_apeslpx", 0x46, 0x2, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cmt_bsi", 0x9d, 0x2, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cmt_en", 0x4a, 0x2, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cmt_rst", 0x4b, 0x6, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cmt_rst_rq", 0x49, 0x6, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("cmt_wddis", 0x0d, 0x2, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("headphone", 0xb1, 0x1, 0x1, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("kb_lock", 0x71, 0x1, 0x0, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("proximity", 0x59, 0x0, 0x0, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("sleep_ind", 0xa2, 0x2, 0x2, 0x0), - OMAP_TAG_GPIO_SWITCH_CONFIG("slide", GPIO_SLIDE, 0x0, 0x0, 0x0), - OMAP_TAG_WLAN_CX3110X_CONFIG(0x25, 0xff, 87, 42, -1), - OMAP_TAG_PARTITION_CONFIG("bootloader", 128 * 1024, 0x00000000, 0x00000003), - OMAP_TAG_PARTITION_CONFIG("config", 384 * 1024, 0x00020000, 0x00000000), - OMAP_TAG_PARTITION_CONFIG("log", 256 * 1024, 0x00080000, 0x00000000), - OMAP_TAG_PARTITION_CONFIG("kernel", 2 * 1024*1024, 0x000c0000, 0x00000000), - OMAP_TAG_PARTITION_CONFIG("initfs", 2 * 1024*1024, 0x002c0000, 0x00000000), - OMAP_TAG_PARTITION_CONFIG("rootfs", 257280 * 1024, 0x004c0000, 0x00000000), - OMAP_TAG_BOOT_REASON_CONFIG("pwr_key"), - OMAP_TAG_VERSION_STR_CONFIG("product", "RX-51"), - OMAP_TAG_VERSION_STR_CONFIG("hw-build", "2101"), - OMAP_TAG_VERSION_STR_CONFIG("nolo", "1.4.14"), - OMAP_TAG_VERSION_STR_CONFIG("boot-mode", "normal"), - { } -}; - -static char *boot_reason_ptr; -static char *hw_build_ptr; -static char *nolo_version_ptr; -static char *boot_mode_ptr; -static int serial_was_console_enabled; - -/* - * Routine: init_omap_tags - * Description: Initialize pointers to values in tag_omap - */ -static void init_omap_tags(void) -{ - char *component; - char *version; - int i = 0; - while (omap[i].hdr.tag) { - switch (omap[i].hdr.tag) { - case OMAP_TAG_BOOT_REASON: - boot_reason_ptr = omap[i].u.boot_reason.reason_str; - break; - case OMAP_TAG_VERSION_STR: - component = omap[i].u.version.component; - version = omap[i].u.version.version; - if (strcmp(component, "hw-build") == 0) - hw_build_ptr = version; - else if (strcmp(component, "nolo") == 0) - nolo_version_ptr = version; - else if (strcmp(component, "boot-mode") == 0) - boot_mode_ptr = version; - break; - default: - break; - } - i++; - } -} - -static void reuse_omap_atags(struct tag_omap *t) -{ - char *component; - char *version; - while (t->hdr.tag) { - switch (t->hdr.tag) { - case OMAP_TAG_BOOT_REASON: - memset(boot_reason_ptr, 0, 12); - strcpy(boot_reason_ptr, t->u.boot_reason.reason_str); - break; - case OMAP_TAG_VERSION_STR: - component = t->u.version.component; - version = t->u.version.version; - if (strcmp(component, "hw-build") == 0) { - memset(hw_build_ptr, 0, 12); - strcpy(hw_build_ptr, version); - } else if (strcmp(component, "nolo") == 0) { - memset(nolo_version_ptr, 0, 12); - strcpy(nolo_version_ptr, version); - } else if (strcmp(component, "boot-mode") == 0) { - memset(boot_mode_ptr, 0, 12); - strcpy(boot_mode_ptr, version); - } - break; - case OMAP_TAG_UART: - if (t->u.uart.enabled_uarts) - serial_was_console_enabled = 1; - break; - case OMAP_TAG_SERIAL_CONSOLE: - serial_was_console_enabled = 1; - break; - default: - break; - } - t = tag_omap_next(t); - } -} - -/* - * Routine: reuse_atags - * Description: Reuse atags from previous bootloader. - * Reuse only only HW build, boot reason, boot mode and nolo - */ -static void reuse_atags(void) -{ - struct tag *t = (struct tag *)gd->bd->bi_boot_params; - - /* First tag must be ATAG_CORE */ - if (t->hdr.tag != ATAG_CORE) - return; - - if (!boot_reason_ptr || !hw_build_ptr) - return; - - /* Last tag must be ATAG_NONE */ - while (t->hdr.tag != ATAG_NONE) { - switch (t->hdr.tag) { - case ATAG_REVISION: - memset(hw_build_ptr, 0, 12); - sprintf(hw_build_ptr, "%x", t->u.revision.rev); - break; - case ATAG_BOARD: - reuse_omap_atags((struct tag_omap *)&t->u); - break; - default: - break; - } - t = tag_next(t); - } -} - -/* - * Routine: board_init - * Description: Early hardware init. - */ -int board_init(void) -{ -#if defined(CONFIG_CMD_ONENAND) - const u32 gpmc_regs_onenandrx51[GPMC_MAX_REG] = { - ONENAND_GPMC_CONFIG1_RX51, - ONENAND_GPMC_CONFIG2_RX51, - ONENAND_GPMC_CONFIG3_RX51, - ONENAND_GPMC_CONFIG4_RX51, - ONENAND_GPMC_CONFIG5_RX51, - ONENAND_GPMC_CONFIG6_RX51, - 0 - }; -#endif - /* in SRAM or SDRAM, finish GPMC */ - gpmc_init(); -#if defined(CONFIG_CMD_ONENAND) - enable_gpmc_cs_config(gpmc_regs_onenandrx51, &gpmc_cfg->cs[0], - CONFIG_SYS_ONENAND_BASE, GPMC_SIZE_256M); -#endif - /* Enable the clks & power */ - per_clocks_enable(); - /* boot param addr */ - gd->bd->bi_boot_params = OMAP34XX_SDRC_CS0 + 0x100; - return 0; -} - -/* - * Routine: get_board_revision - * Description: Return board revision. - */ -u32 get_board_rev(void) -{ - return simple_strtol(hw_build_ptr, NULL, 16); -} - -/* - * Routine: setup_board_tags - * Description: Append board specific boot tags. - */ -void setup_board_tags(struct tag **in_params) -{ - int setup_console_atag; - char *setup_boot_reason_atag; - char *setup_boot_mode_atag; - char *str; - int i; - int size; - int total_size; - struct tag *params; - struct tag_omap *t; - - params = (struct tag *)gd->bd->bi_boot_params; - - params->u.core.flags = 0x0; - params->u.core.pagesize = 0x1000; - params->u.core.rootdev = 0x0; - - /* append omap atag only if env setup_omap_atag is set to 1 */ - str = env_get("setup_omap_atag"); - if (!str || str[0] != '1') - return; - - str = env_get("setup_console_atag"); - if (str && str[0]) { - if (str[0] == '1') - setup_console_atag = 1; - else - setup_console_atag = 0; - } else { - if (serial_was_console_enabled) - setup_console_atag = 1; - else - setup_console_atag = 0; - } - - setup_boot_reason_atag = env_get("setup_boot_reason_atag"); - setup_boot_mode_atag = env_get("setup_boot_mode_atag"); - - params = *in_params; - t = (struct tag_omap *)¶ms->u; - total_size = sizeof(struct tag_header); - - for (i = 0; omap[i].hdr.tag; i++) { - - /* skip serial console tag */ - if (!setup_console_atag && - omap[i].hdr.tag == OMAP_TAG_SERIAL_CONSOLE) - continue; - - size = omap[i].hdr.size + sizeof(struct tag_omap_header); - memcpy(t, &omap[i], size); - - /* set uart tag to 0 - disable serial console */ - if (!setup_console_atag && omap[i].hdr.tag == OMAP_TAG_UART) - t->u.uart.enabled_uarts = 0; - - /* change boot reason */ - if (setup_boot_reason_atag && - omap[i].hdr.tag == OMAP_TAG_BOOT_REASON) { - memset(t->u.boot_reason.reason_str, 0, 12); - strcpy(t->u.boot_reason.reason_str, - setup_boot_reason_atag); - } - - /* change boot mode */ - if (setup_boot_mode_atag && - omap[i].hdr.tag == OMAP_TAG_VERSION_STR && - strcmp(omap[i].u.version.component, "boot-mode") == 0) { - memset(t->u.version.version, 0, 12); - strcpy(t->u.version.version, setup_boot_mode_atag); - } - - total_size += size; - t = tag_omap_next(t); - - } - - params->hdr.tag = ATAG_BOARD; - params->hdr.size = total_size >> 2; - params = tag_next(params); - - *in_params = params; -} - -/* - * Routine: video_hw_init - * Description: Set up the GraphicDevice depending on sys_boot. - */ -void *video_hw_init(void) -{ - /* fill in Graphic Device */ - gdev.frameAdrs = 0x8f9c0000; - gdev.winSizeX = 800; - gdev.winSizeY = 480; - gdev.gdfBytesPP = 2; - gdev.gdfIndex = GDF_16BIT_565RGB; - memset((void *)gdev.frameAdrs, 0, 0xbb800); - return (void *) &gdev; -} - -/* - * Routine: twl4030_regulator_set_mode - * Description: Set twl4030 regulator mode over i2c powerbus. - */ -static void twl4030_regulator_set_mode(u8 id, u8 mode) -{ - u16 msg = MSG_SINGULAR(DEV_GRP_P1, id, mode); - twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, - TWL4030_PM_MASTER_PB_WORD_MSB, msg >> 8); - twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, - TWL4030_PM_MASTER_PB_WORD_LSB, msg & 0xff); -} - -static void omap3_emu_romcode_call(u32 service_id, u32 *parameters) -{ - u32 i, num_params = *parameters; - u32 *sram_scratch_space = (u32 *)OMAP3_PUBLIC_SRAM_SCRATCH_AREA; - - /* - * copy the parameters to an un-cached area to avoid coherency - * issues - */ - for (i = 0; i < num_params; i++) { - __raw_writel(*parameters, sram_scratch_space); - parameters++; - sram_scratch_space++; - } - - /* Now make the PPA call */ - do_omap3_emu_romcode_call(service_id, OMAP3_PUBLIC_SRAM_SCRATCH_AREA); -} - -void omap3_set_aux_cr_secure(u32 acr) -{ - struct emu_hal_params_rx51 emu_romcode_params = { 0, }; - - emu_romcode_params.num_params = 2; - emu_romcode_params.param1 = acr; - - omap3_emu_romcode_call(OMAP3_EMU_HAL_API_WRITE_ACR, - (u32 *)&emu_romcode_params); -} - -/* - * Routine: omap3_update_aux_cr_secure_rx51 - * Description: Modify the contents Auxiliary Control Register. - * Parameters: - * set_bits - bits to set in ACR - * clr_bits - bits to clear in ACR - */ -static void omap3_update_aux_cr_secure_rx51(u32 set_bits, u32 clear_bits) -{ - u32 acr; - - /* Read ACR */ - asm volatile ("mrc p15, 0, %0, c1, c0, 1" : "=r" (acr)); - acr &= ~clear_bits; - acr |= set_bits; - omap3_set_aux_cr_secure(acr); -} - -/* - * Routine: misc_init_r - * Description: Configure board specific parts. - */ -int misc_init_r(void) -{ - struct udevice *dev; - char buf[12]; - u8 state; - - /* disable lp5523 led */ - if (i2c_get_chip_for_busnum(1, 0x32, 1, &dev) == 0) - dm_i2c_reg_write(dev, 0x00, 0x00); - - /* initialize twl4030 power managment */ - twl4030_power_init(); - twl4030_power_mmc_init(0); - twl4030_power_mmc_init(1); - - /* set VSIM to 1.8V */ - twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VSIM_DEDICATED, - TWL4030_PM_RECEIVER_VSIM_VSEL_18, - TWL4030_PM_RECEIVER_VSIM_DEV_GRP, - TWL4030_PM_RECEIVER_DEV_GRP_P1); - - /* store I2C access state */ - twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, TWL4030_PM_MASTER_PB_CFG, - &state); - - /* enable I2C access to powerbus (needed for twl4030 regulator) */ - twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, TWL4030_PM_MASTER_PB_CFG, - 0x02); - - /* set VAUX3, VSIM and VMMC1 state to active - enable eMMC memory */ - twl4030_regulator_set_mode(RES_VAUX3, RES_STATE_ACTIVE); - twl4030_regulator_set_mode(RES_VSIM, RES_STATE_ACTIVE); - twl4030_regulator_set_mode(RES_VMMC1, RES_STATE_ACTIVE); - - /* restore I2C access state */ - twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, TWL4030_PM_MASTER_PB_CFG, - state); - - /* set env variable attkernaddr for relocated kernel */ - sprintf(buf, "%#x", KERNEL_ADDRESS); - env_set("attkernaddr", buf); - - /* initialize omap tags */ - init_omap_tags(); - - /* reuse atags from previous bootloader */ - reuse_atags(); - - omap_die_id_display(); - print_cpuinfo(); - - /* - * Cortex-A8(r1p0..r1p2) errata 430973 workaround - * Set IBE bit in Auxiliary Control Register - * - * Call this routine only on real secure device - * Qemu does not implement secure PPA and crash - */ - if (get_device_type() == HS_DEVICE) - omap3_update_aux_cr_secure_rx51(1 << 6, 0); - - return 0; -} - -static unsigned long int twl_wd_time; /* last time of watchdog reset */ -static unsigned long int twl_i2c_lock; - -/* - * Routine: hw_watchdog_reset - * Description: Reset timeout of twl4030 watchdog. - */ -void hw_watchdog_reset(void) -{ - u8 timeout = 0; - - /* do not reset watchdog too often - max every 4s */ - if (get_timer(twl_wd_time) < 4 * CONFIG_SYS_HZ) - return; - - /* localy lock twl4030 i2c bus */ - if (test_and_set_bit(0, &twl_i2c_lock)) - return; - - /* read actual watchdog timeout */ - twl4030_i2c_read_u8(TWL4030_CHIP_PM_RECEIVER, - TWL4030_PM_RECEIVER_WATCHDOG_CFG, &timeout); - - /* timeout 0 means watchdog is disabled */ - /* reset watchdog timeout to 31s (maximum) */ - if (timeout != 0) - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, - TWL4030_PM_RECEIVER_WATCHDOG_CFG, 31); - - /* store last watchdog reset time */ - twl_wd_time = get_timer(0); - - /* localy unlock twl4030 i2c bus */ - test_and_clear_bit(0, &twl_i2c_lock); -} - -/* - * TWL4030 keypad handler for cfb_console - */ - -static const char keymap[] = { - /* normal */ - 'q', 'o', 'p', ',', '\b', 0, 'a', 's', - 'w', 'd', 'f', 'g', 'h', 'j', 'k', 'l', - 'e', '.', 0, '\r', 0, 'z', 'x', 'c', - 'r', 'v', 'b', 'n', 'm', ' ', ' ', 0, - 't', 0, 0, 0, 0, 0, 0, 0, - 'y', 0, 0, 0, 0, 0, 0, 0, - 'u', 0, 0, 0, 0, 0, 0, 0, - 'i', 5, 6, 0, 0, 0, 0, 0, - /* fn */ - '1', '9', '0', '=', '\b', 0, '*', '+', - '2', '#', '-', '_', '(', ')', '&', '!', - '3', '?', '^', '\r', 0, 156, '$', 238, - '4', '/', '\\', '"', '\'', '@', 0, '<', - '5', '|', '>', 0, 0, 0, 0, 0, - '6', 0, 0, 0, 0, 0, 0, 0, - '7', 0, 0, 0, 0, 0, 0, 0, - '8', 16, 17, 0, 0, 0, 0, 0, -}; - -static u8 keys[8]; -static u8 old_keys[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -#define KEYBUF_SIZE 32 -static u8 keybuf[KEYBUF_SIZE]; -static u8 keybuf_head; -static u8 keybuf_tail; - -/* - * Routine: rx51_kp_init - * Description: Initialize HW keyboard. - */ -int rx51_kp_init(void) -{ - int ret = 0; - u8 ctrl; - ret = twl4030_i2c_read_u8(TWL4030_CHIP_KEYPAD, - TWL4030_KEYPAD_KEYP_CTRL_REG, &ctrl); - - if (ret) - return ret; - - /* turn on keyboard and use hardware scanning */ - ctrl |= TWL4030_KEYPAD_CTRL_KBD_ON; - ctrl |= TWL4030_KEYPAD_CTRL_SOFT_NRST; - ctrl |= TWL4030_KEYPAD_CTRL_SOFTMODEN; - ret |= twl4030_i2c_write_u8(TWL4030_CHIP_KEYPAD, - TWL4030_KEYPAD_KEYP_CTRL_REG, ctrl); - /* enable key event status */ - ret |= twl4030_i2c_write_u8(TWL4030_CHIP_KEYPAD, - TWL4030_KEYPAD_KEYP_IMR1, 0xfe); - /* enable interrupt generation on rising and falling */ - /* this is a workaround for qemu twl4030 emulation */ - ret |= twl4030_i2c_write_u8(TWL4030_CHIP_KEYPAD, - TWL4030_KEYPAD_KEYP_EDR, 0x57); - /* enable ISR clear on read */ - ret |= twl4030_i2c_write_u8(TWL4030_CHIP_KEYPAD, - TWL4030_KEYPAD_KEYP_SIH_CTRL, 0x05); - return 0; -} - -static void rx51_kp_fill(u8 k, u8 mods) -{ - /* check if some cursor key without meta fn key was pressed */ - if (!(mods & 2) && (k == 18 || k == 31 || k == 33 || k == 34)) { - keybuf[keybuf_tail++] = '\e'; - keybuf_tail %= KEYBUF_SIZE; - keybuf[keybuf_tail++] = '['; - keybuf_tail %= KEYBUF_SIZE; - if (k == 18) /* up */ - keybuf[keybuf_tail++] = 'A'; - else if (k == 31) /* left */ - keybuf[keybuf_tail++] = 'D'; - else if (k == 33) /* down */ - keybuf[keybuf_tail++] = 'B'; - else if (k == 34) /* right */ - keybuf[keybuf_tail++] = 'C'; - keybuf_tail %= KEYBUF_SIZE; - return; - } - - if (mods & 2) { /* fn meta key was pressed */ - k = keymap[k+64]; - } else { - k = keymap[k]; - if (mods & 1) { /* ctrl key was pressed */ - if (k >= 'a' && k <= 'z') - k -= 'a' - 1; - } - if (mods & 4) { /* shift key was pressed */ - if (k >= 'a' && k <= 'z') - k += 'A' - 'a'; - else if (k == '.') - k = ':'; - else if (k == ',') - k = ';'; - } - } - keybuf[keybuf_tail++] = k; - keybuf_tail %= KEYBUF_SIZE; -} - -/* - * Routine: rx51_kp_tstc - * Description: Test if key was pressed (from buffer). - */ -int rx51_kp_tstc(struct stdio_dev *sdev) -{ - u8 c, r, dk, i; - u8 intr; - u8 mods; - - /* localy lock twl4030 i2c bus */ - if (test_and_set_bit(0, &twl_i2c_lock)) - return 0; - - /* twl4030 remembers up to 2 events */ - for (i = 0; i < 2; i++) { - - /* check interrupt register for events */ - twl4030_i2c_read_u8(TWL4030_CHIP_KEYPAD, - TWL4030_KEYPAD_KEYP_ISR1 + (2 * i), &intr); - - /* no event */ - if (!(intr&1)) - continue; - - /* read the key state */ - twl4030_i2c_read(TWL4030_CHIP_KEYPAD, - TWL4030_KEYPAD_FULL_CODE_7_0, keys, 8); - - /* cut out modifier keys from the keystate */ - mods = keys[4] >> 4; - keys[4] &= 0x0f; - - for (c = 0; c < 8; c++) { - - /* get newly pressed keys only */ - dk = ((keys[c] ^ old_keys[c])&keys[c]); - old_keys[c] = keys[c]; - - /* fill the keybuf */ - for (r = 0; r < 8; r++) { - if (dk&1) - rx51_kp_fill((c*8)+r, mods); - dk = dk >> 1; - } - - } - - } - - /* localy unlock twl4030 i2c bus */ - test_and_clear_bit(0, &twl_i2c_lock); - - return (KEYBUF_SIZE + keybuf_tail - keybuf_head)%KEYBUF_SIZE; -} - -/* - * Routine: rx51_kp_getc - * Description: Get last pressed key (from buffer). - */ -int rx51_kp_getc(struct stdio_dev *sdev) -{ - keybuf_head %= KEYBUF_SIZE; - while (!rx51_kp_tstc(sdev)) - WATCHDOG_RESET(); - return keybuf[keybuf_head++]; -} - -static const struct mmc_config rx51_mmc_cfg = { - .host_caps = MMC_MODE_4BIT | MMC_MODE_HS_52MHz | MMC_MODE_HS, - .f_min = 400000, - .f_max = 52000000, - .b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT, - .voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195, -}; - -static const struct omap_hsmmc_plat rx51_mmc[] = { - { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC1_BASE }, - { rx51_mmc_cfg, (struct hsmmc *)OMAP_HSMMC2_BASE }, -}; - -U_BOOT_DRVINFOS(rx51_mmc) = { - { "omap_hsmmc", &rx51_mmc[0] }, - { "omap_hsmmc", &rx51_mmc[1] }, -}; - -static const struct omap_i2c_plat rx51_i2c[] = { - { I2C_BASE1, 100000, OMAP_I2C_REV_V1 }, - { I2C_BASE2, 100000, OMAP_I2C_REV_V1 }, - { I2C_BASE3, 100000, OMAP_I2C_REV_V1 }, -}; - -U_BOOT_DRVINFOS(rx51_i2c) = { - { "i2c_omap", &rx51_i2c[0] }, - { "i2c_omap", &rx51_i2c[1] }, - { "i2c_omap", &rx51_i2c[2] }, -}; diff --git a/board/nokia/rx51/tag_omap.h b/board/nokia/rx51/tag_omap.h deleted file mode 100644 index b99d6b7de17f..000000000000 --- a/board/nokia/rx51/tag_omap.h +++ /dev/null @@ -1,294 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * (C) Copyright 2011-2012 - * Pali Roh?r - * - * (C) Copyright 2011 - * marcel at mesa.nl, Mesa Consulting B.V. - * - * (C) Copyright 2004-2005 - * Nokia Corporation - */ - - -/* - * Code copied from maemo kernel 2.6.28 file - * arch/arm/plat-omap/include/mach/board.h - * - * Information structures for board-specific data - * - * Copyright (C) 2004 Nokia Corporation - * Written by Juha Yrj?l? - */ - -/* Different peripheral ids */ -#define OMAP_TAG_CLOCK 0x4f01 -#define OMAP_TAG_SERIAL_CONSOLE 0x4f03 -#define OMAP_TAG_USB 0x4f04 -#define OMAP_TAG_LCD 0x4f05 -#define OMAP_TAG_GPIO_SWITCH 0x4f06 -#define OMAP_TAG_UART 0x4f07 -#define OMAP_TAG_FBMEM 0x4f08 -#define OMAP_TAG_STI_CONSOLE 0x4f09 -#define OMAP_TAG_CAMERA_SENSOR 0x4f0a -#define OMAP_TAG_PARTITION 0x4f0b -#define OMAP_TAG_TEA5761 0x4f10 -#define OMAP_TAG_TMP105 0x4f11 - -#define OMAP_TAG_BOOT_REASON 0x4f80 -#define OMAP_TAG_FLASH_PART_STR 0x4f81 -#define OMAP_TAG_VERSION_STR 0x4f82 - -#define OMAP_TAG_NOKIA_BT 0x4e01 -#define OMAP_TAG_WLAN_CX3110X 0x4e02 -#define OMAP_TAG_CBUS 0x4e03 -#define OMAP_TAG_EM_ASIC_BB5 0x4e04 - - -struct omap_clock_config { - /* 0 for 12 MHz, 1 for 13 MHz and 2 for 19.2 MHz */ - u8 system_clock_type; -}; - -struct omap_serial_console_config { - u8 console_uart; - u32 console_speed; -}; - -struct omap_sti_console_config { - unsigned enable:1; - u8 channel; -}; - -struct omap_usb_config { - /* Configure drivers according to the connectors on your board: - * - "A" connector (rectagular) - * ... for host/OHCI use, set "register_host". - * - "B" connector (squarish) or "Mini-B" - * ... for device/gadget use, set "register_dev". - * - "Mini-AB" connector (very similar to Mini-B) - * ... for OTG use as device OR host, initialize "otg" - */ - unsigned register_host:1; - unsigned register_dev:1; - u8 otg; /* port number, 1-based: usb1 == 2 */ - - u8 hmc_mode; - - /* implicitly true if otg: host supports remote wakeup? */ - u8 rwc; - - /* signaling pins used to talk to transceiver on usbN: - * 0 == usbN unused - * 2 == usb0-only, using internal transceiver - * 3 == 3 wire bidirectional - * 4 == 4 wire bidirectional - * 6 == 6 wire unidirectional (or TLL) - */ - u8 pins[3]; -}; - -struct omap_lcd_config { - char panel_name[16]; - char ctrl_name[16]; - s16 nreset_gpio; - u8 data_lines; -}; - -struct omap_fbmem_config { - u32 start; - u32 size; -}; - -struct omap_gpio_switch_config { - char name[12]; - u16 gpio; - u8 flags:4; - u8 type:4; - unsigned int key_code:24; /* Linux key code */ -}; - -struct omap_uart_config { - /* Bit field of UARTs present; bit 0 --> UART1 */ - unsigned int enabled_uarts; -}; - -struct omap_tea5761_config { - u16 enable_gpio; -}; - -struct omap_partition_config { - char name[16]; - unsigned int size; - unsigned int offset; - /* same as in include/linux/mtd/partitions.h */ - unsigned int mask_flags; -}; - -struct omap_flash_part_str_config { - char part_table[0]; -}; - -struct omap_boot_reason_config { - char reason_str[12]; -}; - -struct omap_version_config { - char component[12]; - char version[12]; -}; - -/* - * Code copied from maemo kernel 2.6.28 file - * arch/arm/plat-omap/include/mach/board-nokia.h - * - * Information structures for Nokia-specific board config data - * - * Copyright (C) 2005 Nokia Corporation - */ - -struct omap_bluetooth_config { - u8 chip_type; - u8 bt_wakeup_gpio; - u8 host_wakeup_gpio; - u8 reset_gpio; - u8 bt_uart; - u8 bd_addr[6]; - u8 bt_sysclk; -}; - -struct omap_wlan_cx3110x_config { - u8 chip_type; - u8 reserverd; - s16 power_gpio; - s16 irq_gpio; - s16 spi_cs_gpio; -}; - -struct omap_cbus_config { - s16 clk_gpio; - s16 dat_gpio; - s16 sel_gpio; -}; - -struct omap_em_asic_bb5_config { - s16 retu_irq_gpio; - s16 tahvo_irq_gpio; -}; - -/* - * omap_tag handling - * - * processing omap tag structures - * - * Copyright (C) 2011 marcel at mesa.nl, Mesa Consulting B.V. - * Copyright (C) 2012 Pali Roh?r - */ - -/* TI OMAP specific information */ -#define ATAG_BOARD 0x414f4d50 - -struct tag_omap_header { - u16 tag; - u16 size; -}; - -struct tag_omap { - struct tag_omap_header hdr; - union { - struct omap_clock_config clock; - struct omap_serial_console_config serial_console; - struct omap_sti_console_config sti_console; - struct omap_usb_config usb; - struct omap_lcd_config lcd; - struct omap_fbmem_config fbmem; - struct omap_gpio_switch_config gpio_switch; - struct omap_uart_config uart; - struct omap_tea5761_config tea5761; - struct omap_partition_config partition; - struct omap_flash_part_str_config flash_part_str; - struct omap_boot_reason_config boot_reason; - struct omap_version_config version; - struct omap_bluetooth_config bluetooth; - struct omap_wlan_cx3110x_config wlan_cx3110x; - struct omap_cbus_config cbus; - struct omap_em_asic_bb5_config em_asic_bb5; - } u; -}; - -#define tag_omap_next(t) ((struct tag_omap *)((u8 *)(t) + \ - (t)->hdr.size + sizeof(struct tag_omap_header))) - -#define OMAP_TAG_HEADER_CONFIG(config, type) \ - .hdr.tag = config, \ - .hdr.size = sizeof(struct type) - -#define OMAP_TAG_UART_CONFIG(p1) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_UART, omap_uart_config), \ - .u.uart.enabled_uarts = p1, \ - } - -#define OMAP_TAG_SERIAL_CONSOLE_CONFIG(p1, p2) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_SERIAL_CONSOLE, \ - omap_serial_console_config), \ - .u.serial_console.console_uart = p1, \ - .u.serial_console.console_speed = p2, \ - } - -#define OMAP_TAG_LCD_CONFIG(p1, p2, p3, p4) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_LCD, omap_lcd_config), \ - .u.lcd.panel_name = p1, \ - .u.lcd.ctrl_name = p2, \ - .u.lcd.nreset_gpio = p3, \ - .u.lcd.data_lines = p4, \ - } - -#define OMAP_TAG_GPIO_SWITCH_CONFIG(p1, p2, p3, p4, p5) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_GPIO_SWITCH, \ - omap_gpio_switch_config), \ - .u.gpio_switch.name = p1, \ - .u.gpio_switch.gpio = p2, \ - .u.gpio_switch.flags = p3, \ - .u.gpio_switch.type = p4, \ - .u.gpio_switch.key_code = p5, \ - } - -#define OMAP_TAG_WLAN_CX3110X_CONFIG(p1, p2, p3, p4, p5) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_WLAN_CX3110X, \ - omap_wlan_cx3110x_config), \ - .u.wlan_cx3110x.chip_type = p1, \ - .u.wlan_cx3110x.reserverd = p2, \ - .u.wlan_cx3110x.power_gpio = p3, \ - .u.wlan_cx3110x.irq_gpio = p4, \ - .u.wlan_cx3110x.spi_cs_gpio = p5, \ - } - -#define OMAP_TAG_PARTITION_CONFIG(p1, p2, p3, p4) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_PARTITION, \ - omap_partition_config), \ - .u.partition.name = p1, \ - .u.partition.size = p2, \ - .u.partition.offset = p3, \ - .u.partition.mask_flags = p4, \ - } - -#define OMAP_TAG_BOOT_REASON_CONFIG(p1) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_BOOT_REASON, \ - omap_boot_reason_config), \ - .u.boot_reason.reason_str = p1, \ - } - -#define OMAP_TAG_VERSION_STR_CONFIG(p1, p2) \ - { \ - OMAP_TAG_HEADER_CONFIG(OMAP_TAG_VERSION_STR, \ - omap_version_config), \ - .u.version.component = p1, \ - .u.version.version = p2, \ - } diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig deleted file mode 100644 index f79613260f3e..000000000000 --- a/configs/nokia_rx51_defconfig +++ /dev/null @@ -1,69 +0,0 @@ -CONFIG_ARM=y -# CONFIG_SYS_THUMB_BUILD is not set -CONFIG_ARCH_OMAP2PLUS=y -CONFIG_SYS_TEXT_BASE=0x80008000 -CONFIG_NR_DRAM_BANKS=2 -CONFIG_TARGET_NOKIA_RX51=y -CONFIG_OPTIMIZE_INLINING=y -# CONFIG_SYS_MALLOC_F is not set -# CONFIG_FIT is not set -CONFIG_BOOTDELAY=30 -CONFIG_AUTOBOOT_KEYED=y -CONFIG_AUTOBOOT_MENU_SHOW=y -CONFIG_USE_PREBOOT=y -CONFIG_PREBOOT="run preboot" -CONFIG_CONSOLE_MUX=y -# CONFIG_SYS_DEVICE_NULLDEV is not set -CONFIG_HUSH_PARSER=y -CONFIG_SYS_PROMPT="Nokia RX-51 # " -# CONFIG_CMD_BDI is not set -# CONFIG_BOOTM_NETBSD is not set -# CONFIG_BOOTM_PLAN9 is not set -# CONFIG_BOOTM_RTEMS is not set -# CONFIG_BOOTM_VXWORKS is not set -CONFIG_CMD_BOOTMENU=y -# CONFIG_CMD_ELF is not set -# CONFIG_CMD_IMI is not set -# CONFIG_CMD_XIMG is not set -# CONFIG_CMD_EXPORTENV is not set -# CONFIG_CMD_IMPORTENV is not set -# CONFIG_CMD_EDITENV is not set -# CONFIG_CMD_SAVEENV is not set -# CONFIG_CMD_ENV_EXISTS is not set -# CONFIG_CMD_FLASH is not set -CONFIG_CMD_GPIO=y -CONFIG_CMD_I2C=y -CONFIG_CMD_MMC=y -CONFIG_CMD_MTD=y -CONFIG_CMD_ONENAND=y -# CONFIG_CMD_SETEXPR is not set -# CONFIG_CMD_SLEEP is not set -CONFIG_CMD_EXT2=y -CONFIG_CMD_EXT4=y -CONFIG_CMD_FAT=y -CONFIG_MTDIDS_DEFAULT="onenand0=onenand" -CONFIG_MTDPARTS_DEFAULT="mtdparts=onenand:128k(bootloader)ro,384k(config),256k(log),2m(kernel),2m(initfs),-(rootfs)" -CONFIG_ENV_OVERWRITE=y -CONFIG_SYS_RELOC_GD_ENV_ADDR=y -# CONFIG_NET is not set -CONFIG_DM=y -# CONFIG_DM_WARN is not set -# CONFIG_DM_DEVICE_REMOVE is not set -# CONFIG_DM_SEQ_ALIAS is not set -# CONFIG_BLOCK_CACHE is not set -CONFIG_DM_I2C=y -# CONFIG_MMC_HW_PARTITIONING is not set -# CONFIG_MMC_VERBOSE is not set -CONFIG_MMC_OMAP_HS=y -CONFIG_MTD=y -CONFIG_CONS_INDEX=3 -CONFIG_SYS_NS16550=y -CONFIG_SPI=y -CONFIG_USB=y -CONFIG_USB_MUSB_UDC=y -CONFIG_USB_OMAP3=y -CONFIG_CFB_CONSOLE=y -CONFIG_CFB_CONSOLE_ANSI=y -# CONFIG_VGA_AS_SINGLE_DEVICE is not set -CONFIG_SPLASH_SCREEN=y -# CONFIG_GZIP is not set diff --git a/doc/README.nokia_rx51 b/doc/README.nokia_rx51 deleted file mode 100644 index 84d1912ddd2b..000000000000 --- a/doc/README.nokia_rx51 +++ /dev/null @@ -1,94 +0,0 @@ -Board: Nokia RX-51 aka N900 - -This board definition results in a u-boot.bin which can be chainloaded -from NOLO in qemu or on a real N900. It does very little hardware config -because NOLO has already configured the board. Only needed is enabling -internal eMMC memory via twl4030 regulator which is not enabled by NOLO. - -NOLO is expecting a kernel image and will treat any image it finds in -onenand as such. This u-boot is intended to be flashed to the N900 like -a kernel. In order to transparently boot the original kernel, it will be -appended to u-boot.bin at 0x40000. NOLO will load the entire image into -(random) memory and execute u-boot, which saves hw revision, boot reason -and boot mode ATAGs set by NOLO. Then the bootscripts will attempt to load -uImage or boot.scr from a fat, ext2/ext3 or ext4 filesystem in external -SD card or internal eMMC memory. If this fails or keyboard is closed then -the appended kernel image will be booted using some generated and some -stored ATAGs (see boot order). - -For generating combined image of u-boot and kernel there is a simple script -called u-boot-gen-combined. It is available in following repository: - - https://github.com/pali/u-boot-maemo - -There is support for hardware watchdog. Hardware watchdog is started by -NOLO so u-boot must kick watchdog to prevent reboot device (but not very -often, max every 2 seconds). There is also support for framebuffer display -output with ANSI escape codes and the N900 HW keyboard input. - -When U-Boot is starting it enable IBE bit in Auxiliary Control Register, -which is needed for Thumb-2 ISA support. It is workaround for errata 430973. - -Default boot order: - - * 0. if keyboard is closed boot automatically attached kernel image - * 1. try boot from external SD card - * 2. try boot from internal eMMC memory - * 3. try boot from attached kernel image - -Boot from SD or eMMC in this order: - - * 1. - * 1.1 find boot.scr on first fat partition - * 1.2 find uImage on first fat partition - * 1.3 same order for 2. - 4. fat partition - * 2. same as 1. but for ext2/3 partition - * 3. same as 1. but for ext4 partition - - -Available additional commands/variables: - - * run sdboot - Boot from external SD card (see boot order) - * run emmcboot - Boot from internal eMMC memory (see boot order) - * run attachboot - Boot attached kernel image (attached to U-Boot binary) - - * run scriptload - Load boot script ${mmcscriptfile} - * run scriptboot - Run loaded boot script - * run kernload - Load kernel image ${mmckernfile} - * run initrdload - Load initrd image ${mmcinitrdfile} - * run kernboot - Boot loaded kernel image - * run kerninitrdboot - Boot loaded kernel image with loaded initrd image - - * run trymmcscriptboot - Try to load and boot script ${mmcscriptfile} - * run trymmckernboot - Try to load and boot kernel image ${mmckernfile} - * run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile} - with initrd image ${mmcinitrdfile} - -Additional variables for loading files from mmc: - - * mmc ${mmcnum} (0 - external, 1 - internal) - * partition number ${mmcpart} (1 - 4) - * parition type ${mmctype} (fat, ext2, ext4) - -Additional variables for booting kernel: - - * setup_omap_atag - Add OMAP table into atags structure (needs maemo kernel) - * setup_console_atag - Enable serial console in OMAP table - * setup_boot_reason_atag - Change boot reason in OMAP table - * setup_boot_mode_atag - Change boot mode in OMAP table - - Variable setup_omap_atag is automatically set when booting attached kernel. - When variable setup_omap_atag is set, variable setup_console_atag is unset - and u-boot standard output is set to serial then setup_console_atag is - automatically set to 1. So output from Maemo kernel would go to serial port. - -UBIFS support: - - UBIFS support is disabled, because U-Boot image is too big and cannot be - flashed with attached zImage to RX-51 kernel nand area. For enabling UBIFS - support add following lines into file configs/nokia_rx51_defconfig - - CONFIG_CMD_UBI=y - CONFIG_CMD_UBIFS=y - CONFIG_MTD_UBI_FASTMAP=y - CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1 diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h deleted file mode 100644 index 23368de624e1..000000000000 --- a/include/configs/nokia_rx51.h +++ /dev/null @@ -1,249 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * (C) Copyright 2011-2012 - * Pali Roh?r - * - * (C) Copyright 2010 - * Alistair Buxton - * - * Derived from Beagle Board code: - * (C) Copyright 2006-2008 - * Texas Instruments. - * Richard Woodruff - * Syed Mohammed Khasim - * - * Configuration settings for the Nokia RX-51 aka N900. - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - -/* - * High Level Configuration Options - */ -#define CONFIG_SYS_L2CACHE_OFF /* pretend there is no L2 CACHE */ - -#define CONFIG_MACH_TYPE MACH_TYPE_NOKIA_RX51 - -#include /* get chip and board defs */ -#include -#include -#include - -/* Clock Defines */ -#define V_OSCK 26000000 /* Clock output from T2 */ -#define V_SCLK (V_OSCK >> 1) - -#define CONFIG_SKIP_LOWLEVEL_INIT /* X-Loader set everything up */ - -#define CONFIG_CMDLINE_TAG /* enable passing kernel command line string */ -#define CONFIG_INITRD_TAG /* enable passing initrd */ -#define CONFIG_REVISION_TAG /* enable passing revision tag*/ -#define CONFIG_SETUP_MEMORY_TAGS /* enable memory tag */ - -/* - * Size of malloc() pool - */ -#define CONFIG_UBI_SIZE (512 << 10) -#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + CONFIG_UBI_SIZE + \ - (128 << 10)) - -/* - * Hardware drivers - */ - -/* - * NS16550 Configuration - */ -#define V_NS16550_CLK 48000000 /* 48MHz (APLL96/2) */ - -#define CONFIG_SYS_NS16550_SERIAL -#define CONFIG_SYS_NS16550_REG_SIZE (-4) -#define CONFIG_SYS_NS16550_CLK V_NS16550_CLK - -/* - * select serial console configuration - */ -#define CONFIG_SYS_NS16550_COM3 OMAP34XX_UART3 - -#define CONFIG_SYS_BAUDRATE_TABLE { 4800, 9600, 19200, 38400, 57600, 115200 } - -/* USB device configuration */ -#define CONFIG_USB_DEVICE -#define CONFIG_USB_TTY -#define CONFIG_USBD_VENDORID 0x0421 -#define CONFIG_USBD_PRODUCTID_CDCACM 0x01c8 -#define CONFIG_USBD_PRODUCTID_GSERIAL 0x01c8 -#define CONFIG_USBD_MANUFACTURER "Nokia" -#define CONFIG_USBD_PRODUCT_NAME "N900 (U-Boot)" - -#define GPIO_SLIDE 71 - -/* - * Board ONENAND Info. - */ - -#define CONFIG_SYS_ONENAND_BASE ONENAND_MAP - -/* Watchdog support */ -#define CONFIG_HW_WATCHDOG - -/* - * Framebuffer - */ -/* Video console */ -#define CONFIG_VIDEO_LOGO -#define VIDEO_FB_16BPP_PIXEL_SWAP -#define VIDEO_FB_16BPP_WORD_SWAP - -/* functions for cfb_console */ -#define VIDEO_KBD_INIT_FCT rx51_kp_init() -#define VIDEO_TSTC_FCT rx51_kp_tstc -#define VIDEO_GETC_FCT rx51_kp_getc -#ifndef __ASSEMBLY__ -struct stdio_dev; -int rx51_kp_init(void); -int rx51_kp_tstc(struct stdio_dev *sdev); -int rx51_kp_getc(struct stdio_dev *sdev); -#endif - -/* Environment information */ -#define CONFIG_EXTRA_ENV_SETTINGS \ - "usbtty=cdc_acm\0" \ - "stdin=usbtty,serial,vga\0" \ - "stdout=usbtty,serial,vga\0" \ - "stderr=usbtty,serial,vga\0" \ - "slide=gpio input " __stringify(GPIO_SLIDE) "\0" \ - "switchmmc=mmc dev ${mmcnum}\0" \ - "kernaddr=0x82008000\0" \ - "initrdaddr=0x84008000\0" \ - "scriptaddr=0x86008000\0" \ - "fileload=${mmctype}load mmc ${mmcnum}:${mmcpart} " \ - "${loadaddr} ${mmcfile}\0" \ - "kernload=setenv loadaddr ${kernaddr};" \ - "setenv mmcfile ${mmckernfile};" \ - "run fileload\0" \ - "initrdload=setenv loadaddr ${initrdaddr};" \ - "setenv mmcfile ${mmcinitrdfile};" \ - "run fileload\0" \ - "scriptload=setenv loadaddr ${scriptaddr};" \ - "setenv mmcfile ${mmcscriptfile};" \ - "run fileload\0" \ - "scriptboot=echo Running ${mmcscriptfile} from mmc " \ - "${mmcnum}:${mmcpart} ...; source ${scriptaddr}\0" \ - "kernboot=echo Booting ${mmckernfile} from mmc " \ - "${mmcnum}:${mmcpart} ...; bootm ${kernaddr}\0" \ - "kerninitrdboot=echo Booting ${mmckernfile} ${mmcinitrdfile} from mmc "\ - "${mmcnum}:${mmcpart} ...; bootm ${kernaddr} ${initrdaddr}\0" \ - "attachboot=echo Booting attached kernel image ...;" \ - "setenv setup_omap_atag 1;" \ - "bootm ${attkernaddr};" \ - "setenv setup_omap_atag\0" \ - "trymmcscriptboot=if run switchmmc; then " \ - "if run scriptload; then " \ - "run scriptboot;" \ - "fi;" \ - "fi\0" \ - "trymmckernboot=if run switchmmc; then " \ - "if run kernload; then " \ - "run kernboot;" \ - "fi;" \ - "fi\0" \ - "trymmckerninitrdboot=if run switchmmc; then " \ - "if run initrdload; then " \ - "if run kernload; then " \ - "run kerninitrdboot;" \ - "fi;" \ - "fi; " \ - "fi\0" \ - "trymmcpartboot=setenv mmcscriptfile boot.scr; run trymmcscriptboot;" \ - "setenv mmckernfile uImage; run trymmckernboot\0" \ - "trymmcallpartboot=setenv mmcpart 1; run trymmcpartboot;" \ - "setenv mmcpart 2; run trymmcpartboot;" \ - "setenv mmcpart 3; run trymmcpartboot;" \ - "setenv mmcpart 4; run trymmcpartboot\0" \ - "trymmcboot=if run switchmmc; then " \ - "setenv mmctype fat;" \ - "run trymmcallpartboot;" \ - "setenv mmctype ext4;" \ - "run trymmcallpartboot;" \ - "fi\0" \ - "emmcboot=setenv mmcnum 1; run trymmcboot\0" \ - "sdboot=setenv mmcnum 0; run trymmcboot\0" \ - "preboot=setenv mmcnum 1; setenv mmcpart 1;" \ - "setenv mmcscriptfile bootmenu.scr;" \ - "if run switchmmc; then " \ - "setenv mmctype fat;" \ - "if run scriptload; then run scriptboot; else " \ - "setenv mmctype ext4;" \ - "if run scriptload; then run scriptboot; fi;" \ - "fi;" \ - "fi;" \ - "if run slide; then true; else " \ - "setenv bootmenu_delay 0;" \ - "setenv bootdelay 0;" \ - "fi\0" \ - "menucmd=bootmenu\0" \ - "bootmenu_0=Attached kernel=run attachboot\0" \ - "bootmenu_1=Internal eMMC=run emmcboot\0" \ - "bootmenu_2=External SD card=run sdboot\0" \ - "bootmenu_3=U-Boot boot order=boot\0" \ - "bootmenu_delay=30\0" \ - "" - -#define CONFIG_POSTBOOTMENU \ - "echo;" \ - "echo Extra commands:;" \ - "echo run sdboot - Boot from SD card slot.;" \ - "echo run emmcboot - Boot internal eMMC memory.;" \ - "echo run attachboot - Boot attached kernel image.;" \ - "echo" - -#define CONFIG_BOOTCOMMAND \ - "run sdboot;" \ - "run emmcboot;" \ - "run attachboot;" \ - "echo" - -/* default load address */ -#define CONFIG_SYS_LOAD_ADDR (OMAP34XX_SDRC_CS0) - -/* - * OMAP3 has 12 GP timers, they can be driven by the system clock - * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK). - * This rate is divided by a local divisor. - */ -#define CONFIG_SYS_TIMERBASE (OMAP34XX_GPT2) -#define CONFIG_SYS_PTV 2 /* Divisor: 2^(PTV+1) => 8 */ - -/* - * Physical Memory Map - */ -#define PHYS_SDRAM_1 OMAP34XX_SDRC_CS0 - -/* - * FLASH and environment organization - */ - -#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 -#define CONFIG_SYS_INIT_RAM_ADDR 0x4020f800 -#define CONFIG_SYS_INIT_RAM_SIZE 0x800 -#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ - CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) - -/* - * Attached kernel image - */ - -#define SDRAM_SIZE 0x10000000 /* 256 MB */ -#define SDRAM_END (CONFIG_SYS_SDRAM_BASE + SDRAM_SIZE) - -#define IMAGE_MAXSIZE 0x1FF800 /* 2 MB - 2 kB */ -#define KERNEL_OFFSET 0x40000 /* 256 kB */ -#define KERNEL_MAXSIZE (IMAGE_MAXSIZE-KERNEL_OFFSET) -#define KERNEL_ADDRESS (SDRAM_END-KERNEL_MAXSIZE) - -/* Reserve protected RAM for attached kernel */ -#define CONFIG_PRAM ((KERNEL_MAXSIZE >> 10)+1) - -#endif /* __CONFIG_H */ diff --git a/test/nokia_rx51_test.sh b/test/nokia_rx51_test.sh deleted file mode 100755 index ee45e8d6dd58..000000000000 --- a/test/nokia_rx51_test.sh +++ /dev/null @@ -1,296 +0,0 @@ -#!/bin/bash -e -# SPDX-License-Identifier: GPL-2.0+ -# (C) 2020 Pali Roh?r - -# External tools needed for this test: -echo ' - wget - git - truncate - tar - dpkg - dd - make - gcc - arm-linux-gnueabi-gcc - fakeroot (homepage http://fakeroot-ng.lingnu.com/) - mcopy (from mtools, homepage http://www.gnu.org/software/mtools/) - mformat (from mtools, homepage http://www.gnu.org/software/mtools/) - /usr/sbin/mkfs.ubifs (from mtd-utils, homepage http://www.linux-mtd.infradead.org/) - /usr/sbin/ubinize (from mtd-utils, homepage http://www.linux-mtd.infradead.org/) -' | while read tool info; do - if test -z "$tool"; then continue; fi - if ! which $tool 1>/dev/null 2>&1; then - echo "Tool $tool was not found and is required to run this test" - echo "First install $tool $info" - exit 1 - fi -done || exit 1 - -echo -echo "============================================================" -echo "========== Compiling U-Boot for Nokia RX-51 board ==========" -echo "============================================================" -echo - -# First compile u-boot.bin binary for Nokia RX-51 board -make nokia_rx51_config -make -j4 u-boot.bin ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- - -# And then do all stuff in temporary directory -mkdir -p nokia_rx51_tmp -cd nokia_rx51_tmp - -test -f mkimage || ln -s ../tools/mkimage . -test -f u-boot.bin || ln -s ../u-boot.bin . - -echo -echo "==========================================================================" -echo "========== Downloading and compiling qemu from qemu-linaro fork ==========" -echo "==========================================================================" -echo - -# Download and compile linaro version qemu which has support for n900 machine -# Last working commit is 8f8d8e0796efe1a6f34cdd83fb798f3c41217ec1 -if ! test -f qemu-system-arm; then - test -d qemu-linaro || git clone https://git.linaro.org/qemu/qemu-linaro.git - cd qemu-linaro - git checkout 8f8d8e0796efe1a6f34cdd83fb798f3c41217ec1 - ./configure --enable-system --target-list=arm-softmmu --disable-sdl --disable-gtk --disable-curses --audio-drv-list= --audio-card-list= --disable-werror --disable-xen --disable-xen-pci-passthrough --disable-brlapi --disable-vnc --disable-curl --disable-slirp --disable-kvm --disable-user --disable-linux-user --disable-bsd-user --disable-guest-base --disable-uuid --disable-vde --disable-linux-aio --disable-cap-ng --disable-attr --disable-blobs --disable-docs --disable-spice --disable-libiscsi --disable-smartcard-nss --disable-usb-redir --disable-guest-agent --disable-seccomp --disable-glusterfs --disable-nptl --disable-fdt - make -j4 - cd .. - ln -s qemu-linaro/arm-softmmu/qemu-system-arm . -fi - -echo -echo "===================================================" -echo "========== Downloading external binaries ==========" -echo "===================================================" -echo - -# Download qflasher and nolo images -# This is proprietary qemu flasher tool with first stage images, but license allows non-commercial redistribution -wget -c http://repository.maemo.org/qemu-n900/qemu-n900.tar.gz -tar -xf qemu-n900.tar.gz - -# Download Maemo script u-boot-gen-combined -if ! test -f u-boot-gen-combined; then - test -d u-boot-maemo || git clone https://github.com/pali/u-boot-maemo.git - chmod +x u-boot-maemo/debian/u-boot-gen-combined - ln -s u-boot-maemo/debian/u-boot-gen-combined . -fi - -# Download Maemo fiasco kernel -wget -c http://repository.maemo.org/pool/maemo5.0/free/k/kernel/kernel_2.6.28-20103103+0m5_armel.deb -dpkg -x kernel_2.6.28-20103103+0m5_armel.deb kernel_2.6.28 - -# Download Maemo libc -wget -c http://repository.maemo.org/pool/maemo5.0/free/g/glibc/libc6_2.5.1-1eglibc27+0m5_armel.deb -dpkg -x libc6_2.5.1-1eglibc27+0m5_armel.deb libc6_2.5.1 - -# Download Maemo busybox -wget -c http://repository.maemo.org/pool/maemo5.0/free/b/busybox/busybox_1.10.2.legal-1osso30+0m5_armel.deb -dpkg -x busybox_1.10.2.legal-1osso30+0m5_armel.deb busybox_1.10.2 - -echo -echo "=======================================" -echo "========== Generating images ==========" -echo "=======================================" -echo - -# Generate rootfs directory -mkdir -p rootfs -mkdir -p rootfs/dev/ -mkdir -p rootfs/bin/ -mkdir -p rootfs/sbin/ -mkdir -p rootfs/lib/ -cp -a busybox_1.10.2/bin/busybox rootfs/bin/ -cp -a libc6_2.5.1/lib/ld-linux.so.3 rootfs/lib/ -cp -a libc6_2.5.1/lib/ld-2.5.so rootfs/lib/ -cp -a libc6_2.5.1/lib/libc.so.6 rootfs/lib/ -cp -a libc6_2.5.1/lib/libc-2.5.so rootfs/lib/ -cp -a libc6_2.5.1/lib/libcrypt.so.1 rootfs/lib/ -cp -a libc6_2.5.1/lib/libcrypt-2.5.so rootfs/lib/ -test -f rootfs/bin/sh || ln -sf busybox rootfs/bin/sh -test -f rootfs/sbin/poweroff || ln -sf ../bin/busybox rootfs/sbin/poweroff -cat > rootfs/sbin/preinit << EOF -#!/bin/sh -echo -echo "Successfully booted" -echo -/sbin/poweroff -f -EOF -chmod +x rootfs/sbin/preinit - -# Generate ubi config file for ubi rootfs image -cat > ubi.ini << EOF -[rootfs] -mode=ubi -image=ubifs.img -vol_id=0 -vol_size=160MiB -vol_type=dynamic -vol_name=rootfs -vol_alignment=1 -vol_flags=autoresize -EOF - -# Generate ubi rootfs image from rootfs directory -# NOTE: Character device on host filesystem can be created only by root -# But we do not need it on host filesystem, just in ubifs image -# So run mknod and mkfs.ubifs commands under fakeroot program -# which via LD_PRELOAD simulate mknod() and stat() functions -# so mkfs.ubifs will see dev/console as character device and -# put it correctly as character device into final ubifs image -# Therefore we can run whole script as non-root nobody user -fakeroot sh -c ' - rm -f rootfs/dev/console; - mknod rootfs/dev/console c 5 1; - /usr/sbin/mkfs.ubifs -m 2048 -e 129024 -c 2047 -r rootfs ubifs.img; -' -/usr/sbin/ubinize -o ubi.img -p 128KiB -m 2048 -s 512 ubi.ini - -# Generate bootmenu for U-Boot serial console testing -cat > bootmenu_uboot << EOF -setenv bootmenu_0 'Serial console test=echo; echo "Testing serial console"; echo; echo "Successfully booted"; echo; poweroff'; -setenv bootmenu_1; -setenv bootmenu_delay 1; -setenv bootdelay 1; -EOF -./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_uboot -d bootmenu_uboot bootmenu_uboot.scr - -# Generate bootmenu for eMMC booting -cat > bootmenu_emmc << EOF -setenv bootmenu_0 'uImage-2.6.28-omap1 from eMMC=setenv mmcnum 1; setenv mmcpart 1; setenv mmctype fat; setenv bootargs; setenv setup_omap_atag 1; setenv mmckernfile uImage-2.6.28-omap1; run trymmckernboot'; -setenv bootmenu_1; -setenv bootmenu_delay 1; -setenv bootdelay 1; -EOF -./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_emmc -d bootmenu_emmc bootmenu_emmc.scr - -# Generate bootmenu for OneNAND booting -cat > bootmenu_nand << EOF -setenv bootmenu_0 'uImage-2.6.28-omap1 from OneNAND=mtd read initfs \${kernaddr}; setenv bootargs; setenv setup_omap_atag 1; bootm \${kernaddr}'; -setenv bootmenu_1; -setenv bootmenu_delay 1; -setenv bootdelay 1; -EOF -./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_nand -d bootmenu_nand bootmenu_nand.scr - -# Generate combined image from u-boot and Maemo fiasco kernel -dd if=kernel_2.6.28/boot/zImage-2.6.28-20103103+0m5.fiasco of=zImage-2.6.28-omap1 skip=95 bs=1 -./mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n zImage-2.6.28-omap1 -d zImage-2.6.28-omap1 uImage-2.6.28-omap1 -./u-boot-gen-combined u-boot.bin uImage-2.6.28-omap1 combined.bin - -# Generate combined hack image from u-boot and Maemo fiasco kernel (kernel starts@2MB offset and qflasher puts 2kB header before supplied image) -cp u-boot.bin combined_hack.bin -dd if=uImage-2.6.28-omap1 of=combined_hack.bin bs=1024 seek=$((2048-2)) - -# Generate FAT32 eMMC image for U-Boot serial console testing -truncate -s 50MiB emmc_uboot.img -mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_uboot.img -mcopy bootmenu_uboot.scr ::/bootmenu.scr -i emmc_uboot.img - -# Generate FAT32 eMMC image for eMMC booting -truncate -s 50MiB emmc_emmc.img -mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_emmc.img -mcopy uImage-2.6.28-omap1 ::/uImage-2.6.28-omap1 -i emmc_emmc.img -mcopy bootmenu_emmc.scr ::/bootmenu.scr -i emmc_emmc.img - -# Generate FAT32 eMMC image for OneNAND booting -truncate -s 50MiB emmc_nand.img -mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_nand.img -mcopy bootmenu_nand.scr ::/bootmenu.scr -i emmc_nand.img - -# Generate MTD image for U-Boot serial console testing -rm -f mtd_uboot.img -./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k u-boot.bin -m rx51 -o mtd_uboot.img - -# Generate MTD image for RAM booting from bootloader nolo images, compiled image and rootfs image -rm -f mtd_ram.img -./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k combined.bin -r ubi.img -m rx51 -o mtd_ram.img - -# Generate MTD image for eMMC booting from bootloader nolo images, u-boot image and rootfs image -rm -f mtd_emmc.img -./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k u-boot.bin -r ubi.img -m rx51 -o mtd_emmc.img - -# Generate MTD image for OneNAND booting from bootloader nolo images, combined hacked image and rootfs image -# Kernel image is put into initfs area, but qflasher reject to copy kernel image into initfs area because it does not have initfs signature -# This is hack to workaround this problem, tell qflasher that kernel area for u-boot is bigger and put big combined hacked image (u-boot + kernel with correct offset) -rm -f mtd_nand.img -./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k combined_hack.bin -r ubi.img -m rx51 -p k=4094,i=2 -o mtd_nand.img - -echo -echo "======================================================" -echo "========== Running test images in n900 qemu ==========" -echo "======================================================" -echo - -# Run MTD image in qemu and wait for 300s if U-Boot prints testing string to serial console and poweroff -rm -f qemu_uboot.log -./qemu-system-arm -M n900 -mtdblock mtd_uboot.img -sd emmc_uboot.img -serial /dev/stdout -display none > qemu_uboot.log & -qemu_pid=$! -tail -F qemu_uboot.log & -tail_pid=$! -sleep 300 & -sleep_pid=$! -wait -n $sleep_pid $qemu_pid || true -kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true -wait || true - -# Run MTD image in qemu and wait for 300s if kernel from RAM is correctly booted -rm -f qemu_ram.log -./qemu-system-arm -M n900 -mtdblock mtd_ram.img -serial /dev/stdout -display none > qemu_ram.log & -qemu_pid=$! -tail -F qemu_ram.log & -tail_pid=$! -sleep 300 & -sleep_pid=$! -wait -n $sleep_pid $qemu_pid || true -kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true -wait || true - -# Run MTD image in qemu and wait for 300s if kernel from eMMC is correctly booted -rm -f qemu_emmc.log -./qemu-system-arm -M n900 -mtdblock mtd_emmc.img -sd emmc_emmc.img -serial /dev/stdout -display none > qemu_emmc.log & -qemu_pid=$! -tail -F qemu_emmc.log & -tail_pid=$! -sleep 300 & -sleep_pid=$! -wait -n $sleep_pid $qemu_pid || true -kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true -wait || true - -# Run MTD image in qemu and wait for 300s if kernel from OneNAND is correctly booted -rm -f qemu_nand.log -./qemu-system-arm -M n900 -mtdblock mtd_nand.img -sd emmc_nand.img -serial /dev/stdout -display none > qemu_nand.log & -qemu_pid=$! -tail -F qemu_nand.log & -tail_pid=$! -sleep 300 & -sleep_pid=$! -wait -n $sleep_pid $qemu_pid || true -kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true -wait || true - -echo -echo "=============================" -echo "========== Results ==========" -echo "=============================" -echo - -if grep -q 'Successfully booted' qemu_uboot.log; then echo "U-Boot serial console is working"; else echo "U-Boot serial console test failed"; fi -if grep -q 'Successfully booted' qemu_ram.log; then echo "Kernel was successfully booted from RAM"; else echo "Failed to boot kernel from RAM"; fi -if grep -q 'Successfully booted' qemu_emmc.log; then echo "Kernel was successfully booted from eMMC"; else echo "Failed to boot kernel from eMMC"; fi -if grep -q 'Successfully booted' qemu_nand.log; then echo "Kernel was successfully booted from OneNAND"; else echo "Failed to boot kernel from OneNAND"; fi - -echo - -if grep -q 'Successfully booted' qemu_uboot.log && grep -q 'Successfully booted' qemu_ram.log && grep -q 'Successfully booted' qemu_emmc.log && grep -q 'Successfully booted' qemu_nand.log; then - echo "All tests passed" - exit 0 -else - echo "Some tests failed" - exit 1 -fi -- 2.17.1