[PATCH v4 0/6] add loongson mips ls1c300 initial support

Du Huanpeng dhu at hodcarrier.org
Sun Jul 23 06:39:06 CEST 2023


---
Changelog for v4:
   - rebase to [247aa5a191159ea7e03bf1918e22fbbb784cd410]
   - fix rebase issues
   - use spl without SPL_DM
   - fix some more codingstyle
   - fix some more typo
   - add comments about writing sdram controler
   - keep .noreoder and do not use delay slot

Changelog for v3:
   - change cpu clock id from CLK_CPU to CLK_CPU_THROT
   - migrate all APB dev's clock id to CLK_APB
   - remove uarts' <reg-shift> property to use default value <0>
   - move /clocks/acc node to /soc/acc
   - call clk_request() before use a clk
   - make get_tbclk() return 1/2 clock of cpu
   - disable debug_uart by default
   - add ops for cpu_throt_factor clk
   - declare MSEC_PER_SEC for converting between sec and msec
   - return a error code when the wdt clock is out of range
   - minor format and codingstyle fixes
   - rebase to [9859465bfe838bc8264d45e1a1bed847bba74bad]

Changelog for v2:
1. dtsi:
    add status disabled for uart0 ~ uart11
    remove bootargs from chosen
    make serial0 alias for uart2
    oscillator remove @0 unit-address
    change uart2 address to kuseg

2. cleanup Kconfig and update defconfig
- make these options configurable, disabled by default:
    CMD_DM
    DM_ETH
    DM_GPIO
    DM_SPI
    DM_SPI_FLASH
    DM_RESET
    PINCONF
    PINCTRL
    PINMUX
    RESET_LSMIPS
- make these options configurable, enabled by default:
    CLK
    DISPLAY_CPUINFO
    SYSRESET
    ROM_EXCEPTION_VECTORS
- disabled:
    CONFIG_ENV_IS_IN_SPI_FLASH

3. fix codingstyle drivers/watchdog/lsmips-wdt.c
- priv->base + offset
- add comment for default clock value

4. remove address base definition header
- remove arch/mips/mach-lsmips/ls1c300/ls1c300.h
- clean up files uses this header

5. spl and debug uart
- add comment for spl & debug uart pinmuxing
- cleanup unused registers base header

6.  dtsi
- add "loongson,ls1c300-uart" to all uart node

7. board dts
- add memory node to board dts, start at 0x80000000, size 64MB

8. Kconfig
- make ROM_EXCEPTION_VECTORS user configureable
- enable ROM_EXCEPTION_VECTORS in defconfig

9.
- seperate sdram_init to sdram_init.S
- add macro helpers to do sdram, pll lowlevel init

10. dtsi
- move clock nodes to /clocks/xxx

11.
- define CONFIG_SKIP_LOWLEVEL_INIT to 1

12.
- remove option PINCTRL_LS1C300 from Kconfig

13.
- dram_init, use get_ram_size() to detect ram size.

14. clk driver
- create custom clock ops for PLL
- remove debug code

15.
- rebase to 59bffec43a657598b194b9eb30dc01eec06078c7
- remove CONFIG_SYS_MONITOR_BASE from include/configs/

Du Huanpeng (6):
  mips: initial build infrastructure for loongson SoCs
  mips: ls1c300: add base support
  mips: add a ls1c300 based board
  mips: ls1c300: add clock driver
  mips: ls1c300: add watchdog support
  mips: ls1c300: add reset support based on watchdog driver

 MAINTAINERS                                   |  15 ++
 Makefile                                      |   1 +
 arch/mips/Kconfig                             |  11 ++
 arch/mips/Makefile                            |   1 +
 arch/mips/dts/Makefile                        |   1 +
 arch/mips/dts/loongson32-ls1c300b.dtsi        | 150 +++++++++++++++
 arch/mips/dts/ls1c300-eval.dts                |  30 +++
 arch/mips/mach-lsmips/Kconfig                 |  76 ++++++++
 arch/mips/mach-lsmips/Makefile                |   6 +
 arch/mips/mach-lsmips/cpu.c                   |  19 ++
 arch/mips/mach-lsmips/include/mach/serial.h   |  16 ++
 arch/mips/mach-lsmips/ls1c300/Makefile        |   7 +
 arch/mips/mach-lsmips/ls1c300/gpio.c          |  66 +++++++
 arch/mips/mach-lsmips/ls1c300/init.c          |  62 ++++++
 arch/mips/mach-lsmips/ls1c300/lowlevel_init.S | 135 +++++++++++++
 arch/mips/mach-lsmips/ls1c300/sdram.S         |  96 ++++++++++
 arch/mips/mach-lsmips/ls1c300/serial.c        | 109 +++++++++++
 arch/mips/mach-lsmips/spl.c                   |  47 +++++
 board/loongson/ls1c300-eval/Kconfig           |  12 ++
 board/loongson/ls1c300-eval/MAINTAINERS       |   7 +
 board/loongson/ls1c300-eval/Makefile          |   3 +
 board/loongson/ls1c300-eval/board.c           |  20 ++
 configs/ls1c300_defconfig                     |  53 ++++++
 drivers/clk/Makefile                          |   1 +
 drivers/clk/lsmips/Makefile                   |   3 +
 drivers/clk/lsmips/clk-ls1c300.c              | 180 ++++++++++++++++++
 drivers/reset/Kconfig                         |   7 +
 drivers/reset/Makefile                        |   1 +
 drivers/reset/reset-lsmips.c                  | 118 ++++++++++++
 drivers/watchdog/Kconfig                      |   8 +
 drivers/watchdog/Makefile                     |   1 +
 drivers/watchdog/lsmips_wdt.c                 | 128 +++++++++++++
 include/configs/ls1c300.h                     |  34 ++++
 include/dt-bindings/clock/ls1c300-clk.h       |  18 ++
 include/dt-bindings/reset/ls1c300-reset.h     |  36 ++++
 35 files changed, 1478 insertions(+)
 create mode 100644 arch/mips/dts/loongson32-ls1c300b.dtsi
 create mode 100644 arch/mips/dts/ls1c300-eval.dts
 create mode 100644 arch/mips/mach-lsmips/Kconfig
 create mode 100644 arch/mips/mach-lsmips/Makefile
 create mode 100644 arch/mips/mach-lsmips/cpu.c
 create mode 100644 arch/mips/mach-lsmips/include/mach/serial.h
 create mode 100644 arch/mips/mach-lsmips/ls1c300/Makefile
 create mode 100644 arch/mips/mach-lsmips/ls1c300/gpio.c
 create mode 100644 arch/mips/mach-lsmips/ls1c300/init.c
 create mode 100644 arch/mips/mach-lsmips/ls1c300/lowlevel_init.S
 create mode 100644 arch/mips/mach-lsmips/ls1c300/sdram.S
 create mode 100644 arch/mips/mach-lsmips/ls1c300/serial.c
 create mode 100644 arch/mips/mach-lsmips/spl.c
 create mode 100644 board/loongson/ls1c300-eval/Kconfig
 create mode 100644 board/loongson/ls1c300-eval/MAINTAINERS
 create mode 100644 board/loongson/ls1c300-eval/Makefile
 create mode 100644 board/loongson/ls1c300-eval/board.c
 create mode 100644 configs/ls1c300_defconfig
 create mode 100644 drivers/clk/lsmips/Makefile
 create mode 100644 drivers/clk/lsmips/clk-ls1c300.c
 create mode 100644 drivers/reset/reset-lsmips.c
 create mode 100644 drivers/watchdog/lsmips_wdt.c
 create mode 100644 include/configs/ls1c300.h
 create mode 100644 include/dt-bindings/clock/ls1c300-clk.h
 create mode 100644 include/dt-bindings/reset/ls1c300-reset.h

-- 
2.34.1



More information about the U-Boot mailing list