Page MenuHomeFreeBSD

mmel (Michal Meloun)
User

Projects

User Details

User Since
Feb 3 2015, 4:54 AM (263 w, 3 d)

Recent Activity

Thu, Jan 30

mmel added inline comments to D23349: arm64 N1SDP PCI root complex driver.
Thu, Jan 30, 3:40 PM

Jan 17 2020

mmel accepted D23216: rk805: Add a regnode_init method.

lgtm

Jan 17 2020, 6:40 AM

Jan 8 2020

mmel added a comment to D23085: DRM: Add DRM core files and DRMKPI.

common/include/xxx.h
#if defined(LINUXKPI_BASEDRM)
Do it this way
#else
Do it that way
#endif
basedrm/include/xxx put the DRM header files here which you need.

Static inline functions is your friend.
Maybe Johannes has some opinions too.
Is it possible to add this driver as part of the existing KMS DRM driver?
Jan 8 2020, 2:00 PM

Jan 6 2020

mmel requested changes to D23007: regulator: Set correct uvolt value in regnode_set_constraint.

I think that this is wrong way to fix you issue. We should not rely on preset values from loader. Voltages should be adjusted by drivers, and if this is not possible, the PMIC driver itself should set right values within its initialization - in exactly same way as we do within clocks initialization.

Jan 6 2020, 3:40 PM
mmel accepted D23003: regulator_fixed: Add a get_voltage method.

This is slightly controversial. "regulator-min-microvolt" nor"regulator-max-microvolt" are not required properties for fixed regulators so we can't do this so simply. inmo,, we should monitor the presence of these properties and use this info for generate of the result.

Jan 6 2020, 3:32 PM
mmel accepted D23005: rk805: Add regnode_status method.

lgtm

Jan 6 2020, 3:17 PM
mmel accepted D23006: regulator: fix regnode_method_get_voltage.

oups, my bug. Sorry for trouble.
lgtm

Jan 6 2020, 3:15 PM
mmel accepted D23004: rk808: Add min/max for the switch regulators.

lgtm

Jan 6 2020, 3:13 PM

Jan 2 2020

mmel accepted D22891: Add support for i2c bus mux hardware..

lgtm

Jan 2 2020, 7:35 AM

Dec 31 2019

mmel added inline comments to D22891: Add support for i2c bus mux hardware..
Dec 31 2019, 4:44 PM

Dec 28 2019

mmel accepted D22922: Eliminate generated ldscript for arm and arm64, and strip $a/$d marker symbols from linked kernel..

tested on arm64
lgtm

Dec 28 2019, 4:46 PM

Dec 19 2019

mmel added a comment to D22849: arm64: rockchip: Add interface for rk_pinctrl.

imho, some bits of this should be implemented as part of generic fdt_pinctr interface.
We should have at least
FDT_PINCTRL_IS_GPIO()
FDT_PINCTRL_SWITCH_TO__GPIO()
FDT_PINCTRL_SET_GPIO_FLAGS()
FDT_PINCTRL_GET_GPIO_FLAGS()
Major issue is how to get right reference to appropriate pinctrl instance(within gpoio driver) and how to convert pin numbers from gipo nomenclature to pinctrl nomenclature. This should be covered by "gpio-range = <>" property, but world is not ideal :(

Dec 19 2019, 1:55 PM
mmel accepted D22854: arm64: rockchip: Add driver for the io domain.

Tested on AIO-3288.
lgtm

Dec 19 2019, 12:41 PM
mmel accepted D22852: arm64: rockchip: rk808: Add remaining regulators.

lgtm

Dec 19 2019, 12:24 PM

Dec 7 2019

mmel updated the summary of D22724: Add driver for Rockchip PCIe root complex found in RK3399 SOC..
Dec 7 2019, 5:03 PM
mmel created D22724: Add driver for Rockchip PCIe root complex found in RK3399 SOC..
Dec 7 2019, 5:02 PM

Dec 2 2019

mmel accepted D22622: Handle the possibility of preemption after an "ic" or "tlbi" instruction.
Dec 2 2019, 6:10 PM

Dec 1 2019

mmel added a comment to D22606: Switch to an empty ttbr0 pagetable when the MMU is enabled.

i just realized that this breaks EARLY_UART because SOCDEV_PA mapping is not passed to initarm().
So I think that we should postpone change of kernel ttbt0 until cninit() is processed.

@@ -1164,6 +1164,7 @@ initarm(struct arm64_bootparams *abp)
        valid = bus_probe();
Dec 1 2019, 10:55 AM

Nov 30 2019

mmel accepted D22606: Switch to an empty ttbr0 pagetable when the MMU is enabled.

Tested on RockPro64 an Tegra TX1 without problems. Unfortunately, it doesn't affect RK3399 issues in either way...

Nov 30 2019, 11:03 AM

Nov 26 2019

mmel updated the diff for D22441: Finish implementation of RK3299 clocks. .

Move common macros to rk_cru.h

Nov 26 2019, 5:10 PM
mmel added a comment to D22499: Changes to support booti u-boot command.

With full respect, I have no idea why you want/need these changes to original D13861.
Adding initrd support to top of D13861 is simple (we can use fragments from this patch).
For me most clean way how to solve this situation is:

  1. revert original commit.
  2. commit D13861 (without putting LINUX_BOOT_ABI to GENERIC)
  3. convert this patch to adding initrd support on top of D13861 ( I offering full help for this)
  4. fix generation of booti image (by utility program or by some hex editing, having booti header in locore.s is not a right way)
Nov 26 2019, 11:34 AM · arm64

Nov 19 2019

mmel updated the diff for D22441: Finish implementation of RK3299 clocks. .

Add own version of clock ID's header without single copyright

Nov 19 2019, 9:12 AM
mmel created D22442: Add driver for temperature sensors found in RK3288, RK3328 and RK3399 SoC's..
Nov 19 2019, 8:31 AM
mmel updated the diff for D13863: Simplify and cleanup startup code for secondary cores..

Revert previous diff update, committed to wrong review.

Nov 19 2019, 7:34 AM
mmel updated the diff for D13863: Simplify and cleanup startup code for secondary cores..

I pushed outdated diff, update it to final version

Nov 19 2019, 7:22 AM
mmel created D22441: Finish implementation of RK3299 clocks. .
Nov 19 2019, 6:47 AM

Nov 16 2019

mmel added a comment to D22255: Boot arm64 kernel using booti command from U-boot. .

Hi Mmel,

In D22255#489923, @mmel wrote:

Hi Mmel,
Please find my comments inline.

After more detailed analysis, I think that there are more problems.
Let me explain situation. Givens are:
• Actual locore.S mappings of kernel expects that physical memory is aligned to 1GB boundary. This implies that we don’t support boards with lower that 1 GB memory (I don’t see other real limitation caused by this fact).

In locore.S L1 block page table entry is built on 1GiB aligned physical load addr of kernel. However this is irrespective of using loader or U-Boot to boot the FreeBSD kernel.

• U-Boot booti command expect that kernel, fdt, and initrd blobs are loaded at ${kernel_addr_r}, ${fdt_addr_r} and ${initrd_addr_r} offsets.

Yes.
As part of this patch linux_load_initrd() will do build_l1_block_pagetable() to map initrd start address aligned to 1GiB PA=VA.
(By default, initrd_addr_r will be relocated to highmem by booti in U-Boot code (do_bootm_linux->boot_prep_linux->boot_reloc_ramdisk->boot_ramdisk_high)).
locore.S maps 1GiB algined kernel_addr_r PA=VA. I assumed that fdt_addr_r ( a couple of KiB’s in size) can also be within this 1GiB aligned addr. However, fdt_addr_r can be mapped similar to initrd start addr (in linux_load_initrd()).

Real value of these variables is driven by u-boot and we cannot expect nothing about this value. (order, gaps, etc..)

Sure.

It’s possible that kernel want to load kernel at begining of memory and initrd blob at end. We must support this, it's generic part of ‘distro_boot’ u-booot protocol/framework. And support of distro_boot is one of major goals for having booti supported, imo.

Sure. My understanding is that patch handles this. Physical load address of,
kernel is mapped into KVA starting at KERNBASE in locore.S
dtb blob is mapped into KVA starting at [ KERNBASE+(kernel size) ] in machdep_boot.c
initrd is mapped into KVA starting at [ KERNBASE+(kernel size) + (dtb size) ] in machdep_boot.c

This give me some conclusions:
Because of 1) optimal mapping granularity is 1GB, more fine grained granularity is nothing than waste of TLB entries and build_l2_block_pagetable() is useless. (at least I don’t see single advantage of using fine grained mappings, while disadvantage is clear - more TLB pressure ).

[1]
locore.S does maps kernel physical load addr into KVA starting at [ KERNBASE ] to [ KERNBASE + (kernel size)] using build_l2_block_pagetable. KVA is in L2 table which has 512, 2MiB entries. 1GiB L1 table entry is linked to this L2 table.
The following comments from create_pagetables: in locore.S,

  • It relys on:
  • We were loaded to an address that is on a 2MiB boundary
  • All the memory must not cross a 1GiB boundaty
  • x28 contains the physical address we were loaded from *

I am mapping dtb and initrd image into L2 table following the end of kernel. Therefore I created build_l2_block_pagetable() in machdep_boot.c
In fact if this not done dtb or initrd cannot be added into KVA. Due to above comments, I added a print in machdep_boot.c if kernel+dtb+initrd will exceed 1GiB.

This is not exact description. You allocates and maps new memory (by using lastaddr) for fdt and initrd blobs. Then you *copy* these blobs to new location. See lines 122 and 127 for fdt, and lines 270, 273 and 275 for initrd.

Basically, I am creating 2MiB KVA L2 table entries to move the fdt and initrd blobs from PA to KVA.

As you can see, you have mapped both source and destination address for initrd blob memmove(), but only destination address was mapped for fdt blob memmove() (point me to right place if I’m wrong, please).

Sorry I did not understand this clearly. inirtd size (in counts of 2MiB) is calculated using initrd-end - inird-start. For dtb the size is available in its header.

Problem is not about initrd but fdt blob
at line 127 we do
memmove((void *)lastaddr, dtb_ptr, dtb_size);
destination memory is mapped at line 122 by
build_l2_block_pagetable(lastaddr, dtb_size, abp
but where is mapped source memory (pointed by dtb_ptr in memmove())????

Nov 16 2019, 1:57 PM · arm64
mmel added a comment to D22255: Boot arm64 kernel using booti command from U-boot. .

Hi Mmel,
Please find my comments inline.

After more detailed analysis, I think that there are more problems.
Let me explain situation. Givens are:
• Actual locore.S mappings of kernel expects that physical memory is aligned to 1GB boundary. This implies that we don’t support boards with lower that 1 GB memory (I don’t see other real limitation caused by this fact).

In locore.S L1 block page table entry is built on 1GiB aligned physical load addr of kernel. However this is irrespective of using loader or U-Boot to boot the FreeBSD kernel.

• U-Boot booti command expect that kernel, fdt, and initrd blobs are loaded at ${kernel_addr_r}, ${fdt_addr_r} and ${initrd_addr_r} offsets.

Yes.
As part of this patch linux_load_initrd() will do build_l1_block_pagetable() to map initrd start address aligned to 1GiB PA=VA.
(By default, initrd_addr_r will be relocated to highmem by booti in U-Boot code (do_bootm_linux->boot_prep_linux->boot_reloc_ramdisk->boot_ramdisk_high)).
locore.S maps 1GiB algined kernel_addr_r PA=VA. I assumed that fdt_addr_r ( a couple of KiB’s in size) can also be within this 1GiB aligned addr. However, fdt_addr_r can be mapped similar to initrd start addr (in linux_load_initrd()).

Real value of these variables is driven by u-boot and we cannot expect nothing about this value. (order, gaps, etc..)

Sure.

It’s possible that kernel want to load kernel at begining of memory and initrd blob at end. We must support this, it's generic part of ‘distro_boot’ u-booot protocol/framework. And support of distro_boot is one of major goals for having booti supported, imo.

Sure. My understanding is that patch handles this. Physical load address of,
kernel is mapped into KVA starting at KERNBASE in locore.S
dtb blob is mapped into KVA starting at [ KERNBASE+(kernel size) ] in machdep_boot.c
initrd is mapped into KVA starting at [ KERNBASE+(kernel size) + (dtb size) ] in machdep_boot.c

This give me some conclusions:
Because of 1) optimal mapping granularity is 1GB, more fine grained granularity is nothing than waste of TLB entries and build_l2_block_pagetable() is useless. (at least I don’t see single advantage of using fine grained mappings, while disadvantage is clear - more TLB pressure ).

[1]
locore.S does maps kernel physical load addr into KVA starting at [ KERNBASE ] to [ KERNBASE + (kernel size)] using build_l2_block_pagetable. KVA is in L2 table which has 512, 2MiB entries. 1GiB L1 table entry is linked to this L2 table.
The following comments from create_pagetables: in locore.S,

  • It relys on:
  • We were loaded to an address that is on a 2MiB boundary
  • All the memory must not cross a 1GiB boundaty
  • x28 contains the physical address we were loaded from *

I am mapping dtb and initrd image into L2 table following the end of kernel. Therefore I created build_l2_block_pagetable() in machdep_boot.c
In fact if this not done dtb or initrd cannot be added into KVA. Due to above comments, I added a print in machdep_boot.c if kernel+dtb+initrd will exceed 1GiB.

This is not exact description. You allocates and maps new memory (by using lastaddr) for fdt and initrd blobs. Then you *copy* these blobs to new location. See lines 122 and 127 for fdt, and lines 270, 273 and 275 for initrd. As you can see, you have mapped both source and destination address for initrd blob memmove(), but only destination address was mapped for fdt blob memmove() (point me to right place if I’m wrong, please).

Nov 16 2019, 10:22 AM · arm64
mmel added a comment to D22255: Boot arm64 kernel using booti command from U-boot. .

After more detailed analysis, I think that there are more problems.
Let me explain situation. Givens are:

  1. Actual locore.S mappings of kernel expects that physical memory is aligned to 1GB boundary. This implies that we don’t support boards with lower that 1 GB memory (I don’t see other real limitation caused by this fact).
  2. U-Boot booti command expect that kernel, fdt, and initrd blobs are loaded at ${kernel_addr_r}, ${fdt_addr_r} and ${initrd_addr_r} offsets. Real value of these variables is driven by u-boot and we cannot expect nothing about this value. (order, gaps, etc..) It’s possible that kernel want to load kernel at begining of memory and initrd blob at end. We must support this, it's generic part of ‘distro_boot’ u-booot protocol/framework. And support of distro_boot is one of major goals for having booti supported, imo.

This give me some conclusions:
Because of 1) optimal mapping granularity is 1GB, more fine grained granularity is nothing than waste of TLB entries and build_l2_block_pagetable() is useless. (at least I don’t see single advantage of using fine grained mappings, while disadvantage is clear - more TLB pressure ).
Because of 2) – all 3 booti blobs must be taken separately. I don’t see single reason for postponing mapping of FDT to C code. Original locoer.S works and build_l2_block_pagetable() is unusable. Using lastaddr for reservation of memory used by initrd is clearly nonsense. Initrd blob should be reserved by using (probably) arm_physmem_exclude_regions() and map it later , when pmap is fully bootstrapped.

Nov 16 2019, 3:52 AM · arm64

Nov 15 2019

mmel added a comment to D22255: Boot arm64 kernel using booti command from U-boot. .

please, use original locore.S from D13861 I'ts tested on many boards and it works :).

Nov 15 2019, 3:18 PM · arm64
mmel added inline comments to D22255: Boot arm64 kernel using booti command from U-boot. .
Nov 15 2019, 12:13 PM · arm64
mmel added a comment to D22255: Boot arm64 kernel using booti command from U-boot. .

Moreover this doesn't boot on RockPro64, where original code from D13861 works without problems. jhibbits, please revert this, this code needs definitely more love. (Please, be sure that I'm first who wants booti support in kernel, but broken support is worse that no support)

Nov 15 2019, 12:05 PM · arm64
mmel added a comment to D22255: Boot arm64 kernel using booti command from U-boot. .

I'm sorry for delayed review, but I am overloaded with my current work on Rockchip ports.
But in any case, if you want to reuse someone else's patch, it would be better to include the original author directly as the reviewer.

Nov 15 2019, 9:17 AM · arm64

Nov 8 2019

mmel added inline comments to D22281: Cleanup Rockchip clocks implementation..
Nov 8 2019, 6:11 PM
mmel created D22283: Tidy up Rockchip composite clock..
Nov 8 2019, 5:18 PM
mmel created D22282: Enhance Rockchip clocks implementation..
Nov 8 2019, 5:17 PM
mmel created D22281: Cleanup Rockchip clocks implementation..
Nov 8 2019, 5:14 PM

Nov 6 2019

mmel accepted D22260: regulator: Add regulator_check_voltage function.

LGTM

Nov 6 2019, 2:49 PM

Oct 23 2019

mmel accepted D22106: regulator: Add a regnode_set_constraint function.

LGTM

Oct 23 2019, 9:51 AM
mmel accepted D22106: regulator: Add a regnode_set_constraint function.

rest is OK for me.

Oct 23 2019, 9:24 AM
mmel added a comment to D22106: regulator: Add a regnode_set_constraint function.

The code itself looks OK for me. But I have problem with using its usage as default regulator init method, because:

  • it cannot be used by regulators with its own init
  • it expect that regulator is accessible early, at registration time. I'm not sure if this is possible in all cases (like I2C and interrupts ..)
Oct 23 2019, 8:14 AM

Oct 4 2019

mmel added a comment to D21703: o Unify all <machine>/resource.h, unhide PCI_RES_BUS, add CLK and PWR..

Can you, please, give me your motivation for adding new resource types when it’s clear that these resources cannot be handled by resman/newbus without extreme API breakage?
For OFW/FDT world, major issues are:

    • given resource (request, allocated) cannot be described by single integer, and infrastructure must take it fully opaque (there is nothing like ‘resource start’, ‘resource end’ and interval enumerator)
  • hierarchy for other resources(clk, regulator, reset, phy, ...) is not bus related and can have circular dependencies – so it cannot be represented by tree, but by graph. This result to fact that bus enumerator cannot prepare resource list for its child devices. This is something which break basic design expectation of newbus.
  • circular resource dependencies (between types – frequent, within single resource type – no that frequent but exist mainly for clocks) also means, that we relay need staggered device_attach(), there is no way to do this by automatic ordering of devices attach, driven by resource availability.

Another current newbus or bus_space limitation is that we should have (general, globalized) memory attributes and be should pass it do all memory mapping function. On arm or arm64, PCI config space should be mapped with different attribute (strongly ordered) that pci (or other devices) mmio register space (posted writes are allowed). Actual behavior (all devices are mapped as strongly ordered) have measurable performance impact.
Don’t take me badly, I’m still newbus fan, I only don’t see reliable way how we can extend it without fatal/significant API breakage.

Oct 4 2019, 8:14 AM

Mar 19 2019

mmel committed rS345299: PSCI: Don't take missing implementation of psci get_version() as fatal..
PSCI: Don't take missing implementation of psci get_version() as fatal.
Mar 19 2019, 3:42 PM
mmel committed rS345297: Improve cpufreq_dt..
Improve cpufreq_dt.
Mar 19 2019, 2:35 PM
mmel committed rS345296: Use named field's initializer when constructing <foo>_platform structure..
Use named field's initializer when constructing <foo>_platform structure.
Mar 19 2019, 2:33 PM
mmel committed rS345295: extres: Unify error codes for <foo>_get_by_ofw_property() methods..
extres: Unify error codes for <foo>_get_by_ofw_property() methods.
Mar 19 2019, 2:31 PM

Feb 15 2019

mmel accepted D19206: stand: dev_net: correct net_open's interpretation of params.

Yep, thanks.

Feb 15 2019, 3:40 PM
mmel accepted D19196: Per discussions on arch@ and elsewhere, retire drm module / drives..
Feb 15 2019, 6:46 AM

Feb 11 2019

mmel accepted D19139: Make taskqgroup_attach{,_cpu}(9) work across architectures.

That's simply perfect, many thanks.
I tested this on arm64, all work like charm. (But I'm able to do only limited test, my iflib based driver is still far far away from working state)

Feb 11 2019, 5:15 PM

Feb 10 2019

mmel committed rS343965: Fix bug introduced by r343962..
Fix bug introduced by r343962.
Feb 10 2019, 6:28 PM
mmel committed rS343963: Don't allocate same clock twice...
Don't allocate same clock twice..
Feb 10 2019, 2:30 PM
mmel committed rS343962: Properly handle alignment requests bigger that page size..
Properly handle alignment requests bigger that page size.
Feb 10 2019, 2:25 PM

Feb 6 2019

mmel committed rS343828: Adapt FreeBSD specific DT stub for Jetson TK1 board to be consistent with.
Adapt FreeBSD specific DT stub for Jetson TK1 board to be consistent with
Feb 6 2019, 6:04 AM

Jan 27 2019

mmel committed rS343498: Properly define and declare phynode_topo_lock,.
Properly define and declare phynode_topo_lock,
Jan 27 2019, 3:50 PM

Jan 7 2019

mmel committed rS342847: MFC r342113:.
MFC r342113:
Jan 7 2019, 11:03 AM

Dec 15 2018

mmel committed rS342113: Improve R_AARCH64_TLSDESC relocation..
Improve R_AARCH64_TLSDESC relocation.
Dec 15 2018, 10:39 AM
mmel closed D18417: Improve R_AARCH64_TLSDESC relocation..
Dec 15 2018, 10:39 AM
mmel committed rS342112: Fix mismerge caused by r342111..
Fix mismerge caused by r342111.
Dec 15 2018, 9:14 AM
mmel committed rS342111: MFC r341738:.
MFC r341738:
Dec 15 2018, 6:35 AM
mmel committed rS342110: MFC r341738:.
MFC r341738:
Dec 15 2018, 6:25 AM

Dec 14 2018

mmel committed rS342078: MFC r341679:.
MFC r341679:
Dec 14 2018, 10:46 AM
mmel committed rS342077: MFC r341679:.
MFC r341679:
Dec 14 2018, 10:30 AM
mmel committed rS342075: MFC r341511,r341512,r341513:.
MFC r341511,r341512,r341513:
Dec 14 2018, 10:25 AM
mmel committed rS342074: MFC r341511,r341512,r341513:.
MFC r341511,r341512,r341513:
Dec 14 2018, 10:20 AM

Dec 9 2018

mmel added a comment to D17137: arm64: Add HWCAP support.

Imho, aggregated reading of ID registers is not a best solution.
Personally, I think that we should implement aggregated view by using HWCAPS (As we must do this in any case, upcoming COMPAT32 simply expects this).
But we should return actual/real values of ID registers. This allow us to write program which iterates over clusters and selects best cores for given workload.
I mainly talking about SHA or SVE extensions here.

Dec 9 2018, 12:30 PM
mmel committed rS341760: MFC r341393:.
MFC r341393:
Dec 9 2018, 6:48 AM

Dec 8 2018

mmel updated the diff for D18417: Improve R_AARCH64_TLSDESC relocation..
Dec 8 2018, 3:20 PM
mmel committed rS341738: Implement R_AARCH64_TLS_DTPMOD64 and A_AARCH64_TLS_DTPREL64 relocations..
Implement R_AARCH64_TLS_DTPMOD64 and A_AARCH64_TLS_DTPREL64 relocations.
Dec 8 2018, 2:58 PM

Dec 7 2018

mmel committed rS341679: Fix cut&paste typo in atomic_fetchadd_64()..
Fix cut&paste typo in atomic_fetchadd_64().
Dec 7 2018, 11:13 AM

Dec 5 2018

mmel committed rS341513: Tidy up arm64 reloc_jmpslots() implementation..
Tidy up arm64 reloc_jmpslots() implementation.
Dec 5 2018, 10:32 AM
mmel committed rS341512: Implement arm64 version of __tls_get_addr()..
Implement arm64 version of __tls_get_addr().
Dec 5 2018, 10:25 AM
mmel committed rS341511: Fix style(9)..
Fix style(9).
Dec 5 2018, 10:25 AM
mmel added a comment to D14409: Sandbox head(1) with fileargs..

bingo! I'm on r341345. And yes, r341347 fixed it.
Thanks and sorry for noise.

Dec 5 2018, 5:06 AM

Dec 4 2018

mmel added a comment to D14409: Sandbox head(1) with fileargs..

Ahh, right, I overlooked this, sorry. So I taking back WITHOUT_CAPSICUM case.

Dec 4 2018, 2:43 PM
mmel added a comment to D14409: Sandbox head(1) with fileargs..

How this can works on kernels build without 'options CAPABILITIES'? Note that CAPABILITIES option is
not included in kernel option for small embedded boards (arm, mips...)?
We should change CAPSICUM to mandatory or implement fallback here (as we already do in rest of tree)

Dec 4 2018, 2:04 PM

Dec 3 2018

mmel created D18417: Improve R_AARCH64_TLSDESC relocation..
Dec 3 2018, 10:26 AM

Dec 2 2018

mmel added a comment to D17367: Eliminate pointless calls to vm_fault_prefault().

Only kernel was changed during bisecting, nothing else. And all kernels was cross-compiled by
same toolchain. Kernel before r339819 works, r339819 hangs, and fresh current with r339819
reverted also works. Also, during bisecting, any kernel after r339819 hangs.
So I thing that r339819 is culprit.

Dec 2 2018, 3:59 PM
mmel added a comment to D17367: Eliminate pointless calls to vm_fault_prefault().

Unfortunately, this patch destabilized arm kernel.
The bad thing is that my Tegra does not panic, just hangs hard and I can’t even enter the JTAG debugger [1].
Moreover, this issue is very rare, I can do finish full buildkernel in most cases. The only known testcase is full
build of qt5-webengine (~16k of C++ files, +10 hours of compilation time).

Dec 2 2018, 1:57 PM
mmel committed rS341394: MFC r338317:.
MFC r338317:
Dec 2 2018, 7:45 AM
mmel committed rS341393: Return computed real memory size, not a value from similarly named.
Return computed real memory size, not a value from similarly named
Dec 2 2018, 7:41 AM

Nov 15 2018

mmel added inline comments to D17978: regulator_fixed: Do not disable fixed regulator at probe.
Nov 15 2018, 6:19 AM

Nov 3 2018

mmel added a member for arm64: mmel.
Nov 3 2018, 8:58 AM

Oct 30 2018

mmel added a comment to D17750: extres/phy: Add phy_set_mode method.

Manu,
can you, please, subclass phy to USB specialized variant (say phyusb or usbphy)? You can use clk (clkdiv, clkmux ...) as template. We should implement lots of USB OTG related function here. VBUS voltage and over-current detection, ID pin status change interrupt, OTG state machine and I thing that should use proper layering from beginning.
If you too busy for this, I can implement (empty) subclass in next 2-3 days.

Oct 30 2018, 8:52 AM · arm64, ARM

Aug 25 2018

mmel committed rS338317: Fix wrong offset calculation for R_ARM_TLS_TPOFF32 relocations..
Fix wrong offset calculation for R_ARM_TLS_TPOFF32 relocations.
Aug 25 2018, 4:54 PM

Aug 22 2018

mmel added a comment to D16510: Rework rtld's TLS Variant I implementation to match r326794.

Firstly, I want to say that this patch is OK. It only slightly changed memory layout for TLS segment (because it uses malloc_aligned()) which exposed unrelated bug in ARM TLS relocation.

Aug 22 2018, 10:40 AM

Aug 13 2018

mmel committed rS337705: MFC r335249:.
MFC r335249:
Aug 13 2018, 8:48 AM
mmel committed rS337704: Add USB ID for rebranded RTL8153 found on NVIDIA Jetson TX1 board..
Add USB ID for rebranded RTL8153 found on NVIDIA Jetson TX1 board.
Aug 13 2018, 7:28 AM

Aug 8 2018

mmel added a comment to D16555: Add support for pmap_enter(..., psind == 1) to armv6's pmap.
In D16555#353199, @alc wrote:

Which linker is being used?
Can you please email me the output of "procstat -av"?

Output mailed directly.
And about linker - it's hard to say :)

Aug 8 2018, 7:31 AM
mmel accepted D16555: Add support for pmap_enter(..., psind == 1) to armv6's pmap.

Tested on Jetson TK1 (cortex-A15) without single problem.
From preliminary collected statistic it looks like pmap_enter(..., psind == 1) is used ~60 times per buildworld.
Unfortunately, the same statistic also told me that is pmap_enter_object() doesn't not create single 1MB mappings, even for shared libraries.
I'm pretty sure that this worked before - but this regression is not related to this patch.

Aug 8 2018, 6:35 AM

Aug 1 2018

mmel accepted D16517: snd_hda: Enable bus_dmamap_sync operations, both new and uncommented.

The commit message is a bit misleading. This patch ensures DMA coherency only for control structures but audio data buffers are not covered by required bus_dmamap_sync() operations. (We simply don't have right sync operation for syncing in progress DMA buffers - something like make buffer range snapshot before CPU read and make buffer range snapshot after CPU write).
Can you, please, elaborate this fact in commit message.

Aug 1 2018, 8:40 AM

Jul 29 2018

mmel accepted D16443: Prepare for adding psind == 1 support to armv6's pmap_enter().

Applied, booted new kernel and make buildworld passed without problem.
LGTM.
Thanks for your ARM effort.

Jul 29 2018, 9:51 AM

Jun 16 2018

mmel updated the diff for D13861: Add support for booting FreeBSD kernel directly from U_Boot using booti command..

Rebased to current, renamed UBOOT_BOOT_API to LINUX_BOOT_API

Jun 16 2018, 9:32 AM

Mar 9 2018

mmel accepted D14541: Make Raspberry Pi RNG compatible with upstream DTBs.
Mar 9 2018, 5:18 AM

Mar 2 2018

mmel accepted D14541: Make Raspberry Pi RNG compatible with upstream DTBs.

Tested also on RPi-B (armv6) without problem.
Please, also remove rng related lines from sys/dts/arm/rpi[2].dts stubs.

Mar 2 2018, 11:35 AM

Feb 10 2018

mmel added a comment to D14299: sysutils/rpi-firware Include dtb and overlays.

+100 for overlays.
But I'm not sure if it's right time to publish base .dtb files in this way. We cannot use it for now (because interrupts for uart and spi are routed throw "bcm2835-aux") and it's unclear if binding headers (dts/include/dt-bindings/*) are same (or compatible) as linux mainstream ones.

Feb 10 2018, 5:07 PM

Jan 19 2018

mmel updated the diff for D13931: Implement mitigation for Spectre Version 2 attacks on ARMv7..
  • print actual mitigation variant if bootversode
  • slightly restructure code to make additional vendors or CPUs addition easier
Jan 19 2018, 5:07 PM

Jan 18 2018

mmel added inline comments to D13931: Implement mitigation for Spectre Version 2 attacks on ARMv7..
Jan 18 2018, 2:47 PM
mmel updated the diff for D13931: Implement mitigation for Spectre Version 2 attacks on ARMv7..

Addressed all objections.

Jan 18 2018, 2:18 PM

Jan 17 2018

mmel added inline comments to D13931: Implement mitigation for Spectre Version 2 attacks on ARMv7..
Jan 17 2018, 7:00 AM

Jan 16 2018

mmel retitled D13931: Implement mitigation for Spectre Version 2 attacks on ARMv7. from Implement BP hardening as mitigation for Spectre Version 2 attacks on ARMv7 platforms. to Implement mitigation for Spectre Version 2 attacks on ARMv7..
Jan 16 2018, 7:51 AM