
Hi Simon,
On 06.02.2021 17:21, Simon Glass wrote:
On Thu, 4 Feb 2021 at 03:36, Marek Szyprowski m.szyprowski@samsung.com wrote:
... Could you give me a bit more hints or point where to start? I've tried to build sandbox, but it fails for v2021.01 release (I've did make sandbox_defconfig && make all). I assume I would need to add adc and adc-keys devices to some sandbox dts and some code triggering and checking the key values, but that's all I know now.
Well you do need to be able to build sandbox or you will get nowhere...what error did you get? Once we understand what went wrong we can update the docs. Maybe it is missing a dependency.
$ gcc --version gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ git checkout v2021.01
$ make sandbox_defconfig # # configuration written to .config #
$ make scripts/kconfig/conf --syncconfig Kconfig CFG u-boot.cfg GEN include/autoconf.mk GEN include/autoconf.mk.dep CFGCHK u-boot.cfg UPD include/generated/timestamp_autogenerated.h HOSTCC tools/mkenvimage.o HOSTLD tools/mkenvimage HOSTCC tools/fit_image.o HOSTCC tools/image-host.o HOSTCC tools/dumpimage.o HOSTLD tools/dumpimage HOSTCC tools/mkimage.o HOSTLD tools/mkimage HOSTLD tools/fit_info HOSTLD tools/fit_check_sign
...
CC arch/sandbox/cpu/cpu.o In file included from include/common.h:26:0, from arch/sandbox/cpu/cpu.c:6: include/asm/global_data.h:112:58: warning: call-clobbered register used for global register variable #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r9") ^ include/dm/of.h:86:1: note: in expansion of macro ‘DECLARE_GLOBAL_DATA_PTR’ DECLARE_GLOBAL_DATA_PTR; ^~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/sandbox/cpu/cpu.c:18:0: ./arch/sandbox/include/asm/state.h:98:30: error: ‘CONFIG_SANDBOX_SPI_MAX_BUS’ undeclared here (not in a function); did you mean ‘CONFIG_SANDBOX_SPI’? struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS] ^~~~~~~~~~~~~~~~~~~~~~~~~~ CONFIG_SANDBOX_SPI ./arch/sandbox/include/asm/state.h:99:7: error: ‘CONFIG_SANDBOX_SPI_MAX_CS’ undeclared here (not in a function); did you mean ‘CONFIG_SANDBOX_SPI_MAX_BUS’? [CONFIG_SANDBOX_SPI_MAX_CS]; ^~~~~~~~~~~~~~~~~~~~~~~~~ CONFIG_SANDBOX_SPI_MAX_BUS arch/sandbox/cpu/cpu.c: In function ‘is_in_sandbox_mem’: arch/sandbox/cpu/cpu.c:83:41: error: ‘volatile struct arch_global_data’ has no member named ‘ram_buf’ return (const uint8_t *)ptr >= gd->arch.ram_buf && ^ arch/sandbox/cpu/cpu.c:84:34: error: ‘volatile struct arch_global_data’ has no member named ‘ram_buf’ (const uint8_t *)ptr < gd->arch.ram_buf + gd->ram_size; ^ arch/sandbox/cpu/cpu.c: At top level: arch/sandbox/cpu/cpu.c:97:7: error: redefinition of ‘phys_to_virt’ void *phys_to_virt(phys_addr_t paddr) ^~~~~~~~~~~~ In file included from include/asm/io.h:495:0, from arch/sandbox/cpu/cpu.c:15: include/asm-generic/io.h:30:21: note: previous definition of ‘phys_to_virt’ was here static inline void *phys_to_virt(phys_addr_t paddr) ^~~~~~~~~~~~ arch/sandbox/cpu/cpu.c: In function ‘phys_to_virt’: arch/sandbox/cpu/cpu.c:104:27: error: ‘volatile struct arch_global_data’ has no member named ‘ram_buf’ return (void *)(gd->arch.ram_buf + paddr); ^ In file included from include/linux/posix_types.h:4:0, from include/linux/types.h:4, from include/time.h:7, from include/common.h:18, from arch/sandbox/cpu/cpu.c:6: include/linux/stddef.h:17:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ^ include/linux/kernel.h:274:29: note: in expansion of macro ‘offsetof’ (type *)( (char *)__mptr - offsetof(type,member) );}) ^~~~~~~~ include/linux/list.h:327:2: note: in expansion of macro ‘container_of’ container_of(ptr, type, member) ^~~~~~~~~~~~ include/linux/list.h:424:13: note: in expansion of macro ‘list_entry’ for (pos = list_entry((head)->next, typeof(*pos), member); \ ^~~~~~~~~~ arch/sandbox/cpu/cpu.c:111:2: note: in expansion of macro ‘list_for_each_entry’ list_for_each_entry(mentry, &state->mapmem_head, sibling_node) { ^~~~~~~~~~~~~~~~~~~ include/linux/stddef.h:17:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ^ include/linux/kernel.h:274:29: note: in expansion of macro ‘offsetof’ (type *)( (char *)__mptr - offsetof(type,member) );}) ^~~~~~~~ include/linux/list.h:327:2: note: in expansion of macro ‘container_of’ container_of(ptr, type, member) ^~~~~~~~~~~~ include/linux/list.h:426:13: note: in expansion of macro ‘list_entry’ pos = list_entry(pos->member.next, typeof(*pos), member)) ^~~~~~~~~~ arch/sandbox/cpu/cpu.c:111:2: note: in expansion of macro ‘list_for_each_entry’ list_for_each_entry(mentry, &state->mapmem_head, sibling_node) { ^~~~~~~~~~~~~~~~~~~ arch/sandbox/cpu/cpu.c: In function ‘find_tag’: include/linux/stddef.h:17:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ^ include/linux/kernel.h:274:29: note: in expansion of macro ‘offsetof’ (type *)( (char *)__mptr - offsetof(type,member) );}) ^~~~~~~~ include/linux/list.h:327:2: note: in expansion of macro ‘container_of’ container_of(ptr, type, member) ^~~~~~~~~~~~ include/linux/list.h:424:13: note: in expansion of macro ‘list_entry’ for (pos = list_entry((head)->next, typeof(*pos), member); \ ^~~~~~~~~~ arch/sandbox/cpu/cpu.c:132:2: note: in expansion of macro ‘list_for_each_entry’ list_for_each_entry(mentry, &state->mapmem_head, sibling_node) { ^~~~~~~~~~~~~~~~~~~ include/linux/stddef.h:17:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ^ include/linux/kernel.h:274:29: note: in expansion of macro ‘offsetof’ (type *)( (char *)__mptr - offsetof(type,member) );}) ^~~~~~~~ include/linux/list.h:327:2: note: in expansion of macro ‘container_of’ container_of(ptr, type, member) ^~~~~~~~~~~~ include/linux/list.h:426:13: note: in expansion of macro ‘list_entry’ pos = list_entry(pos->member.next, typeof(*pos), member)) ^~~~~~~~~~ arch/sandbox/cpu/cpu.c:132:2: note: in expansion of macro ‘list_for_each_entry’ list_for_each_entry(mentry, &state->mapmem_head, sibling_node) { ^~~~~~~~~~~~~~~~~~~ arch/sandbox/cpu/cpu.c: At top level: arch/sandbox/cpu/cpu.c:142:13: error: redefinition of ‘virt_to_phys’ phys_addr_t virt_to_phys(void *ptr) ^~~~~~~~~~~~ In file included from include/asm/io.h:495:0, from arch/sandbox/cpu/cpu.c:15: include/asm-generic/io.h:46:27: note: previous definition of ‘virt_to_phys’ was here static inline phys_addr_t virt_to_phys(void *vaddr) ^~~~~~~~~~~~ arch/sandbox/cpu/cpu.c: In function ‘virt_to_phys’: arch/sandbox/cpu/cpu.c:151:49: error: ‘volatile struct arch_global_data’ has no member named ‘ram_buf’ return (phys_addr_t)((uint8_t *)ptr - gd->arch.ram_buf); ^ arch/sandbox/cpu/cpu.c: At top level: arch/sandbox/cpu/cpu.c:165:7: error: redefinition of ‘map_physmem’ void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags) ^~~~~~~~~~~ In file included from include/asm/io.h:495:0, from arch/sandbox/cpu/cpu.c:15: include/asm-generic/io.h:86:21: note: previous definition of ‘map_physmem’ was here static inline void *map_physmem(phys_addr_t paddr, unsigned long len, ^~~~~~~~~~~ arch/sandbox/cpu/cpu.c: In function ‘map_physmem’: arch/sandbox/cpu/cpu.c:172:25: warning: implicit declaration of function ‘pci_map_physmem’; did you mean ‘map_physmem’? [-Wimplicit-function-declaration] if (enable_pci_map && !pci_map_physmem(paddr, &len, &map_dev, &ptr)) { ^~~~~~~~~~~~~~~ map_physmem arch/sandbox/cpu/cpu.c: At top level: arch/sandbox/cpu/cpu.c:185:6: error: conflicting types for ‘unmap_physmem’ void unmap_physmem(const void *ptr, unsigned long flags) ^~~~~~~~~~~~~ In file included from include/asm/io.h:495:0, from arch/sandbox/cpu/cpu.c:15: include/asm-generic/io.h:103:20: note: previous definition of ‘unmap_physmem’ was here static inline void unmap_physmem(void *vaddr, unsigned long flags) ^~~~~~~~~~~~~ arch/sandbox/cpu/cpu.c: In function ‘unmap_physmem’: arch/sandbox/cpu/cpu.c:189:3: warning: implicit declaration of function ‘pci_unmap_physmem’; did you mean ‘unmap_physmem’? [-Wimplicit-function-declaration] pci_unmap_physmem(ptr, map_len, map_dev); ^~~~~~~~~~~~~~~~~ unmap_physmem arch/sandbox/cpu/cpu.c: In function ‘map_to_sysmem’: arch/sandbox/cpu/cpu.c:204:30: error: ‘volatile struct arch_global_data’ has no member named ‘ram_buf’ return (u8 *)ptr - gd->arch.ram_buf; ^ arch/sandbox/cpu/cpu.c: At top level: arch/sandbox/cpu/cpu.c:233:50: warning: ‘enum sandboxio_size_t’ declared inside parameter list will not be visible outside of this definition or declaration unsigned int sandbox_read(const void *addr, enum sandboxio_size_t size) ^~~~~~~~~~~~~~~~ arch/sandbox/cpu/cpu.c:233:67: error: parameter 2 (‘size’) has incomplete type unsigned int sandbox_read(const void *addr, enum sandboxio_size_t size) ^~~~ arch/sandbox/cpu/cpu.c:233:14: warning: function declaration isn’t a prototype [-Wstrict-prototypes] unsigned int sandbox_read(const void *addr, enum sandboxio_size_t size) ^~~~~~~~~~~~ arch/sandbox/cpu/cpu.c: In function ‘sandbox_read’: arch/sandbox/cpu/cpu.c:241:7: error: ‘SB_SIZE_8’ undeclared (first use in this function); did you mean ‘PCI_SIZE_8’? case SB_SIZE_8: ^~~~~~~~~ PCI_SIZE_8 arch/sandbox/cpu/cpu.c:241:7: note: each undeclared identifier is reported only once for each function it appears in arch/sandbox/cpu/cpu.c:243:7: error: ‘SB_SIZE_16’ undeclared (first use in this function); did you mean ‘SB_SIZE_8’? case SB_SIZE_16: ^~~~~~~~~~ SB_SIZE_8 arch/sandbox/cpu/cpu.c:245:7: error: ‘SB_SIZE_32’ undeclared (first use in this function); did you mean ‘SB_SIZE_16’? case SB_SIZE_32: ^~~~~~~~~~ SB_SIZE_16 arch/sandbox/cpu/cpu.c:247:7: error: ‘SB_SIZE_64’ undeclared (first use in this function); did you mean ‘SB_SIZE_32’? case SB_SIZE_64: ^~~~~~~~~~ SB_SIZE_32 arch/sandbox/cpu/cpu.c: At top level: arch/sandbox/cpu/cpu.c:254:55: warning: ‘enum sandboxio_size_t’ declared inside parameter list will not be visible outside of this definition or declaration void sandbox_write(void *addr, unsigned int val, enum sandboxio_size_t size) ^~~~~~~~~~~~~~~~ arch/sandbox/cpu/cpu.c:254:72: error: parameter 3 (‘size’) has incomplete type void sandbox_write(void *addr, unsigned int val, enum sandboxio_size_t size) ^~~~ arch/sandbox/cpu/cpu.c:254:6: warning: function declaration isn’t a prototype [-Wstrict-prototypes] void sandbox_write(void *addr, unsigned int val, enum sandboxio_size_t size) ^~~~~~~~~~~~~ arch/sandbox/cpu/cpu.c: In function ‘sandbox_write’: arch/sandbox/cpu/cpu.c:262:7: error: ‘SB_SIZE_8’ undeclared (first use in this function); did you mean ‘PCI_SIZE_8’? case SB_SIZE_8: ^~~~~~~~~ PCI_SIZE_8 arch/sandbox/cpu/cpu.c:265:7: error: ‘SB_SIZE_16’ undeclared (first use in this function); did you mean ‘SB_SIZE_8’? case SB_SIZE_16: ^~~~~~~~~~ SB_SIZE_8 arch/sandbox/cpu/cpu.c:268:7: error: ‘SB_SIZE_32’ undeclared (first use in this function); did you mean ‘SB_SIZE_16’? case SB_SIZE_32: ^~~~~~~~~~ SB_SIZE_16 arch/sandbox/cpu/cpu.c:271:7: error: ‘SB_SIZE_64’ undeclared (first use in this function); did you mean ‘SB_SIZE_32’? case SB_SIZE_64: ^~~~~~~~~~ SB_SIZE_32 arch/sandbox/cpu/cpu.c: In function ‘sandbox_read_fdt_from_file’: arch/sandbox/cpu/cpu.c:306:9: warning: implicit declaration of function ‘map_sysmem’; did you mean ‘map_physmem’? [-Wimplicit-function-declaration] blob = map_sysmem(CONFIG_SYS_FDT_LOAD_ADDR, 0); ^~~~~~~~~~ map_physmem arch/sandbox/cpu/cpu.c:306:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion] blob = map_sysmem(CONFIG_SYS_FDT_LOAD_ADDR, 0); ^ arch/sandbox/cpu/cpu.c: In function ‘is_in_sandbox_mem’: arch/sandbox/cpu/cpu.c:85:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ scripts/Makefile.build:265: recipe for target 'arch/sandbox/cpu/cpu.o' failed make[1]: *** [arch/sandbox/cpu/cpu.o] Error 1 Makefile:1784: recipe for target 'arch/sandbox/cpu' failed make: *** [arch/sandbox/cpu] Error 2
Best regards