mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-18 20:54:37 +00:00
Merge branch 'sandbox' of git://git.denx.de/u-boot-x86
This commit is contained in:
commit
ba9b42c81b
9 changed files with 39 additions and 18 deletions
|
@ -341,6 +341,7 @@ int os_dirent_ls(const char *dirname, struct os_dirent_node **headp)
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
next->next = NULL;
|
||||||
strcpy(next->name, entry.d_name);
|
strcpy(next->name, entry.d_name);
|
||||||
switch (entry.d_type) {
|
switch (entry.d_type) {
|
||||||
case DT_REG:
|
case DT_REG:
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#ifndef __ASM_SANDBOX_BITOPS_H
|
#ifndef __ASM_SANDBOX_BITOPS_H
|
||||||
#define __ASM_SANDBOX_BITOPS_H
|
#define __ASM_SANDBOX_BITOPS_H
|
||||||
|
|
||||||
|
#include <linux/compiler.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
@ -53,7 +54,7 @@ static inline int __test_and_set_bit(int nr, void *addr)
|
||||||
|
|
||||||
static inline int test_and_set_bit(int nr, void *addr)
|
static inline int test_and_set_bit(int nr, void *addr)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long __always_unused flags;
|
||||||
int out;
|
int out;
|
||||||
|
|
||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
|
@ -75,7 +76,7 @@ static inline int __test_and_clear_bit(int nr, void *addr)
|
||||||
|
|
||||||
static inline int test_and_clear_bit(int nr, void *addr)
|
static inline int test_and_clear_bit(int nr, void *addr)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long __always_unused flags;
|
||||||
int out;
|
int out;
|
||||||
|
|
||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
|
|
|
@ -8,10 +8,7 @@
|
||||||
#define __ASM_SANDBOX_SYSTEM_H
|
#define __ASM_SANDBOX_SYSTEM_H
|
||||||
|
|
||||||
/* Define this as nops for sandbox architecture */
|
/* Define this as nops for sandbox architecture */
|
||||||
static inline void local_irq_save(unsigned flags __attribute__((unused)))
|
#define local_irq_save(x)
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#define local_irq_enable()
|
#define local_irq_enable()
|
||||||
#define local_irq_disable()
|
#define local_irq_disable()
|
||||||
#define local_save_flags(x)
|
#define local_save_flags(x)
|
||||||
|
|
|
@ -16,17 +16,18 @@ PF_CPPFLAGS_X86 := $(call cc-option, -fno-toplevel-reorder, \
|
||||||
PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86)
|
PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86)
|
||||||
PLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm
|
PLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm
|
||||||
PLATFORM_CPPFLAGS += -DREALMODE_BASE=0x7c0
|
PLATFORM_CPPFLAGS += -DREALMODE_BASE=0x7c0
|
||||||
|
PLATFORM_CPPFLAGS += -march=i386 -m32
|
||||||
|
|
||||||
# Support generic board on x86
|
# Support generic board on x86
|
||||||
__HAVE_ARCH_GENERIC_BOARD := y
|
__HAVE_ARCH_GENERIC_BOARD := y
|
||||||
|
|
||||||
PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden
|
PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden
|
||||||
|
|
||||||
PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions
|
PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions -m elf_i386
|
||||||
|
|
||||||
LDFLAGS_FINAL += --gc-sections -pie
|
LDFLAGS_FINAL += --gc-sections -pie
|
||||||
LDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3
|
LDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3
|
||||||
LDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3
|
LDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3
|
||||||
|
|
||||||
export NORMAL_LIBGCC = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
export NORMAL_LIBGCC = $(shell $(CC) $(PLATFORM_CPPFLAGS) -print-libgcc-file-name)
|
||||||
CONFIG_USE_PRIVATE_LIBGCC := arch/x86/lib
|
CONFIG_USE_PRIVATE_LIBGCC := arch/x86/lib
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
CROSS_COMPILE ?= i386-linux-
|
CROSS_COMPILE ?= i386-linux-
|
||||||
|
|
||||||
PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -march=i386 -Werror
|
PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -Werror
|
||||||
|
|
||||||
# DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
|
# DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
|
||||||
LDPPFLAGS += -DRESET_SEG_START=0xffff0000
|
LDPPFLAGS += -DRESET_SEG_START=0xffff0000
|
||||||
|
|
|
@ -114,11 +114,13 @@ static int do_sandbox(cmd_tbl_t *cmdtp, int flag, int argc,
|
||||||
U_BOOT_CMD(
|
U_BOOT_CMD(
|
||||||
sb, 8, 1, do_sandbox,
|
sb, 8, 1, do_sandbox,
|
||||||
"Miscellaneous sandbox commands",
|
"Miscellaneous sandbox commands",
|
||||||
"load host <dev> <addr> <filename> [<bytes> <offset>] - "
|
"load hostfs - <addr> <filename> [<bytes> <offset>] - "
|
||||||
"load a file from host\n"
|
"load a file from host\n"
|
||||||
"sb ls host <filename> - list files on host\n"
|
"sb ls hostfs - <filename> - list files on host\n"
|
||||||
"sb save host <dev> <filename> <addr> <bytes> [<offset>] - "
|
"sb save hostfs - <filename> <addr> <bytes> [<offset>] - "
|
||||||
"save a file to host\n"
|
"save a file to host\n"
|
||||||
"sb bind <dev> [<filename>] - bind \"host\" device to file\n"
|
"sb bind <dev> [<filename>] - bind \"host\" device to file\n"
|
||||||
"sb info [<dev>] - show device binding & info"
|
"sb info [<dev>] - show device binding & info\n"
|
||||||
|
"sb commands use the \"hostfs\" device. The \"host\" device is used\n"
|
||||||
|
"with standard IO commands such as fatls or ext2load"
|
||||||
);
|
);
|
||||||
|
|
19
disk/part.c
19
disk/part.c
|
@ -510,6 +510,25 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
|
||||||
int part;
|
int part;
|
||||||
disk_partition_t tmpinfo;
|
disk_partition_t tmpinfo;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Special-case a psuedo block device "hostfs", to allow access to the
|
||||||
|
* host's own filesystem.
|
||||||
|
*/
|
||||||
|
if (0 == strcmp(ifname, "hostfs")) {
|
||||||
|
*dev_desc = NULL;
|
||||||
|
info->start = 0;
|
||||||
|
info->size = 0;
|
||||||
|
info->blksz = 0;
|
||||||
|
info->bootable = 0;
|
||||||
|
strcpy((char *)info->type, BOOT_PART_TYPE);
|
||||||
|
strcpy((char *)info->name, "Sandbox host");
|
||||||
|
#ifdef CONFIG_PARTITION_UUIDS
|
||||||
|
info->uuid[0] = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* If no dev_part_str, use bootdevice environment variable */
|
/* If no dev_part_str, use bootdevice environment variable */
|
||||||
if (!dev_part_str || !strlen(dev_part_str) ||
|
if (!dev_part_str || !strlen(dev_part_str) ||
|
||||||
!strcmp(dev_part_str, "-"))
|
!strcmp(dev_part_str, "-"))
|
||||||
|
|
|
@ -165,12 +165,12 @@ static int do_ut_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
|
|
||||||
#ifdef CONFIG_SANDBOX
|
#ifdef CONFIG_SANDBOX
|
||||||
/* File existence */
|
/* File existence */
|
||||||
HUSH_TEST(e, "-e host - creating_this_file_breaks_uboot_unit_test", n);
|
HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", n);
|
||||||
run_command("sb save host - creating_this_file_breaks_uboot_unit_test 0 1", 0);
|
run_command("sb save hostfs - creating_this_file_breaks_uboot_unit_test 0 1", 0);
|
||||||
HUSH_TEST(e, "-e host - creating_this_file_breaks_uboot_unit_test", y);
|
HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", y);
|
||||||
/* Perhaps this could be replaced by an "rm" shell command one day */
|
/* Perhaps this could be replaced by an "rm" shell command one day */
|
||||||
assert(!os_unlink("creating_this_file_breaks_uboot_unit_test"));
|
assert(!os_unlink("creating_this_file_breaks_uboot_unit_test"));
|
||||||
HUSH_TEST(e, "-e host - creating_this_file_breaks_uboot_unit_test", n);
|
HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", n);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ set -e
|
||||||
run_uboot() {
|
run_uboot() {
|
||||||
echo -n "Test Verified Boot Run: $1: "
|
echo -n "Test Verified Boot Run: $1: "
|
||||||
${uboot} -d sandbox-u-boot.dtb >${tmp} -c '
|
${uboot} -d sandbox-u-boot.dtb >${tmp} -c '
|
||||||
sb load host 0 100 test.fit;
|
sb load hostfs - 100 test.fit;
|
||||||
fdt addr 100;
|
fdt addr 100;
|
||||||
bootm 100;
|
bootm 100;
|
||||||
reset'
|
reset'
|
||||||
|
|
Loading…
Add table
Reference in a new issue