first impressions of the Lego smart brick, before I do any actual tearing down: wow, I forgot how good they are at working with plastic.
-
finally done. no shorts and (as far as i can tell under mag) no opens
complete success

-
@whitequark @gsuberland @ftg cursed thought: pentium based ECU
@ldcd @whitequark @ftg "why did you crash your car?" "F00F bug, your honour"
-
complete success

contrary to everything i've seen online, this is a Winbond W25Q16JWBY part (but one person got the closest, they thought it is a W25Q16JVBY. the difference is major: one is 3.3V, the other is 1.8V)

-
@ldcd @whitequark @ftg almost certainly a hardware log2 instruction bolted on. I wonder if they're using it for FFT or something.
@gsuberland @ldcd @ftg well yes they call it a log2() accelerator but why
-
contrary to everything i've seen online, this is a Winbond W25Q16JWBY part (but one person got the closest, they thought it is a W25Q16JVBY. the difference is major: one is 3.3V, the other is 1.8V)

NotImplementedError: quad enablement SFDPJEDECQuadEnableRequirements.Reg2Bit1_Read35h_Write05h not implemented yetah yes. i remember why i hate SPI flashes now
-
NotImplementedError: quad enablement SFDPJEDECQuadEnableRequirements.Reg2Bit1_Read35h_Write05h not implemented yetah yes. i remember why i hate SPI flashes now
tried using dual mode and the SFDP tells me to transmit half a byte
once i dump it this flash is definitely going into the naughty pile (of unit tests in glasgow)

-
@gsuberland @ldcd @ftg well yes they call it a log2() accelerator but why
@whitequark @gsuberland @ldcd @ftg ...are you sure it's not just CLZ?
-
@gsuberland @ldcd @ftg well yes they call it a log2() accelerator but why
@whitequark @ldcd @ftg hmm, seems to be hardware log2p0 and log2p1 intrinsics. weird.
-
@whitequark @ldcd @ftg hmm, seems to be hardware log2p0 and log2p1 intrinsics. weird.
@gsuberland @ldcd @ftg what is the p0/p1?
-
@gsuberland @ldcd @ftg what is the p0/p1?
@whitequark @ldcd @ftg log2p0 is plain integer log base 2 (I think with always round down behaviour?) and log2p1 is the same but add 1 after. the latter is used to calculate how many bits are needed to store a given number. I know the latter gets used in some AV compression algorithms, idk about the decompression algorithms though.
-
tried using dual mode and the SFDP tells me to transmit half a byte
once i dump it this flash is definitely going into the naughty pile (of unit tests in glasgow)

here's the flash contents https://upload.whitequark.org/1775953651-lego_brick_00F2MZ_749DF5_W25Q16JWBY.bin
-
@whitequark @gsuberland @ldcd @ftg ...are you sure it's not just CLZ?
@wren6991@types.pl @whitequark@social.treehouse.systems @gsuberland@chaos.social @ldcd@social.treehouse.systems @ftg@mastodon.radio ceil(log2(n+1)) is clz, and is somewhat often defined as such so wouldn't surprise me (I doubt it would actually have floating point log)
-
@wren6991@types.pl @whitequark@social.treehouse.systems @gsuberland@chaos.social @ldcd@social.treehouse.systems @ftg@mastodon.radio ceil(log2(n+1)) is clz, and is somewhat often defined as such so wouldn't surprise me (I doubt it would actually have floating point log)
@ignaloidas @gsuberland @ldcd @ftg @wren6991 i have literally never seen clz implemented that way
-
@ignaloidas @gsuberland @ldcd @ftg @wren6991 i have literally never seen clz implemented that way
@whitequark@social.treehouse.systems @gsuberland@chaos.social @ldcd@social.treehouse.systems @ftg@mastodon.radio @wren6991@types.pl jpeg xl uses the log2 way in it's spec (it took me a bit of thinking to reverse it)
(wait, now that I'm re-thinking, that's not clz but bitsize minus clz but basically same) -
@whitequark@social.treehouse.systems @gsuberland@chaos.social @ldcd@social.treehouse.systems @ftg@mastodon.radio @wren6991@types.pl jpeg xl uses the log2 way in it's spec (it took me a bit of thinking to reverse it)
(wait, now that I'm re-thinking, that's not clz but bitsize minus clz but basically same)@ignaloidas @gsuberland @ldcd @ftg @whitequark (implements XOR instruction) Galois Field Addition Accelerator

-
here's the flash contents https://upload.whitequark.org/1775953651-lego_brick_00F2MZ_749DF5_W25Q16JWBY.bin
@whitequark hey @zhuowei does this match anything you found in the LEGO Smart Brick app? Or does the app have a newer firmware version?
-
@whitequark hey @zhuowei does this match anything you found in the LEGO Smart Brick app? Or does the app have a newer firmware version?
@nicolas17 @whitequark @zhuowei for everyone else who got invested now, I think you're referring to this thread: https://notnow.dev/objects/cccfc047-da57-444a-be6f-63a5a766bcf7
-
@whitequark cpu_top is clearly a Verilog module name lmao
-
here's the flash contents https://upload.whitequark.org/1775953651-lego_brick_00F2MZ_749DF5_W25Q16JWBY.bin
here's how the flash was mounted in its natural environment, in absence of feline predators
the SPI bus seems to be shared with something else & they're definitely using ViP

-
@whitequark cpu_top is clearly a Verilog module name lmao