diff options
| author | Tom Rini <[email protected]> | 2019-10-18 16:36:16 -0400 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2019-10-18 16:36:16 -0400 |
| commit | cce99479af3f3d0cdb41a4da078000031b16e9e5 (patch) | |
| tree | 728cc2a111d0e341e95c7332c84bb57d69dc8d66 /arch | |
| parent | a2fce50455c9831f36765e5813b0b5e98f55d70b (diff) | |
| parent | 70d64a4c7646aa51c0334618ccb9af0132d9d834 (diff) | |
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-riscv
- Support sifive DM based gpio driver for FU540-SoC.
- Align boot image header with Linux v5.3
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/riscv/include/asm/arch-generic/gpio.h | 35 | ||||
| -rw-r--r-- | arch/riscv/include/asm/gpio.h | 6 | ||||
| -rw-r--r-- | arch/riscv/lib/image.c | 11 |
3 files changed, 47 insertions, 5 deletions
diff --git a/arch/riscv/include/asm/arch-generic/gpio.h b/arch/riscv/include/asm/arch-generic/gpio.h new file mode 100644 index 00000000000..dfcb753051d --- /dev/null +++ b/arch/riscv/include/asm/arch-generic/gpio.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2019 SiFive, Inc. + */ + +#ifndef _GPIO_SIFIVE_H +#define _GPIO_SIFIVE_H + +#define GPIO_INPUT_VAL 0x00 +#define GPIO_INPUT_EN 0x04 +#define GPIO_OUTPUT_EN 0x08 +#define GPIO_OUTPUT_VAL 0x0C +#define GPIO_RISE_IE 0x18 +#define GPIO_RISE_IP 0x1C +#define GPIO_FALL_IE 0x20 +#define GPIO_FALL_IP 0x24 +#define GPIO_HIGH_IE 0x28 +#define GPIO_HIGH_IP 0x2C +#define GPIO_LOW_IE 0x30 +#define GPIO_LOW_IP 0x34 +#define GPIO_OUTPUT_XOR 0x40 + +#define NR_GPIOS 16 + +enum gpio_state { + LOW, + HIGH +}; + +/* Details about a GPIO bank */ +struct sifive_gpio_platdata { + void *base; /* address of registers in physical memory */ +}; + +#endif /* _GPIO_SIFIVE_H */ diff --git a/arch/riscv/include/asm/gpio.h b/arch/riscv/include/asm/gpio.h new file mode 100644 index 00000000000..008d75698b7 --- /dev/null +++ b/arch/riscv/include/asm/gpio.h @@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2018 SiFive, Inc. + */ + +#include <asm-generic/gpio.h> diff --git a/arch/riscv/lib/image.c b/arch/riscv/lib/image.c index d063beb7dfb..7357d3b07d6 100644 --- a/arch/riscv/lib/image.c +++ b/arch/riscv/lib/image.c @@ -14,20 +14,21 @@ DECLARE_GLOBAL_DATA_PTR; -/* ASCII version of "RISCV" defined in Linux kernel */ -#define LINUX_RISCV_IMAGE_MAGIC 0x5643534952 +/* ASCII version of "RSC\0x5" defined in Linux kernel */ +#define LINUX_RISCV_IMAGE_MAGIC 0x05435352 struct linux_image_h { uint32_t code0; /* Executable code */ uint32_t code1; /* Executable code */ uint64_t text_offset; /* Image load offset */ uint64_t image_size; /* Effective Image size */ - uint64_t res1; /* reserved */ + uint64_t flags; /* kernel flags (little endian) */ + uint32_t version; /* version of the header */ + uint32_t res1; /* reserved */ uint64_t res2; /* reserved */ uint64_t res3; /* reserved */ - uint64_t magic; /* Magic number */ + uint32_t magic; /* Magic number */ uint32_t res4; /* reserved */ - uint32_t res5; /* reserved */ }; int booti_setup(ulong image, ulong *relocated_addr, ulong *size, |
