diff --git a/UPDATING b/UPDATING index ed0ba85efe29..8f65faaed643 100644 --- a/UPDATING +++ b/UPDATING @@ -26,6 +26,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20200414: + Upstream DTS from Linux 5.6 was merged and they now have the SID + and THS (Secure ID controller and THermal Sensor) node present. + The DTB overlays have now been removed from the tree for the H3/H5 and + A64 SoCs and the aw_sid and aw_thermal driver have been updated to + deal with upstream DTS. If you are using those overlays you need to + remove them from loader.conf and update the DTBs on the FAT partition. + 20200310: Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have been upgraded to 10.0.0. Please see the 20141231 entry below for diff --git a/sys/arm/allwinner/aw_sid.c b/sys/arm/allwinner/aw_sid.c index 3a481933e832..42a667b5a4b1 100644 --- a/sys/arm/allwinner/aw_sid.c +++ b/sys/arm/allwinner/aw_sid.c @@ -100,7 +100,7 @@ static struct aw_sid_efuse a64_efuses[] = { .public = true, }, { - .name = "ths-calib", + .name = "calibration", .desc = "Thermal Sensor Calibration Data", .base = EFUSE_OFFSET, .offset = 0x34, @@ -121,7 +121,7 @@ static struct aw_sid_efuse a83t_efuses[] = { .public = true, }, { - .name = "ths-calib", + .name = "calibration", .desc = "Thermal Sensor Calibration Data", .base = EFUSE_OFFSET, .offset = 0x34, @@ -142,11 +142,11 @@ static struct aw_sid_efuse h3_efuses[] = { .public = true, }, { - .name = "ths-calib", + .name = "calibration", .desc = "Thermal Sensor Calibration Data", .base = EFUSE_OFFSET, .offset = 0x34, - .size = 2, + .size = 4, .id = AW_SID_FUSE_THSSENSOR, .public = false, }, @@ -163,7 +163,7 @@ static struct aw_sid_efuse h5_efuses[] = { .public = true, }, { - .name = "ths-calib", + .name = "calibration", .desc = "Thermal Sensor Calibration Data", .base = EFUSE_OFFSET, .offset = 0x34, @@ -350,8 +350,7 @@ aw_sid_read(device_t dev, uint32_t offset, uint32_t size, uint8_t *buffer) sc = device_get_softc(dev); for (i = 0; i < sc->sid_conf->nfuses; i++) - if (offset == (sc->sid_conf->efuses[i].base + - sc->sid_conf->efuses[i].offset)) { + if (offset == sc->sid_conf->efuses[i].offset) { fuse_id = sc->sid_conf->efuses[i].id; break; } diff --git a/sys/arm/allwinner/aw_thermal.c b/sys/arm/allwinner/aw_thermal.c index 8d2610e6cbea..90836124ad66 100644 --- a/sys/arm/allwinner/aw_thermal.c +++ b/sys/arm/allwinner/aw_thermal.c @@ -267,7 +267,7 @@ static const struct aw_thermal_config h3_config = { .thermal_per = H3_THERMAL_PER, .to_temp = h3_to_temp, .to_reg = h3_to_reg, - .calib0_mask = 0xffff, + .calib0_mask = 0xffffffff, }; static int @@ -387,12 +387,12 @@ aw_thermal_init(struct aw_thermal_softc *sc) int error; node = ofw_bus_get_node(sc->dev); - if (nvmem_get_cell_len(node, "ths-calib") > sizeof(calib)) { - device_printf(sc->dev, "ths-calib nvmem cell is too large\n"); + if (nvmem_get_cell_len(node, "calibration") > sizeof(calib)) { + device_printf(sc->dev, "calibration nvmem cell is too large\n"); return (ENXIO); } - error = nvmem_read_cell_by_name(node, "ths-calib", - (void *)&calib, nvmem_get_cell_len(node, "ths-calib")); + error = nvmem_read_cell_by_name(node, "calibration", + (void *)&calib, nvmem_get_cell_len(node, "calibration")); /* Read calibration settings from EFUSE */ if (error != 0) { device_printf(sc->dev, "Cannot read THS efuse\n"); @@ -624,7 +624,7 @@ aw_thermal_attach(device_t dev) return (ENXIO); } - if (clk_get_by_ofw_name(dev, 0, "apb", &sc->clk_apb) == 0) { + if (clk_get_by_ofw_name(dev, 0, "bus", &sc->clk_apb) == 0) { error = clk_enable(sc->clk_apb); if (error != 0) { device_printf(dev, "cannot enable apb clock\n"); @@ -632,7 +632,7 @@ aw_thermal_attach(device_t dev) } } - if (clk_get_by_ofw_name(dev, 0, "ths", &sc->clk_ths) == 0) { + if (clk_get_by_ofw_name(dev, 0, "mod", &sc->clk_ths) == 0) { error = clk_set_freq(sc->clk_ths, sc->conf->clk_rate, 0); if (error != 0) { device_printf(dev, "cannot set ths clock rate\n"); diff --git a/sys/dts/arm/overlays/sun8i-h3-sid.dtso b/sys/dts/arm/overlays/sun8i-h3-sid.dtso deleted file mode 100644 index 16502d3e4e64..000000000000 --- a/sys/dts/arm/overlays/sun8i-h3-sid.dtso +++ /dev/null @@ -1,19 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "allwinner,sun8i-h3"; -}; - -&{/soc} { - sid: eeprom@1c14000 { - compatible = "allwinner,sun8i-h3-sid"; - reg = <0x1c14000 0x400>; - status = "okay"; - - /* Data cells */ - ths_calib: calib@234 { - reg = <0x234 0x2>; - }; - }; -}; diff --git a/sys/dts/arm/overlays/sun8i-h3-ths.dtso b/sys/dts/arm/overlays/sun8i-h3-ths.dtso deleted file mode 100644 index ba65caf74da1..000000000000 --- a/sys/dts/arm/overlays/sun8i-h3-ths.dtso +++ /dev/null @@ -1,27 +0,0 @@ -/dts-v1/; -/plugin/; - -#include -#include -#include - -/ { - compatible = "allwinner,sun8i-h3"; -}; - -&{/soc} { - ths: thermal_sensor@1c25000 { - compatible = "allwinner,sun8i-h3-ths"; - reg = <0x01c25000 0x100>; - interrupts = ; - clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; - clock-names = "apb", "ths"; - resets = <&ccu RST_BUS_THS>; - reset-names = "apb"; - #thermal-sensor-cells = <0>; - status = "okay"; - - nvmem-cells = <&ths_calib>; - nvmem-cell-names = "ths-calib"; - }; -}; diff --git a/sys/dts/arm64/overlays/sun50i-a64-sid.dtso b/sys/dts/arm64/overlays/sun50i-a64-sid.dtso deleted file mode 100644 index 3d1b351b53c9..000000000000 --- a/sys/dts/arm64/overlays/sun50i-a64-sid.dtso +++ /dev/null @@ -1,17 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "allwinner,sun50i-a64"; -}; - -&{/soc} { - sid: eeprom@1c14000 { - compatible = "allwinner,sun50i-a64-sid"; - reg = <0x1c14000 0x400>; - - ths_calib: calib@234 { - reg = <0x234 0x6>; - }; - }; -}; diff --git a/sys/dts/arm64/overlays/sun50i-a64-ths.dtso b/sys/dts/arm64/overlays/sun50i-a64-ths.dtso deleted file mode 100644 index a7c7dd21b2d0..000000000000 --- a/sys/dts/arm64/overlays/sun50i-a64-ths.dtso +++ /dev/null @@ -1,27 +0,0 @@ -/dts-v1/; -/plugin/; - -#include -#include -#include - -/ { - compatible = "allwinner,sun50i-a64"; -}; - -&{/soc} { - ths: thermal_sensor@1c25000 { - compatible = "allwinner,sun50i-a64-ths"; - reg = <0x01c25000 0x100>; - interrupts = ; - clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; - clock-names = "apb", "ths"; - resets = <&ccu RST_BUS_THS>; - reset-names = "apb"; - #thermal-sensor-cells = <2>; - status = "okay"; - - nvmem-cells = <&ths_calib>; - nvmem-cell-names = "ths-calib"; - }; -}; diff --git a/sys/dts/arm64/overlays/sun50i-h5-sid.dtso b/sys/dts/arm64/overlays/sun50i-h5-sid.dtso deleted file mode 100644 index 9a87348dbc57..000000000000 --- a/sys/dts/arm64/overlays/sun50i-h5-sid.dtso +++ /dev/null @@ -1,17 +0,0 @@ -/dts-v1/; -/plugin/; - -/ { - compatible = "allwinner,sun50i-h5"; -}; - -&{/soc} { - sid: eeprom@1c14000 { - compatible = "allwinner,sun50i-h5-sid"; - reg = <0x1c14000 0x400>; - - ths_calib: calib@234 { - reg = <0x234 0x4>; - }; - }; -}; diff --git a/sys/dts/arm64/overlays/sun50i-h5-ths.dtso b/sys/dts/arm64/overlays/sun50i-h5-ths.dtso deleted file mode 100644 index 9099f1660d11..000000000000 --- a/sys/dts/arm64/overlays/sun50i-h5-ths.dtso +++ /dev/null @@ -1,26 +0,0 @@ -/dts-v1/; -/plugin/; - -#include -#include -#include - -/ { - compatible = "allwinner,sun50i-h5"; -}; - -&{/soc} { - ths: thermal_sensor@1c25000 { - compatible = "allwinner,sun50i-h5-ths"; - reg = <0x01c25000 0x100>; - interrupts = ; - clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; - clock-names = "apb", "ths"; - resets = <&ccu RST_BUS_THS>; - reset-names = "apb"; - #thermal-sensor-cells = <1>; - - nvmem-cells = <&ths_calib>; - nvmem-cell-names = "ths-calib"; - }; -};